23

ローカライゼーションとその名前を示すいくつかの競合する表を見てきました

それらの多くは、各国の言語のバージョンがあることを示唆しています。これは問題ありません。英語、スペイン語、中国語などの言語については、より具体的にしたい場合はvalues-enフォルダーまたはフォルダーを作成することを選択できます。values-en_US

しかし、ギリシャ語などの他の言語にはロケール名がel_GRあります。フォルダー名を作成するだけでよいですvalues-elか、それともそうする必要がありますか?values-el_GR

これは単なる例であり、私が読んだ表は信頼できません。Android 開発者ガイドには、利用可能なロケールがほとんどリストされていません。

4

3 に答える 3

41

Android 文字列ファイルのフォルダー名は、次のようにフォーマットされます。

  • 地域バリアントなし:values-[locale]
  • 地域バリアントを使用:values-[locale]-r[region]
  • 例: values-envalues-en-rGBvalues-el-rGR

あなたの場合、values-elギリシャ語翻訳values-el-rGR用と国別のギリシャ語翻訳用のフォルダーを作成するだけです。

また、Android のリソース フォールバック メカニズムを利用して、特定の文字列をローカルでさらに翻訳できるようにすることもできます。

たとえば、「R.string.title」という文字列があり、ロケールが「el-GR」の場合、Android は次の順序でファイルを検索して「R.string.title」の値を探します。

  • res/values-el-rGR/strings.xml
  • res/values-el/strings.xml
  • res/values/strings.xml

したがって、国固有の翻訳を の中に入れて、ストアに一般的な翻訳res/values-el-rGR/strings.xmlを任せることができます。res/values-el/strings.xml

このフォールバック メカニズムを利用することで、異なる言語ファイルで文字列が重複することを回避できます。

于 2014-05-27T09:36:15.270 に答える