---
createdAt: 2024-08-13
updatedAt: 2026-02-25
title: Configurazione
description: Scopri come configurare Intlayer per la tua applicazione. Comprendi le varie impostazioni e opzioni disponibili per personalizzare Intlayer secondo le tue esigenze.
keywords:
  - Configurazione
  - Impostazioni
  - Personalizzazione
  - Intlayer
  - Opzioni
slugs:
  - doc
  - concept
  - configuration
history:
  - version: 8.1.7
    date: 2026-02-25
    changes: Aggiorna le opzioni del compilatore
  - version: 8.0.6
    date: 2026-02-12
    changes: Add support for Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face, and Together.ai providers
  - version: 8.0.5
    date: 2026-02-06
    changes: Aggiungi `dataSerialization` alla configurazione AI
  - version: 8.0.0
    date: 2026-01-22
    changes: Move `importMode` build configuration to `dictionary` configuration.
  - version: 8.0.0
    date: 2026-01-18
    changes: Separare la configurazione del sistema dalla configurazione del contenuto. Spostare i percorsi interni alla proprietà `system`. Aggiungere `codeDir` per separare i file di contenuto dalla trasformazione del codice.
  - version: 8.0.0
    date: 2026-01-18
    changes: Aggiunte opzioni dizionario `location` e `schema`
  - version: 7.5.1
    date: 2026-01-10
    changes: Aggiunto supporto per i formati di file JSON5 e JSONC
  - version: 7.5.0
    date: 2025-12-17
    changes: Aggiunta opzione `buildMode`
  - version: 6.0.0
    date: 2025-09-16
    changes: Aggiunta modalità di importazione `live`
  - version: 6.0.0
    date: 2025-09-04
    changes: Sostituito il campo `hotReload` con `liveSync` e aggiunti i campi `liveSyncPort` e `liveSyncURL`
  - version: 5.6.1
    date: 2025-07-25
    changes: Sostituito `activateDynamicImport` con l'opzione `importMode`
  - version: 5.6.0
    date: 2025-07-13
    changes: Modificata la directory di contenuto predefinita da `['src']` a `['.']`
  - version: 5.5.11
    date: 2025-06-29
    changes: Aggiunti i comandi `docs`
---

# Documentazione di Configurazione di Intlayer

## Panoramica

I file di configurazione di Intlayer permettono 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.

---

## Indice

<TOC/>

---

## Formati di File di Configurazione Supportati

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

- `intlayer.config.ts`
- `intlayer.config.js`
- `intlayer.config.json`
- `intlayer.config.json5`
- `intlayer.config.jsonc`
- `intlayer.config.cjs`
- `intlayer.config.mjs`
- `.intlayerrc`

---

## Esempio di file di configurazione

