Xcode 10的本地化问题?

时间:2018-11-13 17:27:47

标签: localization xcode10 ios12 xliff

我正在尝试使用适用于iOS 12的Xcode 10本地化我的应用程序,但遇到一些问题:

  1. 我要排除一些不需要翻译的UI元素;
  2. 我想以更合乎逻辑的方式处理格式化的文本。

我的屏幕上有一些UI元素,其文本将在运行时动态设置。例如,显示进度的标签。此标签上有一些不需要翻译的占位符文本(例如“进度”)。仍然,在导出情节提要后,它最终出现在我的XLIFF文件中。 (我知道我可以为翻译者添加注释,但是有了很多这样的UI元素,它确实污染了XLIFF文件。)

因此,问题是:有没有办法在我的情节提要中指示此文本不需要翻译,因此可以从XLIFF文件中省略?

第二个问题是格式化文本。我想格式化文本字符串以显示在进度标签中,并且尝试了以下操作:

    let formattedText = String.localizedStringWithFormat("Checking credentials for user '%@'...", userName)
    label.text = NSLocalizedString(formattedText, comment: "Bla bla bla")

这样编译就可以了,出口商也不会抱怨。不幸的是,它并没有最终出现在XLIFF文件中。好吧,有时确实如此:我有更多这样的格式化字符串,并且我的感觉是XLIFF文件中只有一个结尾。
然后,我将代码更改为:

    label.text = NSLocalizedString(String.localizedStringWithFormat("Checking credentials for user '%@'...", userName), comment: "Bla bla bla")

即我用formattedText函数替换了参数String.localizedStringWithFormat(...),然后它似乎可以工作了。但是我发现第一个结构更清晰了,我不明白为什么这不起作用。

(我还尝试创建一个Localizable.strings文件,并用genstrings填充它;这给我关于这种构造的错误消息。)
这是Xcode问题还是我做错了什么?

0 个答案:

没有答案