使用Xcode 8.1导入.xliff文件后清空Localizable.strings

时间:2016-11-25 17:15:29

标签: xcode localization xliff

通过执行以下操作,我按照Apple Internationalization and Localization Guide中的建议测试导出/导入本地化流程:

  1. 使用单一视图应用程序模板
  2. 创建一个新的iOS项目
  3. 设置ViewController的标题,如 override func viewDidLoad() { super.viewDidLoad() title = NSLocalizedString("Hello", comment: "Salutation") }
  4. 为项目添加新的本地化(我选择意大利语)
  5. 使用编辑器>导出.xliff文件以进行意大利语本地化导出本地化... 命令
  6. 编辑it.xliff文件并将"Hello"翻译为"Ciao"
  7. 使用编辑器>导入it.xliff文件导入本地化... 命令
  8. Xcode将Localizable.strings和InfoPlist.strings文件添加到项目中(在it.lproj文件夹中)
  9. 打开Localizable.strings和/或InfoPlist.strings文件,注意其中唯一的内容是/* No Localized Strings */
  10. 我可以采用老式的 genstrings方法,但如果有人能指出我使用xliff文件的正确方向,我真的很感激。

1 个答案:

答案 0 :(得分:1)

根据这篇文章:https://www.raywenderlich.com/64401/internationalization-tutorial-for-ios-2014

您必须将类中的所有硬编码密钥添加到Localizable.strings(英文)

所以你需要做的是:

更改

title = NSLocalizedString("Hello", comment: "Salutation")

title = NSLocalizedString("general.greeting", comment: "Salutation")

然后,将其添加到Localizable.strings(英文):

"general.greeting" = "Hello";

然后,导出本地化,这样的东西将写在.xliff文件中:

<trans-unit id="general.greeting">
  <source>Hello</source>
  <note>Salutation</note>
</trans-unit>

使用<target></target>

为问候语添加意大利语本地化版本
<trans-unit id="general.greeting">
  <source>Hello</source>
  <target>Ciao</target>
  <note>Salutation</note>
</trans-unit>

导入本地化,Localizable.strings(意大利语)应该包含本地化。