Спросите свой вопрос и получите сводку документа, используя эту страницу и выбранного вами поставщика AI
История версий
- "Добавлена глобальная конфигурация"v6.0.020.09.2025
- "Добавлена переменная `{{fileName}}`"v6.0.017.09.2025
- "Инициализация истории"v5.5.1029.06.2025
Содержимое этой страницы было переведено с помощью ИИ.
Смотреть последнюю версию оригинального контента на английскомЕсли у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.
Ссылка на документацию GitHubКопировать Markdown документа в буфер обмена
Автоматическое заполнение файлов объявления контента переводов
Автоматическое заполнение файлов объявления контента в вашей CI — это способ ускорить рабочий процесс разработки.
Понимание поведения
Команда fill включает два режима:
- Complete: Автоматически заполняет все недостающее содержимое для каждой локали и редактирует текущий файл или другой файл, если он указан. То есть режим complete пропустит перевод существующего содержимого, если оно уже переведено.
- Review: Автоматически заполняет все содержимое для каждой локали и генерирует для конкретного файла или другого файла, если он указан.
Команда fill будет обрабатывать все ваши файлы объявления содержимого локали. То есть она не будет обрабатывать ваше удаленное содержимое из CMS. CMS включает собственное управление переводами.
Если вы используете плагины, такие как @intlayer/sync-json-plugin, Intlayer преобразует файлы JSON в файлы объявления содержимого локали. То есть они будут обработаны командой fill.
Новые сгенерированные файлы включают инструкцию filled в качестве метаданных словаря. Эта инструкция будет использоваться Intlayer для определения того, был ли файл автоматически заполнен или нет, и пропустит этот файл от повторного перевода, если она присутствует.
Intlayer также будет учитывать следующую инструкцию для автоматического заполнения:
- Из вашего
.content.{ts|js|json}→ инструкцияfill - Из вашего файла конфигурации
.intlayer.config.ts→ инструкцияdictionary.fill - По умолчанию будет установлено значение
true
Для файлов объявления содержимого для каждой локали инструкция true будет заменена на ./{{fileName}}.fill.content.json. Это потому, что файл объявления содержимого для каждой локали не может получать дополнительное локализованное содержимое. Поэтому он будет генерировать новый файл, чтобы не перезаписать существующий файл.
Поведение по умолчанию
По умолчанию fill установлено в true глобально, что означает, что Intlayer будет автоматически заполнять все файлы контента и редактировать сам файл. Это поведение можно настроить несколькими способами:
Глобальные параметры конфигурации
fill: true(по умолчанию) - Автоматически заполнить все локали и отредактировать текущий файлfill: false- Отключить автоматическое заполнение для этого файла контентаfill: "./relative/path/to/file"- Создать/обновить указанный файл без редактирования текущего, указав относительный путь, разрешенный на основе расположения текущего файлаfill: "/absolute/path/to/file"- Создать/обновить указанный файл без редактирования текущего, указав относительный путь, разрешенный на основе расположения базовой директории (полеbaseDirв файле конфигурации.intlayer.config.ts)fill: "C:\absolute\path\to\file"- Создать/обновить указанный файл без редактирования текущего, указав абсолютный путь, разрешенный на основе вашей операционной системыfill: { [key in Locales]?: string }- Создать/обновить указанный файл для каждой локали
Изменения поведения в v7
В v7 поведение команды fill было обновлено:
fill: true- Перезаписывает текущий файл с заполненным содержимым для всех локалейfill: "path/to/file"- Заполняет указанный файл без изменения текущего файлаfill: false- Полностью отключает автоматическое заполнение
При использовании опции пути для записи в другой файл механизм заполнения работает через отношение master-slave между файлами объявления содержимого. Основной файл (master) служит источником истины, и при его обновлении Intlayer автоматически применит эти изменения к производным (заполненным) файлам объявления, указанным в пути.
Кастомизация по локалям
Вы также можете кастомизировать поведение для каждой локали, используя объект:
Копировать код в буфер обмена
Это позволяет вам иметь разные поведения заполнения для разных локалей в одном проекте.
Копировать код в буфер обмена
Вот файл объявления содержимого для каждой локали с использованием инструкции fill.
Затем, когда вы выполните следующую команду:
Копировать код в буфер обмена
Intlayer автоматически создаст производный файл объявления в src/components/example/example.content.json, заполняя все локали, которые еще не объявлены в основном файле.
Копировать код в буфер обмена
После этого оба файла объявления будут объединены в один словарь, доступный с помощью стандартного хука useIntlayer("example") (react) / композабла (vue).
Глобальная конфигурация
Вы можете настроить глобальную конфигурацию автозаполнения в файле intlayer.config.ts.
Копировать код в буфер обмена
Вы по-прежнему можете настраивать каждый словарь отдельно, используя поле fill в файлах содержимого. Intlayer сначала рассмотрит конфигурацию каждого словаря, а затем вернётся к глобальной конфигурации.
Формат автозаполненного файла
Рекомендуемый формат для автоматически заполняемых файлов деклараций, JSON, который помогает избежать ограничений форматирования. Однако Intlayer также поддерживает форматы .ts, .js, .mjs, .cjs и другие.
Копировать код в буфер обмена
Это сгенерирует файл по адресу:
Копировать код в буфер обмена
Генерация файлов
.js,.tsи подобных работает следующим образом:
- Если файл уже существует, Intlayer будет парсить его с помощью AST (Абстрактного синтаксического дерева), чтобы найти каждое поле и вставить отсутствующие переводы.
- Если файл не существует, Intlayer сгенерирует его, используя шаблон файла декларации содержимого по умолчанию.
Абсолютные пути
Поле autoFill также поддерживает абсолютные пути.
Копировать код в буфер обмена
Это сгенерирует файл по адресу:
Копировать код в буфер обмена
Автоматическая генерация файлов деклараций содержимого для каждого локаля
Поле autoFill также поддерживает генерацию файлов деклараций содержимого для каждого локаля.
Копировать код в буфер обмена
Это сгенерирует два отдельных файла:
src/components/example/example.fr.content.jsonsrc/components/example/example.es.content.json
В этом случае, если объект не содержит все локали, Intlayer пропускает генерацию оставшихся локалей.
Фильтрация автозаполнения для конкретной локали
Использование объекта в поле autoFill позволяет применять фильтры и генерировать файлы только для определённых локалей.
Копировать код в буфер обмена
Это сгенерирует только файл перевода на французский язык.
Переменные пути
Вы можете использовать переменные внутри пути autoFill для динамического определения целевых путей для сгенерированных файлов.
Доступные переменные:
{{locale}}– Код локали (например,fr,es){{fileName}}– Имя файла (например,index){{key}}– Ключ словаря (например,example)
Копировать код в буфер обмена
Это сгенерирует:
/messages/fr/example.content.json/messages/es/example.content.json
Копировать код в буфер обмена
Это сгенерирует:
./index.content.json./index.content.json