```typescript fileName="intlayer.config.ts" codeFormat="typescript"
import { Locales, type IntlayerConfig } from "intlayer";
import { nextjsRewrite } from "intlayer/routing";
import { z } from "zod";

/**
 * Example Intlayer configuration file showing all available options.
 */
const config: IntlayerConfig = {
  /**
   * Configuration for internationalization settings.
   */
  internationalization: {
    /**
     * List of supported locales in the application.
     * Default: [Locales.ENGLISH]
     */
    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],

    /**
     * List of required locales that must be defined in every dictionary.
     * If empty, all locales are required in `strict` mode.
     * Default: []
     */
    requiredLocales: [Locales.ENGLISH],

    /**
     * Strictness level for internationalized content.
     * - "strict": Errors if any declared locale is missing or undeclared.
     * - "inclusive": Warnings if a declared locale is missing.
     * - "loose": Accepts any existing locale.
     * Default: "inclusive"
     */
    strictMode: "inclusive",

    /**
     * Default locale used as a fallback if the requested locale is not found.
     * Default: Locales.ENGLISH
     */
    defaultLocale: Locales.ENGLISH,
  },

  /**
   * Settings that control dictionary operations and fallback behavior.
   */
  dictionary: {
    /**
     * Controls how dictionaries are imported.
     * - "static": Statically imported at build time.
     * - "dynamic": Dynamically imported using Suspense.
     * - "fetch": Fetched dynamically via the live sync API.
     * Default: "static"
     */
    importMode: "static",

    /**
     * Strategy for auto-filling missing translations using AI.
     * Can be a boolean or a path pattern to store filled content.
     * Default: true
     */
    fill: true,

    /**
     * Physical location of the dictionary files.
     * - "local": Stored in the local filesystem.
     * - "remote": Stored in the Intlayer CMS.
     * - "hybrid": Stored in the local filesystem and the Intlayer CMS.
     * - "plugin" (or any custom string): Provided by a plugin or a custom source.
     * Default: "local"
     */
    location: "local",

    /**
     * Whether to automatically transform content (e.g., Markdown to HTML).
     * Default: false
     */
    contentAutoTransformation: false,
  },

  /**
   * Routing and middleware configuration.
   */
  routing: {
    /**
     * Locale routing strategy.
     * - "prefix-no-default": Prefix all except the default locale (e.g., /dashboard, /fr/dashboard).
     * - "prefix-all": Prefix all locales (e.g., /en/dashboard, /fr/dashboard).
     * - "no-prefix": No locale in the URL.
     * - "search-params": Use ?locale=...
     * Default: "prefix-no-default"
     */
    mode: "prefix-no-default",

    /**
     * Where to store the user's selected locale.
     * Options: 'cookie', 'localStorage', 'sessionStorage', 'header', or an array of these.
     * Default: ['cookie', 'header']
     */
    storage: "cookie",

    /**
     * Base path for the application URLs.
     * Default: ""
     */
    basePath: "",

    /**
     * Custom URL rewriting rules for locale-specific paths.
     */
    rewrite: nextjsRewrite({
      "/[locale]/about": {
        en: "/[locale]/about",
        fr: "/[locale]/a-propos",
      },
    }),
  },

  /**
   * Settings for finding and processing content files.
   */
  content: {
    /**
     * File extensions to scan for dictionaries.
     * Default: ['.content.ts', '.content.js', '.content.json', etc.]
     */
    fileExtensions: [".content.ts", ".content.js", ".content.json"],

    /**
     * Directories where .content files are located.
     * Default: ["."]
     */
    contentDir: ["src"],

    /**
     * Directories where source code is located.
     * Used for build optimization and code transformation.
     * Default: ["."]
     */
    codeDir: ["src"],

    /**
     * Patterns to exclude from scanning.
     * Default: ['node_modules', '.intlayer', etc.]
     */
    excludedPath: ["node_modules"],

    /**
     * Whether to watch for changes and rebuild dictionaries in development.
     * Default: true in development
     */
    watch: true,

    /**
     * Command to format newly created / updated .content files.
     */
    formatCommand: 'npx prettier --write "{{file}}"',
  },

  /**
   * Visual Editor configuration.
   */
  editor: {
    /**
     * Whether the visual editor is enabled.
     * Default: true
     */
    enabled: true,

    /**
     * URL of your application for origin validation.
     * Default: "*"
     */
    applicationURL: "http://localhost:3000",

    /**
     * Port for the local editor server.
     * Default: 8000
     */
    port: 8000,

    /**
     * Public URL for the editor.
     * Default: "http://localhost:8000"
     */
    editorURL: "http://localhost:8000",

    /**
     * Intlayer CMS URL.
     * Default: "https://app.intlayer.org"
     */
    cmsURL: "https://app.intlayer.org",

    /**
     * Backend API URL.
     * Default: "https://back.intlayer.org"
     */
    backendURL: "https://back.intlayer.org",

    /**
     * Whether to enable real-time content synchronization.
     * Default: false
     */
    liveSync: true,
  },

  /**
   * AI-powered translation and generation settings.
   */
  ai: {
    /**
     * AI provider to use.
     * Options: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
     * Default: 'openai'
     */
    provider: "openai",

    /**
     * Model to use from the selected provider.
     */
    model: "gpt-4o",

    /**
     * Provider API key.
     */
    apiKey: process.env.OPENAI_API_KEY,

    /**
     * Global context to guide the AI in generating translations.
     */
    applicationContext: "This is a travel booking application.",

    /**
     * Base URL for the AI API.
     */
    baseURL: "http://localhost:3000",
  },

  /**
   * Build and optimization settings.
   */
  build: {
    /**
     * Build execution mode.
     * - "auto": Automatic build during app build.
     * - "manual": Requires explicit build command.
     * Default: "auto"
     */
    mode: "auto",

    /**
     * Whether to optimize the final bundle by pruning unused dictionaries.
     * Default: true in production
     */
    optimize: true,

    /**
     * Output format for generated dictionary files.
     * Default: ['esm', 'cjs']
     */
    outputFormat: ["esm"],

    /**
     * Indicates if the build should check TypeScript types.
     * Default: false
     */
    checkTypes: false,
  },

  /**
   * Logger configuration.
   */
  log: {
    /**
     * Logging level.
     * - "default": Standard logging.
     * - "verbose": Detailed debug logging.
     * - "disabled": No logging.
     * Default: "default"
     */
    mode: "default",

    /**
     * Prefix for all log messages.
     * Default: "[intlayer]"
     */
    prefix: "[intlayer]",
  },

  /**
   * System configuration (Advanced use cases)
   */
  system: {
    /**
     * Directory for storing localization dictionaries.
     */
    dictionariesDir: ".intlayer/dictionary",

    /**
     * Directory for module augmentation.
     */
    moduleAugmentationDir: ".intlayer/types",

    /**
     * Directory for storing unmerged dictionaries.
     */
    unmergedDictionariesDir: ".intlayer/unmerged_dictionary",

    /**
     * Directory for storing dictionary types.
     */
    typesDir: ".intlayer/types",

    /**
     * Directory where main application files are stored.
     */
    mainDir: ".intlayer/main",

    /**
     * Directory where the configuration files are stored.
     */
    configDir: ".intlayer/config",

    /**
     * Directory where the cache files are stored.
     */
    cacheDir: ".intlayer/cache",
  },

  /**
   * Compiler configuration (Advanced use cases)
   */
  compiler: {
    /**
     * Indicates if the compiler should be enabled.
     */
    enabled: true,

    /**
     * Pattern to traverse the code to optimize.
     */
    transformPattern: [
      "**/*.{js,ts,mjs,cjs,jsx,tsx,vue,svelte}",
      "!**/node_modules/**",
    ],

    /**
     * Pattern to exclude from the optimization.
     */
    excludePattern: ["**/node_modules/**"],

    /**
     * Output directory for the optimized dictionaries.
     */
    outputDir: "compiler",

    /**
     * Dictionary key prefix
     */
    dictionaryKeyPrefix: "", // Remove base prefix

    /**
     * Indicates if the components should be saved after being transformed.
     * That way, the compiler can be run only once to transform the app, and then it can be removed.
     */
    saveComponents: false,
  },

  /**
   * Custom schemas to validate the dictionaries content.
   */
  schemas: {
    "my-schema": z.object({
      title: z.string(),
    }),
  },

  /**
   * Plugins configuration.
   */
  plugins: [],
};

export default config;
```

