我本地化了我的应用程序的一部分,创建一个基础。Lproj storyboard和3个字符串文件。这是一个月前,之后我添加了新的视图控制器到应用程序,但这个控制器的按钮和标签没有出现在字符串文件
是否有可能更新这3故事板附加字符串文件或我必须添加新的字符串翻译与使用NSLocalizableString和Localizable.strings编程?
我本地化了我的应用程序的一部分,创建一个基础。Lproj storyboard和3个字符串文件。这是一个月前,之后我添加了新的视图控制器到应用程序,但这个控制器的按钮和标签没有出现在字符串文件
是否有可能更新这3故事板附加字符串文件或我必须添加新的字符串翻译与使用NSLocalizableString和Localizable.strings编程?
当前回答
这是我将新文本从storyboard或xib更新到本地化字符串的简单方法
1-使用这个脚本http://tredje.se/dev/trouble/?x=entry:entry150917-204052
2-选择你想要更新的本地化字符串,并将你的语言字符串从“本地化字符串”切换到“接口构建器故事板”
3-把它换回来:)
完成了。
其他回答
这个方法并不适用于所有人,但是它不需要在终端中使用额外的工具,而且很容易进行小的手动更改。(当您希望自动化您的流程时,不要考虑这一点。)
步骤0:故事板语言设置
基地(附英文本) 英文(可本地化字符串文件不存在,因为基础文件是英文) 其他语言(可本地化的字符串文件)
此步骤只执行一次。
现在,当我向故事板添加一些东西时,我执行以下操作
步骤1:添加英文本地化字符串文件
只需标记英文行项目。
这将创建一个全新的英文本地化字符串文件
步骤2:将新的行项目复制到其他语言文件中
然后翻译
第三步:取消英文标记,删除相应的本地化字符串文件
该文件只需要获取新的行项
这是一个简单快速的过程,一切都在故事板编辑器中完成
编辑:
这个过程对于小型故事板非常有效。例如,我有一个基于选项卡的项目,每个选项卡都有一个故事板。
搜索“storyboard reference”找到教程。
好的例子:在Xcode中,我们应该在哪里使用Storyboard引用?
每个小故事板只有几个字符串需要本地化。
我有一个巨大的故事板,里面有很多字符串。两种语言,以英语和阿拉伯语为基础。任务是添加一些字段和标签到故事板,并为它们添加本地化,不需要任何脚本和NSLocalizableStrings。
对我的帮助如下:
首先:确保您有git来防止意外的更改。
进入xcode的目标屏幕,按编辑器->导出本地化....将ar.xliff文件保存在某个地方。 下载XLIFF编辑器。 打开ar.xliff文件并进行更改。 在xcode中导入这个文件。完成了!您已经更新了故事板字符串文件。
下面是一个从故事板和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";
注意:如果你只想更新几个组件,这是非常低风险的方法,否则你可以为故事板重新创建本地化文件。
看看ReMafoX吧,这是一个Mac应用程序,可以完美地解决你的问题。它可以很容易地安装和集成到您的项目中,观看这个视频的详细演练。
或者,如果您更喜欢没有GUI的开源CLI工具,也可以使用BartyCrouch。
通过Homebrew安装BartyCrouch:
brew install bartycrouch
或者,通过Mint安装:
mint install Flinesoft/BartyCrouch
增量更新你的Storyboards/XIBs Strings文件:
$ bartycrouch update
这正是你想要的。
为了保持你的Storyboards/ xib Strings文件随着时间的推移而更新,我强烈建议添加一个构建脚本(关于如何添加构建脚本的说明在这里):
if which bartycrouch > /dev/null; then
bartycrouch update -x
bartycrouch lint -x
else
echo "warning: BartyCrouch not installed, download it from https://github.com/Flinesoft/BartyCrouch"
fi
除了增量更新你的故事板/ xib字符串文件,这也将确保你的本地化。字符串文件使用NSLocalizedString在代码中新添加的键保持更新,并显示重复键或空值的警告。
请务必在GitHub上查看BartyCrouch或这篇详细的文章以获取更多信息。