2011-07-06 11 views
0

言語ローカリゼーションに取り組んでいました。アプリケーションに存在するドロップダウンリストから言語を選択するたびにアプリケーションの言語を変更したいそれはどのように私は事前にiphoneのドロップダウンリストからオプションを選択した後に言語が変更されました

感謝を実装することができ、私を示唆しなさいデバイスの言語を変更せずに言語を変更する必要がある

+1

いつものように、ここでは標準的なシステムの動作を邪魔するのは、ユーザーの関心と時間の両方であるかどうかを検討してください。 –

答えて

2
+0

ちょっとあなたのリンクをたどって、その本当に有益なpartly.Inボタンをクリックして言語を選択しているが、私の疑問は、私はそれを設定することができますpickerview、すなわちpickerviewのリストから言語を変更する必要があります – sujay

+0

@ "it"、@ "de"のような国別コードの配列を持ち、それを使ってピッカーをいっぱいにします。次に、ピッカーデリゲートメソッドを使用して言語を切り替えるだけです。 - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {[Language setLanguage:[_array objectAtIndex:row]]; //ビューを更新するいくつかのコード(ラベルとどこでも異なる言語が使用されます)} '。私はあなたの質問を正しく理解していれば:) –

0

あなたはこれを行うことができますが、それはでローカライズ機能が組み込まれてうまく再生されませんFoundation(例:NSLocalizedString)ですので、無視して独自の文字列取得関数、XIBローディングパスなどを書く必要があります。

質問と答えここで、このようにその場でバンドルにローカライズにアクセスする方法を説明します。 Overriding preferred strings localization on the fly for testing

0

あなたが「AppleLanguages」ユーザーのデフォルトを強制することができます。 以下の例は、どのように実行できるかを示しています。特にここでは第1言語(デフォルト)を第2言語に切り替えることになります。



    NSArray *lang = [[NSUserDefaults standardUserDefaults] arrayForKey:@"AppleLanguages"]; 
    NSLog(@"current lang: %@",lang); 
    [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects: 
                 [lang objectAtIndex:1], 
                 [lang objectAtIndex:0], 
                 nil] 
               forKey:@"AppleLanguages"]; 
0
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    NSMutableArray *languages = [NSMutableArray arrayWithArray:[defaults objectForKey:@"AppleLanguages"]]; 

    [languages replaceObjectAtIndex:0 withObject:@"fr"]; 

    [defaults setObject:languages forKey:@"AppleLanguages"]; 
    [defaults synchronize]; 

これはフランス語に言語を設定しています。あなたがロードしたい言語をポジション0にするだけです。

関連する問題