ГлавнаяПесочницаВитринаПриложениеДокументБлог
    • Englishанглийский
      EN
    • русскийрусский
      RU
    • 日本語японский
      JA
    • françaisфранцузский
      FR
    • 한국어корейский
      KO
    • 中文китайский
      ZH
    • españolиспанский
      ES
    • Deutschнемецкий
      DE
    • العربيةарабский
      AR
    • italianoитальянский
      IT
    • British Englishбританский английский
      EN-GB
    • portuguêsпортугальский
      PT
    • हिन्दीхинди
      HI
    • Türkçeтурецкий
      TR
    • polskiпольский
      PL
    • Indonesiaиндонезийский
      ID
    • Tiếng Việtвьетнамский
      VI
    • українськаукраинский
      UK
    /
    Фильтровать документы по фреймворку
    Alt+←
    Почему Intlayer?
    Начать
    Концепция
    • Как работает Intlayer
    • Конфигурация
    • TestFillBuildWatchExtractLoginPushPullConfigurationListVersionEditorLiveDebugDoc ReviewDoc TranslateSDK
    • Визуальный редактор
    • CMS
    • Интеграция CI/CD
    • ПереводМножественное числоПеречислениеУсловиеПолВставкаФайлВложенностьMarkdownHTMLПолучение функции
    • Файл для каждой локали
    • Компилятор
    • Автозаполнение
    • Тестирование
    • Оптимизация пакета
    Окружающая среда
    • Next.js 14 и App Router
      Next.js 15
      Next.js без locale URL
      Next.js и Page Router
      Compiler
    • Tanstack Start Solid
    • Astro и React
      Astro и Svelte
      Astro и Vue
      Astro и Solid
      Astro и Preact
      Astro и Lit
      Astro и Vanilla JS
    • React Router v7
      React Router v7 (fs-routes)
      Compiler
    • Nuxt и Vue
    • Vite и Solid
    • SvelteKit
    • Vite и Preact
    • Vite и Vanilla JS
    • Vite и Lit
    • Angular 19 (Webpack)
      Analog
    • React CRA
    • React Native и Expo
    • Express.js
      NestJS
      Fastify
      Hono
      Adonis
    • Lynx и React
    Plugins
    • JSON
    • gettext (.po)
    Расширение VS Code
    Агент
    • Сервер MCP
    • Навики агента
    Релизы
    • v8
    • v7
    • v6
    Бенчмарк
    • Next.js
    • TanStack
    • Vue
    • Solid
    • Svelte
    Блог
    Задать вопрос
    1. Documentation
    2. Концепция
    3. Автозаполнение
    Создание:2025-03-13Последнее обновление:2025-09-20
    Ссылайтесь на этот документ на ваш любимый ассистент AI
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    Спросите свой вопрос и получите сводку документа, используя эту страницу и выбранного вами поставщика AI

    История версий

    1. "Добавлена глобальная конфигурация"
      v6.0.020.09.2025
    2. "Добавлена переменная `{{fileName}}`"
      v6.0.017.09.2025
    3. "Инициализация истории"
      v5.5.1029.06.2025

    Содержимое этой страницы было переведено с помощью ИИ.

    Смотреть последнюю версию оригинального контента на английском
    Изменить эту документацию

    Если у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.

    Ссылка на документацию GitHub
    Копировать

    Копировать Markdown документа в буфер обмена

    Переводы файлов декларации автозаполнения контента

    Файлы декларации автозаполнения контента, это способ ускорить ваш процесс разработки.

    Механизм автозаполнения работает через мастер-слейв отношения между файлами декларации контента. Когда основной (мастер) файл обновляется, Intlayer автоматически применяет эти изменения к производным (автозаполненным) файлам декларации.

    src/components/example/example.content.ts
    Копировать код

    Копировать код в буфер обмена

    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.

    Затем, когда вы выполните следующую команду:

    bash
    Копировать код

    Копировать код в буфер обмена

    npx intlayer fill --file 'src/components/example/example.content.ts'

    Intlayer автоматически сгенерирует производный файл декларации по пути src/components/example/example.content.json, заполняя все локали, которые ещё не объявлены в основном файле.

    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 и другие.

    src/components/example/example.content.ts
    Копировать код

    Копировать код в буфер обмена

    const exampleContent = {  key: "example",  autoFill: "./example.filled.content.ts",  content: {    // Ваше содержимое  },};

    Это сгенерирует файл по адресу:

    plaintext
    Копировать код

    Копировать код в буфер обмена

    src/components/example/example.filled.content.ts

    Генерация файлов .js, .ts и подобных работает следующим образом:

    • Если файл уже существует, Intlayer будет парсить его с помощью AST (Абстрактного синтаксического дерева), чтобы найти каждое поле и вставить отсутствующие переводы.
    • Если файл не существует, Intlayer сгенерирует его, используя шаблон файла декларации содержимого по умолчанию.

    Абсолютные пути

    Поле autoFill также поддерживает абсолютные пути.

    src/components/example/example.content.ts
    Копировать код

    Копировать код в буфер обмена

    const exampleContent = {  key: "example",  autoFill: "/messages/example.content.json",  content: {    // Ваше содержимое  },};

    Это сгенерирует файл по адресу:

    plaintext
    Копировать код

    Копировать код в буфер обмена

    /messages/example.content.json

    Автоматическая генерация файлов деклараций содержимого для каждого локаля

    Поле autoFill также поддерживает генерацию файлов деклараций содержимого для каждого локаля.

    src/components/example/example.content.ts
    Копировать код

    Копировать код в буфер обмена

    const exampleContent = {  key: "example",  autoFill: {    fr: "./example.fr.content.json",    es: "./example.es.content.json",  },  content: {    // Ваше содержимое  },};

    Это сгенерирует два отдельных файла:

    • src/components/example/example.fr.content.json
    • src/components/example/example.es.content.json
    В этом случае, если объект не содержит все локали, Intlayer пропускает генерацию оставшихся локалей.

    Фильтрация автозаполнения для конкретной локали

    Использование объекта в поле autoFill позволяет применять фильтры и генерировать файлы только для определённых локалей.

    src/components/example/example.content.ts
    Копировать код

    Копировать код в буфер обмена

    const exampleContent = {  key: "example",  autoFill: {    fr: "./example.fr.content.json",  },  content: {    // Ваше содержимое  },};

    Это сгенерирует только файл перевода на французский язык.

    Переменные пути

    Вы можете использовать переменные внутри пути autoFill для динамического определения целевых путей для сгенерированных файлов.

    Доступные переменные:

    • {{locale}} – Код локали (например, fr, es)
    • {{fileName}} – Имя файла (например, index)
    • {{key}} – Ключ словаря (например, example)
    src/components/example/index.content.ts
    Копировать код

    Копировать код в буфер обмена

    const exampleContent = {  key: "example",  autoFill: "/messages/{{locale}}/{{key}}.content.json",  content: {    // Ваше содержимое  },};

    Это сгенерирует:

    • /messages/fr/example.content.json
    • /messages/es/example.content.json
    src/components/example/index.content.ts
    Копировать код

    Копировать код в буфер обмена

    const exampleContent = {  key: "example",  autoFill: "./{{fileName}}.content.json",  content: {    // Ваше содержимое  },};

    Это сгенерирует:

    • ./index.content.json
    • ./index.content.json
    Компилятор
    Тестирование
    Alt+→

    На этой странице

      Обсуждения анонимны и регулярно просматриваются для решения распространённых проблем. Не стесняйтесь делиться идеями функций, отзывами о документации или чем-либо, связанным с 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;
      npx intlayer fill --file 'src/components/example/example.content.ts'
      {  "key": "example",  "content": {    "contentExample": {      "nodeType": "translation",      "translation": {        "fr": "Ceci est un exemple de contenu",        "es": "Este es un ejemplo de contenido",      },    },  },}
      const exampleContent = {  key: "example",  autoFill: "./example.filled.content.ts",  content: {    // Ваше содержимое  },};
      src/components/example/example.filled.content.ts
      const exampleContent = {  key: "example",  autoFill: "/messages/example.content.json",  content: {    // Ваше содержимое  },};
      /messages/example.content.json
      const exampleContent = {  key: "example",  autoFill: {    fr: "./example.fr.content.json",    es: "./example.es.content.json",  },  content: {    // Ваше содержимое  },};
      const exampleContent = {  key: "example",  autoFill: {    fr: "./example.fr.content.json",  },  content: {    // Ваше содержимое  },};
      const exampleContent = {  key: "example",  autoFill: "/messages/{{locale}}/{{key}}.content.json",  content: {    // Ваше содержимое  },};
      const exampleContent = {  key: "example",  autoFill: "./{{fileName}}.content.json",  content: {    // Ваше содержимое  },};