## Riferimento alla Configurazione

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

---

### Configurazione dell'Internazionalizzazione

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

#### Proprietà

- **locales**:
  - _Tipo_: `string[]`
  - _Predefinito_: `['en']`
  - _Descrizione_: L'elenco delle località supportate nell'applicazione.
  - _Esempio_: `['en', 'fr', 'es']`

- **requiredLocales**:
  - _Tipo_: `string[]`
  - _Predefinito_: `[]`
  - _Descrizione_: L'elenco delle località obbligatorie nell'applicazione.
  - _Esempio_: `[]`
  - _Nota_: Se vuoto, tutte le localizzazioni sono richieste in modalità `strict`.
  - _Nota_: Assicurarsi che le localizzazioni richieste siano anche definite nel campo `locales`.
- **strictMode**:
  - _Tipo_: `string`
  - _Predefinito_: `inclusive`
  - _Descrizione_: Garantisce implementazioni rigorose dei 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, genererà un errore.
  - _Nota_: Se impostato su "inclusive", la funzione di traduzione `t` richiederà che ogni localizzazione dichiarata sia definita. Se manca una localizzazione, genererà un avviso. Ma accetterà se una localizzazione non è dichiarata nella tua configurazione, ma esiste.
  - _Nota_: Se impostato su "loose", la funzione di traduzione `t` accetterà qualsiasi locale esistente.

- **defaultLocale**:
  - _Tipo_: `string`
  - _Predefinito_: `'en'`
  - _Descrizione_: La locale predefinita utilizzata come fallback se la locale richiesta non viene trovata.
  - _Esempio_: `'en'`
  - _Nota_: Viene utilizzata per determinare la locale quando nessuna è specificata nell'URL, nel cookie o nell'header.

---

### Configurazione dell'Editor

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

#### Proprietà

- **applicationURL**:
  - _Tipo_: `string`
  - _Predefinito_: `http://localhost:3000`
  - _Descrizione_: L'URL dell'applicazione. Usato 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 a `'*'`, l'editor è accessibile da qualsiasi origine.

- **port**:
  - _Tipo_: `number`
  - _Predefinito_: `8000`
  - _Descrizione_: La porta utilizzata dal server dell'editor visuale.

- **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. Usato per limitare le origini che possono interagire con l'applicazione per motivi di sicurezza. Se impostato a `'*'`, l'editor è accessibile da qualsiasi origine. Deve essere impostato se la porta viene cambiata o se l'editor è ospitato su un dominio diverso.

- **cmsURL**:
  - _Tipo_: `string`
  - _Predefinito_: `'https://intlayer.org'`
  - _Descrizione_: L'URL del CMS Intlayer.
  - _Esempio_: `'https://intlayer.org'`
  - _Nota_: L'URL del CMS 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 visuale.
  - _Esempio_: `process.env.NODE_ENV !== 'production'`
  - _Nota_: Se true, l'editor sarà in grado di interagire con l'applicazione. Se false, l'editor non potrà interagire con l'applicazione. In ogni caso, l'editor può essere abilitato solo dall'editor visuale. Disabilitare l'editor per ambienti specifici è un modo per rafforzare la sicurezza.

