Localizzare l'app (visualizzazioni)

Concetti e implementazione di Jetpack Compose

Android è in esecuzione su molti dispositivi in molte regioni. Per raggiungere la maggior parte degli utenti, assicurati che la tua app gestisca testo, file audio, numeri, valute e grafici in modi adeguati alle convenzioni dei luoghi in cui viene utilizzata.

Questa pagina descrive alcune best practice per la localizzazione delle app Android.

Devi avere una conoscenza pratica di Kotlin o del linguaggio di programmazione Java e conoscere il caricamento delle risorse Android, la dichiarazione degli elementi dell'interfaccia utente in XML, considerazioni sullo sviluppo come il ciclo di vita dell'attività, e i principi generali di internazionalizzazione e localizzazione.

È una buona pratica utilizzare il framework delle risorse Android per separare il più possibile gli aspetti localizzati dell'app dalla funzionalità principale dell'app.

  • Inserisci la maggior parte o tutti i contenuti dell'interfaccia utente dell'app nei file di risorse, come descritto in questa pagina e nella panoramica delle risorse dell'app.
  • Il comportamento dell'interfaccia utente, d'altra parte, è determinato dal codice basato su Kotlin o Java. Ad esempio, se gli utenti inseriscono dati che devono essere formattati o ordinati in modo diverso a seconda delle impostazioni internazionali, devi utilizzare Kotlin o il linguaggio di programmazione Java per gestire i dati a livello di programmazione. Questa pagina non spiega come localizzare il codice basato su Kotlin o Java.

Per una breve guida alla localizzazione delle stringhe nella tua app, consulta Supportare lingue e culture diverse.

Utilizzare le risorse per la localizzazione

Questa sezione spiega come creare risorse predefinite e risorse alternative. Spiega anche come vengono assegnate le priorità alle risorse e come fare riferimento alle risorse nel codice.

Creare risorse predefinite

Inserisci il testo predefinito dell'app in res/values/strings.xml. Per queste stringhe, utilizza la lingua predefinita, ovvero la lingua che prevedi che la maggior parte degli utenti dell'app parli.

Il set di risorse predefinito include anche tutti i disegni e i layout predefiniti e può includere altri tipi di risorse come le animazioni. Queste risorse si trovano nelle seguenti directory:

  • res/drawable/: directory obbligatoria contenente almeno un file grafico per l'icona dell'app su Google Play
  • res/layout/: directory obbligatoria contenente un file XML che definisce il layout predefinito
  • res/anim/: obbligatoria se hai cartelle res/anim-<qualifiers>
  • res/xml/: obbligatoria se hai cartelle res/xml-<qualifiers>
  • res/raw/: obbligatoria se hai cartelle res/raw-<qualifiers>

Suggerimento: nel codice, esamina ogni riferimento a una risorsa Android. Assicurati che sia definita una risorsa predefinita per ognuna. Assicurati inoltre che il file di stringhe predefinito sia completo: un file di stringhe localizzato può contenere un sottoinsieme di stringhe, ma il file di stringhe predefinito deve contenerle tutte.

Suggerimenti per la localizzazione

Segui questi suggerimenti durante la localizzazione dell'app.

Progettare un layout flessibile

Se devi riorganizzare il layout per adattarlo a una determinata lingua, puoi creare un layout alternativo per quella lingua, ad esempio res/layout-de/main.xml per un layout in lingua tedesca. Tuttavia, questa operazione può rendere più difficile la manutenzione dell'app. È preferibile creare un singolo layout più flessibile.

Un'altra situazione tipica è una lingua che richiede qualcosa di diverso nel layout. Ad esempio, potresti avere un modulo di contatto che include due campi del nome quando l'app è in esecuzione in giapponese, ma tre campi del nome quando l'app è in esecuzione in un'altra lingua. Puoi gestire questa situazione in due modi:

  • Crea un layout con un campo che puoi attivare o disattivare a livello di programmazione, in base alla lingua.
  • Fai in modo che il layout principale includa un altro layout che include il campo modificabile. Il secondo layout può avere configurazioni diverse per lingue diverse.

Utilizzare l'oggetto Context Android per la ricerca manuale delle impostazioni internazionali

Puoi cercare le impostazioni internazionali utilizzando l'oggetto Context reso disponibile da Android, come mostrato nell'esempio seguente:

Kotlin

val primaryLocale: Locale = context.resources.configuration.locales[0]
val locale: String = primaryLocale.displayName

Java

Locale primaryLocale = context.getResources().getConfiguration().getLocales().get(0);
String locale = primaryLocale.getDisplayName();