iOS 国际化处理

本文主要讲解国际化相关的知识点:

  1. 国际化设置及默认语言设置
  2. 国际化文件格式互转:xml,excel,strings等格式类型的语言文件互转
  3. 国际化中会遇到的一些问题

国际化设置及默认语言设置

  • 项目工程Project —> info —> localization, 点击 +,添加支持的语言

iOS 国际化处理_第1张图片

添加其他语言

iOS 国际化处理_第2张图片

配置应用名称

  • 选中info.plist –> 快捷键(command + N) –> 选中String File –> next –> Save As;Save As 命名必须是InfoPlist

iOS 国际化处理_第3张图片
iOS 国际化处理_第4张图片
  • 选中上一步创建好的InfoPlist.strings文件,点击Xcode右上角展开右侧边栏。点击Localize

iOS 国际化处理_第5张图片
  • 选中InfoPlist.strings文件,勾选所需的本地化语言

iOS 国际化处理_第6张图片
  • 此时你会发现InfoPlist.strings变成了一个目录,点开三角号,如图:

iOS 国际化处理_第7张图片
  • 点击English的strings,写入CFBundleDisplayName = “hello, world!”;。句子的分号必不可少,不论是swift语言。

iOS 国际化处理_第8张图片

关于CFBundleDisplayName等key的由来,则可以通过在 info.plist 内部点击右键,查看权限本身的 key 名

iOS 国际化处理_第9张图片

也可以使用 “点击我们的info.plist,右键选择open as source code”的方式,查看我们所要获取权限的原始 key
iOS 国际化处理_第10张图片
可以看到右键打开的source code是一个 xml 文件,找到对应的key,复制。

  • 简写中文同理,CFBundleDisplayName = “你好,世界!”;

iOS 国际化处理_第11张图片
  • 效果图示:

iOS 国际化处理_第12张图片

配置内容文本

应用场景:假如APP中有个设置按钮,简体中文中命名为设置,english命名为setting

  • 点击Info.plist –> 快捷键(command + N) –> 选中Strings File –> next –> Save As 命名必须为Localizable

iOS 国际化处理_第13张图片
  • 选中新建的Localizable.strings文件,同样打开右侧边栏,点击Localize

  • 打开Localizable.strings文件。选中English,添加映射”settingBtnTitle” = “setting”;

iOS 国际化处理_第14张图片
  • 选中Simplified,添加映射”settingBtnTitle” = “设置”;

iOS 国际化处理_第15张图片

配置默认语言

应用场景:假如需求为,只配置简体中文和英文。而非中国国家默认配置为英文。

  • 打开Edit Scheme –> 选中Run –> Options –> Application Language 切换为默认的语言

iOS 国际化处理_第16张图片

localizedStringForKey:value:table:方法如果在本地字符串文件中找不到对应key, 则默认返回value参数的中传入的值。

语言文件互转

此款软件,可以支持除xml转strings类型外的文件互转
https://github.com/CatchZeng/Localizable.strings2Excel/blob/master/README-CN.md

iOS 国际化处理_第17张图片

此链接,则专门转换xml类型为strings类型
http://www.ishenping.com/ArtInfo/1675874.html

国际化中会遇到的一些问题

  • 增加info的国际化时,不能用 “单击当前工程的 info.plist,然后点击右侧的localized” 的方法


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

参考文献

  • http://www.ishenping.com/ArtInfo/1675874.html

  • https://blog.csdn.net/Mayerlucky/article/details/79425660

  • https://www.jianshu.com/p/eb968d10e656

你可能感兴趣的:(iOS 国际化处理)