2015-04-06 48 views
2

我有一个很大的项目,在故事板和变量的标签中都存储了大量文本。我知道如何本地化标签中的文字,但不知道如何本地化字符串变量。你可以解释一下,或给出指南的链接。我使用的Xcode 6.2版本Swift字符串变量本地化

回答

5

在代码中,你使用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项目的目标,然后从菜单

编辑器 - >导出本地化的选择...

这将创建一个文件夹您选择的位置包含xliff格式的语言文件,即用于德语:de.xliff

xliff是一种标准化(XML)格式。在简单的文本编辑器中编辑该文件有点困难。我使用iXLIFF。这是一个非常小的Mac应用程序,使翻译变得轻而易举。

翻译XLIFF文件去的Xcode

编辑 - >导入本地化...

,并选择XLIFF文件之后。 Xcode会告诉你什么时候缺少东西。

+0

非常感谢你! – 2015-04-06 12:22:50

+0

我写了这段代码后,发现了一个奇怪的错误。错误文本:'MiniGames Ultra [57948:188222]'2015-04-06 15:37:53.763 CFPropertyListCreateFromXMLData():旧式plist解析器:在第10行字典中缺少分号。解析将被废弃。打破_CFPropertyListMissingSemicolon调试.' – 2015-04-06 12:38:49

+0

你错过了字符串文件中的一行的末尾的分号 – zisoft 2015-04-06 12:39:38