Как заставить приложение IOS использовать определенную локализацию?
У меня есть приложение с двумя локализациями (на иврите и на английском), и меня попросили отменить локализацию на английском, чтобы приложение не зависело от языка вашего устройства (но сохраните локализацию для будущего использования).
локализация осуществляется через Localizable.strings, а также Xib локализацию (выделено из них).
Есть ли способ сказать приложению всегда использовать определенную локализацию и игнорировать язык устройства?
Спасибо!
2 ответа
В этом случае просто установите ключ по умолчанию AppleLanguages EARLY при запуске, чтобы переопределить настройки IOS
(EARLY = до использования xib/storyboard или NSLocalizedString)
NSString *langCultureCode = @"he";
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@[langCultureCode] forKey:@"AppleLanguages"];
[defaults synchronize];
Я адаптировал это к Swift и использую это для легкого тестирования локализаций. Когда помещено в AppDelegate->didFinishLaunchingWithOptions, симулятор должен запускаться дважды, чтобы получить правильные настройки, но, возможно, есть лучший способ.
В примере используется датская локализация, и больше можно найти здесь: Коды локалей для папок iPhone lproj
let langCultureCode: String = "da"
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject([langCultureCode], forKey: "AppleLanguages")
defaults.synchronize()
И чтобы удалить значения по умолчанию еще раз:
let defaults = NSUserDefaults.standardUserDefaults()
defaults.removeObjectForKey("AppleLanguages")
defaults.synchronize()