言語はそれが話されている場所に依存しているため (doh!)、言語とロケール コードはその現実を反映しています。zh
は基本的な言語コードですが、これには と の 2 つの主要な形式があるため、 と がありますがzh_Hans
、zh_Hant
これらは言語コードにすぎず、ロケールではありません。
ロケーション固有
特定の場所でどの言語が使用されているかを完全に指定するには、国コードの接尾辞を付ける必要があるためzh_Hans_HK
、zh_Hant_HK
香港で話されている簡体字中国語と繁体字中国語をそれぞれ と にします。
実際には、国コードよりも具体的なものが多くの国で必要とされることが多いのが現実ですが、これにより、CLDR などのデータベースの複雑さとメンテナンスが指数関数的に増加する可能性が高く、IP から場所の詳細抽出など、データベースにフィードするためのサポート インフラストラクチャも増加する可能性があります。 、一般的に利用可能ではないか、十分に正確ではありません。
固定テキスト
現在、コードがユーザー インターフェイスで使用する固定文字列のセット、またはサイトのページ セット全体を指定するだけの場合、言語が異なる場所がいくつかない限り、国のサフィックスは実際には必要ありません。まったく別のリソースセットを作成するのに十分な (場所に基づく情報)。
リソース セットが大きくなればなるほど、ロケールに基づく言語コードが必要になる可能性が高くなります [このコンテキストでは、真のロケールではなく単なる言語属性なので、好きなように呼ぶことができます!]。必要な場合にのみ行う必要があります。
オンザフライ値
ただし、日付、時刻、通貨、数値などの特定の変数値をオンザフライでフォーマットしたい場合は、そのような機能をサポートするすべてのツール (Unicode CLDR データに基づくツールなど) がそれらを期待しているため、ロケールが重要になります。これらのロケールは、社内で生成された UI 言語を使用するように設定されているコードとは別の設定である必要があります。ただし、既知のロケールごとにリソース セットを作成し、うんざりするほど維持したい場合を除きます。
ブラウザ言語ツール
入力ボックスのように編集可能な Web ページのロケールを指定し、フィールドの属性または css でスペルチェックが有効になっている場合、ブラウザの言語ツールはそのロケールに従ってフィールドのスペルチェックを行うことに注意してください。
基準
リソースセットが提供するものを明確にする必要があるため、次のことを考慮してください。
- 固定弦?言語のみ。
- オンザフライでフォーマットしますか? ロケール。
- 閲覧環境でスペルチェック?ロケール。
- ページ全体/サブサイト? 言語のみ。大幅に異なるコンテンツが必要な場合はロケール (言語バリアントとして)。
メンテナンスのオーバーヘッドを最小限に抑えるスプレッドシート
スプレッドシートを使用して、各言語コードに親コードがある UI 文字列を保持し、そのバージョンの文字列のセルに、親から文字列を取得する数式が含まれるようにします。その言語と文字列のカスタム文字列を作成するには、セルの数式を正確なテキストで上書きするだけです。これにより、リソースのメンテナンスの量が最小限に抑えられます。最後に、各言語の完全なリソース ファイルを生成するマクロを実行します。