2ヶ国語でアプリを作りたいです。アプリケーションが起動すると、2 つのボタンが表示されます。最初のボタンは言語 X 用で、2 番目のボタンは英語用です。言語ボタンの 1 つをクリックすると、対応する言語でアプリケーションが起動するはずです。しかし、私はそれを行う方法がわかりません。出来ますか?
5 に答える
アプリのロケールの変更は、次のように実行できます。
private void setLocale(Locale locale) {
Locale.setDefault(locale);
Resources res = getContext().getResources();
DisplayMetrics dm = res.getDisplayMetrics();
android.content.res.Configuration conf = res.getConfiguration();
conf.locale = locale;
res.updateConfiguration(conf, dm);
}
その上、もちろん、strings.xml
最小限のローカライズを提供する必要があります。
しかし、これ以上の詳細がなければ、なぜあなたがこれをしたいのか疑問に思います。ユーザーはAndroidの設定から言語を選択する必要があり、アプリはデバイスの言語に従う必要があります。これは自動的に行われます。システムは、言語で修飾された、提供されたリソースを選択します。
ここにローカライズされたリソースを提供する方法についてのガイドを投稿しようとはしません。詳細については、Androidのドキュメントを参照してください。
ボタンの1つをクリックすると、new Locale('languageCode')
そのボタンに設定できますsetOnClickListener()
次に、正しいロケールで再レンダリングされるテキスト要素を再初期化します
異なる言語を使用したい場合は、必要な言語ごとに異なる文字列を使用するようにしてください。例えば:
values/strings.xml
values/strings-de.xml
values/strings-sk.xml
values/strings-pl.xml
これが私のアプローチです。これは私にとって簡単に行うことができます。
language を修飾子として使用して、一連のリソース (ドローアブル、文字列、レイアウト、メニューなど) を作成します。
メイン アクティビティが 2 つのボタンで始まる場合、ボタンのクリック リスナーのコールバック メソッドでそこでロケールを操作すると、システムは言語である修飾子に基づいて使用するリソースを判断すると思います。
ローカリゼーションはいつでも可能ですが、コンピューターと同じ概念が Android/スマートフォンにも適用されます。電話自体が特定の言語で表示されるように設定されている場合、アプリケーションもその言語で表示する必要があります。開発者としてのあなたの仕事は、ソリューションとプログラミングが Unicode に準拠していることを確認し、特定の言語に固有である可能性がある適切な文字を処理することです。