Locale とは何なのか


これは何

  • computer software における Locale について調べたメモ

Locale

  • Locale とは、特定の言語や地域に関連した設定
  • 日付や数値の表示形式、文字列の比較ルールなどを制御するために使用する
  • Locale を適切に利用することで、ユーザーの文化や言語に合わせた表示や動作が可能となる

Locale (computer software) - Wikipedia
https://en.wikipedia.org/wiki/Locale_(computer_software)

Linux での locale コマンド

  • OS に設定されている locale 情報を取得するコマンド

    $ locale
    LANG=C.UTF-8
    LANGUAGE=
    LC_CTYPE="C.UTF-8"
    LC_NUMERIC="C.UTF-8"
    LC_TIME="C.UTF-8"
    LC_COLLATE="C.UTF-8"
    LC_MONETARY="C.UTF-8"
    LC_MESSAGES="C.UTF-8"
    LC_PAPER="C.UTF-8"
    LC_NAME="C.UTF-8"
    LC_ADDRESS="C.UTF-8"
    LC_TELEPHONE="C.UTF-8"
    LC_MEASUREMENT="C.UTF-8"
    LC_IDENTIFICATION="C.UTF-8"
    LC_ALL=

locale(1) - Linux manual page
https://man7.org/linux/man-pages/man1/locale.1.html

locale(1) — manpages-ja — Debian unstable — Debian Manpages
https://manpages.debian.org/unstable/manpages-ja/locale.1.ja.html

JavaScript で Locale を使用し、数値を 3桁 単位でカンマ区切りで表示する

Locale の例

> const number = 1000;
undefined
> console.log(number.toLocaleString());
1,000
> console.log(number.toLocaleString('de-DE'));
1.000
  • JavaScript では Number オブジェクトが toLocaleString というメソッドを持っており、これで実現できる
  • toLocaleString では引数として locales を指定し、その locale に応じたフォーマットに変換した文字列を得ることが出来る

Number.prototype.toLocaleString() - JavaScript | MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString

> console.log(new Intl.NumberFormat('ja-JP', { style: 'currency', currency: 'JPY' }).format(number));
1,000
  • JavaScript では Intl (international) オブジェクトというのが提供されており、ここで Locale 関係の機能が提供されている

Intl - JavaScript | MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Intl