# Vue: Gestione delle forme plurali e dei rami
URL: https://generaltranslation.com/it/docs/vue/guides/handling-plurals-and-branches.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Come tradurre contenuti Vue basati sul conteggio e condizionali con `<Plural>` e `<Branch>`.

Impostazioni regionali diverse possono richiedere forme plurali e formulazioni diverse in base a una condizione. Rappresenta ogni alternativa finita in slot denominati, in modo che la CLI possa estrarre ogni frase completa.

Usa [`<Plural>`](/docs/vue/reference/components/plural) quando un numero determina la formulazione. Usa [`<Branch>`](/docs/vue/reference/components/branch) per stati, piani, valori booleani e altri valori denominati.

## Scegli forme plurali o rami [#choose]

* Usa [`<Plural>`](/docs/vue/reference/components/plural) quando il conteggio determina la frase.
* Usa [`<Branch>`](/docs/vue/reference/components/branch) quando è un altro valore a determinare la frase.
* Inserisci entrambi i componenti all&#39;interno di [`<T>`](/docs/vue/reference/components/t) affinché ogni slot denominato appartenga alla voce tradotta.
* Usa lo slot predefinito come fallback per una categoria o un ramo non riconosciuto.
* Racchiudi i valori di runtime in ogni frase con [`<Num>`](/docs/vue/reference/components/num), [`<Var>`](/docs/vue/reference/components/var) o un altro componente di formattazione.

## Pluralizzazione con `<Plural>` [#plural]

Passa il conteggio tramite `:n` e specifica slot denominati per le categorie utilizzate dall&#39;impostazione regionale sorgente:

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

defineProps<{ count: number }>();
</script>

<template>
  <T>
    <Plural :n="count">
      <template #one>
        You have <Num :value="count" /> message.
      </template>
      <template #other>
        You have <Num :value="count" /> messages.
      </template>
      <template #default>
        You have new messages.
      </template>
    </Plural>
  </T>
</template>
```

[`<Plural>`](/docs/vue/reference/components/plural) combina le sostituzioni numeriche per i valori assoluti `0`, `1` e `2` con le [regole plurali Unicode CLDR](https://cldr.unicode.org/index/cldr-spec/plural-rules) dell&#39;impostazione regionale attiva. L&#39;inglese usa comunemente `one` e `other`; le traduzioni di destinazione possono includere categorie aggiuntive come `zero`, `two`, `few` e `many`.

Non modellare la grammatica del plurale con `count === 1` né aggiungendo un suffisso. Queste scorciatoie codificano le regole della lingua sorgente anziché quelle dell&#39;impostazione regionale attiva.

## Eseguire il ramo in base a un valore denominato [#branch]

Passa una stringa, un numero o un valore booleano tramite `:branch`, quindi usa uno slot denominato statico per ogni valore previsto:

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

defineProps<{ plan: 'free' | 'pro' | 'enterprise' }>();
</script>

<template>
  <T>
    <Branch :branch="plan">
      <template #free>Passa a un piano superiore per sbloccare altre funzionalità.</template>
      <template #pro>Grazie per aver scelto Pro!</template>
      <template #enterprise>Contatta il tuo account manager.</template>
      <template #default>Benvenuto.</template>
    </Branch>
  </T>
</template>
```

Ogni slot è incluso nel componente [`<T>`](/docs/vue/reference/components/t) che lo racchiude, mentre viene renderizzato solo il ramo attivo. Se nessuno slot denominato corrisponde, [`<Branch>`](/docs/vue/reference/components/branch) renderizza lo slot predefinito.

## Sostituisci i condizionali inline [#conditionals]

Un `v-if` inline modifica la struttura tradotta in fase di esecuzione. Sposta invece le alternative finite in [`<Branch>`](/docs/vue/reference/components/branch):

```vue
<!-- ❌ Struttura a runtime nascosta alla traduzione -->
<T>
  <span v-if="isActive">Active</span>
  <span v-else>Inactive</span>
</T>

<!-- ✅ Ogni frase è visibile durante l'estrazione -->
<T>
  <Branch :branch="isActive ? 'active' : 'inactive'">
    <template #active>Active</template>
    <template #inactive>Inactive</template>
  </Branch>
</T>
```

I nomi degli slot devono essere statici e incondizionati. Quando l&#39;insieme delle alternative non è finito in fase di build, mantieni quel contenuto a runtime al di fuori di [`<T>`](/docs/vue/reference/components/t) oppure preservalo come [`<Var>`](/docs/vue/reference/components/var) opaco.

## Next steps

- /docs/vue/guides/formatting-variables
- /docs/vue/guides/translating-content
- /docs/vue/guides/translating-strings
- /docs/vue/guides/managing-locales

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
