app国际化
字符串资源文件默认命名为Localizable.strings
一、IOS程序名称国际化
在新建InfoPlist.strings文件,在Localization栏添加语言 ,在不同语言中配置 CFBundleDisplayName=”China”;
例如中文 CFBundleDisplayName=”中国”;
二、内容国际化
1、系统:创建Localizable.strings,然后添加语言
格式:“key”=“value”; //分号不能少
调用时NSLocalizedString(key,comment);
例如: NSLocalizedString(@”one”, nil);
2、自定义:当文件名不是Localizable时,例如:example.strings
格式也一样,但是调用时是:
NSLocalizedStringFromTable(<#key#>, <#tbl#>, <#comment#>)
例:NSLocalizedStringFromTable(@”one”, @”Localization”, nil);
三、图片国际化
1、可以再Localizable.strings中不同的语言设置不同的图片名,获取不同的图片名即可
例如:
Localizable.strings(english)文件中加入:
“BtnCancel”=”BtnCancelEn.png”;
Localizable.strings(chinese)文件中加入:
“BtnCancel”=”BtnCancelCn.png”;
2、第二种方法
选中图片,然后XCode-> View-> Utilities -> File Inspector,点击Localizable本地化,然后添加语言,在不同的lproj文件夹中替换不同的图片即可
四、其他国际化
和图片的第二种方法一样
五、获取支持的语言
两种方法
1、NSUserDefaults *user = [NSUserDefaults standardUserDefaults];
NSArray *languages = [user objectForKey:@“AppleLanguages”];
NSLog ( @”%@” , languages);
2、NSArray *languages = [NSLocale preferredLanguages];
获取当前语言,在数组中第一个元素就是 languages[0]
六、storyboard与xib国际化
设置好语言后,点击storyboard,在第一个选项(Show the file)的Localization中勾上需要的语言
选中需要设置的控件,在第三个选项(Show the identity)中,在Document栏记录下设备的Object ID 如:
然后分别在不同的语言文件中,配置响应属性,如:label控件 “label.text” = “hello”; “textField.placeholder” = “please enter”;