- **clientId**:
  - _Tipo_: `string` | `undefined`
  - _Predefinito_: `undefined`
  - _Descrizione_: clientId e clientSecret permettono 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://app.intlayer.org/project e crea un account.
  - _Esempio_: `true`
  - _Nota_: Importante: clientId e clientSecret devono essere mantenuti segreti e non condivisi pubblicamente. Assicurati di conservarli in un luogo sicuro, come le variabili d'ambiente.

- **clientSecret**:
  - _Tipo_: `string` | `undefined`
  - _Predefinito_: `undefined`
  - _Descrizione_: clientId e clientSecret permettono 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://app.intlayer.org/project e crea un account.
  - _Esempio_: `true`
  - _Nota_: Importante: clientId e clientSecret devono essere mantenuti segreti e non condivisi pubblicamente. Assicurati di conservarli in un luogo sicuro, come variabili d'ambiente.

- **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'`

- **liveSync**:
  - _Tipo_: `boolean`
  - _Predefinito_: `false`
  - _Descrizione_: Indica se il server dell'applicazione deve ricaricare dinamicamente il contenuto dell'applicazione quando viene rilevata una modifica nel CMS / Visual Editor / Backend.
  - _Esempio_: `true`
  - _Nota_: Ad esempio, quando un nuovo dizionario viene aggiunto o aggiornato, l'applicazione aggiornerà il contenuto da visualizzare nella pagina.
  - _Nota_: La sincronizzazione live necessita di esternalizzare il contenuto dell'applicazione su un altro server. Ciò significa che può influire leggermente sulle prestazioni dell'applicazione. Per limitare questo, consigliamo di ospitare l'applicazione e il server di sincronizzazione live sulla stessa macchina. Inoltre, la combinazione di sincronizzazione live e `optimize` può generare un numero considerevole di richieste al server di sincronizzazione live. A seconda della tua infrastruttura, consigliamo di testare entrambe le opzioni e la loro combinazione.

- **liveSyncPort**:
  - _Tipo_: `number`
  - _Predefinito_: `4000`
  - _Descrizione_: La porta del server di sincronizzazione live.
  - _Esempio_: `4000`
  - _Nota_: La porta del server di sincronizzazione live.

- **liveSyncURL**:
  - _Tipo_: `string`
  - _Predefinito_: `'http://localhost:{liveSyncPort}'`
  - _Descrizione_: L'URL del server di sincronizzazione live.
  - _Esempio_: `'https://example.com'`
  - _Nota_: Punta a localhost di default ma può essere cambiato in qualsiasi URL nel caso di un server di sincronizzazione live remoto.

### Configurazione del Middleware

Impostazioni che controllano il comportamento del middleware, incluso come l'applicazione gestisce cookie, header e prefissi URL per la gestione della localizzazione.

#### Proprietà

- **headerName**:
  - _Tipo_: `string`
  - _Predefinito_: `'x-intlayer-locale'`
  - _Descrizione_: Il nome dell'header HTTP usato per determinare la localizzazione.
  - _Esempio_: `'x-custom-locale'`
  - _Nota_: Utile per la determinazione della localizzazione basata su API.

- **cookieName**:
  - _Tipo_: `string`
  - _Predefinito_: `'intlayer-locale'`
  - _Descrizione_: Il nome del cookie usato per memorizzare la localizzazione.
  - _Esempio_: `'custom-locale'`
  - _Nota_: Utilizzato per mantenere la localizzazione tra le sessioni.

- **prefixDefault**:
  - _Tipo_: `boolean`
  - _Predefinito_: `false`
  - _Descrizione_: Se includere la localizzazione predefinita nell'URL.
  - _Esempio_: `true`
  - _Nota_:
    - Se `true` e `defaultLocale = 'en'`: percorso = `/en/dashboard` o `/fr/dashboard`
    - Se `false` e `defaultLocale = 'en'`: percorso = `/dashboard` o `/fr/dashboard`

- **basePath**:
  - _Tipo_: `string`
  - _Predefinito_: `''`
  - _Descrizione_: Il percorso base per gli URL dell'applicazione.
  - _Esempio_: `'/my-app'`
  - _Nota_:
    - Se l'applicazione è ospitata su `https://example.com/my-app`
    - Il percorso base è `'/my-app'`
    - L'URL sarà `https://example.com/my-app/en`
    - Se il percorso base non è impostato, l'URL sarà `https://example.com/en`

