多言語のナビゲーションコントローラーベースのアプリケーションを開発しました。アプリケーションのメインメニューには、以下の設定画面もあります。ユーザーは言語ボタンを押すとアプリケーション言語に変更できます。メインメニュー画面と設定画面の言語を更新したいユーザーが言語を変更したときしかし、私はしませんでした。
質問する
809 次
4 に答える
4
NSString *path = [[NSBundle mainBundle] pathForResource:@"nl" ofType:@"lproj"];
NSBundle *bundle = [NSBundle bundleWithPath:path];
NSString *englishWord = @"translate";
NSString *translation = [bundle localizedStringForKey:englishWord value:englishWord table:nil];
NSLog(@"%@ = %@", englishWord, translation);
// nl.lproj/Localizable.strings:
"translate" = "vertaal"
于 2012-08-13T08:15:23.483 に答える
1
Appleはアプリでの言語選択を推奨していないことに注意してください。最善の解決策は、ビューをローカライズしてNSLocalizableStringを使用し、アプリの言語を電話の設定の言語に従わせることです。
于 2012-08-13T08:28:42.323 に答える
0
AppDelegateでメソッド(plistからロードされた言語文字列の辞書を返す)を作成します。ユーザーが言語を選択するたびに、それに応じてNSUserDefaultsを設定し、アプリデリゲートでそのメソッドを呼び出します。次に、すべてのコントローラーのviewWillAppearでこのメソッドを使用し、目的の言語辞書を取得してビューをロードします。
-(NSMutableDictionary*)getCurrentLanguageDictionaryFromResource
{
NSString *defaultPath;
defaultPath = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%@.plist",[self getAppCurrentSettingsLanguage]] ofType:nil];
if(languageDictionary !=nil)
{
[languageDictionary release];
languageDictionary=nil;
}
languageDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:defaultPath];
return languageDictionary;
}
于 2012-08-13T09:02:18.680 に答える
-1
言語を変更したい場合は、アプリケーションを再起動する必要があります。
このために、ローカル通知を使用して、アプリケーションが今すぐ再起動されることをユーザーに示す適切なメッセージでアプリケーションを再起動できます。
この説明がお役に立てば幸いです......
于 2012-08-13T08:02:40.763 に答える