ローカリゼーションとそれらがとるべき名前を示すいくつかの矛盾するテーブルを見ました
それらの多くは、各国の言語のバージョンがあることを示唆しています。英語、スペイン語、中国語などの言語には問題なく、values-en
フォルダーまたはvalues-en_US
フォルダーを作成することを選択できます。より具体的にしたい場合
しかし、ギリシャ語などの他の一部の言語にはel_GR
というロケール名があります。フォルダ名をvalues-el
にするか、values-el_GR
にする必要がありますか
これは単なる例であり、私が読んだテーブルを信頼していません。Android開発者ガイドには、利用可能なロケールがほとんどリストされていません
Android文字列ファイルのフォルダー名は、次のようにフォーマットされます。
values-[locale]
values-[locale]-r[region]
values-en
、values-en-rGB
、values-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
一般的な翻訳を保存します。
このフォールバックメカニズムを利用することで、異なる言語ファイルで文字列が重複することを回避できます。
このリンクはあなたにとって興味深いかもしれません:
http://developer.Android.com/guide/topics/resources/providing-resources.html#AlternativeResources
特に表2の「Language and region」という行はそうでしょう。
サージ
プロジェクトの「res」フォルダーを右クリックします。選択>新規> Androidリソースファイル>ローカリゼーション-可能なすべての言語とロケールオプションを提供し、必要なフォルダを作成します。
すべてが https://developer.Android.com/index.html で見つかります
ドローアブルのような複数のリソース定義のページ記述、値
このページでは、言語解像度の定義を提供します。これは、ロケールディレクトリとリソースファイルの作成方法のインポートです。
形式は<resource type>-b+<language code>[+<country code>]
。
そしてその language code
country code
リファレンス https://developer.Android.com/reference/Java/util/Locale.html
言語ISO 639 alpha-2またはalpha-3言語コード、または8文字までの登録済み言語サブタグ(将来の機能拡張のため)。言語にalpha-2コードとalpha-3コードの両方がある場合、alpha-2コードを使用する必要があります。有効な言語コードの完全なリストは、IANA言語サブタグレジストリで見つけることができます(「タイプ:言語」を検索してください)。 https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
国(地域)ISO 3166 alpha-2国コードまたはUN M.49 numeric-3エリアコード。有効な国および地域コードの完全なリストは、IANA言語サブタグレジストリで検索できます(「タイプ:地域」を検索してください)。
https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry