iPhoneアプリでは、アプリの設定内で言語を変更できます(ユーザーはアプリを再起動する必要があります)。私はこのポストで言及したトリックを使用します:link。私はいくつかの変更を加えました。私はNSUserDefaultsで選択した言語を保存し、main.mで:アプリ設定内のiPhoneアプリの言語を設定してもアプリ名は変わりません
int main(int argc, char *argv[]) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"language"] == nil) {
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:@"hu"] forKey:@"AppleLanguages"];
} else {
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:[[NSUserDefaults standardUserDefaults] objectForKey:@"language"]] forKey:@"AppleLanguages"];
}
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}
「デフォルト」のInfo.plistファイルは英語で、私はプロジェクトのルートにそれを置きます。私はこの名前のハンガリー語の翻訳をアプリ名のために作った。このファイルはInfoPlist.stringsで、hu.lprojフォルダに配置しました。
CFBundleDisplayName = "Sör";
私が言語を変更した場合、アプリケーションを再起動すると、アプリケーション名以外はすべて正常に動作します(nibファイル、文字列)。それは変更されません...
誰かが私に問題を教えてもらえますか?
はい、そうですが、このキーをInfo.plistに追加すると何も起こりません。ドキュメントでは、「ローカライズされた表示名情報にアクセスする関数は、情報を取得する前にこのキーの存在をチェックします」という意味は何ですか? – madik
上記の編集を参照してください。 –
編集した回答に関連して質問があります。私は、プロジェクトのルートにInfo.plistファイルがあり、ビルドの設定では、そのファイルを指していると言いました。このファイルには、アプリ名のキーもあります。今回は、hu.lprojフォルダにInfoPlist.stringsファイルが1つしかありません。このファイルをプロジェクトに追加しました。今、私はこのファイルをローカライズしなければなりません(そして、この '操作'の結果は、正しいフォルダに2つのInfoPlist.stringsファイルがあります)? – madik