SpriteKit 本地化连接

SpriteKit Localization Hook-ups

我尝试阅读有关如何本地化字符串的在线教程。我有一个使用 SpriteKit 作为引擎的游戏,并且在 .m 文件中有用户可读的文本。

我对本地化这些字符串的猜测是在我有可读字符串 (... .text = @"some string") 的地方调用 NSLocalizedString().

进行交换

说,当游戏以英文启动时,我有一个标签显示 "play"。在西班牙语中,它会说 "jugar." 此外,我有一个选项菜单,在英语中,它说 "options",在西班牙语中,它说 "opciones."

如果我是对的,我会向项目添加两个 .strings 文件:en.stringes.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

如何解决这个错误,对于那些在未来试图解决这个问题的人:

  1. 创建一个名为 Localizable.strings 的新 strings 文件。
  2. 如果“实用程序”选项卡(右侧)尚未打开,请将其打开。
  3. en.strings 复制文本并将其粘贴到 Localizable.strings 文件中。
  4. 通过单击文件检查器中标记为 "Localize" 的按钮,将其本地化为 您要将其本地化为 的每种语言(包括 Base)。很难错过。 (注意:您现在会注意到文件夹的下拉菜单。打开它,您会发现 Localizable.strings 已复制到您选择的每种语言中。但是,它没有翻译。)
  5. 删除en.strings。不再需要了。
  6. es.strings 中的文本复制并粘贴到 Localizable.strings 的西班牙语文件中,然后删除 es.strings。对您将其本地化的每种语言重复此操作。