【问题标题】:Empty Localizable.strings after importing .xliff file using Xcode 8.1使用 Xcode 8.1 导入 .xliff 文件后清空 Localizable.strings
【发布时间】:2016-11-25 17:15:28
【问题描述】:

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

  1. 使用 Single View Application 模板创建一个新的 iOS 项目
  2. 像这样设置 ViewController 的标题 override func viewDidLoad() { super.viewDidLoad() title = NSLocalizedString("Hello", comment: "Salutation") }
  3. 为项目添加新的本地化(我选择了意大利语)
  4. 使用 Editor > Export For Localization... 命令导出意大利语本地化的 .xliff 文件
  5. 编辑 it.xliff 文件并将"Hello" 转换为"Ciao"
  6. 使用 Editor > Import Localizations... 命令导入 it.xliff 文件
  7. Xcode 将 Localizable.strings 和 InfoPlist.strings 文件添加到项目中(在 it.lproj 文件夹中)
  8. 打开 Localizable.strings 和/或 InfoPlist.strings 文件,注意里面唯一的东西是/* No Localized Strings */

我可以使用 老式 genstrings 方法,但如果有人能指出我使用 xliff 文件的正确方向,我将不胜感激。

【问题讨论】:

    标签: xcode localization xliff


    【解决方案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>
    

    使用&lt;target&gt;&lt;/target&gt;为问候语添加意大利语本地化版本:

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

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

    【讨论】:

    • 现在我看到了我的工作流程的问题:Localizable.strings 文件需要存在于所有本地化之前使用Editor > Export For Localization...(我的理解是它们是在导入 .xliff 文件时创建的)。
    • 是的,很遗憾 XCode 不会自动创建它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多