Чтение локализованной строки

У меня есть приложение, в котором я хотел бы получить локализованную строку для определенного ключа, независимо от того, какая у меня текущая локализация на iPhone.

У меня есть следующее в файле локализованных строк en.lproj

"Черный" = "черный";

В файле локализованных строк es.lproj у меня есть

"Черный" = "негр";

Так что я хотел бы получить испанскую строку, когда мой телефон находится в США, и настроить соответственно

Я использую следующий код:

let bpath:String = NSBundle.mainBundle().pathForResource("es", ofType: "lproj")! as String
let bundle = NSBundle(path: bpath as String)
let thisWord="Black"
let ourWord=NSLocalizedString(thisWord, bundle: bundle!, comment: "")

Я ожидаю получить "Negro" в значении нашего слова, но я всегда получаю "черный"

Я что-то упускаю из виду?

2 ответа

Решение

На самом деле мой код работает нормально. Я сделал глупую ошибку, не установив файл "Localizable.strings" как локализованный.

Чувствую себя довольно глупо прямо сейчас

Настройки локализации применяются в зависимости от настроек, установленных на телефоне, а не на месте. Если ваш телефон настроен на отображение языка приложений испанского языка, вы увидите соответствующую строку. Чтобы настроить параметры языка приложения, чтобы вы могли проверить это, вам нужно отредактировать свою схему.

В Xcode 7.1+ Перейти к продукту> Схема> Редактировать схему

Затем измените язык приложения и / или регион, чтобы имитировать то, что будет видеть пользователь, у которого iPhone настроен для региона или языка, отличного от английского в США.

(Переключите его на испанский, а затем снова отладьте приложение на устройстве, чтобы увидеть обновленные локализованные строки).

1

Другие вопросы по тегам