- **rewrite**:
  - _Tipo_: `Record<string, StrictModeLocaleMap<string>>`
  - _Predefinito_: `undefined`
  - _Descrizione_: Regole personalizzate di riscrittura URL che sovrascrivono la modalità di routing predefinita per percorsi specifici. Consente di definire percorsi specifici per lingua che differiscono dal comportamento di routing standard. Supporta parametri di route dinamici utilizzando la sintassi `[param]`.
  - _Esempio_:
    ```typescript
    routing: {
      mode: "prefix-no-default", // Strategia di fallback
      rewrite: nextjsRewrite({
        "/[locale]/about": {
          en: "/[locale]/about",
          fr: "/[locale]/a-propos",
        },
        "/[locale]/product/[slug]": {
          en: "/[locale]/product/[slug]",
          fr: "/[locale]/produit/[slug]",
        },
        "/[locale]/blog/[category]/[id]": {
          en: "/[locale]/blog/[category]/[id]",
          fr: "/[locale]/journal/[category]/[id]",
        },
      }),
    }
    ```
  - _Nota_: Le regole di riscrittura hanno la priorità sul comportamento del `mode` predefinito. Se un percorso corrisponde a una regola di riscrittura, verrà utilizzato il percorso localizzato dalla configurazione di riscrittura invece del prefisso lingua standard.
  - _Nota_: I parametri di route dinamici sono supportati utilizzando la notazione tra parentesi quadre (ad esempio, `[slug]`, `[id]`). I valori dei parametri vengono estratti automaticamente dall'URL e interpolati nel percorso riscritto.
  - _Nota_: Funziona con applicazioni Next.js e Vite. Il middleware/proxy riscriverà automaticamente le richieste in arrivo per corrispondere alla struttura di route interna.
  - _Nota_: Quando si generano URL con `getLocalizedUrl()`, le regole di riscrittura vengono applicate automaticamente se corrispondono al percorso fornito.
  - _Riferimento_: Per maggiori informazioni, vedi [Riscritture URL Personalizzate](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/custom_url_rewrites.md).

- **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 ad ogni richiesta o mai.

- **noPrefix**:
  - _Tipo_: `boolean`
  - _Predefinito_: `false`
  - _Descrizione_: Se omettere il prefisso della lingua dagli URL.
  - _Esempio_: `true`
  - _Nota_:
    - Se `true`: Nessun prefisso nell'URL
    - Se `false`: Prefisso nell'URL
    - Esempio con `basePath = '/my-app'`:
      - Se `noPrefix = false`: l'URL sarà `https://example.com/my-app/en`
      - Se `noPrefix = true`: l'URL sarà `https://example.com`

---

### Configurazione del Contenuto

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

#### Proprietà

- **autoFill**:
  - _Tipo_: `boolean | string | { [key in Locales]?: string }`
  - _Predefinito_: `undefined`
  - _Descrizione_: Indica come il contenuto dovrebbe essere compilato automaticamente usando l'IA. Può essere dichiarato globalmente nel file `intlayer.config.ts`.
  - _Esempio_: true
  - _Esempio_: `'./{{fileName}}.content.json'`
  - _Esempio_: `{ fr: './{{fileName}}.fr.content.json', es: './{{fileName}}.es.content.json' }`
  - _Nota_: La configurazione di auto compilazione. Può essere:
    - booleano: Abilita l'auto compilazione per tutte le localizzazioni
    - stringa: Percorso a un singolo file o modello con variabili
    - oggetto: Percorsi file per ogni localizzazione

- **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 dei 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_: Viene utilizzata per risolvere tutte le directory relative a Intlayer.

- **contentDir**:
  - _Tipo_: `string[]`
  - _Predefinito_: `['.']`
  - _Esempio_: `['src', '../../ui-library', require.resolve("@my-package/content")]`
  - _Descrizione_: Il percorso della directory dove sono memorizzati i file di definizione del contenuto (`.content.*`).
  - _Nota_: Questo viene utilizzato per monitorare i file di contenuto per ricostruire i dizionari.

- **codeDir**:
  - _Tipo_: `string[]`
  - _Predefinito_: `['.']`
  - _Esempio_: `['src', '../../ui-library']`
  - _Descrizione_: Il percorso della directory dove è memorizzato il codice, relativo alla directory base.
  - _Nota_: Questo viene utilizzato per monitorare i file di codice da trasformare (potare, ottimizzare). Mantenere questo separato da `contentDir` può migliorare le prestazioni di compilazione evitando scansioni non necessarie dei file di contenuto.

- **excludedPath**:
  - _Tipo_: `string[]`
  - _Predefinito_: `['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**']`
  - _Descrizione_: Directory escluse dalla ricerca dei contenuti.
  - _Nota_: Questa impostazione non è ancora utilizzata, ma è prevista per implementazioni future.

