多语言开发

2017-11-13  本文已影响20人  coderhlt

一、让你的项目支持多语言开发(项目配置)

//这是加载string文件的appi方法
a.- (NSString *)localizedStringForKey:(NSString *)key value:(nullable NSString *)value table:(nullable NSString *)tableName

key:    string文件中定义的key

value:    如果string文件中,通过key取不到对应的value,就默认加载传进去的value

tableName:  文件名称

--------------------------------------------------------------------------------------
b./*这是苹果已经定义好的一个宏
#define NSLocalizedStringFromTable(key, tbl, comment) \
        [NSBundle.mainBundle localizedStringForKey:(key) value:@"" table:(tbl)]
*/
NSLocalizedStringFromTable(key, tbl, comment) 
--------------------------------------------------------------------------------------
c./*
这也是苹果已经定义好的一个宏
#define NSLocalizedString(key, comment) \
        [NSBundle.mainBundle localizedStringForKey:(key) value:@"" table:nil]
说明:文件名为nil时,系统会默认从项目中加载Localizable.strings文件(当然你需要手动新建一个,并命名为Localizable)
*/
NSLocalizedString(key, comment)
/* 
  test.strings(Chininese)
*/

"cancell" =  "取消";

/* 
  test.strings(English)
*/
//key:       value
"cancell" =  "cancell";
2457121-a7138d05342efa30-2.png

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    //1.加载多语言文件,本地化字符串
    NSString *title=[[NSBundle mainBundle] localizedStringForKey:@"cancell" value:@"cancell" table:@"test"];
    
    //2.显示文字
    UILabel *lable=[[UILabel alloc]init];
    lable.text=title;
    lable.frame=CGRectMake(100, 100, 100, 40);
    lable.backgroundColor=[UIColor redColor];
    [self.view addSubview:lable];

}
重新运行下,项目就会根据当前系统的语言加载对应的语言文字

以上只有重新运行或者杀死程序后才可以改变语言,并不能手动切换

应用内切换语言请参考:
http://www.jianshu.com/p/627da5a9992c

上一篇 下一篇

猜你喜欢

热点阅读