技术的乐趣在于分享,欢迎多多交流,多多沟通。
全部博文(877)
分类: iOS平台
2015-10-10 14:18:18
1、 新建 InfoPlist.strings文件;
2、选中InfoPlist.strings 点击 Xcode -> View ->show File Inspector,在Localization中点“+”,添加要本地化的语言。然后在InfoPlish.strings 左边会多出一个三角形,点击展开后可以看到InfoPlish.strings(english)和InfoPlish.strings(chinese)两个版本的文件等;
3、在 InfoPlish.strings(xxx) 中添加 CFBundleDisplayName =“app name”;
4、编辑Info.plist,添加一个新的属性Application has localized display name, 设置其类型为boolean,并将其value设置为YES即可
(1)新建 Localizable.strings 文件;
(2)类似 本地化 app name 的第二步:
(3)在 Localizable.strings(xxx) 中加入 需要翻译的
“ key" = "value" <br />
(3)在代码中使用NSLocalizedString(< key>, < comment>)来读取本地化字符串,代码如下:
Label.text = NSLocalizedString(@"welcome", nil); <br />
注意:如果你的strings文件名字不是Localizable而是自定义的话,如wang.strings,那么你就得使用NSLocalizedStringFromTable()来读取本地化字符串:
NSLocalizedStringFromTable(@“welcome”,@“wang”, nil)
我们的项目支持 简体中文,繁体中文,英文,泰文,日文,韩文 6种语言,其他语言 默认显示英文。Long long ago(iOS7 之前),这种需求 是不需要做额外处理的,因为系统 就是处理的这样的。But ,iOS7 之后 天气变了,系统选择了 app 所不支持的语言,默认选择系统上次的语言(当然是app 支持的一种啦)。那么怎么让 app 不支持的语言默认显示英文呢?看代码吧
我们在程序中 直接使用 label.text = LS(@“key”,@““); 就可以了
iOS8 以前的方式
用命令将所有NSLocalizedString返回的字符串格式化到Localizable.strings里。
命令行进入工程目录(我的工程名是LocalizationTest),运行下面命令:
<!-- lang: cpp -->find . -name /*.m |xargs genstrings -s NSLocalizedString -o tmp.iproj
这样我们就可以将程序中所有的需要本地化的字符串,以key-value的形式格式化输出到 Localizable.strings文件里,然后这个Localizable.strings 文件就可以送出去翻译了
iOS8中的方式
在iOS8中 apple 加入了一种国际通用的xliff文件,本质是xml文件,全称是 Localisation Interchange File Format(本地化交换文件格式), 里面就是需要翻译的东西。()
打开xliff文件,里面 标签中是表示要翻译的东西。
选中Editor –> Export For Localization就可以导出需要翻译的字符串,它会遍历整个工程,将xib,stroryboard, 代码中需要本地化字符串导出到.xliff文件中。小伙伴们再也不需要手动输入上面的命令将NSLocalizedString对应的需要翻译的字符串输出到Localizable.strings里了。 Import Localizations就是导入翻译的字符串,并自动刷新xib,.strings, storyboard中本地化文件