2017-01-19 18 views
0

私のアンドロイドアプリケーションでは、アプリケーションの2つの言語バージョン(ドイツ語、英語)を提供する必要があります。ドイツ語バージョンでは、いくつかの追加カテゴリ(追加画面)が英語版と比較して利用できます。ベストプラクティス、私は従うべきですか?Androidマルチ言語サポート

答えて

0

あなたは使用して、ユーザーの言語得ることができます -

Locale.getDefault().getDisplayLanguage(); 

をして、多分if elseとブールデータ型を使用すると、それに応じてシステムをプログラムすることができます。

または、ユーザがRadioButtonsを使用して自分自身の言語を選択したほうがよい場合があります。テキストコンテンツのための

使用@stringsとして、あなたはあなたがresディレクトリに2つのフォルダを作成する必要が

1

をコーディング使用して簡単に変換することができます。

値(これがデフォルトであり、ここでは英語を置く。)

値-で(これはインドネシアの言語のためである)、similarlyyouはあまりにも他の言語のために見つけることができます。

両方のフォルダにstrings.xmlという名前のファイルが1つあります。

ここで、すべての文字列をこの2つのファイルに同じ名前で置きます。

下記のようになります。

の値-で/のstrings.xml値の

<string name="date">Tanggal</string> 

/のstrings.xml

<string name="date">Date</string> 

とあなたのMainActivityクラスでこのメソッドを使用します。

public void changeLanguage(String lang) { 
     Locale myLocale; 
     if (lang.equalsIgnoreCase("")) 
      return; 
     myLocale = new Locale(lang); 
     Locale.setDefault(myLocale); 
     android.content.res.Configuration config = new android.content.res.Configuration(); 
     config.locale = myLocale; 
     getBaseContext().getResources().updateConfiguration(config, 
       getBaseContext().getResources().getDisplayMetrics()); 

    } 
+0

私は2つの言語をサポートする2つの値のフォルダを作成し、MainActivityにこのコードを入れて、それは完璧に動作します。 'private void setLocale(){ Locale.setDefault(新しいロケール(Locale.getDefault()。getLanguage())); } ' –

0

GERMAN、ENGLISHの両方の言語用に、同じキーで異なる言語のテキストを作成する必要があります。

0

英語とドイツ語のそれぞれの場合、リソースディレクトリに 'values'と 'values-de'という2つのフォルダを作成する必要があります。また、デバイス言語に基づいてレイアウトを設計することもできます。例えば、英語のレイアウトフォルダとドイツ語のlayout-deフォルダ。 TextViewsのフォントサイズを設定するのと同じ方法で、各言語の値フォルダにdimen.xmlという名前のファイルを作成することができます。

関連する問題