# vue: Archiviare le traduzioni localmente URL: https://generaltranslation.com/it/docs/vue/guides/storing-translations.mdx --- title: Archiviare le traduzioni localmente description: Come generare, includere nel bundle e caricare i cataloghi di traduzione di gt-vue con l'applicazione. related: links: - /docs/vue/guides/configuring - /docs/vue/guides/developing-spa-translations - /docs/vue/guides/managing-locales - /docs/vue/guides/translating-content --- `gt-vue` riceve i cataloghi per le impostazioni regionali di destinazione tramite una callback [`loadTranslations`](/docs/vue/reference/types/load-translations). Genera questi cataloghi nell'albero sorgente per includerli nel bundle dell'app ed evitare di dipendere da un servizio di traduzione in fase di runtime. I cataloghi inclusi nel bundle rendono gli aggiornamenti delle traduzioni parte della distribuzione. Rigenera e ridistribuisci l'app ogni volta che cambiano i contenuti sorgente o una traduzione. ## Configura il percorso di output [#configure] Imposta l'output di `gt` in `gt.config.json` su un percorso all'interno della directory sorgente. Il placeholder `[locale]` crea un file per ogni impostazione regionale di destinazione: ```json title="gt.config.json" { "defaultLocale": "en", "locales": ["es", "fr"], "files": { "gt": { "output": "src/_gt/[locale].json" } } } ``` L'impostazione regionale predefinita non richiede un file di catalogo perché il contenuto sorgente è già presente nell'applicazione. ## Genera i cataloghi [#generate] Esegui la CLI dopo aver aggiunto o modificato contenuti traducibili: ```bash npx gt translate ``` Il comando estrae gli utilizzi supportati di [``](/docs/vue/reference/components/t), [`useGT()`](/docs/vue/reference/composables/use-gt), [`msg()`](/docs/vue/reference/functions/msg) e [`t()`](/docs/vue/reference/functions/t), quindi scrive i file per l'impostazione regionale di destinazione. Considera questi file come output generato, anziché modificarli manualmente. Aggiungi la generazione delle traduzioni prima della build di produzione se ogni distribuzione deve includere cataloghi aggiornati: ```json title="package.json" { "scripts": { "build": "npx gt translate && vue-tsc -b && vite build" } } ``` La CLI richiede `GT_PROJECT_ID` e `GT_API_KEY` nell'ambiente di build. Non includere la chiave di produzione nel bundle del browser. ## Caricare i cataloghi con Vite [#vite] Crea una callback [`loadTranslations`](/docs/vue/reference/types/load-translations) il cui percorso di import corrisponda all'output configurato: ```ts title="src/loadTranslations.ts" import type { LoadTranslations } from 'gt-vue'; const loadTranslations: LoadTranslations = async (locale) => { try { return (await import(`./_gt/${locale}.json`)).default; } catch { return {}; } }; export default loadTranslations; ``` Passalo a [`createGT()`](/docs/vue/reference/functions/create-gt) per il caricamento reattivo oppure a [`initializeGTSPA()`](/docs/vue/reference/functions/initialize-gt-spa) per una SPA solo browser precaricata. Il callback precedente considera un file mancante come un catalogo vuoto, quindi per tale impostazione regionale viene renderizzato il contenuto sorgente. Lascia invece che l'errore venga propagato quando l'assenza di un catalogo di produzione deve bloccare il cambio dell'impostazione regionale o l'avvio dell'applicazione. ## Usa importazioni esplicite quando necessario [#explicit-imports] Alcuni bundler non riescono a individuare tutti i file richiamati da un'importazione variabile. Definisci una mappa statica di loader affinché ogni destinazione sia visibile in fase di build: ```ts title="src/loadTranslations.ts" import type { LoadTranslations } from 'gt-vue'; const loaders = { es: () => import('./_gt/es.json'), fr: () => import('./_gt/fr.json'), }; const loadTranslations: LoadTranslations = async (locale) => { const load = loaders[locale as keyof typeof loaders]; return load ? (await load()).default : {}; }; export default loadTranslations; ``` Mantieni questa mappa sincronizzata con `locales` in `gt.config.json`. Restituire `{}` è appropriato per un'impostazione regionale volutamente non supportata; il rifiuto rende l'errore visibile al chiamante. ## Caricare da un'altra sorgente [#custom-source] Il callback può recuperare un catalogo dal tuo endpoint invece di importare un file incluso nel bundle: ```ts const loadTranslations: LoadTranslations = async (locale) => { const response = await fetch(`/translations/${locale}.json`); if (!response.ok) throw new Error(`Catalog unavailable for ${locale}`); return response.json(); }; ``` [`createGT()`](/docs/vue/reference/functions/create-gt) memorizza nella cache ogni catalogo caricato correttamente per tutta la durata della propria istanza del plugin e deduplica i caricamenti simultanei. Convalida le risposte al confine dell'endpoint; il runtime richiede un [`TranslationCatalog`](/docs/vue/reference/types/translation-catalog) completo indicizzato per hash per l'impostazione regionale richiesta. ## Next steps - /docs/vue/guides/configuring - /docs/vue/guides/developing-spa-translations - /docs/vue/guides/managing-locales - /docs/vue/guides/translating-content