我本地化了我的应用程序的一部分,创建一个基础。Lproj storyboard和3个字符串文件。这是一个月前,之后我添加了新的视图控制器到应用程序,但这个控制器的按钮和标签没有出现在字符串文件

是否有可能更新这3故事板附加字符串文件或我必须添加新的字符串翻译与使用NSLocalizableString和Localizable.strings编程?


当前回答

苹果有一款名为AppleGlot的命令行工具,支持增量本地化。我还没有尝试过,但它看起来完全像你(一段时间前)搜索的工具。

其他回答

有两种选择:

选项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

苹果有一款名为AppleGlot的命令行工具,支持增量本地化。我还没有尝试过,但它看起来完全像你(一段时间前)搜索的工具。

下面是一个从故事板和xib中提取字符串的脚本,并将它们与现有的翻译合并。

若要在构建项目时自动运行脚本,请将脚本放入项目根目录,并在项目设置中的目标构建阶段中添加带有下面一行的“运行脚本”阶段。

./mergegenstrings.py PathToSourceDir

如果需要,也可以在终端上手动运行脚本。

脚本运行ibtool,正如Tha Leang回答的那样。它还运行genstrings来提取和合并源代码中标记有NSLocalizedString的字符串。该脚本基于本文中的一个脚本,该脚本在运行genstrings后合并字符串。

最简单且风险较小的方法是,从storyboard中复制Object ID,并为本地化文件中的key添加一个新key,如下所示:

1:从storyboard中为组件复制下面的对象id:

2:在本地化文件中添加新键,如下所示:

"DjF-dn-0ay.text" = "Borrar datos y restablecer";

注意:如果你只想更新几个组件,这是非常低风险的方法,否则你可以为故事板重新创建本地化文件。

我有一个巨大的故事板,里面有很多字符串。两种语言,以英语和阿拉伯语为基础。任务是添加一些字段和标签到故事板,并为它们添加本地化,不需要任何脚本和NSLocalizableStrings。

对我的帮助如下:

首先:确保您有git来防止意外的更改。

进入xcode的目标屏幕,按编辑器->导出本地化....将ar.xliff文件保存在某个地方。 下载XLIFF编辑器。 打开ar.xliff文件并进行更改。 在xcode中导入这个文件。完成了!您已经更新了故事板字符串文件。