2017-02-17 7 views
1

私がやっているアプリはUK、US、AUで公開されます。私は、値-en-rUS、値-en-rAU、値フォルダにstrings.xmlを持っています。私は "Zipcode"のような特定の文字列を米国でのみ使用していますので、それらをstrings.xmlの値-en-rUSに追加しました。私はAUとUKのstrings.xmlファイルで同等の "Postcode"を持っています。リージョン固有の文字列を使用する標準的な方法は何ですか?

これは、デバイスロケールが正しく設定されている限り、正常に動作します。つまり、米国の英語(米国)です。端末が英語(オーストラリア)で、ユーザーが米国内でアプリを使用している場合、ソリューションは失敗します。

デバイスのロケールに関係なく特定の文字列を表示する標準的な方法はありますか?すべてのヘルプは

答えて

2

を高く評価され、正しいJava SEの標準的な使用法は次のとおりです。

Locale:      Properties file name part: 

Locale("en", "US")   values_en_US 
Locale("en", "AUS")   values_en_AUS 
Locale("en", "UK")   values_en_UK 

ベストはあまりにもLocale("en")/values_envaluesを持っています。

ロケール定数がいくつかあります。小さなプロトタイプは、これが満足のいくものであるかどうかを見るでしょう。

1

間違ったローカリゼーションを使用していると思います。 values-en-rUS米国の地域にある携帯電話のリソースを英語で定義しています(ロケールen)。

代わりにvalues-en_USを使用する場合は、ロケールen_USでは正しく動作するはずです。 Android doc

:より良い異なるロケール間のフォールバックは、このリンクを考慮どうなるのかを理解するには

関連する問題