デフォルトでは英語が使用されており、Googleのアプリでは他のいくつかの言語の翻訳が行われています。 ユーザーがアプリを起動すると、Locale.setDefault()
がGoogle翻訳のロケールに設定されます。たとえば、電話はスペイン語で実行されていますが、スペイン語の翻訳はありません。電話番号はLocale.setDefault(Locale.US)
です。 libsはLocale.getDefault()
を使っているので、これは時間の書式設定に必要です。 Android 24まで完璧に動作します。Android 24は「Locale.setDefault()
」を無視します。すべての日付はデバイス言語でフォーマットされますが、アプリ言語ではフォーマットされません。 API 24でデフォルトロケールを設定する
0
A
答えて
0
使用oficial docksことだから、解決策だけではなく、ロケール、だけでなく、ロケール内の構成を変更することでした。アプリケーションクラスで
@Override
protected void attachBaseContext(Context base) {
LocaleUtil.getInstance().invalidateCurrentLocale(base);
super.attachBaseContext(base);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
LocaleUtil.getInstance().invalidateCurrentLocale(this);
}
そして、これはLocaleUtil方法
public void invalidateCurrentLocale(Context context) {
updateResources(context,
getLocaleOrDefault(getConfigLocale(context.getResources().getConfiguration())));
}
public Locale getConfigLocale(Configuration configuration) {
if (Build.VERSION.SDK_INT < 24) {
return configuration.locale;
} else {
return configuration.getLocales().get(0);
}
}
private Locale getLocaleOrDefault(Locale locale) {
if (AVAILABLE_LOCALES.contains(locale)) {
return locale;
}
return DEFAULT_LOCALE;
}
private void updateResources(Context context, Locale locale) {
Locale.setDefault(locale);
Resources res = context.getResources();
Configuration config = new Configuration(res.getConfiguration());
config.setLocale(locale);
res.updateConfiguration(config, res.getDisplayMetrics());
}
1
は、新しいメソッドを追加しましたsetDefault (Locale.Category category,Locale newLocale)
関連する問題
- 1. MessageFormatデフォルトロケールなしの書式設定
- 2. symfonyのデフォルトロケールURL
- 3. Rails:日付をstrftimeに設定するにはどうすればデフォルトロケールを認識できますか?
- 4. デフォルトロケールなしのtwigパス
- 5. 初期段階でデフォルトロケールを取得する方法
- 6. はどのようにsymfony3.4ルートのデフォルトロケールを使用するには
- 7. Struts(1)のデフォルトロケールが選択されていません
- 8. 設定plistのタイトルを設定する
- 9. smtp設定を設定する
- 10. カスタムクラススーパバイザ設定をスーパービューに設定する
- 11. アンドロイドシステムのワイドプロキシ設定を設定する
- 12. window.localStorage()言語設定を設定する
- 13. Botbuilder名前空間がそれを定義していない場合のデフォルトロケール文字列の使用方法
- 14. mesosを設定する方法minimesosでoffer_timeoutを設定する
- 15. オートコンプリートテキストを設定するテキストアラインメントを右揃えに設定する
- 16. zendフレームワークでビルドを設定する値を設定する
- 17. Excelの乱数を設定するシードを設定する
- 18. ポップアップウィンドウを開く、URLを設定する、フォーカスを設定する、ウィンドウのプロパティを設定する
- 19. なぜデフォルトロケールが機能しないのですか?自分のアプリケーションのコントローラで
- 20. FlashProfessionalのFlashBuilderで設定定数を設定する方法
- 21. C#特定のident設定をXmlWriterSettingsに設定する
- 22. JAVAベースのスプリング設定でHibernate Db接続設定を設定する方法
- 23. ハイドープ設定でs3a設定を正しく設定する方法は?
- 24. 設定構造を設計する
- 25. パラメータ/設定/設定を表す
- 26. 言語ごとに異なるフォーマッタ設定を設定する
- 27. FOS_USER設定で2つの異なるfrom_emailを設定する
- 28. Android - 設定フラグを設定
- 29. .htaccessを設定してURLにshebangを設定する方法
- 30. Rでイルムスケールを設定し、チック値を設定する
である。しかし、 'は、SetDefault(ロケールnewLocale)は'非推奨されませんでしたし、ボンネットの下に、それは 'は、SetDefault(Locale.Categoryカテゴリを、使用していますロケールnewLocale) 'を使用してロケールを両方のカテゴリに設定します。 – Ufkoku