适用于新UI的iOS故事板本地化

时间:2013-12-20 09:46:18

标签: ios xcode localization storyboard

我在项目中使用Xcode 5。而项目需要本地化。 Xcode帮助我生成了Localizable.strings它看起来像

/* Class = "IBUIButton"; normalTitle = "2013-10-1"; ObjectID = "p5u-h7-pfJ"; */
"p5u-h7-pfJ.normalTitle" = "2013-10-1";

/* Class = "IBUILabel"; text = "Label"; ObjectID = "pBS-eN-YUz"; */
"pBS-eN-YUz.text" = "Label";

/* Class = "IBUITextField"; placeholder = "Input Name Here"; ObjectID = "pE4-WG-fPp"; */
"pE4-WG-fPp.placeholder" = "Input Name Here";

/* Class = "IBUILabel"; text = "Detail"; ObjectID = "qSu-Mo-baT"; */
"qSu-Mo-baT.text" = "Detail";

但如果我想在故事板中添加新的UI,我该怎么办?如何添加新的键值?

4 个答案:

答案 0 :(得分:19)

在您的故事板中,每个对象都有一个ID。在“工具”视图中,“身份检查员”拇指,“文档”部分,有一个字段“对象ID”

我从来没有使用过这个,但我想如果你有一个标识为141-wB-KQD的标签并且想要设置其文字属性,你必须加入Localizable.strings

"141-wB-KQD.text" = "the value you want";

答案 1 :(得分:2)

  1. 为需要更新的区域设置制作故事板的.strings文件的备份副本。

  2. 在Project Navigator中选择故事板(在左侧Xcode的窗格中),打开File Inspector(右窗格)并取消选中该区域设置的复选框。

  3. 在'您要删除...'警报出现,检查'从磁盘删除本地化资源文件'复选框,然后按'删除'按钮。

  4. 标记相同的复选框;这将生成本地化的本地化资源文件;它将包含所有对象的条目,包括新添加的内容,但其内容根本不会被本地化。

  5. 将这个新生成的文件与保存的备份合并 - 这将恢复您之前完成的所有本地化。

  6. 本地化新对象。

答案 2 :(得分:1)

不确定这是“正确”的方式还是最好的方法,但这就是我的工作:

1)最后进行任何本地化。换句话说,首先尝试确保您不需要对基本故事板进行任何更改。这可能听起来像个警察,但实际上,这是避免麻烦的最好方法。

2)因为事情并非总是如此,如果您需要进行更改,您可以通过将它们从“字符串”更改为“故事板”然后返回来将它们推送到本地化文件。这将保留您现有的翻译并自动处理任何新内容,因此最好直接删除软件包中的本地化文件。

我注意到这可能会不时在本地化文件中留下一些冗余字符串,有时您必须手动删除它们或者无法正确编译,但如果有更好的方法可以做到这一点,我'我想知道自己。

答案 3 :(得分:-1)

如果要本地化项目视图,只需单击视图控制器上的故事板,然后转到文件检查器并单击本地化...您将为每种语言提供一个故事板文件。