Swift iOS macOS 如何 Localize StoryBoard,StoryBoard 本地化,添加多语言支持,基于 String
本地化主要包含两个部分:代码中文本的本地化 和 StoryBoard 中文本的本地化
iOS 和 macOS 是一样的
这里只介绍 StoryBoard 的本地化,代码中文本的本地化 请参阅这篇文章的前半部分,懒得说了
Internationalizing Your iOS App: Getting Started
前言:StoryBoard 的本地化分为两种方式
一种是基于一个 StoryBoard 文件,摘取其中的字符串生成不同语言的 .string 文件,来实现多语言支持
一种是基于多个 StoryBoard 文件,每个语言都对应一个文件,这样做很麻烦,只要改一处就需要改多个文件
所以我们只说基于多个 .string 文件的本地化操作
一、项目概览
有这样一个项目,结构是这样的,目前没有实现多语言支持,也就是本文中所谓的 本地化 Localization ,这些词都是一个意思。
二、给项目添加多语言支持
点击左侧项目,选择 [Project] 点选该项目,切到 [Info] 标签,点击下面的 [Localizations] 添加你需要支持的语言,如图:
此时点选左侧项目栏中的 main.storyboard 文件,会看到右侧会有多种语言支持,点选你需要支持的语言。
再点开 main.storyboard 右侧的箭头时会看到下面多出两个文件 Main.string(English) Main.string(Chinese_Simple) ,这里面就包含了该 storybaord 文件中所有的字符串。
如图:
其实你还可以看到 Localization.string 文件下面也有两个语言文件,这个是用于程序代码中使用的字符串,具体查看开篇提到的那个教程文章
三、翻译对应的文本
打开上面生成的文件,会看到如下的内容,进行翻译即可
四、编译调试不同语言下的呈现状态
我们完成了多语言支持,那么如何调试呢? xcode 有相应的功能,来设置调试时的系统语言来,来实现调试应用在不同语言状态下的状态。
[点击项目名] 选择 [Edit Schema]
然后 [Run] - [Info] - [Language] 选择语言即可,这样再运行,就会显示对应语言的状态了
五、效果
以下是我这个应用在实现多语言支持后的效果: 中文 和 英文
六、重要:修改 StoryBoard 之后如何添加新词
前面做的已经很好,但如果你修改了 StoryBoard ,添加或删除了部分字符串后,如何修改呢?
对应的 .string 中的字符串并不会跟着变,新加的字符串也不会自己出现在 .string 文件中。
此时我们就需要手动进行一下一系列操作,来把新的字符串添加到对应的语言中,让我们开始:
1. 导出最新版的字符串
点击 项目名 ,选择 [Editor] 菜单中的 [Export for Localization] 即可将当前 StroyBoard 和 Info.plist 对应的字符串都导出,然后选择保存位置
2. 修改对应的翻译文件
打开导出的文件夹看到如下结构,主要是修改其中的 xxx.xcloc/Localized Contents/xxx.xliff 文件,里面包含所有需要翻译的字符串
打开看一下
里面 <source> 标签中的文本是原文本, <target> 中的文本是翻译后的文本
对于新添加的一些东西,是没有<target> 这个标签的,需要手动添加内容
为了方便查找哪些没有翻译,Command + F 搜索正则 </source>\n *<note> ,就可以很容易定位到没有翻译的地方了,添加相应内容即可
3. 导入修改后的翻译文件
点击 项目名 ,选择 [Editor] 菜单中的 [Import Localization] ,选择你刚才修改的文件目录即可导入
导入后会看到 .string 里面已经添加了对应的翻译条目
如果有些内容没有翻译,它会提示你哪些没有被翻译,以如下的方式展示,再根据指示回去修改即可
七、结
截图累死我了,不留下个赞就走,不太合适吧 ????
|
请发表评论