私は、好みの言語を選択したいと思うマルチラングアルiPadアプリを作ります。だから私の質問は、私は実行時に自分のアプリケーション言語を変更できますか?私はiPad言語を変更したくありません。iOS Appカスタムローカリゼーション設定
1
A
答えて
1
これは数回お願いしています。このための大きな解決策はありません。それは自明ではありません(たとえば、言語を変更したときにiOSが再起動することに注意してください)。 NSLocalizedString呼び出しを置き換えることによって、またNIBの読み込みを変更して、使用するローカライズ版を指定できるようにすることで、これを達成する人もいます。例えばthis other SO questionを参照してください。
3
アップルのガイドラインではをおすすめしません。
私のソリューションは、(ユーザーが手動でアプリを再起動する必要があり、あなたがXIBs含めたすべてのリソースをリロードする必要があり、「オンザフライ」言語スイッチを処理するために)です:返信用
// Use "nil" to fallback to system settings
void loadCustomLocalization(NSString * locCode) {
NSString * appleLanguages = @"AppleLanguages";
if (locCode) {
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:locCode] forKey:appleLanguages];
} else {
[[NSUserDefaults standardUserDefaults] removeObjectForKey:appleLanguages];
}
[[NSUserDefaults standardUserDefaults] synchronize];
}
void loadLocalization() {
const int result = [[[NSUserDefaults standardUserDefaults] stringForKey:@"language"] intValue];
NSString * language = 0;
switch (result) {
case 1: language = @"ru"; break;
case 2: language = @"en"; break;
}
loadCustomLocalization(language);
}
int main(int argc, char *argv[]) {
loadLocalization();
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}
関連する問題
感謝。 – Krrish