- **formatCommand**:
  - _Tipo_: `string`
  - _Predefinito_: `undefined`
  - _Descrizione_: Il comando per formattare il contenuto. Quando Intlayer scrive i tuoi file .content localmente, questo comando verrà utilizzato per formattare il contenuto.
  - _Esempio_: `'npx prettier --write "{{file}}" --log-level silent'` Utilizzando Prettier
  - _Esempio_: `'npx biome format "{{file}}" --write --log-level none'` Utilizzando Biome
  - _Esempio_: `'npx eslint --fix "{{file}}"  --quiet'` Utilizzando ESLint
  - _Nota_: Intlayer sostituirà {{file}} con il percorso del file da formattare.
  - _Nota_: Se non impostato, Intlayer cercherà di rilevare automaticamente il comando di formattazione. Tentando di risolvere i seguenti comandi: prettier, biome, eslint.

---

### Configurazione del Sistema

Impostazioni relative ai percorsi interni e ai risultati di output di Intlayer. Queste impostazioni sono tipicamente interne e non dovrebbero necessitare di essere modificate dall'utente.

#### Proprietà

- **dictionariesDir**:
  - _Tipo_: `string`
  - _Predefinito_: `'.intlayer/dictionary'`
  - _Descrizione_: Il percorso della directory per memorizzare i dizionari di localizzazione.

- **moduleAugmentationDir**:
  - _Tipo_: `string`
  - _Predefinito_: `'.intlayer/types'`
  - _Descrizione_: Directory per l'augmentation dei moduli, che permette migliori suggerimenti IDE e controllo dei tipi.
  - _Esempio_: `'intlayer-types'`
  - _Nota_: Assicurarsi di includere questa directory in `tsconfig.json`.

- **unmergedDictionariesDir**:
  - _Tipo_: `string`
  - _Predefinito_: `'.intlayer/unmerged_dictionary'`
  - _Descrizione_: La directory per memorizzare dizionari non uniti.

- **typesDir**:
  - _Tipo_: `string`
  - _Predefinito_: `'.intlayer/types'`
  - _Descrizione_: La directory per memorizzare i tipi di dizionario.

- **mainDir**:
  - _Tipo_: `string`
  - _Predefinito_: `'.intlayer/main'`
  - _Descrizione_: La directory dove sono memorizzati i file principali dell'applicazione.

- **configDir**:
  - _Tipo_: `string`
  - _Predefinito_: `'.intlayer/config'`
  - _Descrizione_: La directory dove sono memorizzati i file di configurazione.

- **cacheDir**:
  - _Tipo_: `string`
  - _Predefinito_: `'.intlayer/cache'`
  - _Descrizione_: La directory dove sono memorizzati i file di cache.

- **outputFilesPatternWithPath**:
  - _Tipo_: `string`
  - _Predefinito_: `'{{dictionariesDir}}/**/*.json'`
  - _Descrizione_: Pattern per i file di output incluso il percorso relativo.

### Configurazione del dizionario

Impostazioni che controllano le operazioni del dizionario, incluso il comportamento di auto-riempimento e la generazione di contenuti.

Questa configurazione del dizionario serve a due scopi principali:

1. **Valori predefiniti**: Definisce valori predefiniti durante la creazione di file di dichiarazione del contenuto
2. **Comportamento di fallback**: Fornisce valori di fallback quando campi specifici non sono definiti, consentendoti di definire il comportamento delle operazioni del dizionario globalmente

Per ulteriori informazioni sui file di dichiarazione del contenuto e su come vengono applicati i valori di configurazione, consulta la [Documentazione del file di contenuto](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/dictionary/content_file.md).

#### Proprietà

- **fill**
- **description**
- **locale**
- **location**
- **importMode**:
  - _Note_: **Deprecated**: Use `dictionary.importMode` instead.
  - _Type_: `'static' | 'dynamic' | 'fetch'`
  - _Default_: `'static'`
  - _Description_: Controls how dictionaries are imported.
  - _Example_: `'dynamic'`
- **priority**
- **live**
- **schema**
- **title**
- **tags**
- **version**

---

### 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 registra più informazioni, ma può essere usata per scopi di debug. La modalità disabled disabilita 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, inclusi provider, modello e chiave API.

