このページとあなたの好きなAIアシスタントを使ってドキュメントを要約します
バージョン履歴
- "ロケールが渡されない場合、フォーマッターはリクエストのロケール、次に保存されたロケールを使用"v9.6.02026/10/2
- "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パッケージから利用可能です。
どのロケールが使われますか?
locale オプションを渡した場合は常にそれが優先されます。渡さない場合、フォーマッター、そのフック(useNumber、useDate、useList…)および useIntl は次の順序でロケールを決定します:
- プロバイダーのロケール(
IntlayerProvider)、フックとコンポーザブルの場合。 - 現在のリクエストのロケール、サーバー上で Intlayer の統合がリクエストを処理している場合(
express-intlayer、fastify-intlayer、hono-intlayer、remix-intlayer、astro-intlayer…)。 - ブラウザに保存されたロケール(cookie、
localStorage、sessionStorage)、ロケールスイッチャーが保存するもの。 - 設定の
defaultLocale。
コードをクリップボードにコピー
プロバイダーやサーバー統合の外では、サーバーは defaultLocale でフォーマットし、ブラウザは保存されたロケールを使うため、ハイドレーションの不一致が起きることがあります。サーバーでレンダリングするページでは、プロバイダーを使うか locale を明示的に渡してください。
キャッシュされたIntl
エクスポートされるIntlは、グローバルなIntlの薄いキャッシュラッパーです。NumberFormat、DateTimeFormat、RelativeTimeFormat、ListFormat、DisplayNames、Collator、およびPluralRulesのインスタンスをメモ化し、同じフォーマッターを繰り返し再構築するのを防ぎます。
環境にIntl.DisplayNamesが存在しない場合、開発者向けの警告が一度だけ表示されます(ポリフィルの検討を推奨)。
例:
ロケールユーティリティ
getLocaleLang(locale?)
コードをクリップボードにコピー
getLocaleFromPath(inputUrl)
URLまたはパス名からロケール部分を抽出します:
- inputUrl: 処理する完全なURL文字列またはパス名
- returns: 検出されたロケール、またはロケールが見つからない場合はデフォルトのロケール
getLocalizedUrl(url, currentLocale, locales?, defaultLocale?, prefixDefault?)
コードをクリップボードにコピー
getHTMLTextDir(locale?)
ロケールに対するテキストの方向を返します:
コードをクリップボードにコピー
コンテンツ処理ユーティリティ
getContent(node, nodeProps, locale?)
コードをクリップボードにコピー
getTranslation(languageContent, locale?, fallback?)
言語コンテンツオブジェクトから特定のロケールのコンテンツを抽出します:
- languageContent: ロケールをコンテンツにマッピングしたオブジェクト
- locale: 対象のロケール(デフォルトは設定されたデフォルトロケール)
- fallback: デフォルトロケールにフォールバックするかどうか(デフォルトは true)
getIntlayer(dictionaryKey, locale?, plugins?)
コードをクリップボードにコピー
getIntlayerAsync(dictionaryKey, locale?, plugins?)
遠隔の辞書から非同期にコンテンツを取得します:
コードをクリップボードにコピー
フォーマッター
以下のすべてのヘルパーは intlayer からエクスポートされています。
percentage(value, options?)
コードをクリップボードにコピー
フォーマッター関数
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?)
値をローカライズされた通貨としてフォーマットします。デフォルトは USD です。
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }- 一般的:
currency,currencyDisplay("symbol" | "code" | "name")
- 一般的:
コードをクリップボードにコピー
date(date, optionsOrPreset?)
日時の値をフォーマットします。
- date:
Date | string | number - optionsOrPreset:
Intl.DateTimeFormatOptions & { locale?: LocalesValues }またはプリセット:"short" | "long" | "dateOnly" | "timeOnly" | "full"
コードをクリップボードにコピー
relativeTime(from, to?, options?)
2つの時刻間の相対時間をフォーマットします。
- from:
Date | string | number - to:
Date | string | number(デフォルトはnew Date()) - options:
{ locale?, unit?, numeric?, style? }
コードをクリップボードにコピー
units(value, options?)
数値を単位付きでフォーマットします。
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }- 一般的:
unit(例:"kilometer","byte"),unitDisplay("short" | "narrow" | "long")
- 一般的:
コードをクリップボードにコピー
compact(value, options?)
コンパクト記法を使用して数値をフォーマットします。
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }
コードをクリップボードにコピー
list(values, options?)
配列をローカライズされたリスト文字列にフォーマットします。
- values:
(string | number)[] - options:
Intl.ListFormatOptions & { locale?: LocalesValues }- 共通:
type("conjunction" | "disjunction" | "unit"),style("long" | "short" | "narrow")
- 共通:
コードをクリップボードにコピー
キャッシュされた Intl
intlayer からエクスポートされた Intl は、グローバル Intl のキャッシュされたラッパーです。フォーマッター インスタンス(NumberFormat、DateTimeFormat など)をメモ化して、繰り返しの構築を避け、パフォーマンスを向上させます。
コードをクリップボードにコピー
追加の Intl 機能
Intl.DisplayNames
言語、地域、通貨、スクリプトのローカライズされた名前の場合:
コードをクリップボードにコピー
Intl.Collator
ロケール対応の文字列比較とソート:
コードをクリップボードにコピー
Intl.PluralRules
異なるロケールで複数形を決定するため:
コードをクリップボードにコピー
ロケールユーティリティ
units(value, options?)
例:
コードをクリップボードにコピー
getLocaleLang(locale?)
ロケール文字列から言語コードを抽出します:
コードをクリップボードにコピー
compact(value, options?)
例:
コードをクリップボードにコピー
getPathWithoutLocale(inputUrl, locales?)
URLからロケールセグメントを削除します:
コードをクリップボードにコピー
list(values, options?)
例:
コードをクリップボードにコピー
getHTMLTextDir(locale?)
ロケールのテキスト方向を返します:
コードをクリップボードにコピー
コンテンツ処理ユーティリティ
React
クライアントコンポーネント:
コードをクリップボードにコピー
getTranslation(languageContent, locale?, fallback?)
特定のロケールのコンテンツを抽出します:
コードをクリップボードにコピー
Vue
クライアントコンポーネント:
コードをクリップボードにコピー
注記
- すべてのヘルパーは
string入力を受け入れます。内部的には数値または日付に強制されます。 - ロケールが提供されていない場合、設定された
internationalization.defaultLocaleがデフォルトになります。 - これらのユーティリティは薄いラッパーです。高度なフォーマットについては、標準の
Intlオプションをパスしてください。
