это можно сделать легко, хотя мне потребовались недели, чтобы понять, как это сделать ;-)
У меня есть приложение для iPhone под названием iDEX, которое представляет собой румынский словарь. На iPad румынский язык недоступен в качестве языка пользовательского интерфейса, поэтому я хотел дать пользователю возможность выбрать румынский язык в настройках приложения, так как настройки устройства не включают его.
Что вам нужно сделать, так это интернационализировать приложение и локализовать его, как обычно. Затем в основном методе установите ключ AppleLanguages
стандартного NSUserDefaults
на язык и страну по вашему выбору, например
int main(int argc, char *argv[]) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[NSArray arrayWithObject:@"ro_RO"] forKey:@"AppleLanguages"];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool drain];
return retVal;
}
Обязательно установить ключ AppleLanguages
до запуска UIApplicationMain()
, потому что именно в этот момент загружается платформа UIKit и определяется язык по умолчанию.
Также важно указать и язык, и страну (например, @"ro_RO", а не просто @"ro"), иначе ваше приложение может аварийно завершить работу при установке ключа.
При этом все вызовы NSBundle
, поддерживающие локализацию, будут искать язык, установленный вами программно, а не тот, который установлен на устройстве.
Надеюсь, это поможет...
person
fedmest
schedule
14.09.2010