- すべての xib (ラベル、テキスト フィールド) 内のすべてのテキスト オブジェクトにアウトレットを与えます。これにより、それらにアクセスして値を変更できます (たとえば、テキストフィールドのプレースホルダーを "First name" から "Prénom" に変更するなど)。
- 英語のコンテンツ用のキーと値を含む .plist ファイルを作成し (アウトレットの名前をキーとして使用できます)、フランス語のコンテンツ用に別のファイルを作成します。
myLanguageIndicator
たとえば、現在の言語を保持し、言語を設定するときにそれぞれ変更されるデフォルト値を ( NSUserDefaults で) 保持します。
- デフォルト値 ( "eng" または "fr" の場合) に応じて、すべてのクラスの viewWillAppear で、必要な .plist ファイルから読み取ってアウトレットの値を設定します。
デフォルトの言語値が「fr」であるとします。これは、viewWillAppear で fr.plist (または任意の名前) を使用することを意味します。また、「titleLabel」は、コントローラーの 1 つにあるタイトル ラベルのアウトレットです。
別のデフォルト オブジェクトでは、fr.plist のディクショナリを保持します (plist をディクショナリにロードする方法をググってください)。
次に、次のように言います。
if ([myLanguageIndicator isEqualToString:@"fr"]){
titleLabel.text = [myFrenchDictionary objectForKey:@"titleLabel"];
... ... ...change here all your outlets to french values
}
else{
titleLabel.text = [myEnglishDictionary objectForKey:@"titleLabel"];
... ... ...change here all your outlets to english values
}
言語を選択するときは、選択した言語に応じて、デフォルトの文字列オブジェクトmyLanguageIndicator
を@"fr"
またはに変更するだけです。@"eng"