本文主要讲解国际化相关的知识点:
- 国际化设置及默认语言设置
- 国际化文件格式互转:xml,excel,strings等格式类型的语言文件互转
- 国际化中会遇到的一些问题
国际化设置及默认语言设置
-
项目工程Project —> info —> localization, 点击 +,添加支持的语言

添加其他语言

配置应用名称
-
选中info.plist –> 快捷键(command + N) –> 选中String File –> next –> Save As;Save As 命名必须是InfoPlist


-
选中上一步创建好的InfoPlist.strings文件,点击Xcode右上角展开右侧边栏。点击Localize

-
选中InfoPlist.strings文件,勾选所需的本地化语言

-
此时你会发现InfoPlist.strings变成了一个目录,点开三角号,如图:

-
点击English的strings,写入CFBundleDisplayName = “hello, world!”;。句子的分号必不可少,不论是swift语言。

关于CFBundleDisplayName等key的由来,则可以通过在 info.plist 内部点击右键,查看权限本身的 key 名
![]()
也可以使用“点击我们的info.plist,右键选择open as source code”的方式,查看我们所要获取权限的原始 key
可以看到右键打开的source code是一个 xml 文件,找到对应的key,复制。
-
简写中文同理,CFBundleDisplayName = “你好,世界!”;

-
效果图示:


配置内容文本
应用场景:假如APP中有个设置按钮,简体中文中命名为设置,english命名为setting
-
点击Info.plist –> 快捷键(command + N) –> 选中Strings File –> next –> Save As 命名必须为Localizable

-
选中新建的Localizable.strings文件,同样打开右侧边栏,点击Localize
-
打开Localizable.strings文件。选中English,添加映射”settingBtnTitle” = “setting”;

-
选中Simplified,添加映射”settingBtnTitle” = “设置”;

配置默认语言
应用场景:假如需求为,只配置简体中文和英文。而非中国国家默认配置为英文。
-
打开Edit Scheme –> 选中Run –> Options –> Application Language 切换为默认的语言

localizedStringForKey:value:table:方法如果在本地字符串文件中找不到对应key, 则默认返回value参数的中传入的值。
语言文件互转
此款软件,可以支持除xml转strings类型外的文件互转
https://github.com/CatchZeng/Localizable.strings2Excel/blob/master/README-CN.md

此链接,则专门转换xml类型为strings类型
http://www.ishenping.com/ArtInfo/1675874.html
链接已无法打开,更新下载地址为:链接: https://pan.baidu.com/s/1Fppjm8iVQPclGnvQFGjDxg 提取码: asas
./and2ios.sh final.txt > test.txt
国际化中会遇到的一些问题
-
增加info的国际化时,不能用 “单击当前工程的 info.plist,然后点击右侧的localized” 的方法

这样做显然是不对的。哪怕你生成了一串 .strings 文件,也更改了 info.plist 的路径(而且会生成一个默认语言 .strings(Base))
网友评论