Задайте питання та отримайте підсумок документа, вказавши цю сторінку та обраного вами постачальника штучного інтелекту
Історія версій
- "Початкова історія"v9.7.103.11.2026
Вміст цієї сторінки перекладено за допомогою штучного інтелекту.
Переглянути останню версію оригінального вмісту англійськоюЯкщо у вас є ідея щодо покращення цієї документації, будь ласка, долучіться, надіславши pull request на GitHub.
Посилання на документацію на GitHubСкопіювати документацію у форматі Markdown в буфер обміну
Плагін Prettier
prettier-plugin-intlayer упорядковує ключі ваших перекладів у фіксованому порядку щоразу, коли Prettier форматує файл. Дифи залишаються невеликими, конфлікти злиття трапляються рідше, а відсутню локаль легко помітити.
Скопіюйте код у буфер обміну
Встановлення
Скопіюйте код у буфер обміну
Потрібен Prettier версії 3 або новішої.
Якщо у вашому проекті вже використовується Prettier, команда intlayer init prettier автоматично встановить плагін і додасть його до вашої конфігурації.
Використання
Додайте плагін до конфігурації Prettier:
Скопіюйте код у буфер обміну
Щоб застосовувати його лише до оголошень контенту, скористайтеся секцією override:
Скопіюйте код у буфер обміну
Що сортується
t(): локалі
Закріплені локалі йдуть першими (en за замовчуванням). Решта локалей ідуть в алфавітному порядку.
Скопіюйте код у буфер обміну
plural(): порядок CLDR
Категорії розташовуються від найменшої кількості до запасного варіанта (fallback): zero, one, two, few, many, other.
Скопіюйте код у буфер обміну
enu(): висхідні порогові значення
Умови сортуються за числом, потім за оператором (<1, <=1, 1, >=1, >1). Варіант fallback розташовується останнім.
Скопіюйте код у буфер обміну
Під час виконання спрацьовує перша умова, що збіглася. Плагін застосовує новий порядок лише тоді, коли кожна кількість все одно призводить до того самого контенту. Коли порядок визначає результат, об'єкт залишається без змін. Наприклад, у { '<1': …, '<=-2.3': … } ключ '<1' перехоплює будь-яке від'ємне число.
select(): за алфавітом
Варіанти сортуються за алфавітом, а fallback розташовується останнім.
Скопіюйте код у буфер обміну
Без ключа fallback або other останній варіант використовується як запасний. Цей випадок залишається в кінці, і сортуються лише варіанти перед ним.
Файли .content.json
Серіалізована форма сортується так само: { "nodeType": "translation", "translation": { … } }, як і вузли plural, enumeration та select.
Ключі контенту (опціонально)
Якщо встановлено intlayerSortContentKeys: true, плагін також сортує ключі content словника за алфавітом на кожному рівні вкладеності. Це застосовується лише до файлів *.content.*.
Скопіюйте код у буфер обміну
Сортування проходить крізь кожну допоміжну функцію (t, plural, enu, select, cond, gender, md, insert, nest, file…), щоб дістатися до об'єктів усередині них. Внутрішня карта ключів кожного хелпера зберігає свій власний порядок. Ключі, передані в cond() та gender(), ніколи не перевпорядковуються, оскільки їхній останній ключ є резервним варіантом. Поля поруч із content (key, title, locale…) залишаються без змін.
Опції
Відкрийте таблицю в модальному вікні, щоб чітко переглянути всі дані
| Опція | За замовчуванням | Опис |
|---|---|---|
intlayerPinnedLocales | ["en"] | Локалі, які залишаються першими в t(), у зазначеному порядку. Передайте [], щоб сортувати всі. |
intlayerSortContentKeys | false | У файлах *.content.* додатково сортує ключі контенту словника та вкладені об'єкти. |
Що залишається без змін
- Об'єкти з оператором поширення (
...base), обчислюваним ключем ([key]), методом або повторюваним ключем. - Карти
plural()із ключем, який не є категорією CLDR. - Карти
enu(), де новий порядок змінив би розв'язаний контент. - Виклики інших функцій з іменами допоміжних функцій, яким передано не об'єктний аргумент.
Коментарі переміщуються разом із ключем, до якого вони належать.
Підтримувані парсери
babel, babel-flow, babel-ts, typescript, flow, acorn, espree, meriyah, json, json5 та jsonc. Блоки <script> у файлах Vue, Svelte та Astro форматуються за допомогою цих парсерів.
Відоме обмеження. Prettier запускає лише один плагін на парсер. Якщо інший плагін також замінює парсери JavaScript/TypeScript (наприкладprettier-plugin-tailwindcss), до цих файлів застосовуватиметься лише останній зі списку. Обмежте сферу застосуванняprettier-plugin-intlayerфайлами*.content.*за допомогою override, щоб уникнути конфлікту.
