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. File per locale
    Creazione:2025-04-18Ultimo aggiornamento:2025-06-29
    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. "Inizio 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

    Dichiarazione di Contenuto Per-Locale in Intlayer

    Intlayer supporta due modi per dichiarare contenuti multilingue:

    • Un singolo file con tutte le traduzioni
    • Un file per ogni locale (formato per-locale)

    Questa flessibilità consente:

    • Migrazione semplice da altri strumenti i18n
    • Supporto per flussi di lavoro di traduzione automatizzata
    • Organizzazione chiara delle traduzioni in file separati e specifici per locale

    Singolo File con Traduzioni Multiple

    Questo formato è ideale per:

    • Iterazioni rapide nel codice.
    • Integrazione senza soluzione di continuità con il CMS.

    Questo è l'approccio consigliato per la maggior parte dei casi d'uso. Centralizza le traduzioni, rendendo facile iterare e integrare con il CMS.

    hello-world.content.ts
    Copiare il codice

    Copiare il codice nella clipboard

    import { t, type Dictionary } from "intlayer";
    
    const helloWorldContent = {
      key: "hello-world",
      content: {
        multilingualContent: t({
          en: "Title of my component",
          es: "Título de mi componente",
        }),
      },
    } satisfies Dictionary;
    
    export default helloWorldContent;
    Consigliato: questo formato è il migliore quando si utilizza l'editor visuale di Intlayer o si gestiscono le traduzioni direttamente nel codice.

    Configurazione globale per i file per-locale

    Puoi configurare la configurazione globale per i file per-locale aggiungendo quanto segue al tuo file intlayer.config.ts:

    ts
    Copiare il codice

    Copiare il codice nella clipboard

    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  dictionary: {    locale: Locales.ENGLISH,  },};export default config;

    Utilizzando questa configurazione, tutti i file per-locale verranno generati con la locale predefinita impostata su inglese. Include anche la generazione di file .content utilizzando il comando extract e il compilatore. (Vedere Compilatore o Extract per ulteriori informazioni.)

    Formato per Locale

    Questo formato è utile quando:

    • Vuoi versionare o sovrascrivere le traduzioni in modo indipendente.
    • Stai integrando flussi di lavoro di traduzione automatica o umana.

    Puoi anche suddividere le traduzioni in file di locale individuali specificando il campo locale:

    hello-world.es.content.ts
    Copiare il codice

    Copiare il codice nella clipboard

    import { t, Locales, type Dictionary } from "intlayer";
    
    const helloWorldContent = {
      key: "hello-world",
      locale: Locales.SPANISH, // Importante
      content: { multilingualContent: "Título de mi componente" },
    } satisfies Dictionary;
    
    export default helloWorldContent;
    Importante: Assicurati che il campo locale sia definito. Indica a Intlayer quale lingua rappresenta il file.
    Nota: In entrambi i casi, il file di dichiarazione del contenuto deve seguire il modello di denominazione *.content.{ts,tsx,js,jsx,mjs,cjs,json} per essere riconosciuto da Intlayer. Il suffisso .[locale] è opzionale ed è usato solo come convenzione di denominazione.

    Mescolare Formati

    Puoi combinare entrambi gli approcci di dichiarazione per la stessa chiave di contenuto. Per esempio:

    • Dichiara il tuo contenuto base staticamente in un file come index.content.ts.
    • Aggiungi o sovrascrivi traduzioni specifiche in file separati come index.fr.content.ts o index.content.json.

    Questa configurazione è particolarmente utile quando:

    • Vuoi definire la struttura iniziale del contenuto nel codice.
    • Hai intenzione di arricchire o completare le traduzioni successivamente utilizzando il CMS o strumenti automatizzati.
    bash
    Copiare il codice

    Copiare il codice nella clipboard

    .└── Components    └── MyComponent        ├── index.content.ts        ├── index.content.json        └── index.ts

    Esempio

    Ecco un file di dichiarazione di contenuto multilingue:

    Components/MyComponent/index.content.ts
    Copiare il codice

    Copiare il codice nella clipboard

    import { t, type Dictionary } from "intlayer";const helloWorldContent = {  key: "hello-world",  locale: Locales.ENGLISH,  content: {    multilingualContent: "Titolo del mio componente",    projectName: "Il mio progetto",  },} satisfies Dictionary;export default helloWorldContent;
    Components/MyComponent/index.content.json
    Copiare il codice

    Copiare il codice nella clipboard

    {  "$schema": "https://intlayer.org/schema.json",  "key": "hello-world",  "content": {    "multilingualContent": {      "nodeType": "translation",      "translation": {        "fr": "Titre de mon composant",        "es": "Título de mi componente"      }    }  }}

    Intlayer unisce automaticamente i file multilingue e per locale.

    Components/MyComponent/index.ts
    Copiare il codice

    Copiare il codice nella clipboard

    import { getIntlayer, Locales } from "intlayer";const intlayer = getIntlayer("hello-world"); // La lingua predefinita è INGLESE, quindi restituirà il contenuto in INGLESEconsole.log(JSON.stringify(intlayer, null, 2));// Risultato:// {//  "multilingualContent": "Titolo del mio componente",//  "projectName": "Il mio progetto"// }const intlayer = getIntlayer("hello-world", Locales.SPANISH);console.log(JSON.stringify(intlayer, null, 2));// Risultato:// {//  "multilingualContent": "Título de mi componente",//  "projectName": "Il mio progetto"// }const intlayer = getIntlayer("hello-world", Locales.FRENCH);console.log(JSON.stringify(intlayer, null, 2));// Risultato:// {//  "multilingualContent": "Titre de mon composant",//  "projectName": "Il mio progetto"// }

    Generazione Automatica delle Traduzioni

    Usa il intlayer CLI per compilare automaticamente le traduzioni mancanti basandoti sui servizi che preferisci.

    Recupero funzione
    Compilatore
    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 = {  dictionary: {    locale: Locales.ENGLISH,  },};export default config;
      .└── Components    └── MyComponent        ├── index.content.ts        ├── index.content.json        └── index.ts
      import { t, type Dictionary } from "intlayer";const helloWorldContent = {  key: "hello-world",  locale: Locales.ENGLISH,  content: {    multilingualContent: "Titolo del mio componente",    projectName: "Il mio progetto",  },} satisfies Dictionary;export default helloWorldContent;
      {  "$schema": "https://intlayer.org/schema.json",  "key": "hello-world",  "content": {    "multilingualContent": {      "nodeType": "translation",      "translation": {        "fr": "Titre de mon composant",        "es": "Título de mi componente"      }    }  }}
      import { getIntlayer, Locales } from "intlayer";const intlayer = getIntlayer("hello-world"); // La lingua predefinita è INGLESE, quindi restituirà il contenuto in INGLESEconsole.log(JSON.stringify(intlayer, null, 2));// Risultato:// {//  "multilingualContent": "Titolo del mio componente",//  "projectName": "Il mio progetto"// }const intlayer = getIntlayer("hello-world", Locales.SPANISH);console.log(JSON.stringify(intlayer, null, 2));// Risultato:// {//  "multilingualContent": "Título de mi componente",//  "projectName": "Il mio progetto"// }const intlayer = getIntlayer("hello-world", Locales.FRENCH);console.log(JSON.stringify(intlayer, null, 2));// Risultato:// {//  "multilingualContent": "Titre de mon composant",//  "projectName": "Il mio progetto"// }