分享

iOS 项目的本地化处理

 爽行天下丶 2015-08-07

添加要支持的本地化语言

添加步骤

本地化 app name

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 不支持的语言默认显示英文呢?看代码吧

头文件
.m文件

我们在程序中 直接使用 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(本地化交换文件格式), 里面就是需要翻译的东西。(http://en./wiki/XLIFF)

打开xliff文件,里面 标签中是表示要翻译的东西。

选中Editor –> Export For Localization就可以导出需要翻译的字符串,它会遍历整个工程,将xib,stroryboard, 代码中需要本地化字符串导出到.xliff文件中。小伙伴们再也不需要手动输入上面的命令将NSLocalizedString对应的需要翻译的字符串输出到Localizable.strings里了。 Import Localizations就是导入翻译的字符串,并自动刷新xib,.strings, storyboard中本地化文件

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多