【发布时间】:2015-04-06 11:13:08
【问题描述】:
我有一个大项目,其中有大量文本存储在情节提要的标签和变量中。我知道如何本地化标签中的文本,但不知道如何本地化字符串变量。您能否解释一下或提供该指南的链接。我正在使用 Xcode 6.2 版
【问题讨论】:
标签: macos cocoa swift localization xcode6
我有一个大项目,其中有大量文本存储在情节提要的标签和变量中。我知道如何本地化标签中的文本,但不知道如何本地化字符串变量。您能否解释一下或提供该指南的链接。我正在使用 Xcode 6.2 版
【问题讨论】:
标签: macos cocoa swift localization xcode6
在代码中,您将NSLocalizedString() 与您的基本语言一起使用:
NSLocalizedString("This is my text", comment: "Label in mainView")
注释可以留空“”,但它有助于翻译者(即使是你)知道字符串的来源。
Xcode 会自动在项目的语言子文件夹中创建一个文件Localizable.strings。该文件包含这样的条目:
/* Label in mainView */
"This is my text" = "Dies ist mein Text";
您可以使用您选择的文本编辑器翻译该文件中的字符串。
使用翻译的更好方法是在 Xcode 中选择项目目标,然后从菜单中选择
Editor->Export For Localization...
这将在您选择的位置创建一个文件夹,其中包含 xliff 格式的语言文件,即德语:de.xliff
xliff 是一种标准化 (XML) 格式。在简单的文本编辑器中编辑该文件有些困难。我为此使用iXLIFF。它是一个非常小的 Mac 应用程序,让翻译变得轻而易举。
翻译 xliff 文件后转到 Xcode
编辑器->导入本地化...
并选择 xliff 文件。 Xcode 会在缺少某些内容时告诉您。
【讨论】:
2015-04-06 15:37:53.763 MiniGames Ultra[57948:188222] CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary on line 10. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolon to debug.