このページとあなたの好きなAIアシスタントを使ってドキュメントを要約します
このドキュメントは古く、ベース版は次の日付に更新されました: 2026年1月20日.
英語のドキュメントへバージョン履歴
- "Vueフォーマッターを追加"v5.8.02025/8/20
- "フォーマッターのドキュメントを追加"v5.8.02025/8/18
- "Vueフォーマッターを追加"v5.8.02025/8/20
- "フォーマッターのドキュメントを追加"v5.8.02025/8/18
- "リストフォーマッターのドキュメントを追加"v5.8.02025/8/20
- "追加のIntlユーティリティ(DisplayNames、Collator、PluralRules)を追加"v5.8.02025/8/20
- "ロケールユーティリティ(getLocaleName、getLocaleLang、getLocaleFromPathなど)を追加"v5.8.02025/8/20
- "コンテンツ処理ユーティリティ(getContent、getTranslation、getIntlayerなど)を追加"v5.8.02025/8/20
このページのコンテンツはAIを使用して翻訳されました。
英語の元のコンテンツの最新バージョンを見るこのドキュメントを改善するアイデアがある場合は、GitHubでプルリクエストを送信することで自由に貢献してください。
ドキュメントへのGitHubリンクドキュメントのMarkdownをクリップボードにコピー
Intlayer フォーマッター
概要
Intlayerは、ネイティブのIntl APIの上に構築された軽量なヘルパー群と、重いフォーマッターを繰り返し構築することを避けるためのキャッシュされたIntlラッパーを提供します。これらのユーティリティは完全にロケール対応しており、メインのintlayerパッケージから利用可能です。
インポート
Reactを使用している場合は、フックも利用可能です。詳細はreact-intlayer/formatを参照してください。
キャッシュされたIntl
エクスポートされるIntlは、グローバルなIntlの薄いキャッシュラッパーです。NumberFormat、DateTimeFormat、RelativeTimeFormat、ListFormat、DisplayNames、Collator、およびPluralRulesのインスタンスをメモ化し、同じフォーマッターを繰り返し再構築するのを防ぎます。
フォーマッターの構築は比較的コストが高いため、このキャッシュは動作を変えずにパフォーマンスを向上させます。ラッパーはネイティブのIntlと同じAPIを公開しているため、使用方法は同一です。
- キャッシュはプロセス単位で行われ、呼び出し元には透過的です。
環境にIntl.DisplayNamesが存在しない場合、開発者向けの警告が一度だけ表示されます(ポリフィルの検討を推奨)。
例:
追加のIntlユーティリティ
フォーマッターヘルパーに加えて、キャッシュされたIntlラッパーを直接使用して他のIntl機能も利用できます。
Intl.DisplayNames
言語、地域、通貨、スクリプトのローカライズされた名前の取得:
Intl.Collator
ロケールに対応した文字列の比較とソートのために:
Intl.PluralRules
異なるロケールでの複数形の判定のために:
ロケールユーティリティ
getLocaleName(displayLocale, targetLocale?)
あるロケールの名前を別のロケールで取得します:
- displayLocale: 名前を取得する対象のロケール
- targetLocale: 名前を表示するロケール(省略時は displayLocale と同じ)
getLocaleLang(locale?)
ロケール文字列から言語コードを抽出します:
- locale: 言語コードを抽出する対象のロケール(省略時は現在のロケール)
getLocaleFromPath(inputUrl)
URLまたはパス名からロケール部分を抽出します:
- inputUrl: 処理する完全なURL文字列またはパス名
- returns: 検出されたロケール、またはロケールが見つからない場合はデフォルトのロケール
getPathWithoutLocale(inputUrl, locales?)
URLまたはパス名からロケールセグメントを削除します:
- inputUrl: 処理する完全なURL文字列またはパス名
- locales: サポートされているロケールのオプション配列(デフォルトは設定されたロケール)
- returns: ロケール部分を除いたURL
getLocalizedUrl(url, currentLocale, locales?, defaultLocale?, prefixDefault?)
現在のロケールに対応したローカライズされたURLを生成します:
- url: ローカライズする元のURL
- currentLocale: 現在のロケール
- locales: サポートされているロケールのオプション配列(デフォルトは設定されたロケール)
- defaultLocale: オプションのデフォルトロケール(設定されたデフォルトロケールが使用されます)
- prefixDefault: デフォルトロケールにプレフィックスを付けるかどうか(設定された値が使用されます)
getHTMLTextDir(locale?)
ロケールに対するテキストの方向を返します:
- locale: テキスト方向を取得するロケール(デフォルトは現在のロケール)
- returns:
"ltr"、"rtl"、または"auto"
コンテンツ処理ユーティリティ
getContent(node, nodeProps, locale?)
すべての利用可能なプラグイン(翻訳、列挙、挿入など)を使ってコンテンツノードを変換します:
- node: 変換するコンテンツノード
- nodeProps: 変換コンテキストのプロパティ
- locale: オプションのロケール(デフォルトは設定されたデフォルトロケール)
getTranslation(languageContent, locale?, fallback?)
言語コンテンツオブジェクトから特定のロケールのコンテンツを抽出します:
- languageContent: ロケールをコンテンツにマッピングしたオブジェクト
- locale: 対象のロケール(デフォルトは設定されたデフォルトロケール)
- fallback: デフォルトロケールにフォールバックするかどうか(デフォルトは true)
getIntlayer(dictionaryKey, locale?, plugins?)
キーによって辞書からコンテンツを取得し変換します:
- dictionaryKey: 取得する辞書のキー
- locale: オプションのロケール(デフォルトは設定されたデフォルトロケール)
- plugins: オプションのカスタム変換プラグインの配列
getIntlayerAsync(dictionaryKey, locale?, plugins?)
遠隔の辞書から非同期にコンテンツを取得します:
- dictionaryKey: 取得する辞書のキー
- locale: オプションのロケール(デフォルトは設定されたデフォルトロケール)
- plugins: オプションのカスタム変換プラグインの配列
フォーマッター
以下のすべてのヘルパーは intlayer からエクスポートされています。
number(value, options?)
数値をロケールに応じた区切りと小数点でフォーマットします。
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }
例:
percentage(value, options?)
数値をパーセンテージ文字列としてフォーマットします。
動作: 1より大きい値は全体のパーセンテージとして解釈され正規化されます(例:25 → 25%、0.25 → 25%)。
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }
例:
currency(value, options?)
値をローカライズされた通貨形式でフォーマットします。デフォルトは小数点以下2桁の USD です。
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }- 共通フィールド:
currency(例:"EUR")、currencyDisplay("symbol" | "code" | "name")
- 共通フィールド:
例:
date(date, optionsOrPreset?)
Intl.DateTimeFormat を使って日付/時刻の値をフォーマットします。
- date:
Date | string | number - optionsOrPreset:
Intl.DateTimeFormatOptions & { locale?: LocalesValues }または以下のプリセットのいずれか:- プリセット:
"short" | "long" | "dateOnly" | "timeOnly" | "full"
- プリセット:
例:
relativeTime(from, to = new Date(), options?)
Intl.RelativeTimeFormat を使って、2つの時点間の相対時間をフォーマットします。
- 最初の引数に "now" を渡し、2番目に対象の日時を渡すと自然な表現が得られます。
- from:
Date | string | number - to:
Date | string | number(デフォルトはnew Date()) - options:
{ locale?: LocalesValues; unit?: Intl.RelativeTimeFormatUnit; numeric?: Intl.RelativeTimeFormatNumeric; style?: Intl.RelativeTimeFormatStyle }- デフォルトの
unitは"second"です。
- デフォルトの
例:
units(value, options?)
Intl.NumberFormat の style: 'unit' を使って数値をローカライズされた単位文字列としてフォーマットします。
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }- 共通フィールド:
unit(例:"kilometer"、"byte")、unitDisplay("short" | "narrow" | "long") - デフォルト:
unit: 'day'、unitDisplay: 'short'、useGrouping: false
- 共通フィールド:
例:
compact(value, options?)
数値をコンパクト表記(例: 1.2K、1M)でフォーマットします。
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }(内部でnotation: 'compact'を使用)
例:
list(values, options?)
Intl.ListFormatを使用して、値の配列をローカライズされたリスト文字列にフォーマットします。
- values:
(string | number)[] - options:
Intl.ListFormatOptions & { locale?: LocalesValues }- 共通フィールド:
type("conjunction" | "disjunction" | "unit")、style("long" | "short" | "narrow") - デフォルト:
type: 'conjunction'、style: 'long'
- 共通フィールド:
例:
注意事項
- すべてのヘルパーは
string入力を受け入れます。内部的に数値や日付に変換されます。 - ロケールは指定されない場合、設定された
internationalization.defaultLocaleがデフォルトになります。 - これらのユーティリティは薄いラッパーです。高度なフォーマットが必要な場合は、標準の
Intlオプションを直接渡してください。
エントリーポイントと再エクスポート(@index.ts)
フォーマッターはコアパッケージに存在し、ランタイム間でのインポートを使いやすくするために上位パッケージから再エクスポートされています。
例:
React
クライアントコンポーネント:
サーバーコンポーネント(または React Server ランタイム):
これらのフックはIntlayerProviderまたはIntlayerServerProviderからロケールを考慮します
Vue
クライアントコンポーネント:
これらのコンポーザブルは、注入された IntlayerProvider からロケールを考慮します