Intl.DisplayNames【国際化表示名】オブジェクト

メモ

  • 国際化対応表示名 (言語地域文字体系通貨) を操作
  • 基本的な操作

関連

外部リンク

  • ECMA-402 (英語)
    ECMA-402:DisplayNames Objects
    ES2021 Intl (8) ES2020 Intl (7) ES2019 Intl (6) ES2018 Intl (5) ES2017 Intl (4) ES2016 Intl (3) ES2015 Intl (2) ES Intl (1)

コンストラクタ・メソッド

コンストラクタ説明
new Intl.DisplayNames ( locales, options ) コンストラクタ
メソッド説明
Intl.DisplayNames.prototype.of ( code )表示名取得
Intl.DisplayNames.prototype.resolvedOptions ( )ロケール・オプション取得
Intl.DisplayNames.supportedLocalesOf ( locales [, options ] ) サポート ロケール取得

プロパティ

プロパティ説明
Intl.DisplayNames.prototype[ @@toStringTag ] タグ (デフォルト:'Intl.DisplayNames')
実装:DisplayNames[ Symbol.toStringTag ]
Intl.DisplayNames.prototype.constructorコンストラクタ定義
Intl.DisplayNames.prototypeプロトタイプ
const names = new Intl.DisplayNames("ja", { type: 'language'});

// [ @@toStringTag ]
console.log(names[Symbol.toStringTag]);
// 出力例:Intl.DisplayNames

console.log(names.constructor);
// 出力例:function DisplayNames()

console.log(Intl.DisplayNames.prototype);
// 出力例:
// Object { … }
//   constructor: function DisplayNames()
//   of: function of()
//   resolvedOptions: function resolvedOptions()
//   Symbol(Symbol.toStringTag): "Intl.DisplayNames"
//   <prototype>: Object { … }

new Intl.DisplayNames【コンストラクタ】

メモ

構文

new Intl.DisplayNames(locales, options)

戻り値Intl.DisplayNames【国際化表示名】 オブジェクト
localesロケール (BCP 47 の言語タグ)
     文字列:1ロケール指定
     文字列の配列:複数指定可 (適切な1ロケールを自動選択)
optionsオプション の組合せ

locales (ロケール)

BCP 47 の言語タグ (一例)
説明
ja日本語
ja-JP日本語 (日本)
en-US英語 (アメリカ)
en-GB英語 (イギリス)
de-DEドイツ語 (ドイツ)
fr-FRフランス語 (フランス)

options (オプション)

オプション値 (太字:デフォルト値)説明
localeMatcher'lookup':Lookupアルゴリズム
'best fit':最適アルゴリズム
ロケールマッチングアルゴリズム
style'narrow':縮小形式
'short':短い形式
'long':長い形式
スタイル
type (必須)'language':言語
'region':地域
'script':文字体系
'currency':通貨
タイプ
fallback'code':コード
'none':なし
代替名 (表示名がない場合)

例 (1/2)

of( )【表示名取得】の 例 も参照

// 言語
let namesJ = new Intl.DisplayNames('ja', { type: 'language' });
let namesE = new Intl.DisplayNames('en', { type: 'language' });
for (let code of ['ja', 'ja-JP', 'en-US', 'en-GB']) {
  console.log(namesJ.of(code), '/', namesE.of(code));
}
// 出力例:日本語 / Japanese
// 出力例:日本語 (日本) / Japanese (Japan)
// 出力例:アメリカ英語 / American English
// 出力例:イギリス英語 / British English

// 地域
namesJ = new Intl.DisplayNames('ja', { type: 'region' });
namesE = new Intl.DisplayNames('en', { type: 'region' });
for (let code of ['JP', 'US', 'GB']) {
  console.log(namesJ.of(code), '/', namesE.of(code));
}
// 出力例:日本 / Japan
// 出力例:アメリカ合衆国 / United States
// 出力例:イギリス / United Kingdom

// 文字体系
namesJ = new Intl.DisplayNames('ja', { type: 'script' });
namesE = new Intl.DisplayNames('en', { type: 'script' });
for (let code of ['Hani', 'Hira', 'Kana']) {
  console.log(namesJ.of(code), '/', namesE.of(code));
}
// 出力例:漢字 / Han
// 出力例:ひらがな / Hiragana
// 出力例:カタカナ / Katakana

// 通貨
namesJ = new Intl.DisplayNames('ja', { type: 'currency' });
namesE = new Intl.DisplayNames('en', { type: 'currency' });
for (let code of ['JPY', 'USD', 'EUR']) {
  console.log(namesJ.of(code), '/', namesE.of(code));
}
// 出力例:日本円 / Japanese Yen
// 出力例:米ドル / US Dollar
// 出力例:ユーロ / Euro

例 (2/2)

