# gt: General Translation CLI tool: strings.xml di Android
URL: https://generaltranslation.com/it/docs/cli/reference/formats/android-strings-files.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Traduci i file di risorse strings.xml di Android con la CLI. Riferimento API per il formato di file strings.xml di Android.

La CLI traduce le risorse stringa di Android. Un progetto Android conserva le stringhe della lingua predefinita in `res/values/strings.xml` e ogni traduzione in una directory di pari livello qualificata per impostazione regionale, ad esempio `res/values-es/strings.xml`. Le traduzioni mantengono i nomi delle risorse, i placeholder `<xliff:g>` e il markup inline renderizzato dall&#39;app.

## Panoramica [#overview]

| Argomento                                               | Descrizione                                                                                 |
| ------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| [Configurazione](#config)                               | Instrada il file di risorse di base verso directory qualificate per impostazione regionale. |
| [Qualificatori delle directory di risorse](#qualifiers) | Come vengono scritti i codici locale nei nomi delle directory `values-*`.                   |
| [Plurali](#plurals)                                     | Ricostruisce `<plurals>` per le categorie CLDR di ciascuna lingua di destinazione.          |
| [Risorse non tradotte](#untranslated)                   | Le risorse che la CLI lascia invariate.                                                     |

## Configurazione [#config]

Aggiungi una voce `androidStrings` sotto `files`. Il file di risorse di base di Android è `res/values/strings.xml`, che nel percorso non ha alcun qualificatore di impostazione regionale: non c&#39;è quindi alcun punto in cui inserire un placeholder `[locale]`. Fai puntare `include` al file di base e usa `transform` per indirizzare l&#39;output tradotto verso le directory con qualificatore di impostazione regionale:

```json title="gt.config.json"
{
  "defaultLocale": "en",
  "locales": ["es", "fr", "pl"],
  "files": {
    "androidStrings": {
      "include": ["res/values/strings.xml"],
      "transform": {
        "match": "res/values/(.*)",
        "replace": "res/values-{locale}/$1"
      }
    }
  }
}
```

Con questa configurazione, la CLI legge `res/values/strings.xml` e scrive `res/values-es/strings.xml`, `res/values-fr/strings.xml` e `res/values-pl/strings.xml`. Consulta il [riferimento della configurazione](/docs/cli/reference/config#files) per tutte le chiavi dei file.

Questa è la struttura da usare per un progetto Android standard e si differenzia dagli altri formati di file: un pattern come `res/values-[locale]/strings.xml` risolve il placeholder con la tua `defaultLocale` e cerca `res/values-en/strings.xml`, che un progetto standard non ha. Non corrisponde a nessun file e l&#39;esecuzione termina senza tradurre nulla.

Se invece il tuo progetto mantiene le stringhe sorgente in una directory qualificata come `res/values-en/`, usa la forma con il placeholder e rimuovi `transform`:

```json title="gt.config.json"
{
  "files": {
    "androidStrings": {
      "include": ["res/values-[locale]/strings.xml"]
    }
  }
}
```

La chiave `androidStrings` richiede `gt` 2.19.0 o versioni successive.

## Qualificatori delle directory di risorse [#qualifiers]

Android ricava l&#39;impostazione regionale dal nome di una directory `values-*` e fa fallire la build se il nome non è interpretabile: per questo motivo l&#39;impostazione regionale nel percorso non è sempre scritta come la indichi in [`locales`](/docs/cli/reference/config#locales). Per `androidStrings`, la CLI converte l&#39;impostazione regionale in un qualificatore di risorsa Android sia nel placeholder `[locale]` sia nel placeholder di trasformazione `{locale}`:

| Impostazione regionale configurata | Directory di risorse   |
| ---------------------------------- | ---------------------- |
| `es`                               | `res/values-es`        |
| `fr-CA`                            | `res/values-fr-rCA`    |
| `zh-Hans`                          | `res/values-b+zh+Hans` |
| `es-419`                           | `res/values-b+es+419`  |

Un subtag di region assume la forma legacy `-r`, mentre un subtag di script o una region numerica usa la forma BCP 47 `b+`. Questa conversione si applica solo ad `androidStrings`; tutti gli altri formati di file usano l&#39;impostazione regionale esattamente come è stata configurata.

## Plurals [#plurals]

Le stringhe di quantità di Android sono elementi `<plurals>` che contengono un `<item quantity="...">` per ogni categoria CLDR. Un file tradotto contiene le categorie effettivamente usate dalla lingua di destinazione, che raramente coincidono con quelle della lingua sorgente. L&#39;inglese sceglie tra `one` e `other`, mentre il polacco usa tre forme per un conteggio intero, l&#39;arabo sei e il cinese una sola.

```xml title="res/values/strings.xml"
<plurals name="photo_count">
  <item quantity="one">%d photo</item>
  <item quantity="other">%d photos</item>
</plurals>
```

La CLI ricostruisce ogni `<plurals>` secondo le regole CLDR della lingua di destinazione, aggiungendo le categorie necessarie a quella lingua ed eliminando quelle che non seleziona mai. Android determina la quantità basandosi unicamente su CLDR, quindi una categoria che la lingua di destinazione non usa risulta irraggiungibile e viene rimossa, incluso un `zero` presente nella sorgente. Non aspettarti che l&#39;elemento tradotto abbia gli stessi valori `quantity` della sorgente; confronta piuttosto l&#39;output renderizzato con conteggi rappresentativi.

## Risorse non tradotte [#untranslated]

La CLI traduce i valori `<string>` e ogni elemento di uno `<string-array>` quando la risorsa contiene testo traducibile.

La CLI lascia queste risorse nel file tradotto senza inviarle in traduzione:

* Le risorse contrassegnate con `translatable="false"`, il modo standard per escludere chiavi API, nomi di marchi e valori di debug. L&#39;attributo viene riconosciuto secondo la lettura di AAPT, quindi anche `False` e `FALSE` sono validi.
* I valori non racchiusi tra virgolette il cui testo, una volta rimossi gli spazi, inizia con `@` o `?`, ovvero quelli che fanno riferimento a un&#39;altra risorsa anziché contenere testo. I valori tra virgolette e quelli con `\@` con carattere di escape restano traducibili.
* Un&#39;intera risorsa `<plurals>` o `<string-array>` quando uno qualsiasi degli elementi è un riferimento a una risorsa. La CLI lascia invariata l&#39;intera risorsa anziché rischiare di produrre un riferimento non valido.
* I tipi di risorsa che non contengono testo visibile all&#39;utente, come `<bool>`, `<integer>` e `<color>`.

Un commento posto sopra una risorsa viene passato al motore di traduzione come contesto: usalo quindi per disambiguare una stringa breve o con più significati.

## Sitemap

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