InícioAmbiente de testeVitrineAppDocBlog
    • Englishinglês
      EN
    • русскийrusso
      RU
    • 日本語japonês
      JA
    • françaisfrancês
      FR
    • 한국어coreano
      KO
    • 中文chinês
      ZH
    • españolespanhol
      ES
    • Deutschalemão
      DE
    • العربيةárabe
      AR
    • italianoitaliano
      IT
    • British Englishinglês (Reino Unido)
      EN-GB
    • portuguêsportuguês
      PT
    • हिन्दीhindi
      HI
    • Türkçeturco
      TR
    • polskipolonês
      PL
    • Indonesiaindonésio
      ID
    • Tiếng Việtvietnamita
      VI
    • українськаucraniano
      UK
    /
    Filtrar documentação por framework
    Alt+←
    Por que Intlayer?
    Começar
    Conceito
    • Como o Intlayer funciona
    • Configuração
    • TestFillBuildWatchExtractLoginPushPullConfigurationListVersionEditorLiveDebugDoc ReviewDoc TranslateSDK
    • Editor visual
    • CMS
    • Integração CI/CD
    • TraduçãoPluralEnumeraçãoCondiçãoGêneroInserçãoArquivoAninhamentoMarkdownHTMLBusca de função
    • Arquivo por locale
    • Compilador
    • Preenchimento automático
    • Testes
    • Otimização de bundle
    Ambiente
    • Next.js 14 e App RouterNext.js 15Next.js sem locale URLNext.js e Page RouterCompiler
    • Tanstack Start Solid
    • Astro e ReactAstro e SvelteAstro e VueAstro e SolidAstro e PreactAstro e LitAstro e Vanilla JS
    • React Router v7React Router v7 (fs-routes)Compiler
    • Nuxt e Vue
    • Vite e Solid
    • SvelteKit
    • Vite e Preact
    • Vite e Vanilla JS
    • Vite e Lit
    • Angular 19 (Webpack)Analog
    • React CRA
    • React Native e Expo
    • Express.jsNestJSFastifyHonoAdonis
    • Lynx e React
    Plugins
    • JSON
    • gettext (.po)
    Extensão VS Code
    Agente
    • Servidor MCP
    • Habilidades do agente
    Versões
    • v8
    • v7
    • v6
    Benchmark
    • Next.js
    • TanStack
    • Vue
    • Solid
    • Svelte
    Blog
    Faça uma pergunta
    1. Documentation
    2. Conceito
    3. Integração CI/CD

    Geração Automática de Traduções em um Pipeline CI/CD

    O Intlayer permite a geração automática de traduções para seus arquivos de declaração de conteúdo. Existem várias maneiras de realizar isso dependendo do seu fluxo de trabalho.

    Usando o CMS

    Com o Intlayer, você pode adotar um fluxo de trabalho onde apenas um único idioma é declarado localmente, enquanto todas as traduções são gerenciadas remotamente através do CMS. Isso permite que o conteúdo e as traduções fiquem completamente desacoplados da base de código, oferecendo mais flexibilidade para os editores de conteúdo e possibilitando o recarregamento dinâmico do conteúdo (sem necessidade de reconstruir a aplicação para aplicar as alterações).

    Configuração de Exemplo

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH],    requiredLocales: [Locales.ENGLISH], // Idiomas opcionais serão gerenciados remotamente    defaultLocale: Locales.ENGLISH,  },  editor: {    dictionaryPriorityStrategy: "distant_first", // Conteúdo remoto tem prioridade    applicationURL: process.env.APPLICATION_URL, // URL da aplicação usada pelo CMS    clientId: process.env.INTLAYER_CLIENT_ID, // Credenciais do CMS    clientSecret: process.env.INTLAYER_CLIENT_SECRET,  },  ai: {    applicationContext: "This is a test application", // Ajuda a garantir a geração consistente de traduções  },};export default config;

    Para saber mais sobre o CMS, consulte a documentação oficial.

    Usando Husky

    Você pode integrar a geração de traduções no seu fluxo de trabalho local do Git usando o Husky.

    Configuração de Exemplo

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH],    requiredLocales: [Locales.ENGLISH], // Locais opcionais são gerenciados remotamente    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, // Use sua própria chave API    applicationContext: "This is a test application", // Ajuda a garantir a geração consistente de traduções  },};export default config;
    .husky/pre-push
    npx intlayer build                          # Para garantir que os dicionários estejam atualizadosnpx intlayer fill --unpushed --mode fill    # Apenas preenche o conteúdo faltante, não atualiza os existentes
    Para mais informações sobre os comandos CLI do Intlayer e seu uso, consulte a documentação CLI.
    Se você tiver múltiplos aplicativos no seu repositório usando instâncias separadas do Intlayer, você pode usar o argumento --base-dir assim:
    .husky/pre-push
    # App 1npx intlayer build --base-dir ./app1npx intlayer fill --base-dir ./app1 --unpushed --mode fill# App 2npx intlayer build --base-dir ./app2npx intlayer fill --base-dir ./app2 --unpushed --mode fill

    Usando GitHub Actions

    O Intlayer fornece um comando CLI para preenchimento automático e revisão do conteúdo do dicionário. Isso pode ser integrado ao seu fluxo de trabalho CI/CD usando GitHub Actions.

    .github/workflows/intlayer-translate.yml
    name: Preenchimento Automático Intlayer# Condições de gatilho para este fluxo de trabalhoon:  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:      # Passo 1: Obter o código mais recente do repositório      - name: ⬇️ Checkout do repositório        uses: actions/checkout@v4        with:          persist-credentials: true # Manter credenciais para criação de PRs          fetch-depth: 0 # Obter histórico completo do git para análise de diferenças      # Passo 2: Configurar ambiente Node.js      - name: 🟢 Configurar Node.js        uses: actions/setup-node@v4        with:          node-version: 20 # Usar Node.js 20 LTS para estabilidade      # Passo 3: Instalar dependências do projeto      - name: 📦 Instalar dependências        run: npm install      # Passo 4: Instalar Intlayer CLI globalmente para gerenciamento de traduções      - name: 📦 Instalar Intlayer        run: npm install -g intlayer-cli      # Passo 5: Construir o projeto Intlayer para gerar arquivos de tradução      - name: ⚙️ Construir projeto Intlayer        run: npx intlayer build      # Passo 6: Usar IA para preencher automaticamente traduções faltantes      - name: 🤖 Preencher automaticamente traduções faltantes        run: npx intlayer fill --git-diff --mode fill --provider $AI_PROVIDER --model $AI_MODEL --api-key $AI_API_KEY      # Passo 7: Verificar se há alterações e comitá-las      - name: � Verificar alterações        id: check-changes        run: |          if [ -n "$(git status --porcelain)" ]; then            echo "has-changes=true" >> $GITHUB_OUTPUT          else            echo "has-changes=false" >> $GITHUB_OUTPUT          fi      # Passo 8: Comitar e enviar alterações se existirem      - name: 📤 Comitar e enviar alterações        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: auto-fill missing translations [skip ci]"          git push origin HEAD:${{ github.head_ref }}

    Para configurar as variáveis de ambiente, vá para GitHub → Configurações → Segredos e variáveis → Ações e adicione o segredo .

    Assim como para o Husky, no caso de um monorepo, você pode usar o argumento --base-dir para tratar sequencialmente cada app.
    Por padrão, o argumento --git-diff filtra os dicionários que incluem alterações da base (padrão origin/main) para o branch atual (padrão: HEAD).
    Para mais informações sobre os comandos do Intlayer CLI e seu uso, consulte a documentação do CLI.
    Criação:2025-05-20Última atualização:2025-08-13
    Referência esta documentação ao seu assistente AI favorito
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    Faça sua pergunta e obtenha um resumo do documento referenciando esta página e o provedor AI de sua escolha

    Histórico de versões

    1. "Histórico inicial"
      v5.5.1029/06/2025

    O conteúdo desta página foi traduzido com uma IA.

    Veja a última versão do conteúdo original em inglês
    Editar esta documentação

    Se você tiver uma ideia para melhorar esta documentação, sinta-se à vontade para contribuir enviando uma pull request no GitHub.

    Link do GitHub para a documentação
    Copiar

    Copiar o Markdown do documento para a área de transferência

    Copiar código

    Copiar o código para a área de transferência

    Copiar código

    Copiar o código para a área de transferência

    Copiar código

    Copiar o código para a área de transferência

    Copiar código

    Copiar o código para a área de transferência

    Copiar código

    Copiar o código para a área de transferência

    CMS
    Declaração de conteúdo
    Alt+→

    Nesta página

      As discussões são anônimas e regularmente revisadas para resolver problemas comuns. Sinta-se à vontade para compartilhar ideias de funcionalidades, feedback sobre a documentação ou qualquer coisa relacionada ao Intlayer, usamos essas informações para moldar nosso roadmap e melhorar o produto.