Задайте питання та отримайте підсумок документа, вказавши цю сторінку та обраного вами постачальника штучного інтелекту
Ця документація застаріла, базову версію оновлено станом на 20 січня 2026 р..
Перейти до англійської версії документаІсторія версій
- "Видалено getIntlayerAsync з форматерів"v6.2.014.10.2025
- "Додано форматери для Vue"v5.8.020.08.2025
- "Додано документацію щодо форматерів"v5.8.018.08.2025
- "Додано документацію для форматера списків"v5.8.020.08.2025
- "Додано додаткові утиліти Intl (DisplayNames, Collator, PluralRules)"v5.8.020.08.2025
- "Додано утиліти для локалі (getLocaleName, getLocaleLang, getLocaleFromPath тощо)"v5.8.020.08.2025
- "Додано утиліти обробки контенту (getContent, getTranslation, getIntlayer тощо)"v5.8.020.08.2025
Вміст цієї сторінки перекладено за допомогою штучного інтелекту.
Переглянути останню версію оригінального вмісту англійськоюЯкщо у вас є ідея щодо покращення цієї документації, будь ласка, долучіться, надіславши pull request на GitHub.
Посилання на документацію на GitHubСкопіювати документацію у форматі Markdown в буфер обміну
Форматери Intlayer
Зміст
Огляд
Intlayer надає набір легких хелперів, побудованих поверх рідних API Intl, а також кешований обгорток Intl, щоб уникнути повторного створення важких форматерів. Ці утиліти повністю враховують локаль і можуть використовуватися з основного пакета intlayer.
Імпорт
If you are using React, hooks are also available; see react-intlayer/format.
Cached Intl
The exported Intl is a thin, cached wrapper around the global Intl. It memoizes instances of NumberFormat, DateTimeFormat, RelativeTimeFormat, ListFormat, DisplayNames, Collator, and PluralRules, which avoids rebuilding the same formatter repeatedly.
Because formatter construction is relatively expensive, this caching improves performance without changing behavior. The wrapper exposes the same API as the native Intl, so usage is identical.
- Кешування здійснюється на рівні процесу й є прозорим для викликачів.
Якщо 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 або шлях (pathname) для обробки
- returns: Виявлена локаль або локаль за замовчуванням, якщо локаль не знайдена
getPathWithoutLocale(inputUrl, locales?)
Видаляє сегмент локалі з URL або шляху (pathname):
- inputUrl: Повний рядок URL або шлях (pathname) для обробки
- locales: Необов'язковий масив підтримуваних локалей (за замовчуванням використовується сконфігурований список локалей)
- returns: URL без сегменту локалі
getLocalizedUrl(url, currentLocale, locales?, defaultLocale?, prefixDefault?)
Генерує локалізований URL для поточної локалі:
- url: Початковий URL для локалізації
- currentLocale: Поточна локаль
- locales: Необов'язковий масив підтримуваних локалей (за замовчуванням, сконфігуровані локалі)
- defaultLocale: Необов'язкова локаль за замовчуванням (за замовчуванням, сконфігурована локаль за замовчуванням)
- prefixDefault: Чи додавати префікс для локалі за замовчуванням (за замовчуванням, сконфігуроване значення)
getHTMLTextDir(locale?)
Повертає напрямок тексту для локалі:
- locale: Локаль, для якої потрібно отримати напрямок тексту (за замовчуванням, поточна локаль)
- повертає:
"ltr","rtl", або"auto"
Утиліти обробки контенту
getContent(node, nodeProps, locale?)
Перетворює вузол контенту за допомогою всіх доступних плагінів (translation, enumeration, insertion тощо):
- node: Вузол контенту, який потрібно перетворити
- nodeProps: Властивості для контексту перетворення
- locale: Необов'язкова локаль (за замовчуванням використовується налаштована локаль)
getTranslation(languageContent, locale?, fallback?)
Витягує вміст для конкретної локалі з об'єкта мовного вмісту:
- languageContent: Об'єкт, що відображає локалі на відповідний вміст
- locale: Цільова локаль (за замовчуванням використовується налаштована локаль)
- fallback: Чи виконувати відкат до локалі за замовчуванням (за замовчуванням true)
getIntlayer(dictionaryKey, locale?, plugins?)
Отримує та трансформує вміст із словника за ключем:
- dictionaryKey: Ключ словника, який необхідно отримати
- locale: Необов'язкова локаль (за замовчуванням, налаштована локаль за замовчуванням)
- plugins: Необов'язковий масив кастомних плагінів трансформації
Форматувачі
Усі допоміжні функції нижче експортуються з intlayer.
number(value, options?)
Форматує числове значення з урахуванням локалі для групування та десяткових знаків.
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }
Examples:
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(наприклад,"EUR"),currencyDisplay("symbol" | "code" | "name")
- Типові поля:
Приклади:
date(date, optionsOrPreset?)
Форматує значення дати/часу за допомогою Intl.DateTimeFormat.
- date:
Date | string | number - optionsOrPreset:
Intl.DateTimeFormatOptions & { locale?: LocalesValues }або один із пресетів:- Presets:
"short" | "long" | "dateOnly" | "timeOnly" | "full"
- Presets:
Приклади:
relativeTime(from, to = new Date(), options?)
Форматує відносний час між двома моментами за допомогою Intl.RelativeTimeFormat.
- Передайте "now" як перший аргумент, а цільовий, як другий, щоб отримати природне формулювання.
- 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)
Форматери містяться в core-пакеті і реекспортуються з пакетів вищого рівня, щоб зробити імпорти зручними в різних середовищах виконання:
Приклади:
React
Клієнтські компоненти:
Серверні компоненти (або React Server runtime):
Ці хуки братимуть до уваги локаль ізIntlayerProviderабоIntlayerServerProvider
Vue
Клієнтські компоненти:
Ці composables братимуть до уваги локаль із ін'єктованого IntlayerProvider