# General Translation Knowledge Base: Come si traduce un'app Vue?
URL: https://generaltranslation.com/it/kb/translate-vue-app.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Tradurre un'app Vue significa far passare ogni stringa del template attraverso una ricerca nella lingua attiva e tradurla in ogni lingua di destinazione. Il plugin gt-vue di General Translation traduce il contenuto racchiuso nel componente `<T>` e npx gt translate genera un catalogo per ogni lingua di destinazione.
Category: Internazionalizzazione
Last updated: 2026-10-21
Authors: Kevin Liu, Kevin Wu
Published: 2026-10-21

Tradurre un&#39;app Vue significa internazionalizzarla (cioè predisporla a mostrare ogni stringa, plurale, numero e data nella lingua attiva) e poi tradurre ogni stringa in ciascuna lingua di destinazione. Ogni modifica ai testi cambia il testo di origine, quindi a ogni rilascio le traduzioni restano indietro, a meno che non vengano rigenerate. Le lingue hanno inoltre grammatiche diverse (l&#39;inglese ha 2 forme plurali, l&#39;arabo ne ha 6) e la pagina deve essere renderizzata di nuovo quando l&#39;utente cambia lingua.

## Video

The video is narrated in English, with English captions.

[How do I translate a Vue app?](https://caxecubb9c64cezv.public.blob.vercel-storage.com/films/kb-translate-vue-app.mp4) (48 s)

General Translation lets you register the `gt-vue` plugin and wrap your template in `T`. List your languages, register the plugin before the app mounts, run `npx gt translate`, and add a switcher built on `useSetLocale`. The `gt-vue` package is a 0.x release whose API may still change.

## Modi per tradurre un&#39;app Vue

| Approccio                                                                                                                                | Punti di forza                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | Cosa resta a tuo carico                                                                                                                                                                                                                                                                                                                       |
| ---------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Solo una libreria di internazionalizzazione (i18n) ([`vue-i18n`](/kb/general-translation-vs-vue-i18n))                                   | Cerca i messaggi per chiave con `$t`, cambia l&#39;impostazione regionale in-place, seleziona le forme plurali e formatta numeri e date in base all&#39;impostazione regionale                                                                                                                                                                                                                                                                                                                                                    | Inventare una chiave per ogni stringa, spostare il testo in un file di messaggi per ciascuna lingua, definire `pluralRules` personalizzate per lingue come il russo e scrivere tutte le traduzioni                                                                                                                                            |
| `@nuxtjs/i18n` (Nuxt)                                                                                                                    | Si basa su `vue-i18n` e aggiunge route con prefisso dell&#39;impostazione regionale, rilevamento della lingua del browser, caricamento lazy delle traduzioni e tag hreflang                                                                                                                                                                                                                                                                                                                                                       | Le stesse chiavi, gli stessi file di messaggi e le stesse traduzioni che `vue-i18n` lascia a tuo carico                                                                                                                                                                                                                                       |
| Un sistema di gestione delle traduzioni ([Crowdin](/kb/general-translation-vs-crowdin), [Lokalise](/kb/general-translation-vs-lokalise)) | Un editor web, sincronizzato con i tuoi file di messaggi, in cui i traduttori lavorano con un glossario e una memoria di traduzione                                                                                                                                                                                                                                                                                                                                                                                               | Chiavi e file di messaggi nel codice, la configurazione della sincronizzazione e l&#39;attesa dei traduttori prima di ogni rilascio                                                                                                                                                                                                           |
| General Translation (`gt-vue` e la CLI `gt`)                                                                                             | [`<T>`](/docs/vue/reference/components/t) traduce il contenuto dei template in-place, senza chiavi; [`<Plural>`](/docs/vue/reference/components/plural) all&#39;interno di [`<T>`](/docs/vue/reference/components/t) sceglie la forma plurale di ogni impostazione regionale secondo le regole CLDR; [`npx gt translate`](/docs/cli/reference/commands/translate) genera un catalogo per ogni lingua di destinazione; [`useSetLocale()`](/docs/vue/reference/composables/use-set-locale) cambia lingua senza ricaricare la pagina | Racchiudere il contenuto dei template in [`<T>`](/docs/vue/reference/components/t) ed effettuare una configurazione iniziale una tantum (config, loader e plugin); rieseguire [`npx gt translate`](/docs/cli/reference/commands/translate) quando il contenuto di origine cambia; tenere il passo con le modifiche alle API tra i rilasci 0.x |

Usa solo `vue-i18n` quando le stringhe sono poche e stabili, o già tradotte nei file di messaggi, e aggiungi `@nuxtjs/i18n` se hai un&#39;app Nuxt che richiede route localizzate. Usa un sistema di gestione delle traduzioni quando un team di localizzazione traduce a mano ogni rilascio. Usa `gt-vue` quando i template cambiano a ogni rilascio e vuoi traduzioni generate direttamente dal codice, senza chiavi da mantenere sincronizzate.

## Tradurre un&#39;app Vue con gt-vue

Il pacchetto `gt-vue` di General Translation funziona come plugin Vue, mentre la CLI `gt` si occupa di generare le traduzioni.

1. In `gt.config.json`, imposta la lingua di origine in `defaultLocale`, le lingue di destinazione in `locales` e il percorso del catalogo in `files.gt.output`.

2. Registra il plugin [`createGT()`](/docs/vue/reference/functions/create-gt) prima di montare l&#39;app.

3. Racchiudi il contenuto del template nel componente [`<T>`](/docs/vue/reference/components/t). Per le stringhe autonome, come il segnaposto di un campo di input, usa la funzione restituita da [`useGT()`](/docs/vue/reference/composables/use-gt).

   ```vue
   <script setup lang="ts">
   import { T } from 'gt-vue';
   </script>

   <template>
     <T>
       <section>
         <h1>Welcome back</h1>
         <p>Your order is on its way.</p>
       </section>
     </T>
   </template>
   ```

4. Accedi con [`npx gt login`](/docs/cli/reference/commands/login) e imposta l&#39;ID progetto.

5. Esegui [`npx gt translate`](/docs/cli/reference/commands/translate): il comando analizza il codice sorgente Vue e scrive un catalogo JSON per ogni lingua di destinazione nel percorso `files.gt.output`.

La CLI estrae la struttura del template, così testo, elementi annidati e formattazione vengono tradotti come un&#39;unica unità. La prop `context` di [`<T>`](/docs/vue/reference/components/t) permette di indicare se &quot;Open&quot; è un verbo o un aggettivo.

## Traduci a ogni build

Inserisci [`npx gt translate`](/docs/cli/reference/commands/translate) prima di `vite build` nello script di build e imposta `GT_PROJECT_ID` e `GT_API_KEY` nell&#39;ambiente di build: in questo modo ogni distribuzione includerà cataloghi aggiornati. L&#39;[Avvio rapido di Vue](/docs/vue/quickstart) illustra tutti i passaggi, compresi il loader delle traduzioni e un selettore della lingua.

## Related questions

- [Come si traduce un'app React?](https://generaltranslation.com/it/kb/translate-react-app.mdx): Tradurre un'app React significa internazionalizzarne i componenti affinché vengano renderizzati nella lingua dell'utente, quindi tradurre ogni stringa in ciascuna lingua supportata. gt-react di General Translation traduce il JSX in-place nel componente `<T>`, mentre npx gt translate genera un file per ogni lingua.
- [Come si aggiunge l'i18n a un'app Next.js con App Router?](https://generaltranslation.com/it/kb/add-i18n-to-nextjs.mdx): Inizia con gt init per configurare General Translation in un progetto App Router supportato, poi contrassegna il contenuto di origine, genera le traduzioni e verifica il cambio di lingua. gt-next mantiene i testi nel JSX insieme al contesto di traduzione; la CLI, l'editor della Dashboard e Locadex si occupano di generazione, revisione e aggiornamenti continui. Questa guida mostra anche la configurazione esplicita con file locali.
- [Posso fare i18n senza file di traduzione?](https://generaltranslation.com/it/kb/i18n-without-translation-files.mdx): Sì. Le librerie gt-react e gt-next di General Translation gestiscono l'i18n in React e Next.js senza chiavi di traduzione e senza dover mantenere un file JSON per ogni lingua. I testi restano inline nel JSX all'interno del componente `<T>` e il comando gt translate genera le traduzioni per ogni lingua durante la build, sfruttando il contesto del tuo codice. Locadex può mantenerle aggiornate tramite pull request.
- [Come mantengo le traduzioni aggiornate a ogni distribuzione?](https://generaltranslation.com/it/kb/translations-in-ci.mdx): Esegui la traduzione come passaggio della pipeline prima di ogni build di produzione, così i nuovi testi vengono rilasciati già tradotti insieme alla distribuzione che li introduce. La CLI gt di General Translation lo fa con npx gt translate, usando una chiave API e un ID progetto archiviati come segreti CI.

## Previous and next questions

- Previous question: [Come si traduce un'app React?](https://generaltranslation.com/it/kb/translate-react-app.mdx)
- Next question: [Come si traducono i contenuti in Sanity?](https://generaltranslation.com/it/kb/translate-sanity-content.mdx)

## Sitemap

See the [Knowledge Base sitemap](https://generaltranslation.com/it/kb/sitemap.md) for every article.
