我本地化了我的应用程序的一部分,创建一个基础。Lproj storyboard和3个字符串文件。这是一个月前,之后我添加了新的视图控制器到应用程序,但这个控制器的按钮和标签没有出现在字符串文件
是否有可能更新这3故事板附加字符串文件或我必须添加新的字符串翻译与使用NSLocalizableString和Localizable.strings编程?
我本地化了我的应用程序的一部分,创建一个基础。Lproj storyboard和3个字符串文件。这是一个月前,之后我添加了新的视图控制器到应用程序,但这个控制器的按钮和标签没有出现在字符串文件
是否有可能更新这3故事板附加字符串文件或我必须添加新的字符串翻译与使用NSLocalizableString和Localizable.strings编程?
当前回答
有两种选择:
选项1
Xcode可以通过将文件转换为[Interface Builder Cocoa Touch Storyboard]文件类型或[Localizable Strings]文件类型来“重载”文件。
从Project Navigator中选择您的基本故事板文件 在文件检查器中找到本地化部分 如果你的文件现在是[Localizable Strings],把它改成[Interface Builder Cocoa Touch Storyboard],反之亦然。 Xcode应该已经将你的故事板转换为当前版本,同时保留你以前的本地化工作。在这里,如果您愿意,您可以将文件更改回原始文件类型。
选项2
使用ibtool提取故事板中的字符串。
打开终端应用程序 定位你的基地。lproj目录 使用这一行来提取字符串: ibtool MainStoryboard。故事板——生成字符串文件 在ibtool提取字符串到file_name之后。字符串,你可以复制并粘贴到你原来的。Strings文件
更多信息请访问:https://conyac.cc/business/columns/localization_guide_ios
其他回答
您可以手动在本地化文件中添加一个键。您可以通过在故事板编辑器中选择它来找到关键对象。让我们在标识检查器中查看Object-ID。看起来像"nwc-b2-19c"
在本地化更新或添加翻译。例如:
"nwc-b2-19c.title" = "Translated title";
添加一种新的语言进行本地化。一个你不需要的。
它会生产印尼语。例如字符串,它将包含你需要的所有故事板按钮-名称等,复制并粘贴到所有其他语言中。字符串文件。
下面是一个从故事板和xib中提取字符串的脚本,并将它们与现有的翻译合并。
若要在构建项目时自动运行脚本,请将脚本放入项目根目录,并在项目设置中的目标构建阶段中添加带有下面一行的“运行脚本”阶段。
./mergegenstrings.py PathToSourceDir
如果需要,也可以在终端上手动运行脚本。
脚本运行ibtool,正如Tha Leang回答的那样。它还运行genstrings来提取和合并源代码中标记有NSLocalizedString的字符串。该脚本基于本文中的一个脚本,该脚本在运行genstrings后合并字符串。
当你在故事板中点击Main。例如故事板……在右边你可以看到本地化菜单(见所附图片)。如果取消选中,再选中一种语言,文件将重新生成。所以我通常复制内容,再次生成文件,然后粘贴我复制的和已经翻译好的内容。
这是我用来更新字典的方法。
这个方法并不适用于所有人,但是它不需要在终端中使用额外的工具,而且很容易进行小的手动更改。(当您希望自动化您的流程时,不要考虑这一点。)
步骤0:故事板语言设置
基地(附英文本) 英文(可本地化字符串文件不存在,因为基础文件是英文) 其他语言(可本地化的字符串文件)
此步骤只执行一次。
现在,当我向故事板添加一些东西时,我执行以下操作
步骤1:添加英文本地化字符串文件
只需标记英文行项目。
这将创建一个全新的英文本地化字符串文件
步骤2:将新的行项目复制到其他语言文件中
然后翻译
第三步:取消英文标记,删除相应的本地化字符串文件
该文件只需要获取新的行项
这是一个简单快速的过程,一切都在故事板编辑器中完成
编辑:
这个过程对于小型故事板非常有效。例如,我有一个基于选项卡的项目,每个选项卡都有一个故事板。
搜索“storyboard reference”找到教程。
好的例子:在Xcode中,我们应该在哪里使用Storyboard引用?
每个小故事板只有几个字符串需要本地化。