【问题标题】:Export app for localization not including strings created with NSLocalizedString in Xcode 6 Xliff用于本地化的导出应用程序不包括在 Xcode 6 Xliff 中使用 NSLocalizedString 创建的字符串
【发布时间】:2014-08-15 19:13:29
【问题描述】:

我正在尝试本地化我的应用,我有以下代码:

self.arrayLabels = [NSArray arrayWithObjects:NSLocalizedString(@"This is a test", "this is a test"),  NSLocalizedString(@"I want my strings to get added to localizable strings file", "strings comment") , nil];

所以,基本上,据我了解,应该是这样,我单击Editor > Export for Localization,字符串应该在我的XLiff 文件中。但是,他们不是。

我有两种语言,英语和葡萄牙语,localizable.strings 文件都是空的。

我错过了什么吗?

【问题讨论】:

  • 我也有同样的问题,有时候字符串就是不显示。
  • 我也有同样的问题。我注意到的是,我的测试目标中包含的文件确实正确转换了 NSLocalizedString。我正在尝试确定这是为什么。
  • 这是对 NSLocalizedString 的错误使用,因为 cmets 被声明为字符串,而 "" 前面没有 @,这会在尝试使用 genstrings 进行处理时引发错误

标签: xcode localization internationalization


【解决方案1】:

我发现我有一些错误,这就是我无法从菜单导出的原因。

我怀疑没有返回错误消息。

事实证明,菜单正在调用现有的命令行工具,因此通过消除过程,您可以修复导出。

以下是我为解决问题所采取的步骤。希望他们会帮助你。

运行等效的命令行

xcodebuild -exportLocalizations

如果您有错误,xcodebuild 可能会给出文件名和行号,因此您应该能够解决问题。

我遇到了一个没有任何详细信息的错误。

然后我切换到使用 genstrings,因为 xcodebuild 似乎在循环中使用它。

find . -name '*.m' | xargs genstrings -o somePath/en.lproj

这给出了同样的错误

为了获得有问题的文件,我在循环中分别运行了每个文件。

for f in `find . -name '*.m'`; do 
    echo "processing $f ...";
    genstrings -o somePath/en.lproj $f
done

这给了我有问题的文件的名称。

事实证明,genstrings 不喜欢我尝试使用 unicode 字符 \U000000B2 打印的特殊字符。

【讨论】:

    【解决方案2】:

    要让导出的 XLIFF 包含您的本地化字符串,必须满足几个条件:

    1. 这些键必须存在于您的本地化字符串文件中。在您的情况下,这些文件是空的。这将解释问题。
    2. 您必须将键用作NSLocalizedString 宏的字符串文字。例如:

    这是正确的方法:

    NSLocalizedString("some_key", "")
    

    这不起作用:

    let key = "some_key"
    
    NSLocalizedString(key, "")
    

    【讨论】:

      【解决方案3】:

      在 Xcode 中,使用 Editor-->“Extract for Localization”菜单生成 .xliff 文件(每种选择的语言一个)。 .xliff 文件被发送到翻译服务进行翻译。翻译服务更新 .xliff 文件后,您需要使用 Editor-->“Import Localizations”将其重新导入应用程序。完成此步骤后,对于每种语言,您都会找到一个 xx.lproj/ 文件夹,其中包含翻译结果。

      【讨论】:

        猜你喜欢
        • 2015-05-08
        • 1970-01-01
        • 2015-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-21
        相关资源
        最近更新 更多