Intlayer Configurazione Documentazione

    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 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

    typescript
    // intlayer.config.ts
    
    import { Locales, type IntlayerConfig } from "intlayer";
    
    const config: IntlayerConfig = {
      internationalization: {
        locales: [Locales.ITALIAN], // Locale Italiano
      },
      content: {
        typesDir: "content/types",
      },
      middleware: {
        noPrefix: false,
      },
    };
    
    export default config;
    
    javascript
    // intlayer.config.cjs
    
    const { Locales } = require("intlayer");
    
    /** @type {import('intlayer').IntlayerConfig} */
    const config = {
      internationalization: {
        locales: [Locales.ITALIAN], // Locale Italiano
      },
      content: {
        typesDir: "content/types",
      },
      middleware: {
        noPrefix: false,
      },
    };
    
    module.exports = config;
    
    json5
    // .intlayerrc
    
    {
      "internationalization": {
        "locales": ["it"], // Locale Italiano
      },
      "content": {
        "typesDir": "content/types",
      },
      "middleware": {
        "noPrefix": false,
      },
    }
    

    Riferimento Configurazione

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


    Configurazione Internazionalizzazione

    Definisce le impostazioni relative all'internazionalizzazione, incluse le localizzazioni disponibili e la localizzazione predefinita per l'applicazione.

    Proprietà

    • locales:
      • Tipo: string[]
      • Predefinito: ['it']
      • Descrizione: L'elenco delle localizzazioni supportate nell'applicazione.
      • Esempio: ['it', 'fr', 'es']
    • strictMode:

      • Tipo: string
      • Predefinito: required_only
      • Descrizione: Assicurati implementazioni solide di contenuti internazionalizzati usando TypeScript.
      • Nota: Se impostato su "strict", la funzione di traduzione t richiederà che ogni localizzazione dichiarata sia definita. Se manca una localizzazione, o se una localizzazione non è dichiarata nella tua configurazione, verrà generato un errore.
      • Nota: Se impostato su "required_only", la funzione di traduzione t richiederà che ogni localizzazione dichiarata sia definita. Se manca una localizzazione, verrà generato un avviso, ma verrà accettato se una localizzazione non è dichiarata nella tua configurazione, ma esiste.
      • Nota: Se impostato su "loose", la funzione di traduzione t accetterà qualsiasi localizzazione esistente.
    • defaultLocale:

      • Tipo: string
      • Predefinito: 'it'
      • Descrizione: La localizzazione predefinita utilizzata come fallback se la localizzazione richiesta non viene trovata.
      • Esempio: 'it'
      • Nota: Questo viene utilizzato per determinare la localizzazione quando nessuna è specificata nell'URL, nel cookie o nell'intestazione.

    Configurazione Editor

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

    Proprietà

    • 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'editor è attivo.
      • Esempio: true
      • Nota: Può essere impostato usando NODE_ENV, o un'altra variabile di ambiente dedicata.
    • 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 https://back.intlayer.org/dashboard/project e crea un account.
      • Esempio: true
      • Nota: Importante: Il clientId e il clientSecret devono essere mantenuti segreti e non condivisi pubblicamente. Assicurati di tenerli in un luogo sicuro, come le 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 https://back.intlayer.org/dashboard/project e crea un account.
      • Esempio: true
      • Nota: Importante: Il clientId e il clientSecret devono essere mantenuti segreti e non condivisi pubblicamente. Assicurati di tenerli in un luogo sicuro, come le variabili di ambiente.

    Configurazione Middleware

    Impostazioni che controllano il comportamento del middleware, incluso come l'applicazione gestisce cookie, intestazioni e prefissi URL per la gestione delle localizzazioni.

    Proprietà

    • headerName:
      • Tipo: string
      • Predefinito: 'x-intlayer-locale'
      • Descrizione: Il nome dell'intestazione HTTP utilizzato per determinare la localizzazione.
      • Esempio: 'x-custom-locale'
      • Nota: Questo è utile per la determinazione della localizzazione basata su API.
    • cookieName:
      • Tipo: string
      • Predefinito: 'intlayer-locale'
      • Descrizione: Il nome del cookie utilizzato per memorizzare la localizzazione.
      • Esempio: 'custom-locale'
      • Nota: Usato per persistere la localizzazione tra le sessioni.
    • prefixDefault:
      • Tipo: boolean
      • Predefinito: true
      • Descrizione: Se includere la localizzazione predefinita nell'URL.
      • Esempio: false
      • Nota: Se false, gli URL per la localizzazione predefinita non avranno un prefisso di localizzazione.
    • 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 localizzazione sul server.
      • Opzioni: 'always', 'never'
      • Esempio: 'never'
      • Nota: Controlla se il cookie della localizzazione viene impostato ad ogni richiesta o mai.
    • noPrefix:
      • Tipo: boolean
      • Predefinito: false
      • Descrizione: Se omettere il prefisso della localizzazione dagli URL.
      • Esempio: true
      • Nota: Se true, gli URL non contengono informazioni sulla localizzazione.

    Configurazione del Contenuto

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

    Proprietà

    • watch:
      • Tipo: boolean
      • Predefinito: process.env.NODE_ENV === 'development'
      • Descrizione: Indica se Intlayer dovrebbe monitorare i cambiamenti nei file di dichiarazione dei contenuti 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 quando si costruiscono 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: Questo viene utilizzato per risolvere tutte le directory relative a Intlayer.
    • dictionaryOutput:
      • Tipo: string[]
      • Predefinito: ['intlayer']
      • Descrizione: Il tipo di uscita del dizionario da utilizzare, es. 'intlayer' o 'i18next'.
    • contentDirName:
      • Tipo: string
      • Predefinito: 'src'
      • Descrizione: Il nome della directory in cui sono memorizzati i contenuti.
      • Esempio: 'data', 'content', 'locales'
      • Nota: Se non è a livello della directory base, aggiorna contentDir.
    • contentDir:

      • Tipo: string
      • DerivatoDa: 'baseDir' / 'contentDirName'
      • Descrizione: Il percorso della directory in cui sono memorizzati i contenuti.
    • resultDirName:
      • Tipo: string
      • Predefinito: '.intlayer'
      • Descrizione: Il nome della directory in cui sono memorizzati i risultati.
      • Esempio: 'outputOFIntlayer'
      • Nota: Se questa directory non è a livello base, aggiorna resultDir.
    • resultDir:

      • Tipo: string
      • DerivatoDa: 'baseDir' / 'resultDirName'
      • Descrizione: Il percorso della directory per memorizzare risultati intermedi o di output.
    • moduleAugmentationDirName:

      • Tipo: string
      • Predefinito: 'types'
      • Descrizione: Directory per l'aumento del modulo, che consente suggerimenti migliori dell'IDE e il controllo dei tipi.
      • Esempio: 'intlayer-types'
      • Nota: Assicurati di includere questo in tsconfig.json.
    • moduleAugmentationDir:

      • Tipo: string
      • DerivatoDa: 'baseDir' / 'moduleAugmentationDirName'
      • Descrizione: Il percorso per l'augmentation del modulo e ulteriori definizioni di tipo.
    • dictionariesDirName:
      • Tipo: string
      • Predefinito: 'dictionary'
      • Descrizione: Directory per memorizzare i dizionari.
      • Esempio: 'translations'
      • Nota: Se non è a livello della directory di risultato, aggiorna dictionariesDir.
    • dictionariesDir:

      • Tipo: string
      • DerivatoDa: 'resultDir' / 'dictionariesDirName'
      • Descrizione: La directory per memorizzare i dizionari di localizzazione.
    • i18nDictionariesDirName:
      • Tipo: string
      • Predefinito: 'i18n_dictionary'
      • Descrizione: Directory per memorizzare i dizionari i18n.
      • Esempio: 'translations'
      • Nota: Se non è a livello della directory di risultato, aggiorna i18nDictionariesDir.
      • Nota: Assicurati che l'uscita dei dizionari i18n includa i18next per costruire i dizionari per i18next.
    • i18nDictionariesDir:

      • Tipo: string
      • DerivatoDa: 'resultDir' / 'i18nDictionariesDirName'
      • Descrizione: La directory per memorizzare i dizionari i18n.
      • Nota: Assicurati che questa directory sia configurata per il tipo di output i18next.
    • typeDirName:

      • Tipo: string
      • Predefinito: 'types'
      • Descrizione: Directory per memorizzare i tipi di dizionario.
      • Esempio: 'intlayer-types'
      • Nota: Se non è a livello della directory di risultato, aggiorna typesDir.
    • typesDir:

      • Tipo: string
      • DerivatoDa: 'resultDir' / 'typeDirName'
      • Descrizione: La directory per memorizzare i tipi di dizionario.
    • mainDirName:
      • Tipo: string
      • Predefinito: 'main'
      • Descrizione: Directory per memorizzare i file principali.
      • Esempio: 'intlayer-main'
      • Nota: Se non è a livello della directory di risultato, aggiorna mainDir.
    • mainDir:
      • Tipo: string
      • DerivatoDa: 'resultDir' / 'mainDirName'
      • Descrizione: La directory in cui sono memorizzati i file principali dell'applicazione.
    • excludedPath:
      • Tipo: string[]
      • Predefinito: ['node_modules']
      • Descrizione: Directory escluse dalla ricerca dei contenuti.
      • Nota: Questa impostazione non è ancora utilizzata, ma pianificata per implementazioni future.

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

    Collegamento GitHub alla documentazione