HomeAmbiente di testVetrinaAppDocBlog
    • Englishinglese
      EN
    • русскийrusso
      RU
    • 日本語giapponese
      JA
    • françaisfrancese
      FR
    • 한국어coreano
      KO
    • 中文cinese
      ZH
    • españolspagnolo
      ES
    • Deutschtedesco
      DE
    • العربيةarabo
      AR
    • italianoitaliano
      IT
    • British Englishinglese britannico
      EN-GB
    • portuguêsportoghese
      PT
    • हिन्दीhindi
      HI
    • Türkçeturco
      TR
    • polskipolacco
      PL
    • Indonesiaindonesiano
      ID
    • Tiếng Việtvietnamita
      VI
    • українськаucraino
      UK
    /
    Filtra la documentazione per framework
    Alt+←
    Perché Intlayer?
    Iniziare
    Concetto
    • Come funziona Intlayer
    • Configurazione
    • TestFillBuildWatchExtractLoginPushPullConfigurationListVersionEditorLiveDebugDoc ReviewDoc TranslateSDK
    • Editor visuale
    • CMS
    • Integrazione CI/CD
    • TraduzionePluraleEnumerazioneCondizioneGenereInserimentoFileAnnidamentoMarkdownHTMLRecupero funzione
    • File per locale
    • Compilatore
    • Compilazione automatica
    • Test
    • Ottimizzazione del bundle
    Ambiente
    • Next.js 14 e App Router
      Next.js 15
      Next.js senza locale URL
      Next.js e Page Router
      Compiler
    • Tanstack Start Solid
    • Astro e React
      Astro e Svelte
      Astro e Vue
      Astro e Solid
      Astro e Preact
      Astro e Lit
      Astro e Vanilla JS
    • React Router v7
      React 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.js
      NestJS
      Fastify
      Hono
      Adonis
    • Lynx e React
    Plugins
    • JSON
    • gettext (.po)
    Estensione VS Code
    Agente
    • Server MCP
    • Abilità dell’agente
    Versioni
    • v8
    • v7
    • v6
    Benchmark
    • Next.js
    • TanStack
    • Vue
    • Solid
    • Svelte
    Blog
    Fai una domanda
    1. Documentation
    2. Concetto
    3. Integrazione CI/CD
    Creazione:2025-05-20Ultimo aggiornamento:2025-08-13
    Riferimento a questa documentazione al tuo assistente AI preferito
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    Pose una domanda e ottieni un riassunto del documento facendo riferimento a questa pagina e al provider AI di tua scelta

    Cronologia delle versioni

    1. "Inizializza la cronologia"
      v5.5.1029/06/2025

    Il contenuto di questa pagina è stato tradotto con un'IA.

    Vedi l'ultima versione del contenuto originale in inglese
    Modifica questa documentazione

    Se hai un’idea per migliorare questa documentazione, non esitare a contribuire inviando una pull request su GitHub.

    Collegamento GitHub alla documentazione
    Copia

    Copia il Markdown del documento nella porta-documenti

    Generazione Automatica delle Traduzioni in una Pipeline CI/CD

    Intlayer consente la generazione automatica delle traduzioni per i tuoi file di dichiarazione dei contenuti. Ci sono diversi modi per raggiungere questo obiettivo a seconda del tuo flusso di lavoro.

    Utilizzo del CMS

    Con Intlayer, puoi adottare un flusso di lavoro in cui viene dichiarata localmente una sola lingua, mentre tutte le traduzioni sono gestite da remoto tramite il CMS. Questo permette che contenuti e traduzioni siano completamente separati dal codice, offrendo maggiore flessibilità agli editor di contenuti e abilitando il caricamento dinamico dei contenuti (senza bisogno di ricostruire l'applicazione per applicare le modifiche).

    Configurazione di Esempio

    intlayer.config.ts
    Copiare il codice

    Copiare il codice nella clipboard

    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH],    requiredLocales: [Locales.ENGLISH], // Le lingue opzionali saranno gestite da remoto    defaultLocale: Locales.ENGLISH,  },  editor: {    dictionaryPriorityStrategy: "distant_first", // Il contenuto remoto ha la priorità    applicationURL: process.env.APPLICATION_URL, // URL dell'applicazione usato dal CMS    clientId: process.env.INTLAYER_CLIENT_ID, // Credenziali del CMS    clientSecret: process.env.INTLAYER_CLIENT_SECRET,  },  ai: {    applicationContext: "This is a test application", // Aiuta a garantire una generazione coerente delle traduzioni  },};export default config;

    Per saperne di più sul CMS, consulta la documentazione ufficiale.

    Uso di Husky

    Puoi integrare la generazione delle traduzioni nel tuo flusso di lavoro Git locale usando Husky.

    Configurazione di Esempio

    intlayer.config.ts
    Copiare il codice

    Copiare il codice nella clipboard

    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH],    requiredLocales: [Locales.ENGLISH], // Le localizzazioni opzionali sono gestite da remoto    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, // Usa la tua chiave API    applicationContext: "This is a test application", // Aiuta a garantire una generazione coerente delle traduzioni  },};export default config;
    .husky/pre-push
    Copiare il codice

    Copiare il codice nella clipboard

    npx intlayer build                          # Per assicurarsi che i dizionari siano aggiornatinpx intlayer fill --unpushed --mode fill    # Riempie solo i contenuti mancanti, non aggiorna quelli esistenti
    Per maggiori informazioni sui comandi CLI di Intlayer e sul loro utilizzo, consulta la documentazione CLI.
    Se hai più app nel tuo repository che utilizzano istanze separate di Intlayer, puoi usare l'argomento --base-dir in questo modo:
    .husky/pre-push
    Copiare il codice

    Copiare il codice nella clipboard

    # 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

    Utilizzo di GitHub Actions

    Intlayer fornisce un comando CLI per l'autocompletamento e la revisione del contenuto del dizionario. Questo può essere integrato nel tuo flusso di lavoro CI/CD utilizzando GitHub Actions.

    .github/workflows/intlayer-translate.yml
    Copiare il codice

    Copiare il codice nella clipboard

    name: Compilazione Automatica Intlayer# Condizioni di attivazione per questo 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:      # Passo 1: Recupera l'ultima versione del codice dal repository      - name: ⬇️ Checkout repository        uses: actions/checkout@v4        with:          persist-credentials: true # Mantieni le credenziali per la creazione delle PR          fetch-depth: 0 # Ottieni tutta la cronologia git per l'analisi delle differenze      # Passo 2: Configura l'ambiente Node.js      - name: 🟢 Configura Node.js        uses: actions/setup-node@v4        with:          node-version: 20 # Usa Node.js 20 LTS per stabilità      # Passo 3: Installa le dipendenze del progetto      - name: 📦 Installa dipendenze        run: npm install      # Passo 4: Installa globalmente Intlayer CLI per la gestione delle traduzioni      - name: 📦 Installa Intlayer        run: npm install -g intlayer-cli      # Passo 5: Compila il progetto Intlayer per generare i file di traduzione      - name: ⚙️ Compila progetto Intlayer        run: npx intlayer build      # Passo 6: Usa l'IA per compilare automaticamente le traduzioni mancanti      - name: 🤖 Compila automaticamente le traduzioni mancanti        run: npx intlayer fill --git-diff --mode fill --provider $AI_PROVIDER --model $AI_MODEL --api-key $AI_API_KEY      # Passo 7: Controlla se ci sono modifiche e committale      - name: � Controlla modifiche        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: Commit e push delle modifiche se presenti      - name: 📤 Commit e push delle modifiche        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: compila automaticamente le traduzioni mancanti [skip ci]"          git push origin HEAD:${{ github.head_ref }}

    Per configurare le variabili d'ambiente, vai su GitHub → Impostazioni → Segreti e variabili → Azioni e aggiungi il segreto .

    Come per Husky, nel caso di un monorepo, puoi usare l'argomento --base-dir per trattare sequenzialmente ogni app.
    Per impostazione predefinita, l'argomento --git-diff filtra i dizionari che includono modifiche dalla base (default origin/main) al ramo corrente (default: HEAD).
    Per maggiori informazioni sui comandi CLI di Intlayer e sul loro utilizzo, consulta la documentazione CLI.
    CMS
    Dichiarazione dei contenuti
    Alt+→

    In questa pagina

      Le discussioni sono anonime e vengono regolarmente esaminate per affrontare problemi comuni. Sentiti libero di condividere idee per nuove funzionalità, feedback sulla documentazione o qualsiasi cosa relativa a Intlayer, utilizziamo questi input per definire la nostra roadmap e migliorare il prodotto.

      import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH],    requiredLocales: [Locales.ENGLISH], // Le lingue opzionali saranno gestite da remoto    defaultLocale: Locales.ENGLISH,  },  editor: {    dictionaryPriorityStrategy: "distant_first", // Il contenuto remoto ha la priorità    applicationURL: process.env.APPLICATION_URL, // URL dell'applicazione usato dal CMS    clientId: process.env.INTLAYER_CLIENT_ID, // Credenziali del CMS    clientSecret: process.env.INTLAYER_CLIENT_SECRET,  },  ai: {    applicationContext: "This is a test application", // Aiuta a garantire una generazione coerente delle traduzioni  },};export default config;
      import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH],    requiredLocales: [Locales.ENGLISH], // Le localizzazioni opzionali sono gestite da remoto    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, // Usa la tua chiave API    applicationContext: "This is a test application", // Aiuta a garantire una generazione coerente delle traduzioni  },};export default config;
      npx intlayer build                          # Per assicurarsi che i dizionari siano aggiornatinpx intlayer fill --unpushed --mode fill    # Riempie solo i contenuti mancanti, non aggiorna quelli esistenti
      # 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
      name: Compilazione Automatica Intlayer# Condizioni di attivazione per questo 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:      # Passo 1: Recupera l'ultima versione del codice dal repository      - name: ⬇️ Checkout repository        uses: actions/checkout@v4        with:          persist-credentials: true # Mantieni le credenziali per la creazione delle PR          fetch-depth: 0 # Ottieni tutta la cronologia git per l'analisi delle differenze      # Passo 2: Configura l'ambiente Node.js      - name: 🟢 Configura Node.js        uses: actions/setup-node@v4        with:          node-version: 20 # Usa Node.js 20 LTS per stabilità      # Passo 3: Installa le dipendenze del progetto      - name: 📦 Installa dipendenze        run: npm install      # Passo 4: Installa globalmente Intlayer CLI per la gestione delle traduzioni      - name: 📦 Installa Intlayer        run: npm install -g intlayer-cli      # Passo 5: Compila il progetto Intlayer per generare i file di traduzione      - name: ⚙️ Compila progetto Intlayer        run: npx intlayer build      # Passo 6: Usa l'IA per compilare automaticamente le traduzioni mancanti      - name: 🤖 Compila automaticamente le traduzioni mancanti        run: npx intlayer fill --git-diff --mode fill --provider $AI_PROVIDER --model $AI_MODEL --api-key $AI_API_KEY      # Passo 7: Controlla se ci sono modifiche e committale      - name: � Controlla modifiche        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: Commit e push delle modifiche se presenti      - name: 📤 Commit e push delle modifiche        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: compila automaticamente le traduzioni mancanti [skip ci]"          git push origin HEAD:${{ github.head_ref }}