Спросите свой вопрос и получите сводку документа, используя эту страницу и выбранного вами поставщика AI
История версий
- "Добавлена глобальная конфигурация"v6.0.020.09.2025
- "Добавлена переменная `{{fileName}}`"v6.0.017.09.2025
- "Инициализация истории"v5.5.1029.06.2025
Содержимое этой страницы было переведено с помощью ИИ.
Смотреть последнюю версию оригинального контента на английскомIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
Переводы файлов декларации автозаполнения контента
Файлы декларации автозаполнения контента, это способ ускорить ваш процесс разработки.
Механизм автозаполнения работает через мастер-слейв отношения между файлами декларации контента. Когда основной (мастер) файл обновляется, Intlayer автоматически применяет эти изменения к производным (автозаполненным) файлам декларации.
Копировать код в буфер обмена
import { Locales, type Dictionary } from "intlayer";const exampleContent = { key: "example", locale: Locales.ENGLISH, autoFill: "./example.content.json", content: { contentExample: "Это пример контента", // пример контента },} satisfies Dictionary;export default exampleContent;Вот файл декларации контента для каждого локаля, использующий инструкцию autoFill.
Затем, когда вы выполните следующую команду:
Копировать код в буфер обмена
npx intlayer fill --file 'src/components/example/example.content.ts'Intlayer автоматически сгенерирует производный файл декларации по пути src/components/example/example.content.json, заполняя все локали, которые ещё не объявлены в основном файле.
Копировать код в буфер обмена
{ "key": "example", "content": { "contentExample": { "nodeType": "translation", "translation": { "fr": "Ceci est un exemple de contenu", "es": "Este es un ejemplo de contenido", }, }, },}После этого оба файла деклараций будут объединены в один словарь, доступный через стандартный хук useIntlayer("example") (react) / композицию (vue).
Формат автозаполненного файла
Рекомендуемый формат для автоматически заполняемых файлов деклараций, JSON, который помогает избежать ограничений форматирования. Однако Intlayer также поддерживает форматы .ts, .js, .mjs, .cjs и другие.
Копировать код в буфер обмена
const exampleContent = { key: "example", autoFill: "./example.filled.content.ts", content: { // Ваше содержимое },};Это сгенерирует файл по адресу:
Копировать код в буфер обмена
src/components/example/example.filled.content.tsГенерация файлов
.js,.tsи подобных работает следующим образом:
- Если файл уже существует, Intlayer будет парсить его с помощью AST (Абстрактного синтаксического дерева), чтобы найти каждое поле и вставить отсутствующие переводы.
- Если файл не существует, Intlayer сгенерирует его, используя шаблон файла декларации содержимого по умолчанию.
Абсолютные пути
Поле autoFill также поддерживает абсолютные пути.
Копировать код в буфер обмена
const exampleContent = { key: "example", autoFill: "/messages/example.content.json", content: { // Ваше содержимое },};Это сгенерирует файл по адресу:
Копировать код в буфер обмена
/messages/example.content.jsonАвтоматическая генерация файлов деклараций содержимого для каждого локаля
Поле autoFill также поддерживает генерацию файлов деклараций содержимого для каждого локаля.
Копировать код в буфер обмена
const exampleContent = { key: "example", autoFill: { fr: "./example.fr.content.json", es: "./example.es.content.json", }, content: { // Ваше содержимое },};Это сгенерирует два отдельных файла:
src/components/example/example.fr.content.jsonsrc/components/example/example.es.content.json
В этом случае, если объект не содержит все локали, Intlayer пропускает генерацию оставшихся локалей.
Фильтрация автозаполнения для конкретной локали
Использование объекта в поле autoFill позволяет применять фильтры и генерировать файлы только для определённых локалей.
Копировать код в буфер обмена
const exampleContent = { key: "example", autoFill: { fr: "./example.fr.content.json", }, content: { // Ваше содержимое },};Это сгенерирует только файл перевода на французский язык.
Переменные пути
Вы можете использовать переменные внутри пути autoFill для динамического определения целевых путей для сгенерированных файлов.
Доступные переменные:
{{locale}}– Код локали (например,fr,es){{fileName}}– Имя файла (например,index){{key}}– Ключ словаря (например,example)
Копировать код в буфер обмена
const exampleContent = { key: "example", autoFill: "/messages/{{locale}}/{{key}}.content.json", content: { // Ваше содержимое },};Это сгенерирует:
/messages/fr/example.content.json/messages/es/example.content.json
Копировать код в буфер обмена
const exampleContent = { key: "example", autoFill: "./{{fileName}}.content.json", content: { // Ваше содержимое },};Это сгенерирует:
./index.content.json./index.content.json