各リソース・バンドルには、異なるロケールが あります。 ロケールは、リソース・バンドル内のストリングの、特定の言語を示します。 ロケールは、拡張子 .properties の前の、ファイル名の終わりに示されます。
ロケールは 1 個から 3 個の ID で構成されます。 最初の ID に続く各 ID には、言語の方言、種類、または地理的位置を指定でき、これによってさらに言語を 特定できます。 ID は下線文字で区切ります。
最も単純なロケールは、単一の ID で言語を表します。 この ID は、リソース・バンドルで使用される言語の言語コード です。 例えば、言語コード en は英語を表し、es はスペイン語を表します。 英語のリソース・バンドルは、resourceBundle_en.properties のような名前になります。 言語コードは Java™ 仕様の 一部です。
さらに複雑なロケールには、言語コードの後に country code が続きます。 国別コードは、言語の方言が話される国を示します。 例えば、国別コード US はアメリカ合衆国 (米国) を表し、GB は グレートブリテン島 (英国) を表します。 この方法では、米国英語のリソース・バンドルは resourceBundle_en_US.properties、英国英語の リソース・バンドルは resourceBundle_en_GB.properties のような名前になります。 国別コードは、Java 仕様の一部です。
最も複雑なロケールには、言語コードの後に国別コード、さらにその後に variant code が続きます。 バリアント・コードは、リソース・バンドル内の言語の方言または種類をさらに規定します。 例えば、バリアント・コード A および B を使用して、ノルウェーで話される 2 種類の ノルウェー語を区別できます。 これらの 2 つのリソース・バンドルは、resourceBundle_no_NO_A.properties および resourceBundle_no_NO_B.properties のような名前になります。 また、ノルウェー語の標準タイプをロケール no_NO として定義し、 バリアントを no_NO_B として定義できます。バリアント・コードは 、Java 仕様の一部ではありません。
ユーザーが、アプリケーション内のロケールに正確に一致するロケールを要求すると、そのロケールを示すリソース・バンドルが、 アプリケーションで使用されるストリングのソースとなります。ユーザーが、アプリケーション内のロケールより限定的なロケールを要求すると、アプリケーションでは、より一般的なロケールを 持つリソース・バンドルが使用されます。 例えば、ユーザーがロケール no_NO_B を要求したが、使用可能なノルウェー語のロケールは no_NO のみである場合は、ロケール no_NO が使用されます。
プログラミングでは、デフォルトのリソース・バンドルを組み込むことをお勧めします。 デフォルトのリソース・バンドルは、ユーザーがロケールを要求しなかった場合、またはアプリケーションでサポートされるもの より一般的なロケールを要求した場合に使用されます。 デフォルトのリソース・バンドルにはロケールはありません。 デフォルトのリソース・バンドルが指定されない場合、または Web ページ用のロケールをロードできない場合は、そのページで 定義時に指定されたストリング値が使用されます。