ГоловнаПісочницяВітринаДодатокДокументаціяБлог
    • 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. Інтеграція CI/CD
    Дата створення:2025-05-20Останнє оновлення:2025-08-13
    Надішліть цей документ вашому улюбленому AI-асистенту
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    Задайте питання та отримайте підсумок документа, вказавши цю сторінку та обраного вами постачальника штучного інтелекту

    Історія версій

    1. "Ініціалізація історії"
      v5.5.1029.06.2025

    Вміст цієї сторінки перекладено за допомогою штучного інтелекту.

    Переглянути останню версію оригінального вмісту англійською
    Редагувати цей документ

    Якщо у вас є ідея щодо покращення цієї документації, будь ласка, долучіться, надіславши pull request на GitHub.

    Посилання на документацію на GitHub
    Копіювати

    Скопіювати документацію у форматі Markdown в буфер обміну

    Автоматичне генерування перекладів у CI/CD конвеєрі

    Intlayer дозволяє автоматично створювати переклади для ваших файлів декларації контенту. Існує кілька способів досягти цього залежно від вашого робочого процесу.

    Зміст

    Використання CMS

    З Intlayer ви можете використовувати робочий процес, у якому локально оголошується лише одна локаль, тоді як усі переклади керуються віддалено через CMS. Це дозволяє повністю відокремити вміст і переклади від codebase, надаючи редакторам вмісту більше гнучкості та забезпечуючи Live Sync (немає потреби перебудовувати застосунок, щоб застосувати зміни).

    Приклад конфігурації

    intlayer.config.ts
    Копіювати код

    Скопіюйте код у буфер обміну

    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH],    requiredLocales: [Locales.ENGLISH], // Optional locales will be managed remotely    defaultLocale: Locales.ENGLISH,  },  editor: {    // Облікові дані CMS, якщо ви використовуєте CMS    clientId: process.env.INTLAYER_CLIENT_ID,    clientSecret: process.env.INTLAYER_CLIENT_SECRET,    liveSync: true,  },  ai: {    applicationContext: "This is a test application", // Допомагає забезпечити узгоджене генерування перекладів  },};export default config;

    Щоб дізнатися більше про CMS, зверніться до офіційної документації.

    Використання Husky

    Ви можете інтегрувати генерацію перекладів у ваш локальний Git-воркфлоу за допомогою Husky.

    Приклад конфігурації

    intlayer.config.ts
    Копіювати код

    Скопіюйте код у буфер обміну

    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH],    requiredLocales: [Locales.ENGLISH], // Необов’язкові локалі обробляються віддалено    defaultLocale: Locales.ENGLISH,  },  editor: {    clientId: process.env.INTLAYER_CLIENT_ID,    clientSecret: process.env.INTLAYER_CLIENT_SECRET,  },  ai: {    provider: "openai",    apiKey: process.env.OPENAI_API_KEY, // Використайте власний API-ключ    applicationContext: "This is a test application", // Допомагає забезпечити узгоджене генерування перекладів  },};export default config;
    .husky/pre-push
    Копіювати код

    Скопіюйте код у буфер обміну

    npx intlayer build                          # Щоб переконатися, що словники оновленіnpx intlayer fill --unpushed --mode fill    # Заповнює лише відсутній вміст, не оновлює існуючий

    For more information about Intlayer CLI commands and their usage, refer to the CLI documentation.

    If you have multiple apps in your repo using separate intlayer instances, you can use the --base-dir argument like this:

    .husky/pre-push
    Копіювати код

    Скопіюйте код у буфер обміну

    # Додаток 1npx intlayer build --base-dir ./app1npx intlayer fill --base-dir ./app1 --unpushed --mode fill# Додаток 2npx intlayer build --base-dir ./app2npx intlayer fill --base-dir ./app2 --unpushed --mode fill

    Використання GitHub Actions

    Intlayer надає CLI-команду для автоматичного заповнення та перегляду вмісту словників. Це можна інтегрувати у ваш робочий процес CI/CD за допомогою GitHub Actions.

    .github/workflows/intlayer-translate.yml
    Копіювати код

    Скопіюйте код у буфер обміну

    name: Intlayer Авто-заповнення# Умови запуску цього workflowon:  pull_request:    branches:      - "main"permissions:  contents: write  pull-requests: writeconcurrency:  group: "autofill-${{ github.ref }}"  cancel-in-progress: truejobs:  autofill:    runs-on: ubuntu-latest    env:      # Конфігурація OpenAI      AI_MODEL: openai      AI_PROVIDER: gpt-5-mini      AI_API_KEY: ${{ secrets.AI_API_KEY }}    steps:      # Крок 1: Отримати останній код з репозиторію      - name: ⬇️ Клонувати репозиторій        uses: actions/checkout@v4        with:          persist-credentials: true # Зберегти облікові дані для створення PR          fetch-depth: 0 # Отримати повну історію git для аналізу diff      # Крок 2: Налаштування середовища Node.js      - name: 🟢 Налаштувати Node.js        uses: actions/setup-node@v4        with:          node-version: 20 # Використовуйте Node.js 20 LTS для стабільності      # Крок 3: Встановити залежності проєкту      - name: 📦 Встановити залежності        run: npm install      # Крок 4: Встановити Intlayer CLI глобально для керування перекладами      - name: 📦 Встановити Intlayer        run: npm install -g intlayer-cli      # Крок 5: Побудувати проєкт Intlayer для генерації файлів перекладу      - name: ⚙️ Побудувати проєкт Intlayer        run: npx intlayer build      # Крок 6: Використати AI для автоматичного заповнення відсутніх перекладів      - name: 🤖 Автоматично заповнити відсутні переклади        run: npx intlayer fill --git-diff --mode fill --provider $AI_PROVIDER --model $AI_MODEL --api-key $AI_API_KEY      # Крок 7: Перевірити наявність змін і закомітити їх      - name: 🔍 Перевірити наявність змін        id: check-changes        run: |          if [ -n "$(git status --porcelain)" ]; then            echo "has-changes=true" >> $GITHUB_OUTPUT          else            echo "has-changes=false" >> $GITHUB_OUTPUT          fi      # Крок 8: Закомітити та відправити зміни, якщо вони є      - name: 📤 Закомітити та відправити зміни        if: steps.check-changes.outputs.has-changes == 'true'        run: |          git config --local user.email "[email protected]"          git config --local user.name "GitHub Action"          git add .          git commit -m "chore: автоматичне заповнення відсутніх перекладів [skip ci]"          git push origin HEAD:${{ github.head_ref }}

    Щоб налаштувати змінні середовища, перейдіть у GitHub → Settings → Secrets and variables → Actions і додайте секрет .

    Так само, як і для Husky, у випадку монорепозиторію ви можете використовувати аргумент --base-dir, щоб послідовно обробляти кожен додаток.
    За замовчуванням аргумент --git-diff фільтрує словники, які містять зміни від бази (за замовчуванням origin/main) до поточної гілки (за замовчуванням: HEAD).
    Для отримання додаткової інформації про команди Intlayer CLI та їх використання зверніться до CLI documentation.
    CMS
    Оголошення контенту
    Alt+→

    На цій сторінці

      Обговорення анонімні та регулярно переглядаються для вирішення поширених проблем. Не соромтеся ділитися ідеями функцій, відгуками про документацію або будь-чим, що стосується Intlayer, ми використовуємо цю інформацію для формування нашої дорожньої карти та покращення продукту.

      import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH],    requiredLocales: [Locales.ENGLISH], // Optional locales will be managed remotely    defaultLocale: Locales.ENGLISH,  },  editor: {    // Облікові дані CMS, якщо ви використовуєте CMS    clientId: process.env.INTLAYER_CLIENT_ID,    clientSecret: process.env.INTLAYER_CLIENT_SECRET,    liveSync: true,  },  ai: {    applicationContext: "This is a test application", // Допомагає забезпечити узгоджене генерування перекладів  },};export default config;
      import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH],    requiredLocales: [Locales.ENGLISH], // Необов’язкові локалі обробляються віддалено    defaultLocale: Locales.ENGLISH,  },  editor: {    clientId: process.env.INTLAYER_CLIENT_ID,    clientSecret: process.env.INTLAYER_CLIENT_SECRET,  },  ai: {    provider: "openai",    apiKey: process.env.OPENAI_API_KEY, // Використайте власний API-ключ    applicationContext: "This is a test application", // Допомагає забезпечити узгоджене генерування перекладів  },};export default config;
      npx intlayer build                          # Щоб переконатися, що словники оновленіnpx intlayer fill --unpushed --mode fill    # Заповнює лише відсутній вміст, не оновлює існуючий
      # Додаток 1npx intlayer build --base-dir ./app1npx intlayer fill --base-dir ./app1 --unpushed --mode fill# Додаток 2npx intlayer build --base-dir ./app2npx intlayer fill --base-dir ./app2 --unpushed --mode fill
      name: Intlayer Авто-заповнення# Умови запуску цього workflowon:  pull_request:    branches:      - "main"permissions:  contents: write  pull-requests: writeconcurrency:  group: "autofill-${{ github.ref }}"  cancel-in-progress: truejobs:  autofill:    runs-on: ubuntu-latest    env:      # Конфігурація OpenAI      AI_MODEL: openai      AI_PROVIDER: gpt-5-mini      AI_API_KEY: ${{ secrets.AI_API_KEY }}    steps:      # Крок 1: Отримати останній код з репозиторію      - name: ⬇️ Клонувати репозиторій        uses: actions/checkout@v4        with:          persist-credentials: true # Зберегти облікові дані для створення PR          fetch-depth: 0 # Отримати повну історію git для аналізу diff      # Крок 2: Налаштування середовища Node.js      - name: 🟢 Налаштувати Node.js        uses: actions/setup-node@v4        with:          node-version: 20 # Використовуйте Node.js 20 LTS для стабільності      # Крок 3: Встановити залежності проєкту      - name: 📦 Встановити залежності        run: npm install      # Крок 4: Встановити Intlayer CLI глобально для керування перекладами      - name: 📦 Встановити Intlayer        run: npm install -g intlayer-cli      # Крок 5: Побудувати проєкт Intlayer для генерації файлів перекладу      - name: ⚙️ Побудувати проєкт Intlayer        run: npx intlayer build      # Крок 6: Використати AI для автоматичного заповнення відсутніх перекладів      - name: 🤖 Автоматично заповнити відсутні переклади        run: npx intlayer fill --git-diff --mode fill --provider $AI_PROVIDER --model $AI_MODEL --api-key $AI_API_KEY      # Крок 7: Перевірити наявність змін і закомітити їх      - name: 🔍 Перевірити наявність змін        id: check-changes        run: |          if [ -n "$(git status --porcelain)" ]; then            echo "has-changes=true" >> $GITHUB_OUTPUT          else            echo "has-changes=false" >> $GITHUB_OUTPUT          fi      # Крок 8: Закомітити та відправити зміни, якщо вони є      - name: 📤 Закомітити та відправити зміни        if: steps.check-changes.outputs.has-changes == 'true'        run: |          git config --local user.email "[email protected]"          git config --local user.name "GitHub Action"          git add .          git commit -m "chore: автоматичне заповнення відсутніх перекладів [skip ci]"          git push origin HEAD:${{ github.head_ref }}