Ricevi notifiche sui prossimi lanci di Intlayer

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

    Vedi l'ultima versione del contenuto originale in inglese

    Documentazione della Configurazione di Intlayer

    Panoramica

    I file di configurazione di Intlayer consentono la personalizzazione di vari aspetti del plugin, come l'internazionalizzazione, il middleware e la gestione dei contenuti. Questo documento fornisce una descrizione dettagliata di ogni proprietà nella configurazione.


    Supporto per File di Configurazione

    Intlayer accetta formati di file di configurazione JSON, JS, MJS e TS:

    • intlayer.config.ts
    • intlayer.config.js
    • intlayer.config.json
    • intlayer.config.cjs
    • intlayer.config.mjs
    • .intlayerrc

    Esempio di file di configurazione

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH],  },  content: {    contentDir: ["src", "../ui-library"],  },  middleware: {    noPrefix: false,  },  editor: {    applicationURL: "https://example.com",  },  ai: {    apiKey: process.env.OPENAI_API_KEY,    applicationContext: "This is a test application",  },  build: {    activateDynamicImport: true,  },};export default config;

    Riferimento Configurazione

    Le seguenti sezioni descrivono le varie impostazioni di configurazione disponibili per Intlayer.


    Configurazione Internazionalizzazione

    Definisce le impostazioni relative all'internazionalizzazione, inclusi i locali disponibili e il locale predefinito per l'applicazione.

    Proprietà

    • locales:

      • Tipo: string[]
      • Predefinito: ['en']
      • Descrizione: L'elenco dei locali supportati nell'applicazione.
      • Esempio: ['en', 'fr', 'es']
    • requiredLocales:

      • Tipo: string[]
      • Predefinito: []
      • Descrizione: L'elenco dei locali richiesti nell'applicazione.
      • Esempio: []
      • Nota: Se vuoto, tutti i locali sono richiesti in modalità strict.
      • Nota: Assicurarsi che i locali richiesti siano anche definiti nel campo locales.
    • strictMode:

      • Tipo: string
      • Predefinito: inclusive
      • Descrizione: Garantisce implementazioni rigorose di contenuti internazionalizzati utilizzando TypeScript.
      • Nota: Se impostato su "strict", la funzione di traduzione t richiederà che ogni locale dichiarato sia definito. Se manca un locale o se un locale non è dichiarato nella configurazione, verrà generato un errore.
      • Nota: Se impostato su "inclusive", la funzione di traduzione t richiederà che ogni locale dichiarato sia definito. Se manca un locale, verrà generato un avviso. Tuttavia, accetterà se un locale non è dichiarato nella configurazione ma esiste.
      • Nota: Se impostato su "loose", la funzione di traduzione t accetterà qualsiasi locale esistente.
    • defaultLocale:

      • Tipo: string
      • Predefinito: 'en'
      • Descrizione: Il locale predefinito utilizzato come fallback se il locale richiesto non viene trovato.
      • Esempio: 'en'
      • Nota: Questo viene utilizzato per determinare il locale quando non è specificato nell'URL, nei cookie o nell'intestazione.

    Configurazione Editor

    Definisce le impostazioni relative all'editor integrato, inclusi la porta del server e lo stato attivo.

    Proprietà

    • applicationURL:

      • Tipo: string
      • Predefinito: http://localhost:3000
      • Descrizione: L'URL dell'applicazione. Utilizzato per limitare l'origine dell'editor per motivi di sicurezza.
      • Esempio:
        • 'http://localhost:3000'
        • 'https://example.com'
        • process.env.INTLAYER_EDITOR_URL
      • Nota: L'URL dell'applicazione. Utilizzato per limitare l'origine dell'editor per motivi di sicurezza. Se impostato su '*', l'editor è accessibile da qualsiasi origine.
    • port:

      • Tipo: number
      • Predefinito: 8000
      • Descrizione: La porta utilizzata dal server dell'editor visivo.
    • editorURL:

      • Tipo: string
      • Predefinito: 'http://localhost:8000'
      • Descrizione: L'URL del server dell'editor. Utilizzato per limitare l'origine dell'editor per motivi di sicurezza.
        • 'http://localhost:3000'
        • 'https://example.com'
        • process.env.INTLAYER_EDITOR_URL
      • Nota: L'URL del server dell'editor da raggiungere dall'applicazione. Utilizzato per limitare le origini che possono interagire con l'applicazione per motivi di sicurezza. Se impostato su '*', l'editor è accessibile da qualsiasi origine. Dovrebbe essere impostato se la porta viene modificata o se l'editor è ospitato su un dominio diverso.
    • cmsURL:

      • Tipo: string
      • Predefinito: 'https://intlayer.org'
      • Descrizione: L'URL del CMS di Intlayer.
      • Esempio: 'https://intlayer.org'
      • Nota: L'URL del CMS di Intlayer.
    • backendURL:

      • Tipo: string
      • Predefinito: https://back.intlayer.org
      • Descrizione: L'URL del server backend.
      • Esempio: http://localhost:4000
    • enabled:

      • Tipo: boolean
      • Predefinito: true
      • Descrizione: Indica se l'applicazione interagisce con l'editor visivo.
      • Esempio: process.env.NODE_ENV !== 'production'
      • Nota: Se true, l'editor sarà in grado di interagire con l'applicazione. Se false, l'editor non sarà in grado di interagire con l'applicazione. In ogni caso, l'editor può essere abilitato solo dall'editor visivo. Disabilitare l'editor per ambienti specifici è un modo per rafforzare la sicurezza.
    • clientId:

      • Tipo: string | undefined
      • Predefinito: undefined
      • Descrizione: clientId e clientSecret consentono ai pacchetti Intlayer di autenticarsi con il backend utilizzando l'autenticazione oAuth2. Un token di accesso viene utilizzato per autenticare l'utente relativo al progetto. Per ottenere un token di accesso, vai su /dashboard/project e crea un account.
      • Esempio: true
      • Nota: Importante: Il clientId e il clientSecret devono essere mantenuti segreti e non condivisi pubblicamente. Assicurarsi di conservarli in un luogo sicuro, come variabili di ambiente.
    • clientSecret:

      • Tipo: string | undefined
      • Predefinito: undefined
      • Descrizione: clientId e clientSecret consentono ai pacchetti Intlayer di autenticarsi con il backend utilizzando l'autenticazione oAuth2. Un token di accesso viene utilizzato per autenticare l'utente relativo al progetto. Per ottenere un token di accesso, vai su /dashboard/project e crea un account.
      • Esempio: true
      • Nota: Importante: Il clientId e il clientSecret devono essere mantenuti segreti e non condivisi pubblicamente. Assicurarsi di conservarli in un luogo sicuro, come variabili di ambiente.
    • hotReload:

      • Tipo: boolean
      • Predefinito: false
      • Descrizione: Indica se l'applicazione deve ricaricare automaticamente le configurazioni dei locali quando viene rilevata una modifica.
      • Esempio: true
      • Nota: Ad esempio, quando viene aggiunto o aggiornato un nuovo dizionario, l'applicazione aggiornerà il contenuto da visualizzare nella pagina.
      • Nota: Poiché il ricaricamento automatico richiede una connessione continua al server, è disponibile solo per i clienti del piano enterprise.
    • dictionaryPriorityStrategy:

      • Tipo: string
      • Predefinito: 'local_first'
      • Descrizione: La strategia per dare priorità ai dizionari nel caso in cui siano presenti sia dizionari locali che remoti. Se impostato su 'distant_first', l'applicazione darà priorità ai dizionari remoti rispetto a quelli locali. Se impostato su 'local_first', l'applicazione darà priorità ai dizionari locali rispetto a quelli remoti.
      • Esempio: 'distant_first'

    Configurazione Middleware

    Impostazioni che controllano il comportamento del middleware, inclusa la gestione di cookie, intestazioni e prefissi URL per la gestione dei locali.

    Proprietà

    • headerName:

      • Tipo: string
      • Predefinito: 'x-intlayer-locale'
      • Descrizione: Il nome dell'intestazione HTTP utilizzata per determinare il locale.
      • Esempio: 'x-custom-locale'
      • Nota: Utile per la determinazione del locale basata su API.

      • Tipo: string
      • Predefinito: 'intlayer-locale'
      • Descrizione: Il nome del cookie utilizzato per memorizzare la lingua.
      • Esempio: 'custom-locale'
      • Nota: Utilizzato per mantenere la lingua tra le sessioni.
    • prefixDefault:

      • Tipo: boolean
      • Predefinito: true
      • Descrizione: Indica se includere la lingua predefinita nell'URL.
      • Esempio: false
      • Nota: Se false, gli URL per la lingua predefinita non avranno un prefisso di lingua.
    • basePath:

      • Tipo: string
      • Predefinito: ''
      • Descrizione: Il percorso base per gli URL dell'applicazione.
      • Esempio: '/my-app'
      • Nota: Questo influisce su come vengono costruiti gli URL per l'applicazione.
    • serverSetCookie:

      • Tipo: string
      • Predefinito: 'always'
      • Descrizione: Regola per impostare il cookie della lingua sul server.
      • Opzioni: 'always', 'never'
      • Esempio: 'never'
      • Nota: Controlla se il cookie della lingua viene impostato su ogni richiesta o mai.
    • noPrefix:

      • Tipo: boolean
      • Predefinito: false
      • Descrizione: Indica se omettere il prefisso della lingua dagli URL.
      • Esempio: true
      • Nota: Se true, gli URL non conterranno informazioni sulla lingua.

    Configurazione del Contenuto

    Impostazioni relative alla gestione dei contenuti all'interno dell'applicazione, inclusi nomi di directory, estensioni di file e configurazioni derivate.

    Proprietà

    • watch:

      • Tipo: boolean
      • Predefinito: process.env.NODE_ENV === 'development'
      • Descrizione: Indica se Intlayer deve monitorare le modifiche nei file di dichiarazione del contenuto nell'app per ricostruire i dizionari correlati.
    • fileExtensions:

      • Tipo: string[]
      • Predefinito: ['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']
      • Descrizione: Estensioni di file da cercare durante la costruzione dei dizionari.
      • Esempio: ['.data.ts', '.data.js', '.data.json']
      • Nota: Personalizzare le estensioni dei file può aiutare a evitare conflitti.
    • baseDir:

      • Tipo: string
      • Predefinito: process.cwd()
      • Descrizione: La directory base per il progetto.
      • Esempio: '/path/to/project'
      • Nota: Utilizzato per risolvere tutte le directory relative a Intlayer.
    • dictionaryOutput:

      • Tipo: string[]
      • Predefinito: ['intlayer']
      • Descrizione: Il tipo di output del dizionario da utilizzare, ad esempio 'intlayer' o 'i18next'.
    • contentDir:

      • Tipo: string[]
      • Predefinito: ['src']
      • Descrizione: Il percorso della directory in cui sono memorizzati i contenuti.
    • dictionariesDir:

      • Tipo: string
      • Predefinito: '.intlayer/dictionaries'
      • Descrizione: Il percorso della directory per memorizzare risultati intermedi o di output.
    • moduleAugmentationDir:

      • Tipo: string
      • Predefinito: '.intlayer/types'
      • Descrizione: Directory per l'augmentazione dei moduli, consentendo migliori suggerimenti IDE e controllo dei tipi.
      • Esempio: 'intlayer-types'
      • Nota: Assicurati di includerlo in tsconfig.json.
    • unmergedDictionariesDir:

      • Tipo: string
      • Predefinito: '.intlayer/unmerged_dictionary'
      • Descrizione: La directory per memorizzare i dizionari non uniti.
      • Esempio: 'translations'
    • dictionariesDir:

      • Tipo: string
      • Predefinito: '.intlayer/dictionary'
      • Descrizione: La directory per memorizzare i dizionari di localizzazione.
      • Esempio: 'translations'
    • i18nextResourcesDir:

      • Tipo: string
      • Predefinito: 'i18next_dictionary'
      • Descrizione: La directory per memorizzare i dizionari i18n.
      • Esempio: 'translations'
      • Nota: Assicurati che questa directory sia configurata per il tipo di output i18next.
    • typesDir:

      • Tipo: string
      • Predefinito: 'types'
      • Descrizione: La directory per memorizzare i tipi di dizionario.
      • Esempio: 'intlayer-types'
    • mainDir:

      • Tipo: string
      • Predefinito: 'main'
      • Descrizione: La directory in cui sono memorizzati i file principali dell'applicazione.
      • Esempio: 'intlayer-main'
    • excludedPath:

      • Tipo: string[]
      • Predefinito: ['node_modules']
      • Descrizione: Directory escluse dalla ricerca di contenuti.
      • Nota: Questa impostazione non è ancora utilizzata, ma è prevista per implementazioni future.

    Configurazione del Logger

    Impostazioni che controllano il logger, incluso il prefisso da utilizzare.

    Proprietà

    • mode:

      • Tipo: string
      • Predefinito: default
      • Descrizione: Indica la modalità del logger.
      • Opzioni: default, verbose, disabled
      • Esempio: default
      • Nota: La modalità del logger. La modalità verbose registrerà più informazioni, ma può essere utilizzata per scopi di debug. La modalità disabled disabiliterà il logger.
    • prefix:

      • Tipo: string
      • Predefinito: '[intlayer] '
      • Descrizione: Il prefisso del logger.
      • Esempio: '[my custom prefix] '
      • Nota: Il prefisso del logger.

    Configurazione AI

    Impostazioni che controllano le funzionalità AI di Intlayer, incluso il provider, il modello e la chiave API.

    Questa configurazione è opzionale se sei registrato sulla Dashboard di Intlayer utilizzando una chiave di accesso. Intlayer gestirà automaticamente la soluzione AI più efficiente ed economica per le tue esigenze. Utilizzare le opzioni predefinite garantisce una migliore manutenibilità a lungo termine poiché Intlayer si aggiorna continuamente per utilizzare i modelli più rilevanti.

    Se preferisci utilizzare la tua chiave API o un modello specifico, puoi definire la tua configurazione AI personalizzata. Questa configurazione AI sarà utilizzata globalmente in tutto il tuo ambiente Intlayer. I comandi CLI utilizzeranno queste impostazioni come predefinite per i comandi (ad esempio fill), così come l'SDK, l'Editor Visivo e il CMS. Puoi sovrascrivere questi valori predefiniti per casi d'uso specifici utilizzando i parametri dei comandi.

    Intlayer supporta più provider AI per una maggiore flessibilità e scelta. I provider attualmente supportati sono:

    • OpenAI (predefinito)
    • Anthropic Claude
    • Mistral AI
    • DeepSeek
    • Google Gemini
    • Meta Llama

    Proprietà

    • provider:

      • Tipo: string
      • Predefinito: 'openai'
      • Descrizione: Il provider da utilizzare per le funzionalità AI di Intlayer.
      • Opzioni: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini'
      • Esempio: 'anthropic'
      • Nota: I diversi provider possono richiedere chiavi API diverse e avere modelli di prezzo differenti.
    • model:

      • Tipo: string
      • Predefinito: Nessuno
      • Descrizione: Il modello da utilizzare per le funzionalità AI di Intlayer.
      • Esempio: 'gpt-4o-2024-11-20'
      • Nota: Il modello specifico da utilizzare varia in base al provider.
    • temperature:

      • Tipo: number
      • Predefinito: Nessuno
      • Descrizione: La temperatura controlla la casualità delle risposte dell'AI.
      • Esempio: 0.1
      • Nota: Una temperatura più alta renderà l'AI più creativa e meno prevedibile.
    • apiKey:

      • Tipo: string
      • Predefinito: Nessuno
      • Descrizione: La tua chiave API per il provider selezionato.
      • Esempio: process.env.OPENAI_API_KEY
      • Nota: Importante: le chiavi API devono essere mantenute segrete e non condivise pubblicamente. Assicurati di conservarle in un luogo sicuro, come le variabili d'ambiente.
    • applicationContext:

      • Tipo: string
      • Predefinito: Nessuno
      • Descrizione: Fornisce un contesto aggiuntivo sulla tua applicazione al modello AI, aiutandolo a generare traduzioni più precise e contestualmente appropriate. Questo può includere informazioni sul dominio della tua applicazione, pubblico target, tono o terminologia specifica.

    Configurazione del Build

    Impostazioni che controllano come Intlayer ottimizza e compila l'internazionalizzazione della tua applicazione.

    Le opzioni di build si applicano ai plugin @intlayer/babel e @intlayer/swc.

    In modalità sviluppo, Intlayer utilizza un'importazione statica centralizzata per i dizionari per semplificare l'esperienza di sviluppo.

    Ottimizzando il build, Intlayer sostituirà tutte le chiamate dei dizionari per ottimizzare il chunking. In questo modo il bundle finale importerà solo i dizionari che vengono utilizzati.

    • Nota: @intlayer/babel è disponibile per impostazione predefinita nel pacchetto vite-intlayer, ma @intlayer/swc non è installato per impostazione predefinita nel pacchetto next-intlayer poiché i plugin SWC sono ancora sperimentali su Next.js.

    Proprietà

    • optimize:

      • Tipo: boolean
      • Predefinito: process.env.NODE_ENV === 'production'
      • Descrizione: Controlla se il build deve essere ottimizzato.
      • Esempio: true
      • Nota: Permetterà di importare solo i dizionari utilizzati nel bundle. Ma tutte le importazioni rimarranno come importazione statica per evitare l'elaborazione asincrona durante il caricamento dei dizionari.
      • Nota: Quando abilitato, Intlayer ottimizzerà il chunking del dizionario sostituendo tutte le chiamate di useIntlayer con useDictionary e getIntlayer con getDictionary.
      • Nota: Assicurati che tutte le chiavi siano dichiarate staticamente nelle chiamate useIntlayer. ad esempio: useIntlayer('navbar').
    • activateDynamicImport:

      • Tipo: boolean
      • Predefinito: false
      • Descrizione: Controlla se il contenuto del dizionario deve essere importato dinamicamente per lingua.
      • Esempio: true
      • Nota: Permetterà di importare dinamicamente il contenuto del dizionario solo per la lingua corrente.
      • Nota: Le importazioni dinamiche si basano su React Suspense e possono influire leggermente sulle prestazioni di rendering. Ma se disabilitato tutte le lingue verranno caricate contemporaneamente, anche se non vengono utilizzate.
      • Nota: Quando abilitato, Intlayer ottimizzerà il chunking del dizionario sostituendo tutte le chiamate di useIntlayer con useDynamicDictionary.
      • Nota: Questa opzione verrà ignorata se optimize è disabilitato.
      • Nota: Assicurati che tutte le chiavi siano dichiarate staticamente nelle chiamate useIntlayer. ad esempio: useIntlayer('navbar').
    • traversePattern:

      • Tipo: string[]
      • Predefinito: ['**/*.{js,ts,mjs,cjs,jsx,tsx,mjx,cjx,vue,svelte,svte}', '!**/node_modules/**']
      • Descrizione: Pattern che definiscono quali file devono essere attraversati durante l'ottimizzazione.
      • Esempio: ['src/**/*.{ts,tsx}', '../ui-library/**/*.{ts,tsx}', '!**/node_modules/**']
      • Nota: Usa questo per limitare l'ottimizzazione ai file di codice rilevanti e migliorare le prestazioni del build.
      • Nota: Questa opzione verrà ignorata se optimize è disabilitato.
      • Nota: Usa il pattern glob.

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

    Collegamento GitHub alla documentazione
    Ricevi notifiche sui prossimi lanci di Intlayer