我正在尝试使用适用于iOS 12的Xcode 10本地化我的应用程序,但遇到一些问题:
我的屏幕上有一些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问题还是我做错了什么?