2015-06-07 3 views
1

Я пробовал читать онлайн-учебники о том, как локализовать строки. У меня есть игра, которая использует SpriteKit в качестве движка и имеет пользовательский текст в файлах .m.Локализация локализации SpriteKit

Мое предположение о локализации этих строк заключается в замене, где у меня есть читаемая строка (... .text = @"some string") с вызовом NSLocalizedString().

Скажите, у меня есть ярлык, который говорит «играть», когда игра начинается на английском языке. На испанском языке он сказал бы «jugar». Кроме того, у меня есть меню опций, где на английском языке говорится «варианты», а на испанском языке говорится «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 были подключены к t он GameScene.m файл?

ответ

1

Я нашел проблему и как ее исправить. Я читал урок Рэя Вандерлиха об этом, доступный here.

Как исправить эту ошибку, для тех, кто пытается понять это в будущем:

  1. Создать новый файл с именем stringsLocalizable.strings.
  2. Откройте вкладку «Утилиты» (одна справа), если она еще не открыта.
  3. Скопируйте текст с en.strings и вставьте его в файл Localizable.strings.
  4. Локализовать его в на каждом языке, в котором вы будете локализовать его в (включая базу), нажав кнопку в Файловом инспекторе с надписью «Локализовать». Трудно пропустить. (Примечание: теперь вы увидите раскрытие папки. Откройте его, и вы найдете, что скопирован на каждый выбранный вами язык. Однако он не переведен.)
  5. Удалить en.strings. Он больше не нужен.
  6. Скопируйте и вставьте текст с es.strings в испанский файл и удалите es.strings. Повторите для каждого языка, на котором вы его локализованы.
Смежные вопросы