Intlayer Configuration Documentation
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 ciascuna proprietà nella configurazione.
Supporto per File di Configurazione
Intlayer accetta i 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
import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = { internationalization: { locales: [Locales.ITALIAN], }, content: { typesDir: "content/types", }, middleware: { noPrefix: false, },};export default config;
Riferimento di Configurazione
Le seguenti sezioni descrivono le varie impostazioni di configurazione disponibili per Intlayer.
Configurazione dell'Internazionalizzazione
Definisce le impostazioni relative all'internazionalizzazione, comprese 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: Assicura implementazioni forti di contenuti internazionalizzati utilizzando TypeScript.
- Nota: Se impostato su "strict", la funzione di traduzione t richiederà che ciascuna localizzazione dichiarata sia definita. Se una localizzazione è assente, 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 ciascuna localizzazione dichiarata sia definita. Se una localizzazione è assente, 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, nei cookie o nell'intestazione.
Configurazione dell'Editor
Definisce le impostazioni relative all'editor integrato, incluso il numero di porta del server e il suo 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 utilizzando NODE_ENV o un'altra variabile ambientale dedicata.
clientId:
- Tipo: string | undefined
- Predefinito: undefined
- Descrizione: clientId e clientSecret consentono ai pacchetti di 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, visita /dashboard/project e crea un account.
- Esempio: true
- Nota: Importante: clientId e clientSecret devono essere mantenuti segreti e non condivisi pubblicamente. Assicurati di tenerli in un luogo sicuro, come le variabili ambientali.
clientSecret:
- Tipo: string | undefined
- Predefinito: undefined
- Descrizione: clientId e clientSecret consentono ai pacchetti di 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, visita /dashboard/project e crea un account.
- Esempio: true
- Nota: Importante: clientId e clientSecret devono essere mantenuti segreti e non condivisi pubblicamente. Assicurati di tenerli in un luogo sicuro, come le variabili ambientali.
Configurazione del Middleware
Impostazioni che controllano il comportamento del middleware, incluso come l'applicazione gestisce i cookie, le intestazioni e i 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: Utilizzato per mantenere la localizzazione tra le sessioni.
- prefixDefault:
- Tipo: boolean
- Predefinito: true
- Descrizione: Se includere o meno 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 le 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 in ogni richiesta o mai.
- noPrefix:
- Tipo: boolean
- Predefinito: false
- Descrizione: Se omettere o meno il prefisso della localizzazione dagli URL.
- Esempio: true
- Nota: Se true, gli URL non conterranno informazioni sulla localizzazione.
Configurazione dei Contenuti
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 le modifiche 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 dei file da cercare quando si costruiscono i dizionari.
- Esempio: ['.data.ts', '.data.js', '.data.json']
- Nota: Personalizzare le estensioni dei file può aiutare ad 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 output del dizionario da utilizzare, ad esempio, 'intlayer' oppure 'i18next'.
- contentDirName:
- Tipo: string
- Predefinito: 'src'
- Descrizione: Il nome della directory in cui sono memorizzati i contenuti.
- Esempio: 'data', 'content', 'locales'
- Nota: Se non si trova a livello della directory base, aggiornare il 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, aggiornare 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 da parte 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'aumento del modulo e definizioni di tipo aggiuntive.
- dictionariesDirName:
- Tipo: string
- Predefinito: 'dictionary'
- Descrizione: Directory per memorizzare i dizionari.
- Esempio: 'translations'
- Nota: Se non è a livello della directory dei risultati, aggiornare dictionariesDir.
dictionariesDir:
- Tipo: string
- DerivatoDa: 'resultDir' / 'dictionariesDirName'
- Descrizione: La directory per memorizzare i dizionari di localizzazione.
- i18nextResourcesDirName:
- Tipo: string
- Predefinito: 'i18next_dictionary'
- Descrizione: Directory per memorizzare i dizionari i18n.
- Esempio: 'translations'
- Nota: Se non è a livello della directory dei risultati, aggiornare i18nextResourcesDir.
- Nota: Assicurati che l'output dei dizionari i18n includa i18next per costruire i dizionari per i18next.
i18nextResourcesDir:
- Tipo: string
- DerivatoDa: 'resultDir' / 'i18nextResourcesDirName'
- 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 dei risultati, aggiornare 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 dei risultati, aggiornare 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.
Configurazione del Logger
Impostazioni che controllano il logger, incluso il livello di registrazione e il prefisso da utilizzare.
Proprietà
- enabled:
- Tipo: boolean
- Predefinito: true
- Descrizione: Indica se il logger è abilitato.
- Esempio: true
- Nota: Può essere impostato utilizzando NODE_ENV o un'altra variabile ambientale dedicata.
- level:
- Tipo: 'info' | 'warn' | 'debug' | 'log'
- Predefinito: 'log'
- Descrizione: Il livello del logger.
- Esempio: 'info'
- Nota: Il livello del logger. Può essere 'log', 'info', 'warn', 'error' o 'debug'.
- prefix:
- Tipo: string
- Predefinito: '[intlayer] '
- Descrizione: Il prefisso del logger.
- Esempio: '[my custom prefix] '
- Nota: Il prefisso del logger.
Se hai un’idea per migliorare questa documentazione, non esitare a contribuire inviando una pull request su GitHub.
Collegamento GitHub alla documentazione