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. Testing
    Creazione:2025-03-01Ultimo aggiornamento:2025-09-20
    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

    Questo documento non è aggiornato, la versione base è stata aggiornata il 5 ottobre 2025.

    Vai alla documentazione in inglese

    Cronologia delle versioni

    1. "Introduzione dei test"
      v6.0.020/09/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

    Testare i tuoi contenuti

    Questa guida mostra come verificare automaticamente che i tuoi dizionari siano completi, individuare traduzioni mancanti prima della distribuzione e testare l'interfaccia localizzata nella tua app.


    Cosa puoi testare

    • Traduzioni mancanti: fallire il CI se mancano locali richiesti in qualsiasi dizionario.
    • Rendering dell'interfaccia localizzata: renderizzare componenti con un provider di locale specifico e verificare il testo/attributi visibili.
    • Audit a tempo di build: eseguire un rapido audit localmente tramite CLI.

    Avvio rapido: audit tramite CLI

    Esegui l'audit dalla radice del tuo progetto:

    bash
    Copiare il codice

    Copiare il codice nella clipboard

    npx intlayer content test

    Flag utili:

    • --env-file [path]: carica variabili d'ambiente da un file.
    • -e, --env [name]: seleziona un profilo ambiente.
    • --base-dir [path]: imposta la directory base dell'app per la risoluzione.
    • --verbose: mostra log dettagliati.
    • --prefix [label]: aggiunge un prefisso alle righe di log.

    Nota: la CLI stampa un report dettagliato ma non termina con codice diverso da zero in caso di errori. Per il gating in CI, aggiungi un test unitario (di seguito) che verifichi l'assenza di locali richiesti mancanti.


    Test programmatico (Vitest/Jest)

    Usa l'API CLI di Intlayer per verificare che non ci siano traduzioni mancanti per i locali richiesti.

    Copiare il codice

    Copiare il codice nella clipboard

    /* @vitest-environment node */import { listMissingTranslations } from "intlayer/cli";import { describe, expect, it } from "vitest";describe("traduzioni", () => {  it("non ha locali richiesti mancanti", () => {    const result = listMissingTranslations();    if (result.missingRequiredLocales.length > 0) {      // Utile quando il test fallisce localmente o in CI      console.log(result.missingTranslations);    }    expect(result.missingRequiredLocales).toHaveLength(0);  });});

    Equivalente Jest:

    Copiare il codice

    Copiare il codice nella clipboard

    import { listMissingTranslations } from "intlayer/cli";test("non ha locali richiesti mancanti", () => {  const result = listMissingTranslations();  if (result.missingRequiredLocales.length > 0) {    console.log(result.missingTranslations);  }  expect(result.missingRequiredLocales).toHaveLength(0);});

    Come funziona:

    • Intlayer legge la tua configurazione (locali, requiredLocales) e i dizionari dichiarati, quindi riporta:
      • missingTranslations: per chiave, quali locali mancano e da quale file.
      • missingLocales: unione di tutti i locali mancanti.
      • missingRequiredLocales: sottoinsieme limitato a requiredLocales (o tutti i locali se requiredLocales non è impostato).

    Testare l'interfaccia localizzata (React / Next.js)

    Renderizza i componenti sotto un provider Intlayer e verifica il contenuto visibile.

    Esempio React (Testing Library):

    tsx
    Copiare il codice

    Copiare il codice nella clipboard

    import { IntlayerProvider } from "react-intlayer/client";import { render, screen } from "@testing-library/react";import { MyComponent } from "./MyComponent";test("renders localized title in English", () => {  render(    <IntlayerProvider locale="en-US">      <MyComponent />    </IntlayerProvider>  );  expect(screen.getByText("Titolo inglese previsto")).toBeInTheDocument();});

    Esempio Next.js (App Router): usa il wrapper del framework:

    tsx
    Copiare il codice

    Copiare il codice nella clipboard

    import { IntlayerClientProvider } from "next-intlayer/client";import { render, screen } from "@testing-library/react";import { MyPage } from "./MyPage";test("renderizza l'intestazione localizzata in francese", () => {  render(    <IntlayerClientProvider locale="fr-FR">      <MyPage />    </IntlayerClientProvider>  );  expect(    screen.getByRole("heading", { name: "Titre attendu" })  ).toBeInTheDocument();});

    Consigli:

    • Quando hai bisogno dei valori stringa grezzi per gli attributi (es. aria-label), accedi al campo .value restituito da useIntlayer in React.
    • Mantieni i dizionari accanto ai componenti per facilitare i test unitari e la pulizia.

    Integrazione Continua

    Aggiungi un test che fallisca la build quando mancano traduzioni obbligatorie.

    package.json:

    json
    Copiare il codice

    Copiare il codice nella clipboard

    {  "scripts": {    "test:i18n": "vitest run -c"  }}

    Esempio GitHub Actions:

    yaml
    Copiare il codice

    Copiare il codice nella clipboard

    name: CIon: [push, pull_request]jobs:  test:    runs-on: ubuntu-latest    steps:      - uses: actions/checkout@v4      - uses: actions/setup-node@v4        with:          node-version: 20      - run: npm ci      - run: npm run test:i18n

    Opzionale: esegui l'audit CLI per un riepilogo leggibile dall'uomo insieme ai test:

    bash
    Copiare il codice

    Copiare il codice nella clipboard

    npx intlayer content test --verbose

    Risoluzione dei problemi

    • Assicurati che la tua configurazione Intlayer definisca locales e (opzionalmente) requiredLocales.
    • Se la tua app utilizza dizionari dinamici o remoti, esegui i test in un ambiente dove i dizionari sono disponibili.
    • Per monorepo misti, usa --base-dir per indicare al CLI la radice corretta dell'applicazione.

    Compilazione automatica
    Ottimizzazione del bundle
    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.

      npx intlayer content test
      /* @vitest-environment node */import { listMissingTranslations } from "intlayer/cli";import { describe, expect, it } from "vitest";describe("traduzioni", () => {  it("non ha locali richiesti mancanti", () => {    const result = listMissingTranslations();    if (result.missingRequiredLocales.length > 0) {      // Utile quando il test fallisce localmente o in CI      console.log(result.missingTranslations);    }    expect(result.missingRequiredLocales).toHaveLength(0);  });});
      import { listMissingTranslations } from "intlayer/cli";test("non ha locali richiesti mancanti", () => {  const result = listMissingTranslations();  if (result.missingRequiredLocales.length > 0) {    console.log(result.missingTranslations);  }  expect(result.missingRequiredLocales).toHaveLength(0);});
      import { IntlayerProvider } from "react-intlayer/client";import { render, screen } from "@testing-library/react";import { MyComponent } from "./MyComponent";test("renders localized title in English", () => {  render(    <IntlayerProvider locale="en-US">      <MyComponent />    </IntlayerProvider>  );  expect(screen.getByText("Titolo inglese previsto")).toBeInTheDocument();});
      import { IntlayerClientProvider } from "next-intlayer/client";import { render, screen } from "@testing-library/react";import { MyPage } from "./MyPage";test("renderizza l'intestazione localizzata in francese", () => {  render(    <IntlayerClientProvider locale="fr-FR">      <MyPage />    </IntlayerClientProvider>  );  expect(    screen.getByRole("heading", { name: "Titre attendu" })  ).toBeInTheDocument();});
      {  "scripts": {    "test:i18n": "vitest run -c"  }}
      name: CIon: [push, pull_request]jobs:  test:    runs-on: ubuntu-latest    steps:      - uses: actions/checkout@v4      - uses: actions/setup-node@v4        with:          node-version: 20      - run: npm ci      - run: npm run test:i18n
      npx intlayer content test --verbose