ジェイコブの答えを読んで少しテストした後、これは私のために働いたコードです:
int main(int argc, char *argv[])
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
// Reset system defaults to get the complete language list.
[defaults removeObjectForKey:@"AppleLanguages"];
// Default language choosen by user.
NSString *defLanguage = [defaults objectForKey:@"Language"];
NSArray *sysLangugages = [defaults arrayForKey:@"AppleLanguages"];
// System default language: first element of array.
NSString *sysLanguage = [sysLangugages objectAtIndex:0];
NSArray *array = [NSArray arrayWithObjects:defLanguage, sysLanguage, nil];
[defaults setObject:array forKey:@"AppleLanguages"];
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
デフォルトの言語を変更した後にアプリを再起動するだけで、ローカライズされたすべてのリソース (文字列とストーリーボード) が変更されます。
また、AppDelegate.m のメソッドでこのコードを試しました。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
しかし、うまくいきません。main.m でのみ正常に動作します。どうしてか分かりません。
このコードを使用すると、iOS でサポートされていない言語のアプリケーションを作成できることに注意してください。
よろしく、
ジョアンバ