JavaScript

Intl オブジェクト


編集:2023.01.20 by T.A.

[Edge]。→

言語を考慮した、日時やリストの書式化や、文字列の比較を可能にするオブジェクト。

コンストラクター プロパティ
Intl.Collator()
言語を考慮した文字列の比較を可能にする Intl.Collator オブジェクトのコンストラクター。
Intl.DateTimeFormat()
言語を考慮した日時の書式化を可能にする Intl.DateTimeFormat オブジェクトのコンストラクター。
Intl.DisplayNames()
言語を考慮した、言語、地域、文字体系、通貨の表示名の翻訳を可能にする Intl.DisplayNames オブジェクトのコンストラクターです。
Intl.ListFormat()
言語を考慮したリストの書式化を可能にする Intl.ListFormat オブジェクトのコンストラクターです。
Intl.Locale()
Unicode ロケール識別子を表す Intl.Locale オブジェクトのコンストラクターです。
Intl.NumberFormat()
言語を考慮した数値フォーマットを可能にする Intl.NumberFormat オブジェクトのコンストラクターです。
Intl.PluralRules()
言語を考慮した複数形の書式化を可能にする Intl.PluralRules オブジェクトのコンストラクターです。
Intl.RelativeTimeFormat()
言語を考慮した相対時刻の書式化を可能にする Intl.RelativeTimeFormat オブジェクトのコンストラクターです。
Intl.Segmenter()
言語を考慮した文字列分割を可能にする Intl.Segmenter オブジェクトのコンストラクターです。
メソッド
Intl.getCanonicalLocales()
正規のロケール名を返すメソッド。
Intl.supportedValuesOf()
この実装が対応している一意のカレンダー、照合順序、通貨、計数法、単位値を含む、ソートされた配列を返します。
共通する引数

locales 引数/mdn

locales 引数は、指定された操作に使用するロケールを特定するために使用されます。JavaScript の実装では locales を調べて、表現された指定を満たすものに最も近い、理解可能なロケールを計算します。→

locales は次のものを取ることができます。

後 2 者では、実際に使用されるロケールは、ロケール ネゴシエーションによって決定された、最も良く対応しているロケールになります。

ロケール識別子は以下のものから成る文字列です。

存在するサブ タグやシーケンスはすべて、ハイフン「-」で区切ります。

ロケール識別子は大文字小文字の区別のない ASCII です。しかし、文字体系サブ タグではタイトル ケース(最初の文字が大文字で、以降の文字は小文字)を、地域サブ タグは大文字、それ以外はすべて小文字を使う習慣があります。

例えば、

言語、文字体系、地域(国を含む)、(稀に使用される)変化形を識別するサブ タグは、に登録されています。このレジストリーは長期にわたって定期的に更新されており、実装は常に最新であるとは限らないため、サブ タグが広く対応されていることを頼りすぎないようにしてください。

拡張シーケンス

BCP 47 拡張シーケンスは、単一の数字または文字(「x」以外)と、ハイフン「-」で区切られた 1 つ以上の 2 から 8 文字の文字または数字によるサブ タグで構成されています。それぞれの数字または文字に対して 1 つのシーケンスのみが許可されていますので、"de-a-foo-a-foo" は無効です。BCP 47 拡張サブタグは で定義されています。

現在は 2 つの拡張機能の意味のみが定義されています:

ロケールのマッチング アルゴリズム

ロケールを照合・一致させるときの処理思考。

options 引数/mdn

options 引数は、コンストラクターや関数ごとに異なるプロパティをもつオブジェクトである必要があります。

options 引数が与えられなかった場合、または、未定義の場合、すべてのプロパティに対して既定値が使用されます。

言語を意識するすべてのコンストラクターや関数が対応しているプロパティが一つあります。

options
localeMatcher プロパティ
以下の何れかの値を指定する必要があります。いずれも文字列として指定。
lookup "lookup" マッチャー。 で指定された Lookup アルゴリズムに従います。
best fit "best fit" マッチャー。ランタイムが少なくとも、あるいは場合によっては、Lookup アルゴリズムの結果よりもリクエストに適合したロケールを提供します。
DA=new Intl.DateTimeFormat("ja", {dateStyle:'full', timeStyle:'full'});  //日本語、日付スタイル、時刻スタイル。
D=DA.format(new Date("2012-05-24T19:23:30"));  //2012年5月24日 19時23分30秒。
	//=[string]:2012年5月24日木曜日 19時23分30秒 日本標準時

DA=new Intl.DateTimeFormat("en", {dateStyle:'full', timeStyle:'full'});  //英語、日付スタイル、時刻スタイル。
D=DA.format(new Date("2012-05-24T19:23:30"));  //2012年5月24日 19時23分30秒。
	//=[string]:Thursday, May 24, 2012 at 7:23:30 PM Japan Standard Time

new Intl.DateTimeFormat()format()

new Date(String)

DA=new Intl.NumberFormat("ja", {style:'currency', currency:'JPY'}); //日本語、通貨国。
D=DA.format(12345.6); //=[string]:¥12,346
DA=new Intl.NumberFormat("ja", {style:'currency', currency:'EUR'}); //日本語、通貨国。
D=DA.format(12345.6); //=[string]:=[string]:€12,345.60

new Intl.NumberFormat()format()


テスト