ロケール

言語・地域・書式設定の組み合わせ。ja-JP (日本語・日本)、en-US (英語・米国) などの識別子で表す。

ロケール (locale) は、言語・地域・書式設定の組み合わせを表す識別子です。ja-JP (日本語・日本)、en-US (英語・米国)、zh-CN (中国語・中国) のように、ISO 639-1 の言語コードと ISO 3166-1 の地域コードで構成されます。同じ言語でも地域によって表記規則が異なるため (例: en-US と en-GB では日付形式やスペルが異なる)、言語コードだけでなく地域コードも重要です。

ロケールは日付形式 (2025/01/15 vs 01/15/2025 vs 15.01.2025)、数値形式 (1,000.50 vs 1.000,50)、通貨記号 (¥ vs $ vs €)、ソート順序、テキストの方向 (LTR/RTL) など、テキスト表示のあらゆる側面に影響します。たとえば、ドイツ語ロケール (de-DE) では小数点にカンマを使い、桁区切りにピリオドを使うため、「1.000」は千を意味します。この違いを無視すると、金額や数量の表示で深刻なバグが発生します。国際化プログラミングの書籍でロケールの体系を学べます。

JavaScript では Intl オブジェクトがロケール対応の書式設定を提供します。Intl.NumberFormat('ja-JP', { style: 'currency', currency: 'JPY' }) で「¥1,000」のような日本式の通貨書式が得られます。Intl.DateTimeFormatIntl.CollatorIntl.PluralRules なども用意されており、ロケールに応じた日付表示、文字列ソート、複数形の処理が可能です。

Web サイトの多言語対応では、ユーザーのブラウザロケール (navigator.language) を検出して適切な言語版を表示する仕組みが一般的です。ただし、ブラウザのロケール設定がユーザーの希望言語と一致しないケースもあるため、言語切替の UI を必ず提供すべきです。HTML の lang 属性、hreflang タグ、Accept-Language ヘッダーなど、ロケールに関連する Web 標準は多岐にわたります。

よくある誤解として、ロケールと文字エンコーディングを混同するケースがあります。ロケールは表示形式の規則を定義するものであり、文字の符号化方式 (UTF-8、Shift_JIS など) とは別の概念です。また、ロケール設定を変更しても、テキストデータ自体は変化しません。変わるのはそのデータの表示方法です。

文字数カウントの観点では、ロケールによって同じ情報を表現するのに必要な文字数が大きく異なります。たとえば日付「2025 年 1 月 15 日」は日本語で 11 文字ですが、英語の「January 15, 2025」は 16 文字、ドイツ語の「15. Januar 2025」は 15 文字です。多言語サイトで文字数制限のある UI 要素 (ボタン、ラベルなど) を設計する際は、ロケールごとの文字数の違いを考慮する必要があります。Web 多言語対応の書籍で実装パターンを習得できます。