Чтение локализованной строки
У меня есть приложение, в котором я хотел бы получить локализованную строку для определенного ключа, независимо от того, какая у меня текущая локализация на 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 настроен для региона или языка, отличного от английского в США.
(Переключите его на испанский, а затем снова отладьте приложение на устройстве, чтобы увидеть обновленные локализованные строки).