Questa configurazione è opzionale se sei registrato sul [Cruscotto Intlayer](https://app.intlayer.org/project) utilizzando una chiave di accesso. Intlayer gestirà automaticamente la soluzione AI più efficiente e conveniente per le tue esigenze. Utilizzare le opzioni predefinite garantisce una migliore manutenzione a lungo termine poiché Intlayer 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 valori predefiniti 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**
- **Ollama**
- **OpenRouter**
- **Alibaba Cloud**
- **Fireworks**
- **Hugging Face**
- **Groq**
- **Amazon Bedrock**
- **Google AI Studio**
- **Google Vertex**
- **Together.ai**
- **ollama**

#### Proprietà

- **provider**:
  - _Tipo_: `string`
  - _Predefinito_: `'openai'`
  - _Descrizione_: Il provider da utilizzare per le funzionalità AI di Intlayer.
  - _Opzioni_: `'openai'`, `'anthropic'`, `'mistral'`, `'deepseek'`, `'gemini'`, `'ollama'`, `'openrouter'`, `'alibaba'`, `'fireworks'`, `'groq'`, `'huggingface'`, `'bedrock'`, `'googleaistudio'`, `'googlevertex'`, `'togetherai'`
  - _Esempio_: `'anthropic'`
  - _Nota_: Diversi provider potrebbero richiedere chiavi API differenti e avere modelli di prezzo diversi.

- **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 a seconda del provider.

- **temperature**:
  - _Tipo_: `number`
  - _Predefinito_: Nessuno
  - _Descrizione_: La temperatura controlla la casualità delle risposte dell'AI.
  - _Esempio_: `0.1`
  - _Nota_: Una temperatura più alta rende 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ù accurate e contestualmente appropriate. Questo può includere informazioni sul dominio della tua app, il pubblico target, il tono o terminologia specifica.

- **baseURL**:
  - _Tipo_: `string`
  - _Predefinito_: Nessuno
  - _Descrizione_: L'URL di base per l'API AI.
  - _Esempio_: `'https://api.openai.com/v1'`
  - _Nota_: Può essere utilizzato per puntare a un endpoint API AI locale o personalizzato.

- **dataSerialization**:
  - _Tipo_: `'json' | 'toon'`
  - _Predefinito_: `'json'`
  - _Descrizione_: Il formato di serializzazione dei dati da utilizzare per le funzionalità AI di Intlayer.
  - _Esempio_: `'toon'`
  - _Nota_: `json`: Standard, affidabile; utilizza più token. `toon`: Meno token, meno coerente del JSON.

### Configurazione della Build

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

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

> In modalità di sviluppo, Intlayer utilizza importazioni statiche per i dizionari per semplificare l'esperienza di sviluppo.

> Quando ottimizzato, Intlayer sostituirà le chiamate ai dizionari per ottimizzare il chunking, in modo che il bundle finale importi solo i dizionari effettivamente utilizzati.

#### Proprietà

- **mode**:
  - _Tipo_: `'auto' | 'manual'`
  - _Predefinito_: `'auto'`
  - _Descrizione_: Controlla la modalità della build.
  - _Esempio_: `'manual'`
  - _Nota_: Se 'auto', la build sarà abilitata automaticamente quando l'applicazione viene costruita.
  - _Nota_: Se 'manual', la build sarà impostata solo quando viene eseguito il comando di build.
  - _Nota_: Può essere utilizzato per disabilitare la build dei dizionari, ad esempio quando l'esecuzione in un ambiente Node.js dovrebbe essere evitata.

- **checkTypes**:
  - _Type_: `boolean`
  - _Default_: `false`
  - _Description_: Indica se la build deve controllare i tipi TypeScript e registrare gli errori.
  - _Note_: Questo può rallentare la build.

- **optimize**:
  - _Tipo_: `boolean`
  - _Predefinito_: `process.env.NODE_ENV === 'production'`
  - _Descrizione_: Controlla se la build deve essere ottimizzata.
  - _Esempio_: `true`
  - _Nota_: Quando abilitato, Intlayer sostituirà tutte le chiamate ai dizionari per ottimizzare il chunking. In questo modo il bundle finale importerà solo i dizionari utilizzati. Tutte le importazioni rimarranno come importazioni statiche per evitare l'elaborazione asincrona durante il caricamento dei dizionari.
  - _Nota_: Intlayer sostituirà tutte le chiamate di `useIntlayer` con la modalità definita dall'opzione `importMode` e `getIntlayer` con `getDictionary`.
  - _Nota_: Questa opzione si basa sui plugin `@intlayer/babel` e `@intlayer/swc`.
  - _Nota_: Assicurarsi che tutte le chiavi siano dichiarate staticamente nelle chiamate a `useIntlayer`. Es. `useIntlayer('navbar')`.

- **importMode**:
  - _Note_: **Deprecated**: Use `dictionary.importMode` instead.
  - _Tipo_: `'static' | 'dynamic' | 'fetch'`
  - _Predefinito_: `'static'`
  - _Descrizione_: Controlla come vengono importati i dizionari.
  - _Esempio_: `'dynamic'`
  - _Nota_: Modalità disponibili:
    - "static": I dizionari sono importati staticamente. Sostituisce `useIntlayer` con `useDictionary`.
    - "dynamic": I dizionari sono importati dinamicamente usando Suspense. Sostituisce `useIntlayer` con `useDictionaryDynamic`.
  - "fetch": I dizionari vengono recuperati dinamicamente utilizzando l'API di sincronizzazione live. Sostituisce `useIntlayer` con `useDictionaryFetch`.
  - _Nota_: Gli import dinamici si basano su Suspense e possono influire leggermente sulle prestazioni di rendering.
  - _Nota_: Se disabilitato, tutte le localizzazioni verranno caricate contemporaneamente, anche se non vengono utilizzate.
  - _Nota_: Questa opzione si basa sui plugin `@intlayer/babel` e `@intlayer/swc`.
  - _Nota_: Assicurarsi che tutte le chiavi siano dichiarate staticamente nelle chiamate a `useIntlayer`, ad esempio `useIntlayer('navbar')`.
  - _Nota_: Questa opzione verrà ignorata se `optimize` è disabilitato.
  - _Nota_: Se impostato su "live", solo i dizionari che includono contenuti remoti e sono contrassegnati come "live" saranno trasformati in modalità live. Gli altri saranno importati dinamicamente in modalità "dynamic" per ottimizzare il numero di richieste di fetch e le prestazioni di caricamento.
  - _Nota_: La modalità live utilizzerà l'API di sincronizzazione live per recuperare i dizionari. Se la chiamata API fallisce, i dizionari saranno importati dinamicamente in modalità "dynamic".
  - _Nota_: Questa opzione non influenzerà le funzioni `getIntlayer`, `getDictionary`, `useDictionary`, `useDictionaryAsync` e `useDictionaryDynamic`.

- **outputFormat**:
  - _Tipo_: `'esm' | 'cjs'`
  - _Predefinito_: `'esm'`
  - _Descrizione_: Controlla il formato di output dei dizionari.
  - _Esempio_: `'cjs'`
  - _Nota_: Il formato di output dei dizionari.

- **traversePattern**:
  - _Tipo_: `string[]`
  - _Predefinito_: `['**\/*.{js,ts,mjs,cjs,jsx,tsx}', '!**\/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_: Usare questo per limitare l'ottimizzazione ai file di codice rilevanti e migliorare le prestazioni di build.
  - _Nota_: Questa opzione sarà ignorata se `optimize` è disabilitato.
  - _Nota_: Usare pattern glob.

---

### Configurazione del Compilatore

Impostazioni che controllano il compilatore Intlayer, che estrae i dizionari direttamente dai tuoi componenti.

#### Proprietà

- **enabled**:
  - _Tipo_: `boolean | 'build-only'`
  - _Predefinito_: `true`
  - _Descrizione_: Indica se il compilatore deve essere abilitato per estrarre i dizionari.
  - _Esempio_: `'build-only'`
  - _Nota_: Impostarlo su `'build-only'` salterà il compilatore durante la modalità di sviluppo per accelerare i tempi di avvio. Verrà eseguito solo sui comandi di build.

- **dictionaryKeyPrefix**:
  - _Tipo_: `string`
  - _Predefinito_: `'comp-'`
  - _Descrizione_: Prefisso per le chiavi dei dizionari estratti.
  - _Esempio_: `'my-key-'`
  - _Nota_: Quando i dizionari vengono estratti, la chiave viene generata in base al nome del file. Questo prefisso viene aggiunto alla chiave generata per evitare conflitti.

- **saveComponents**:
  - _Tipo_: `boolean`
  - _Predefinito_: `false`
  - _Descrizione_: Indica se i componenti devono essere salvati dopo essere stati trasformati.
  - _Nota_: Se vero, il compilatore sostituirà i file originali con i file trasformati. In questo modo, il compilatore può essere eseguito solo una volta per trasformare l'app, e poi può essere rimosso.

- **transformPattern**:
  - _Tipo_: `string | string[]`
  - _Predefinito_: `['**/*.{ts,tsx,jsx,js,cjs,mjs,svelte,vue}', '!**/node_modules/**']`
  - _Descrizione_: Pattern che definiscono quali file devono essere attraversati durante l'ottimizzazione.
  - _Esempio_: `['src/**/*.{ts,tsx}', '!**/node_modules/**']`
  - _Nota_: Usare questo per limitare l'ottimizzazione ai file di codice rilevanti e migliorare le prestazioni di build.

- **excludePattern**:
  - _Tipo_: `string | string[]`
  - _Predefinito_: `['**/node_modules/**']`
  - _Descrizione_: Pattern che definiscono quali file devono essere esclusi durante l'ottimizzazione.
  - _Esempio_: `['**/node_modules/**', '!**/node_modules/react/**']`

- **outputDir**:
  - _Tipo_: `string`
  - _Predefinito_: `'compiler'`
  - _Descrizione_: La directory in cui verranno memorizzati i dizionari estratti, relativa al percorso di base del progetto.
