0

みんな

デバイス全体ではなく、このアプリケーションのみを選択する多言語アプリケーションを実装する必要があります。

そのためのアイデアをください。

4

1 に答える 1

2
  1. テキストを含むすべての、ただしすべてのビジュアルコンポーネントには、アウトレットを指定する必要があります。
  2. 英語とフランス語などのテキストを含む2つのplistファイルを作成します。アプリケーション内のすべてのテキストには、plisファイルのキーが含まれます。これが私のplisファイルの例です:

ここに画像の説明を入力してください

ここに画像の説明を入力してください

次に、ユーザーが言語を選択できるようにするためのインターフェイスを実行し、選択したオプションをNSUserDefaultsに保存する必要があります。最後に、各viewDidLoad(またはviewWillAppear)で、そのデフォルトオブジェクトを確認し、選択した言語に応じてすべてのアウトレットにテキストを設定します。あなたはplistから読む方法を知っている必要があります、これは別の質問です。乾杯!

ここにいくつかのコードがあります:

    //suppose you have only English and German:
    NSDictionary *selectedLangDick;
    if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"selected_lang"] isEqualToString:@"german"])
        selectedLangDick = [NSDictionary dictionaryWithContentsOfFile:@"lang_de.plist"];
       else
        selectedLangDick = [NSDictionary dictionaryWithContentsOfFile:@"lang_en.plist"];

//now you set the text to all your outlets within the currently loaded controller:
        [cancelButtonOutlet setTitle:[selectedLangDick objectForKey:@"cancel"]];
        [backButtonOutlet setTitle:[selectedLangDick objectForKey:@"back"]];
        [pleaseWaitLabelOutlet setText:[selectedLangDick objectForKey:@"progress_send_password"]];
blablabla
blablabla

もちろん、(最初のアプリケーションの起動時に)デフォルトの言語を英語(またはドイツ語など)に設定する必要があります。設定することが重要です。nilのままにしないでください。そしてもちろん[[NSUserDefaults standardUserDefaults] objectForKey:@"selected_lang"]、ユーザーがそれを行うときは、選択した言語に設定する必要があります。

于 2012-08-08T06:52:49.293 に答える