如何在我的Xcode项目中使用Twine?

时间:2014-10-18 01:00:43

标签: objective-c localization

Twine看起来很棒,但文档有点缺乏,并且没有示例iOS项目。我想知道如何将这个工具整合到我的项目中。

具体做法是:

  1. 建议我的密钥是Apple推荐的任意代码(例如path_not_found_error)或英文单词/句子(例如Unable to find path)。 The article that introduces Twine提到英语单词/句子如果单个词可能意味着两个不同的东西(例如列表作为名词与动词),但是后来也提到了使用键的缺点:如果你忘记包含一个,用户将看到您的密钥名称(path_not_found_error)而不是英文对应名称(Unable to find path)。
  2. 说我正在编写代码,我想要包含一个新字符串。这样做的步骤是什么?在遵循Apple的建议时,我只需输入NSLocalizedString(@"Sample text", nil),我就完成了。为什么让它与Twine一起工作的过程是什么?
  3. their examples中,他们会显示[[General]][[Errors]]等类别。如何对字符串进行分类?
  4. their examples中,它们会显示标签。究竟是什么,我将如何使用它们?

1 个答案:

答案 0 :(得分:2)

生成strings.txt的第一个版本:

  1. 从代码中的所有Localizable.strings宏生成NSLocalizedString

    find . -name \*.m | xargs genstrings -o /tmp

  2. 建议将其保存在Resources/Locales/en.lproj/Localizable.strings

  3. 创建初始的空strings.txt文件:

    touch strings.txt

  4. 使用Localizable.strings

    的内容填充它

    twine consume-all-string-files strings.txt Resources/Locales --developer-language en --consume-all --consume-comments

  5. 在执行此操作后,似乎建议您手动修改strings.txt文件。

    在代码中创建新字符串:

    1. 输入您要使用的字符串,例如:

      NSString *prompt = NSLocalizableString(@"prompt_user_name", nil);

    2. 手动将键/值添加到strings.txt文件中,可选择将它们放在一个类别中:

      [prompt_user_name] en = Please enter in a user name

    3. 现在,当您构建项目时,它将生成Localizable.strings,当您运行应用程序时,您将看到正确的字符串。 (假设您遵循Twine and Your Build Process步骤。)