私はXamarin.Androidのアプリを開発中で、英語とブルガリア語をサポートしています。ほとんどのテキストは、values
フォルダのStrings.xml
に保存されています。 英語のテキストはデフォルトのvalues
フォルダにあり、ブルガリア語のテキストはvalues-bg
です。 両方のファイル名はString.xml
であり、各文字列の名前は翻訳バージョンと同じです。 どうすればいいですか?ボタンを1つクリックすると文字列がvalues-bg
から読み込まれ、別のボタンをクリックするともう一度デフォルトから読み込まれます。また、私はアプリ内のすべてのアクティビティにそういうことを望んでいます。Xamarin Androidボタンをクリックしたときの言語変更フォルダ
0
A
答えて
2
ロケールをプログラムで変更する方法をテストしていましたが、最終的には私のために働く解決策が見つかりました。
あなたが言われたように、デフォルトの値を持つstrings.xmlを含む値のフォルダが必要です。これは英語ですが、同じファイルを持ち、ブルガリアの変換された値を持つvalues-bgフォルダです。文字列の名前が同じであることが重要なので、正しい名前を付けました。
次に、あなたのクリックイベントに、あなたはこれを追加することができます。
var locale = new Java.Util.Locale ("bg");
Android.Content.Res.Configuration conf = Resources.Configuration;
conf.Locale = locale;
DisplayMetrics dm = Resources.DisplayMetrics;
Resources.UpdateConfiguration (conf, dm);
Recreate();
は、まず、そのコードは「BG」ロケールのロケール変数を宣言します。次に、デバイスの実際の構成を取得し、新しいロケールを適用します。 UpdateConfigurationを使用して、変更を保存します。再作成はオプションです。名前がすべて説明されているので、新しい設定を使用してロードされる現在のアクティビティを、デフォルトロケールが適用されたものではなくロケール "bg"で再作成します。これで、values-bgフォルダに文字列が取得されます。
注:私はin the comments of the accepted answer hereを読んだことがあります。一部のデバイスでは、設定がアプリでしばらくしてからデフォルトにリセットされています。なぜこのようなことが起こるのか分かりませんが、ロールバックを防ぐために、新しいアクティビティをロードするときにロケールが何らかの形で変更されているかどうかを確認したい場合があります。
関連する問題
- 1. Android:言語の変更
- 2. ボタンをクリックしたときのボタンのテキストを変更する
- 3. フォームのボタンをクリックしたときのボタンの変更方法
- 4. ボタンをクリックしたときに反応コンポーネントの内容を変更する(異なる言語)
- 5. Facebook接続ボタンの言語変更
- 6. ボタンをクリックすると文化が変わる(言語)
- 7. Androidアプリケーションの言語を変更する
- 8. ボタンのテキストを、ボタンを押したときに、Androidでクリックした後に変更します。
- 9. ボタンをクリックしたときのdivのCSSを変更する
- 10. Androidでボタンをクリックしたときにスピナーアイテムを変更する方法
- 11. クリックしたときのセルのボタンの色を変更する
- 12. ボタンをクリックしたときのOptionMenuのオプションの変更
- 13. ボタンをクリックしたときのTkinterエントリのテキストの変更
- 14. ボタンをクリックしたときのタブの色の変更
- 15. ボタンをクリックしたときのキー値の変更
- 16. ボタンをクリックしたときの効果の変更WPF
- 17. GoogleMaps Androidスタジオの変更言語のリフレッシュ
- 18. 言語が変更されたときにフォームのサイズを変更します。
- 19. クリックしたときにボタンの色を変更するイベントリスナー
- 20. Android SDK多言語アプリ - コンパイル時に言語を変更できますか?
- 21. Androidでテキスト言語を変更
- 22. Androidの変更文字列言語
- 23. 右の言語を変更した後
- 24. xamarinフォームでボタンをクリックしたときにキーボードを隠す
- 25. 別のボタンをクリックしたときにボタンを変更します
- 26. クリックしたときのボタンの値の変更
- 27. クリックしたときのボタンの背景色の変更
- 28. クリックしたときのボタンの色の変更方法
- 29. クリックしたときのボタンの背景画像の変更UICollectionViewCell
- 30. Xamarin Android、Xamarinフォームオリエンテーションの変更
これはアプリ全体のロケールを変更するのか、現在のアクティビティだけを変更するのでしょうか? – Reaper9806
私は確信していませんが、私はアプリ全体について言うでしょう。 1つのアクティビティでのみその動作をしたい場合は、私の答えに似たメソッドを作成することができますが、 "bg"属性を持つ新しいロケールの代わりにデフォルトのロケールを適用します。 – YumeYume
それだけです、私はそれがアプリ全体のために働くことを望みます。私はまだ試してみる機会がありませんでしたが、もしうまくいけば、私はできるだけ早くご意見をお寄せください。 – Reaper9806