我尝试阅读有关如何本地化字符串的在线教程。我有一款游戏使用 SpriteKit 作为引擎,并且在 .m
文件中有用户可读的文本。
我对本地化这些字符串的猜测是在我有可读字符串 (... .text = @"some string"
) 的地方调用 NSLocalizedString()
.
比如说,当游戏以英文启动时,我有一个标签,上面写着“play”。在西类牙语中,它会说“jugar”。此外,我还有一个选项菜单,用英语写的是“options”,用西类牙语写的是“opciones”。
如果我是正确的,我会向项目添加两个 .strings
文件:en.string
和 es.string
。
在代码中,我会添加:
playLabel.text = NSLocalizedString(@"play", nil)
optionsLabel.text = NSLocalizedString(@"options", nil)
并且,在 en.strings
文件中,它会说,
"play" = "play";
"options" = "options";
在 es.strings
文件中,它会说,
"play" = "jugar";
"options" = "opciones";
我如何才能将这些 .strings
文件连接到 GameScene.m
文件?
最佳答案
我发现了问题以及如何解决它。我阅读了 Ray Wanderlich 关于此的教程,可用 here .
如何解决这个错误,对于那些在未来试图解决这个问题的人:
- 创建一个名为
Localizable.strings
的新strings
文件。 - 如果“实用程序”选项卡(右侧)尚未打开,请将其打开。
- 从
en.strings
复制文本并将其粘贴到Localizable.strings
文件中。 - 通过单击文件检查器中标有“本地化”的按钮,将其本地化为您要将其本地化为的所有语言(包括 Base)。很难错过。 (注意:您现在会注意到文件夹的下拉菜单。打开它,您会发现
Localizable.strings
已复制到您选择的每种语言中。但是,它没有翻译。) - 删除
en.strings
。不再需要了。 - 将
es.strings
中的文本复制并粘贴到Localizable.strings
的西类牙语文件中,然后删除es.strings
。对您将其本地化的每种语言重复此操作。
关于ios - SpriteKit 本地化连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30689794/