// ISO 639-2
const namesJ = new Intl.DisplayNames(['ng', 'jpn', 'eng'], { type: 'region' });
const namesE = new Intl.DisplayNames(['ng', 'eng', 'jpn'], { type: 'region' });
for (let code of ['JP', 'US', 'GB']) {
  console.log(namesJ.of(code), '/', namesE.of(code));
}
// 出力例:日本 / Japan
// 出力例:アメリカ合衆国 / United States
// 出力例:イギリス / United Kingdom

Intl.DisplayNames.prototype.of【表示名取得】

メモ

構文

DisplayNames.of(code)

表示名 (実装依存)
codeタイプ別コード

code (タイプ別コード)

タイプcode (タイプ別コード)
'language'
(言語)
言語コード 'ja':日本語
'ain':アイヌ語
'en':英語
'en-US':アメリカ英語
'en-GB':イギリス英語
'region'
(地域)
リージョンコード 'JP':日本
'US':アメリカ
'GB':イギリス
'script'
(文字体系)
スクリプトコード 'Hani':漢字 (Han:漢王朝)
'Hira':ひらがな
'Kana':カタカナ
'Hrkt':仮名 (ひらがな+カタカナ)
'Jpan':日本語の文字 (漢字+ひらがな+カタカナ)
'Zsye':絵文字
'Latn':ラテン文字
'currency'
(通貨)
通貨コード 'JPY':日本円
'USD':米ドル
'GBP':英国ポンド
'EUR':ユーロ

例 (言語)

for (let locales of ['ja', 'en']) {
  for (let code of ['ja', 'ain', 'ja-JP', 'en', 'en-US', 'en-GB', 'eo']) {
    let str = '';
    for (let style of ['narrow', 'short', 'long']) {
      displayNames = new Intl.DisplayNames(locales, { type: 'language', style: style });
      name = displayNames.of(code);
      str += ' [' + name + ']';
    }
    console.log(locales + " of('" + code + "')" + str);
  }
}
// 出力例:ja of('ja') [日本語] [日本語] [日本語]
// 出力例:ja of('ain') [アイヌ語] [アイヌ語] [アイヌ語]
// 出力例:ja of('ja-JP') [日本語 (日本)] [日本語 (日本)] [日本語 (日本)]
// 出力例:ja of('en') [英語] [英語] [英語]
// 出力例:ja of('en-US') [英語(米国)] [英語(米国)] [アメリカ英語]
// 出力例:ja of('en-GB') [英語(英国)] [英語(英国)] [イギリス英語]
// 出力例:ja of('eo') [エスペラント語] [エスペラント語] [エスペラント語]
// 出力例:en of('ja') [Japanese] [Japanese] [Japanese]
// 出力例:en of('ain') [Ainu] [Ainu] [Ainu]
// 出力例:en of('ja-JP') [Japanese (Japan)] [Japanese (Japan)] [Japanese (Japan)]
// 出力例:en of('en') [English] [English] [English]
// 出力例:en of('en-US') [US English] [US English] [American English]
// 出力例:en of('en-GB') [UK English] [UK English] [British English]
// 出力例:en of('eo') [Esperanto] [Esperanto] [Esperanto]

例 (地域)

for (let locales of ['ja', 'en']) {
  for (let code of ['JP', 'US', 'GB']) {
    let str = '';
    for (let style of ['narrow', 'short', 'long']) {
      displayNames = new Intl.DisplayNames(locales, { type: 'region', style: style });
      name = displayNames.of(code);
      str += ' [' + name + ']';
    }
    console.log(locales + " of('" + code + "')" + str);
  }
}
// 出力例:ja of('JP') [日本] [日本] [日本]
// 出力例:ja of('US') [アメリカ] [アメリカ] [アメリカ合衆国]
// 出力例:ja of('GB') [英国] [英国] [イギリス]
// 出力例:en of('JP') [Japan] [Japan] [Japan]
// 出力例:en of('US') [US] [US] [United States]
// 出力例:en of('GB') [UK] [UK] [United Kingdom]

例 (文字体系)

for (let locales of ['ja', 'en']) {
  for (let code of ['Hani', 'Hira', 'Kana', 'Hrkt', 'Jpan', 'Zsye', 'Latn']) {
    let str = '';
    for (let style of ['narrow', 'short', 'long']) {
      displayNames = new Intl.DisplayNames(locales, { type: 'script', style: style });
      name = displayNames.of(code);
      str += ' [' + name + ']';
    }
    console.log(locales + " of('" + code + "')" + str);
  }
}
// 出力例:ja of('Hani') [漢字] [漢字] [漢字]
// 出力例:ja of('Hira') [ひらがな] [ひらがな] [ひらがな]
// 出力例:ja of('Kana') [カタカナ] [カタカナ] [カタカナ]
// 出力例:ja of('Hrkt') [仮名] [仮名] [仮名]
// 出力例:ja of('Jpan') [日本語の文字] [日本語の文字] [日本語の文字]
// 出力例:ja of('Zsye') [絵文字] [絵文字] [絵文字]
// 出力例:ja of('Latn') [ラテン文字] [ラテン文字] [ラテン文字]
// 出力例:en of('Hani') [Han] [Han] [Han]
// 出力例:en of('Hira') [Hiragana] [Hiragana] [Hiragana]
// 出力例:en of('Kana') [Katakana] [Katakana] [Katakana]
// 出力例:en of('Hrkt') [Japanese syllabaries] [Japanese syllabaries] [Japanese syllabaries]
// 出力例:en of('Jpan') [Japanese] [Japanese] [Japanese]
// 出力例:en of('Zsye') [Emoji] [Emoji] [Emoji]
// 出力例:en of('Latn') [Latin] [Latin] [Latin]

