当社のウェブサイト上で多言語のサブサイトを作成しています。
2文字の言語コードを使用したいと思います。スペイン語とフランス語は簡単です。次のようなURLを取得します。
mydomain.com/es
mydomain.com/fr
しかし、繁体字中国語と簡体字中国語で問題が発生します。これらの言語に使用する2文字のコードの基準はありますか?
mydomain.com/zh
mydomain.com/?
@dkarpは優れた一般的な答えを提供します。中国語に関する追加の詳細を追加します。
中国語が主要な言語である国はいくつかあります。それらの間の主な違いは、単純化された文字を使用するか、従来の文字を使用するかですが、地域によって若干の違いもあります(語彙など)。これらを区別する標準的な方法は、国コードを使用することです。 zh_CN
中国本土、zh_SG
シンガポールの場合、zh_TW
台湾の場合、またはzh_HK
香港の場合。
中国本土とシンガポールはどちらも簡略化された文字を使用し、その他は従来の文字を使用します。中国と台湾は人口が最も多いので、ただzh_CN
およびzh_TW
は、Webサイトの簡略化された文字バージョンと従来の文字バージョンを区別するためによく使用されます。
より正確なただし、zh_HANS
(一般的な)簡体字中国語文字、およびzh_HANT
繁体字中国語の文字。ただし、異なる国を区別することが有意義な場合を除きます。
これには確かに標準的な表現があります。人々が目にしているのとまったく同じ問題(同じ言語だが、方言や文字が異なる)に遭遇すると、2文字の言語コードを2文字の地域コードに拡張しました。したがって、mydomain.com/fr
が、カナダのフランス人読者向けに国際化すると、mydomain.com/fr_CA
(カナダ)およびmydomain.com/fr_FR
(フランス)。プラットフォームによっては、アンダースコアの代わりにダッシュを使用して言語コードと地域コードを分離します(したがってfr-CA
およびfr-FR
)。
簡体字中国語の標準ロケールはzh_CN
。繁体字中国語の標準ロケールはzh_TW
。
実際の BCP 47 規格文書に向かって指摘することをheします。詳細については少し重く、読みやすさについては少し軽いです。 Javaで使用されているもの のような標準のロケール識別子を使用するだけで問題ありません。
言語は話される場所に依存するため(doh!)、言語とロケールのコードはその現実を反映しています。 zh
は基本的な言語コードですが、2つの主要な形式があるため、zh_Hans
およびzh_Hant
、しかしそれらはまだ言語コードであり、ロケールではありません。
場所固有
particularの場所で使用する言語を完全に指定するには、国コードにサフィックスを付ける必要があるため、zh_Hans_HK
およびzh_Hant_HK
簡体字中国語と繁体字中国語、それぞれ香港で話されています。
実際には、多くの国では国コードよりも具体的なものが必要になることが多いという現実がありますが、CLDRなどのデータベースの複雑さとメンテナンスに加えて、IPから場所の詳細の抽出などのサポートインフラストラクチャが指数関数的に増加する可能性があります、一般的に入手可能または十分に正確ではありません。
固定テキスト
現在、コードがユーザーインターフェイスで使用する固定文字列のセット、またはサイトのページセット全体を指定するだけの場合、言語が異なる場所が複数ある場合を除き、国のサフィックスは実際には必要ありません完全に別個のリソースセットを作成するのに十分なほど(場所に基づく情報)。
リソースセットが大きいほど、ロケール[このコンテキストでは、実際のロケールではなく言語属性のみに基づく言語コードが必要になる可能性が高いため、好きなように呼び出すことができます!]必要なときにだけそれをする必要があります。
オンザフライ値
ただし、日付、時刻、通貨、数字などの特定の変数値をオンザフライでフォーマットする場合、ロケールは重要になります。そのような機能をサポートするすべてのツール(Unicode CLDRデータに基づくツールなど)はそれらを必要とするためです。これらのロケールは、社内で生成されたUI言語セットが使用するコードに対して個別の設定である必要があります。ただし、既知のロケールeveryに設定されたリソース、およびそれらを広告の悪心を維持する!
ブラウザ言語ツール
入力ボックスのように編集可能なWebページのロケールを指定し、フィールドで属性またはCSSのスペルチェックが有効になっている場合、ブラウザーの言語ツールはそのロケールに従ってフィールドをスペルチェックします。
基準
リソースセットが提供するものについて明確にする必要があるため、以下を考慮してください。
メンテナンスのオーバーヘッドを最小限に抑えるスプレッドシート
スプレッドシートを使用して、各言語コードに親コードがあるUI文字列を保持します。そのため、文字列のバージョンのセルには、親から文字列を取得する数式があります。その言語と文字列のカスタム文字列を作成するには、セルの数式を正確なテキストで上書きします。これにより、リソースのメンテナンスが最小限に抑えられます。最後に、各言語の完全なリソースファイルを生成するマクロを実行します。