例 (通貨)

for (let locales of ['ja', 'en']) {
  for (let code of ['JPY', 'USD', 'GBP', 'EUR']) {
    let str = '';
    for (let style of ['narrow', 'short', 'long']) {
      displayNames = new Intl.DisplayNames(locales, { type: 'currency', style: style });
      name = displayNames.of(code);
      str += ' [' + name + ']';
    }
    console.log(locales + " of('" + code + "')" + str);
  }
}
// 出力例:ja of('JPY') [¥] [¥] [日本円]
// 出力例:ja of('USD') [$] [$] [米ドル]
// 出力例:ja of('GBP') [£] [£] [英国ポンド]
// 出力例:ja of('EUR') [€] [€] [ユーロ]
// 出力例:en of('JPY') [JPY] [¥] [Japanese Yen]
// 出力例:en of('USD') [USD] [$] [US Dollar]
// 出力例:en of('GBP') [GBP] [£] [British Pound]
// 出力例:en of('EUR') [EUR] [€] [Euro]

Intl.DisplayNames.prototype.resolvedOptions【ロケール・オプション取得】

メモ

  • ロケール・オプションを取得
  • 関連
  • 外部リンク
    • ECMA-402 (英語)
      ECMA-402:Intl.DisplayNames.prototype.resolvedOptions ()
      ES2021 Intl (8) ES2020 Intl (7) ES2019 Intl (6) ES2018 Intl (5) ES2017 Intl (4) ES2016 Intl (3) ES2015 Intl (2) ES Intl (1)

構文

DisplayNames.resolvedOptions( )

戻り値オブジェクト (下記プロパティ有効)
プロパティ説明
localeロケール
styleスタイル
typeタイプ
fallback代替名

let names = new Intl.DisplayNames('ja', { type: 'language' });
console.log(names.resolvedOptions());
// 出力例:Object { locale: "ja", style: "long", type: "language", fallback: "code" }

names = new Intl.DisplayNames('en', { type: 'region', style: 'narrow' });
console.log(names.resolvedOptions());
// 出力例:Object { locale: "en", style: "narrow", type: "region", fallback: "code" }

Intl.DisplayNames.supportedLocalesOf【サポート ロケール取得】

メモ

  • 指定したロケールから、サポート対象のロケールを取得
  • 外部リンク
    • ECMA-402 (英語)
      ECMA-402:Intl.DisplayNames.supportedLocalesOf ( locales [ , options ] )
      ES2021 Intl (8) ES2020 Intl (7) ES2019 Intl (6) ES2018 Intl (5) ES2017 Intl (4) ES2016 Intl (3) ES2015 Intl (2) ES Intl (1)

構文

Intl.DisplayNames.supportedLocalesOf( locales [, options]) 

戻り値サポートされるロケールの配列
localesBCP 47 言語タグの文字列 または その配列
(new DisplayNames【コンストラクタ】ロケール詳細 を参照)
optionsマッチングオプション (localeMatcher【ロケールマッチングアルゴリズム】)
(new DisplayNames【コンストラクタ】オプション詳細 を参照)

console.log(Intl.DisplayNames.supportedLocalesOf('ja'));
// 出力例:Array [ "ja" ]

console.log(Intl.DisplayNames.supportedLocalesOf('ng'));
// 出力例:Array []

let locales = ['ng', 'ja', 'ja-JP', 'en', 'en-US', 'en-GB'];
console.log(Intl.DisplayNames.supportedLocalesOf(locales));
// 出力例:Array(5) [ "ja", "ja-JP", "en", "en-US", "en-GB" ]

locales = ['ng', 'jpn', 'jpn-JP', 'eng', 'eng-US', 'eng-GB'];
console.log(Intl.DisplayNames.supportedLocalesOf(locales));
// 出力例:Array(5) [ "ja", "ja-JP", "en", "en-US", "en-GB" ]

console.log(Intl.DisplayNames.supportedLocalesOf(locales, { localeMatcher: 'lookup' }));
// 出力例:Array(5) [ "ja", "ja-JP", "en", "en-US", "en-GB" ]