Se vuoi entrare in contatto con utenti Android di paesi e culture diverse, dovrai localizzare la tua app in modo che supporti più lingue. Questo processo inizia con l'internazionalizzazione di Android (i18n), che getta le basi per una localizzazione senza soluzione di continuità.
Internazionalizzare la tua app Android significa progettarla per adattarsi a più lingue senza modifiche tecniche. In questo modo, la tua app risulterà familiare agli utenti di un'altra area geografica o cultura, aumentando l'usabilità e aprendo le porte a nuovi mercati. Il processo deve essere eseguito una sola volta, risparmiando tempo e denaro su ogni localizzazione successiva.
Questa guida passo passo ti guiderà attraverso il processo di internazionalizzazione e localizzazione della tua app Android. Imparerai come preparare la tua app, gestire il contenuto dinamico e testare in varie lingue e impostazioni locali.
Come prepararsi per la localizzazione di app Android
L'internazionalizzazione prepara la tua app Android per la localizzazione. Questo processo stabilisce una solida base all'interno di Android Studio per garantire che la tua app supporti più lingue e aree geografiche. Ecco come iniziare:
-
Installa Android Studio
Inizia scaricando e installando Android Studio. Android Studio è l'ambiente di sviluppo ufficiale per Android e fornisce tutto ciò di cui hai bisogno per internazionalizzare, localizzare e testare la tua app.
-
Creare un nuovo progetto Android
Apri Android Studio e crea un nuovo progetto. Il modello "Attività vuota" offre un semplice punto di partenza.
Quindi, configura le impostazioni del tuo progetto in questo modo:
- Nome: Inserisci il nome della tua app (ad esempio, "LocalizedApp").
- Nome del pacchetto: Utilizza un identificatore univoco come "com.example.localizedappi18n".
- Lingua: selezioni Kotlin (consigliato) o Java.
- SDK minimo: Imposta la versione Android più bassa supportata dalla sua app.
Quindi, confermi le sue scelte per generare la struttura del progetto.
-
Aggiungere elementi dell'interfaccia utente con layout flessibili
Quando aggiungi elementi dell'interfaccia utente, progetta tenendo presente la localizzazione. Lingue come il tedesco spesso richiedono più spazio rispetto all'inglese, mentre i caratteri cinesi sono più compatti. Evitare di impostare larghezze fisse per gli elementi di testo, poiché le traduzioni più lunghe in alcune lingue potrebbero superare le dimensioni del contenitore.
Prendi in considerazione l'uso di strumenti come ConstraintLayout per consentire agli elementi dell'interfaccia utente di regolare dinamicamente la posizione e le dimensioni in base alla lunghezza del testo tradotto.
Ecco un esempio di XML:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/welcome_message"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
In questo caso, TextView viene utilizzato per visualizzare una risorsa stringa (ad esempio, un messaggio di benvenuto). Utilizzando wrap_content per la larghezza, l'elemento viene ridimensionato automaticamente per adattarsi alla lunghezza del testo tradotto anziché essere limitato da una dimensione fissa. Inoltre, ConstraintLayout mantiene l'oggetto TextView posizionato correttamente all'interno dello schermo, indipendentemente dalla lunghezza del testo o dalle dimensioni dello schermo.
La creazione di un layout flessibile fin dall'inizio rende la tua app perfetta indipendentemente dalla lingua in cui è localizzata.
-
Prepararsi per la localizzazione con testo esternalizzato
Il passaggio finale per preparare l'app Android per la localizzazione richiede l'archiviazione di tutto il testo rivolto all'utente in un file di risorse separato anziché essere impostato come hardcoded. Con un file di risorse centralizzato come strings.xml, Non sarà necessario sostituire manualmente il testo sparso nel codice.
Ecco come fare:
- Individua la cartella "res/values/" nella directory del tuo progetto.
- Apri il "strings.xml" (se non esiste, creane uno).
- Aggiunga il suo testo al file utilizzando una coppia nome-valore:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="welcome_message">Benvenuto nella mia app!</string>
</resources>
Torna al file activity_main.xml e aggiorna TextView per fare riferimento alla risorsa stringa:
<TextView
android:text="@string/welcome_message"
Organizzare il tuo progetto in questo modo internazionalizzerà la tua app Android, permettendoti di delineare facilmente il contenuto che deve essere localizzato in una lingua diversa.
Come localizzare un'app per Android in 4 passaggi
Ora che hai preparato la tua app Android, è il momento di esaminare il processo di localizzazione passo dopo passo, dall'impostazione delle risorse specifiche della lingua alla modifica dinamica delle impostazioni locali dell'app Android.
-
Espandi strings.xml per la localizzazione
Nella fase di preparazione, hai creato un file strings.xml per gestire tutto il testo nella tua app Android. A questo punto, è il momento di espandere questo concetto creando versioni specifiche del file per ogni lingua supportata.
Innanzitutto, crei nuove cartelle per ogni lingua di destinazione nella directory res del suo progetto. Usare un nome di cartella che includa il codice della lingua appropriato (ad esempio, «res/values-es/» per lo spagnolo e «res/values-fr/» per il francese).
Copia il file strings.xml predefinito in ogni cartella. Quindi, traduci manualmente il testo per ogni lingua. Ad esempio, il file inglese predefinito potrebbe dire:
<TextView
<string name="hello_world">Hello, World!string>
La versione in spagnolo in «values-es/strings.xml» sarebbe:
<TextView
<string name="hello_world">¡Hola, Mundo!string>
Una volta creati questi file XML specifici della lingua, Android sceglie automaticamente la versione corretta di strings.xml in base alle impostazioni della lingua del dispositivo dell'utente.
-
Gestione dei plurali per traduzioni accurate
I plurali sono complicati perché ogni lingua li gestisce in modo diverso. Ad esempio, "un elemento" è singolare in inglese, ma ogni altro numero è plurale, sia "zero elementi" che "duecento elementi". Tuttavia, lingue come il russo, il gallese e il ceco utilizzano regole più specifiche per i plurali in base al numero.
Ecco come definire le stringhe pluralizzate in strings.xml per l'inglese:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<plurals name="item_count">
<item quantity="one">%d item</item>
<item quantity="altro">%d articoli</item>
</plurals>
</resources>
Ciò tiene conto dei seguenti valori di quantità:
- Uno: usato per le forme singolari (ad esempio, un articolo).
- Altro: Utilizzato per le forme plurali (ad esempio, zero elementi, due elementi, tre elementi).
L'inglese richiede solo "uno" e "altro", ma altre lingue hanno più classificazioni. Per gestire questa situazione, Android fornisce un tag in strings.xml. Android supporta i tag per zero, uno, due, pochi, molti e altri. Di seguito sono riportati alcuni esempi di lingue che utilizzano ciascun tag:
- L'arabo impiega uno speciale accordo grammaticale per zero.
- Il russo tratta in modo diverso qualsiasi numero che termina con "1" a meno che non termini con "11".
- Il gallese usa una pluralizzazione distinta quando ci sono due di qualcosa.
- Lingue come il ceco e il maltese distinguono tra piccoli numeri e grandi numeri.
- Il cinese non fa distinzioni.
Ecco come recuperare e formattare la stringa pluralizzata in Kotlin:
val itemCount = 3
val messaggio = resources.getQuantityString(R.plurals.item_count, itemCount, itemCount)
In questo codice, R.plurals.item_count è l'ID risorsa plurale. Prima itemCount seleziona la stringa plurale in base alle regole plurali delle impostazioni locali del dispositivo e il secondo itemCount sostituisce il segnaposto%d.
Ad esempio, ecco gli output per l'inglese:
- Per ItemCount = 1: «1 articolo»
- Per itemCount = 3: "3 articoli"
-
Utilizzare i segnaposto per i valori dinamici
Le app spesso visualizzano contenuti personalizzati o dinamici, come il nome di un utente o il numero di notifiche ricevute. Invece di codificare questo contenuto, puoi utilizzare i segnaposto nelle stringhe, in questo modo:
<resources>
<string name="welcome_message">Benvenuto, %1$s! Hai %2$d nuovi messaggi.</string>
</resources>
Ecco come funziona:
- %1$s è un segnaposto per una stringa (come un nome).
- %2$d è un segnaposto per un numero (come il conteggio dei messaggi).
Quando l'app viene eseguita, questi segnaposto vengono sostituiti dinamicamente con i valori immessi dall'utente e i relativi dati dinamici.
-
Aggiungere suggerimenti contestuali
I traduttori non sempre sanno come viene usata una stringa nella tua app. Ad esempio, una parola come "menu" potrebbe significare un elenco a discesa, l'elenco dei cibi di un ristorante o una pagina delle impostazioni. Per evitare confusione, puoi aggiungere commenti direttamente nel tuo strings.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- This string is used as a label for the navigation menu →
<string name="menu_label">Menu</string>
<!-- This string is used for the settings button in the app →
<string name="settings_label">Settings</string>
</resources>
Queste note dicono al traduttore che la parola "menu" si riferisce a una funzione di navigazione nell'app, non al menu di un ristorante.
Test della localizzazione in Android
Testare la tua app Android localizzata è fondamentale per assicurarti che funzioni in varie lingue e aree geografiche. Testando su emulatori e dispositivi reali, puoi rilevare i problemi e fornire un'app che sembri naturale e funzionale per gli utenti di tutto il mondo.
Perché eseguire il test su dispositivi reali?
I dispositivi reali offrono la simulazione più vicina al modo in cui gli utenti interagiranno con la tua app. Ti mostrano come appare il testo tradotto sullo schermo di un telefono reale, indipendentemente dal fatto che sia troppo lungo o tagliato.
Perché eseguire il test con gli emulatori?
Gli emulatori sono un modo pratico per testare la tua app in numerose configurazioni. Consentono di passare rapidamente da una lingua all'altra e da un'area geografica all'altra per controllare le traduzioni, le regolazioni del layout e il comportamento dell'interfaccia utente.
La combinazione di entrambi i metodi consente di mantenere una funzionalità e un'esperienza utente ottimali in più lingue e impostazioni locali.
Come usare Smartling per la localizzazione di Android
Smartling elimina la complessità della localizzazione Android. Con strumenti basati sull'intelligenza artificiale, integrazioni di file XML Android senza soluzione di continuità e un team di traduttori esperti, Smartling offre molteplici servizi per semplificare l'intero processo di traduzione dall'inizio alla fine e automatizzare i flussi di lavoro manuali.
La sua azienda può sfruttare i sistemi di automazione e le informazioni basate sui dati di Smartling per localizzare più velocemente e mantenere la coerenza del marchio nei mercati globali, superando la concorrenza e fornendo un'esperienza utente senza precedenti.
Pronto a localizzare in modo più intelligente, non più difficile? Scaricate il nostro eBook gratuito, "10 strategie per aumentare l'efficienza della traduzione". Imparerete come migliorare la velocità, la qualità e i costi della traduzione con strategie attuabili ed esempi reali.
Se vuoi entrare in contatto con utenti Android di paesi e culture diverse, dovrai localizzare la tua app in modo che supporti più lingue. Questo processo inizia con l'internazionalizzazione di Android (i18n), che getta le basi per una localizzazione senza soluzione di continuità.
Internazionalizzare la tua app Android significa progettarla per adattarsi a più lingue senza modifiche tecniche. In questo modo, la tua app risulterà familiare agli utenti di un'altra area geografica o cultura, aumentando l'usabilità e aprendo le porte a nuovi mercati. Il processo deve essere eseguito una sola volta, risparmiando tempo e denaro su ogni localizzazione successiva.
Questa guida passo passo ti guiderà attraverso il processo di internazionalizzazione e localizzazione della tua app Android. Imparerai come preparare la tua app, gestire il contenuto dinamico e testare in varie lingue e impostazioni locali.
Come prepararsi per la localizzazione di app Android
L'internazionalizzazione prepara la tua app Android per la localizzazione. Questo processo stabilisce una solida base all'interno di Android Studio per garantire che la tua app supporti più lingue e aree geografiche. Ecco come iniziare:
-
Installa Android Studio
Inizia scaricando e installando Android Studio. Android Studio è l'ambiente di sviluppo ufficiale per Android e fornisce tutto ciò di cui hai bisogno per internazionalizzare, localizzare e testare la tua app.
-
Creare un nuovo progetto Android
Apri Android Studio e crea un nuovo progetto. Il modello "Attività vuota" offre un semplice punto di partenza.
Quindi, configura le impostazioni del tuo progetto in questo modo:
- Nome: Inserisci il nome della tua app (ad esempio, "LocalizedApp").
- Nome del pacchetto: Utilizza un identificatore univoco come "com.example.localizedappi18n".
- Lingua: selezioni Kotlin (consigliato) o Java.
- SDK minimo: Imposta la versione Android più bassa supportata dalla sua app.
Quindi, confermi le sue scelte per generare la struttura del progetto.
-
Aggiungere elementi dell'interfaccia utente con layout flessibili
Quando aggiungi elementi dell'interfaccia utente, progetta tenendo presente la localizzazione. Lingue come il tedesco spesso richiedono più spazio rispetto all'inglese, mentre i caratteri cinesi sono più compatti. Evitare di impostare larghezze fisse per gli elementi di testo, poiché le traduzioni più lunghe in alcune lingue potrebbero superare le dimensioni del contenitore.
Prendi in considerazione l'uso di strumenti come ConstraintLayout per consentire agli elementi dell'interfaccia utente di regolare dinamicamente la posizione e le dimensioni in base alla lunghezza del testo tradotto.
Ecco un esempio di XML:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/welcome_message"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
In questo caso, TextView viene utilizzato per visualizzare una risorsa stringa (ad esempio, un messaggio di benvenuto). Utilizzando wrap_content per la larghezza, l'elemento viene ridimensionato automaticamente per adattarsi alla lunghezza del testo tradotto anziché essere limitato da una dimensione fissa. Inoltre, ConstraintLayout mantiene l'oggetto TextView posizionato correttamente all'interno dello schermo, indipendentemente dalla lunghezza del testo o dalle dimensioni dello schermo.
La creazione di un layout flessibile fin dall'inizio rende la tua app perfetta indipendentemente dalla lingua in cui è localizzata.
-
Prepararsi per la localizzazione con testo esternalizzato
Il passaggio finale per preparare l'app Android per la localizzazione richiede l'archiviazione di tutto il testo rivolto all'utente in un file di risorse separato anziché essere impostato come hardcoded. Con un file di risorse centralizzato come strings.xml, Non sarà necessario sostituire manualmente il testo sparso nel codice.
Ecco come fare:
- Individua la cartella "res/values/" nella directory del tuo progetto.
- Apri il "strings.xml" (se non esiste, creane uno).
- Aggiunga il suo testo al file utilizzando una coppia nome-valore:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="welcome_message">Benvenuto nella mia app!</string>
</resources>
Torna al file activity_main.xml e aggiorna TextView per fare riferimento alla risorsa stringa:
<TextView
android:text="@string/welcome_message"
Organizzare il tuo progetto in questo modo internazionalizzerà la tua app Android, permettendoti di delineare facilmente il contenuto che deve essere localizzato in una lingua diversa.
Come localizzare un'app per Android in 4 passaggi
Ora che hai preparato la tua app Android, è il momento di esaminare il processo di localizzazione passo dopo passo, dall'impostazione delle risorse specifiche della lingua alla modifica dinamica delle impostazioni locali dell'app Android.
-
Espandi strings.xml per la localizzazione
Nella fase di preparazione, hai creato un file strings.xml per gestire tutto il testo nella tua app Android. A questo punto, è il momento di espandere questo concetto creando versioni specifiche del file per ogni lingua supportata.
Innanzitutto, crei nuove cartelle per ogni lingua di destinazione nella directory res del suo progetto. Usare un nome di cartella che includa il codice della lingua appropriato (ad esempio, «res/values-es/» per lo spagnolo e «res/values-fr/» per il francese).
Copia il file strings.xml predefinito in ogni cartella. Quindi, traduci manualmente il testo per ogni lingua. Ad esempio, il file inglese predefinito potrebbe dire:
<TextView
<string name="hello_world">Hello, World!string>
La versione in spagnolo in «values-es/strings.xml» sarebbe:
<TextView
<string name="hello_world">¡Hola, Mundo!string>
Una volta creati questi file XML specifici della lingua, Android sceglie automaticamente la versione corretta di strings.xml in base alle impostazioni della lingua del dispositivo dell'utente.
-
Gestione dei plurali per traduzioni accurate
I plurali sono complicati perché ogni lingua li gestisce in modo diverso. Ad esempio, "un elemento" è singolare in inglese, ma ogni altro numero è plurale, sia "zero elementi" che "duecento elementi". Tuttavia, lingue come il russo, il gallese e il ceco utilizzano regole più specifiche per i plurali in base al numero.
Ecco come definire le stringhe pluralizzate in strings.xml per l'inglese:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<plurals name="item_count">
<item quantity="one">%d item</item>
<item quantity="altro">%d articoli</item>
</plurals>
</resources>
Ciò tiene conto dei seguenti valori di quantità:
- Uno: usato per le forme singolari (ad esempio, un articolo).
- Altro: Utilizzato per le forme plurali (ad esempio, zero elementi, due elementi, tre elementi).
L'inglese richiede solo "uno" e "altro", ma altre lingue hanno più classificazioni. Per gestire questa situazione, Android fornisce un tag in strings.xml. Android supporta i tag per zero, uno, due, pochi, molti e altri. Di seguito sono riportati alcuni esempi di lingue che utilizzano ciascun tag:
- L'arabo impiega uno speciale accordo grammaticale per zero.
- Il russo tratta in modo diverso qualsiasi numero che termina con "1" a meno che non termini con "11".
- Il gallese usa una pluralizzazione distinta quando ci sono due di qualcosa.
- Lingue come il ceco e il maltese distinguono tra piccoli numeri e grandi numeri.
- Il cinese non fa distinzioni.
Ecco come recuperare e formattare la stringa pluralizzata in Kotlin:
val itemCount = 3
val messaggio = resources.getQuantityString(R.plurals.item_count, itemCount, itemCount)
In questo codice, R.plurals.item_count è l'ID risorsa plurale. Prima itemCount seleziona la stringa plurale in base alle regole plurali delle impostazioni locali del dispositivo e il secondo itemCount sostituisce il segnaposto%d.
Ad esempio, ecco gli output per l'inglese:
- Per ItemCount = 1: «1 articolo»
- Per itemCount = 3: "3 articoli"
-
Utilizzare i segnaposto per i valori dinamici
Le app spesso visualizzano contenuti personalizzati o dinamici, come il nome di un utente o il numero di notifiche ricevute. Invece di codificare questo contenuto, puoi utilizzare i segnaposto nelle stringhe, in questo modo:
<resources>
<string name="welcome_message">Benvenuto, %1$s! Hai %2$d nuovi messaggi.</string>
</resources>
Ecco come funziona:
- %1$s è un segnaposto per una stringa (come un nome).
- %2$d è un segnaposto per un numero (come il conteggio dei messaggi).
Quando l'app viene eseguita, questi segnaposto vengono sostituiti dinamicamente con i valori immessi dall'utente e i relativi dati dinamici.
-
Aggiungere suggerimenti contestuali
I traduttori non sempre sanno come viene usata una stringa nella tua app. Ad esempio, una parola come "menu" potrebbe significare un elenco a discesa, l'elenco dei cibi di un ristorante o una pagina delle impostazioni. Per evitare confusione, puoi aggiungere commenti direttamente nel tuo strings.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- This string is used as a label for the navigation menu →
<string name="menu_label">Menu</string>
<!-- This string is used for the settings button in the app →
<string name="settings_label">Settings</string>
</resources>
Queste note dicono al traduttore che la parola "menu" si riferisce a una funzione di navigazione nell'app, non al menu di un ristorante.
Test della localizzazione in Android
Testare la tua app Android localizzata è fondamentale per assicurarti che funzioni in varie lingue e aree geografiche. Testando su emulatori e dispositivi reali, puoi rilevare i problemi e fornire un'app che sembri naturale e funzionale per gli utenti di tutto il mondo.
Perché eseguire il test su dispositivi reali?
I dispositivi reali offrono la simulazione più vicina al modo in cui gli utenti interagiranno con la tua app. Ti mostrano come appare il testo tradotto sullo schermo di un telefono reale, indipendentemente dal fatto che sia troppo lungo o tagliato.
Perché eseguire il test con gli emulatori?
Gli emulatori sono un modo pratico per testare la tua app in numerose configurazioni. Consentono di passare rapidamente da una lingua all'altra e da un'area geografica all'altra per controllare le traduzioni, le regolazioni del layout e il comportamento dell'interfaccia utente.
La combinazione di entrambi i metodi consente di mantenere una funzionalità e un'esperienza utente ottimali in più lingue e impostazioni locali.
Come usare Smartling per la localizzazione di Android
Smartling elimina la complessità della localizzazione Android. Con strumenti basati sull'intelligenza artificiale, integrazioni di file XML Android senza soluzione di continuità e un team di traduttori esperti, Smartling offre molteplici servizi per semplificare l'intero processo di traduzione dall'inizio alla fine e automatizzare i flussi di lavoro manuali.
La sua azienda può sfruttare i sistemi di automazione e le informazioni basate sui dati di Smartling per localizzare più velocemente e mantenere la coerenza del marchio nei mercati globali, superando la concorrenza e fornendo un'esperienza utente senza precedenti.
Pronto a localizzare in modo più intelligente, non più difficile? Scaricate il nostro eBook gratuito, "10 strategie per aumentare l'efficienza della traduzione". Imparerete come migliorare la velocità, la qualità e i costi della traduzione con strategie attuabili ed esempi reali.
Se vuoi entrare in contatto con utenti Android di paesi e culture diverse, dovrai localizzare la tua app in modo che supporti più lingue. Questo processo inizia con l'internazionalizzazione di Android (i18n), che getta le basi per una localizzazione senza soluzione di continuità.
Internazionalizzare la tua app Android significa progettarla per adattarsi a più lingue senza modifiche tecniche. In questo modo, la tua app risulterà familiare agli utenti di un'altra area geografica o cultura, aumentando l'usabilità e aprendo le porte a nuovi mercati. Il processo deve essere eseguito una sola volta, risparmiando tempo e denaro su ogni localizzazione successiva.
Questa guida passo passo ti guiderà attraverso il processo di internazionalizzazione e localizzazione della tua app Android. Imparerai come preparare la tua app, gestire il contenuto dinamico e testare in varie lingue e impostazioni locali.
Come prepararsi per la localizzazione di app Android
L'internazionalizzazione prepara la tua app Android per la localizzazione. Questo processo stabilisce una solida base all'interno di Android Studio per garantire che la tua app supporti più lingue e aree geografiche. Ecco come iniziare:
-
Installa Android Studio
Inizia scaricando e installando Android Studio. Android Studio è l'ambiente di sviluppo ufficiale per Android e fornisce tutto ciò di cui hai bisogno per internazionalizzare, localizzare e testare la tua app.
-
Creare un nuovo progetto Android
Apri Android Studio e crea un nuovo progetto. Il modello "Attività vuota" offre un semplice punto di partenza.
Quindi, configura le impostazioni del tuo progetto in questo modo:
- Nome: Inserisci il nome della tua app (ad esempio, "LocalizedApp").
- Nome del pacchetto: Utilizza un identificatore univoco come "com.example.localizedappi18n".
- Lingua: selezioni Kotlin (consigliato) o Java.
- SDK minimo: Imposta la versione Android più bassa supportata dalla sua app.
Quindi, confermi le sue scelte per generare la struttura del progetto.
-
Aggiungere elementi dell'interfaccia utente con layout flessibili
Quando aggiungi elementi dell'interfaccia utente, progetta tenendo presente la localizzazione. Lingue come il tedesco spesso richiedono più spazio rispetto all'inglese, mentre i caratteri cinesi sono più compatti. Evitare di impostare larghezze fisse per gli elementi di testo, poiché le traduzioni più lunghe in alcune lingue potrebbero superare le dimensioni del contenitore.
Prendi in considerazione l'uso di strumenti come ConstraintLayout per consentire agli elementi dell'interfaccia utente di regolare dinamicamente la posizione e le dimensioni in base alla lunghezza del testo tradotto.
Ecco un esempio di XML:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/welcome_message"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
In questo caso, TextView viene utilizzato per visualizzare una risorsa stringa (ad esempio, un messaggio di benvenuto). Utilizzando wrap_content per la larghezza, l'elemento viene ridimensionato automaticamente per adattarsi alla lunghezza del testo tradotto anziché essere limitato da una dimensione fissa. Inoltre, ConstraintLayout mantiene l'oggetto TextView posizionato correttamente all'interno dello schermo, indipendentemente dalla lunghezza del testo o dalle dimensioni dello schermo.
La creazione di un layout flessibile fin dall'inizio rende la tua app perfetta indipendentemente dalla lingua in cui è localizzata.
-
Prepararsi per la localizzazione con testo esternalizzato
Il passaggio finale per preparare l'app Android per la localizzazione richiede l'archiviazione di tutto il testo rivolto all'utente in un file di risorse separato anziché essere impostato come hardcoded. Con un file di risorse centralizzato come strings.xml, Non sarà necessario sostituire manualmente il testo sparso nel codice.
Ecco come fare:
- Individua la cartella "res/values/" nella directory del tuo progetto.
- Apri il "strings.xml" (se non esiste, creane uno).
- Aggiunga il suo testo al file utilizzando una coppia nome-valore:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="welcome_message">Benvenuto nella mia app!</string>
</resources>
Torna al file activity_main.xml e aggiorna TextView per fare riferimento alla risorsa stringa:
<TextView
android:text="@string/welcome_message"
Organizzare il tuo progetto in questo modo internazionalizzerà la tua app Android, permettendoti di delineare facilmente il contenuto che deve essere localizzato in una lingua diversa.
Come localizzare un'app per Android in 4 passaggi
Ora che hai preparato la tua app Android, è il momento di esaminare il processo di localizzazione passo dopo passo, dall'impostazione delle risorse specifiche della lingua alla modifica dinamica delle impostazioni locali dell'app Android.
-
Espandi strings.xml per la localizzazione
Nella fase di preparazione, hai creato un file strings.xml per gestire tutto il testo nella tua app Android. A questo punto, è il momento di espandere questo concetto creando versioni specifiche del file per ogni lingua supportata.
Innanzitutto, crei nuove cartelle per ogni lingua di destinazione nella directory res del suo progetto. Usare un nome di cartella che includa il codice della lingua appropriato (ad esempio, «res/values-es/» per lo spagnolo e «res/values-fr/» per il francese).
Copia il file strings.xml predefinito in ogni cartella. Quindi, traduci manualmente il testo per ogni lingua. Ad esempio, il file inglese predefinito potrebbe dire:
<TextView
<string name="hello_world">Hello, World!string>
La versione in spagnolo in «values-es/strings.xml» sarebbe:
<TextView
<string name="hello_world">¡Hola, Mundo!string>
Una volta creati questi file XML specifici della lingua, Android sceglie automaticamente la versione corretta di strings.xml in base alle impostazioni della lingua del dispositivo dell'utente.
-
Gestione dei plurali per traduzioni accurate
I plurali sono complicati perché ogni lingua li gestisce in modo diverso. Ad esempio, "un elemento" è singolare in inglese, ma ogni altro numero è plurale, sia "zero elementi" che "duecento elementi". Tuttavia, lingue come il russo, il gallese e il ceco utilizzano regole più specifiche per i plurali in base al numero.
Ecco come definire le stringhe pluralizzate in strings.xml per l'inglese:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<plurals name="item_count">
<item quantity="one">%d item</item>
<item quantity="altro">%d articoli</item>
</plurals>
</resources>
Ciò tiene conto dei seguenti valori di quantità:
- Uno: usato per le forme singolari (ad esempio, un articolo).
- Altro: Utilizzato per le forme plurali (ad esempio, zero elementi, due elementi, tre elementi).
L'inglese richiede solo "uno" e "altro", ma altre lingue hanno più classificazioni. Per gestire questa situazione, Android fornisce un tag in strings.xml. Android supporta i tag per zero, uno, due, pochi, molti e altri. Di seguito sono riportati alcuni esempi di lingue che utilizzano ciascun tag:
- L'arabo impiega uno speciale accordo grammaticale per zero.
- Il russo tratta in modo diverso qualsiasi numero che termina con "1" a meno che non termini con "11".
- Il gallese usa una pluralizzazione distinta quando ci sono due di qualcosa.
- Lingue come il ceco e il maltese distinguono tra piccoli numeri e grandi numeri.
- Il cinese non fa distinzioni.
Ecco come recuperare e formattare la stringa pluralizzata in Kotlin:
val itemCount = 3
val messaggio = resources.getQuantityString(R.plurals.item_count, itemCount, itemCount)
In questo codice, R.plurals.item_count è l'ID risorsa plurale. Prima itemCount seleziona la stringa plurale in base alle regole plurali delle impostazioni locali del dispositivo e il secondo itemCount sostituisce il segnaposto%d.
Ad esempio, ecco gli output per l'inglese:
- Per ItemCount = 1: «1 articolo»
- Per itemCount = 3: "3 articoli"
-
Utilizzare i segnaposto per i valori dinamici
Le app spesso visualizzano contenuti personalizzati o dinamici, come il nome di un utente o il numero di notifiche ricevute. Invece di codificare questo contenuto, puoi utilizzare i segnaposto nelle stringhe, in questo modo:
<resources>
<string name="welcome_message">Benvenuto, %1$s! Hai %2$d nuovi messaggi.</string>
</resources>
Ecco come funziona:
- %1$s è un segnaposto per una stringa (come un nome).
- %2$d è un segnaposto per un numero (come il conteggio dei messaggi).
Quando l'app viene eseguita, questi segnaposto vengono sostituiti dinamicamente con i valori immessi dall'utente e i relativi dati dinamici.
-
Aggiungere suggerimenti contestuali
I traduttori non sempre sanno come viene usata una stringa nella tua app. Ad esempio, una parola come "menu" potrebbe significare un elenco a discesa, l'elenco dei cibi di un ristorante o una pagina delle impostazioni. Per evitare confusione, puoi aggiungere commenti direttamente nel tuo strings.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- This string is used as a label for the navigation menu →
<string name="menu_label">Menu</string>
<!-- This string is used for the settings button in the app →
<string name="settings_label">Settings</string>
</resources>
Queste note dicono al traduttore che la parola "menu" si riferisce a una funzione di navigazione nell'app, non al menu di un ristorante.
Test della localizzazione in Android
Testare la tua app Android localizzata è fondamentale per assicurarti che funzioni in varie lingue e aree geografiche. Testando su emulatori e dispositivi reali, puoi rilevare i problemi e fornire un'app che sembri naturale e funzionale per gli utenti di tutto il mondo.
Perché eseguire il test su dispositivi reali?
I dispositivi reali offrono la simulazione più vicina al modo in cui gli utenti interagiranno con la tua app. Ti mostrano come appare il testo tradotto sullo schermo di un telefono reale, indipendentemente dal fatto che sia troppo lungo o tagliato.
Perché eseguire il test con gli emulatori?
Gli emulatori sono un modo pratico per testare la tua app in numerose configurazioni. Consentono di passare rapidamente da una lingua all'altra e da un'area geografica all'altra per controllare le traduzioni, le regolazioni del layout e il comportamento dell'interfaccia utente.
La combinazione di entrambi i metodi consente di mantenere una funzionalità e un'esperienza utente ottimali in più lingue e impostazioni locali.
Come usare Smartling per la localizzazione di Android
Smartling elimina la complessità della localizzazione Android. Con strumenti basati sull'intelligenza artificiale, integrazioni di file XML Android senza soluzione di continuità e un team di traduttori esperti, Smartling offre molteplici servizi per semplificare l'intero processo di traduzione dall'inizio alla fine e automatizzare i flussi di lavoro manuali.
La sua azienda può sfruttare i sistemi di automazione e le informazioni basate sui dati di Smartling per localizzare più velocemente e mantenere la coerenza del marchio nei mercati globali, superando la concorrenza e fornendo un'esperienza utente senza precedenti.
Pronto a localizzare in modo più intelligente, non più difficile? Scaricate il nostro eBook gratuito, "10 strategie per aumentare l'efficienza della traduzione". Imparerete come migliorare la velocità, la qualità e i costi della traduzione con strategie attuabili ed esempi reali.
Se vuoi entrare in contatto con utenti Android di paesi e culture diverse, dovrai localizzare la tua app in modo che supporti più lingue. Questo processo inizia con l'internazionalizzazione di Android (i18n), che getta le basi per una localizzazione senza soluzione di continuità.
Internazionalizzare la tua app Android significa progettarla per adattarsi a più lingue senza modifiche tecniche. In questo modo, la tua app risulterà familiare agli utenti di un'altra area geografica o cultura, aumentando l'usabilità e aprendo le porte a nuovi mercati. Il processo deve essere eseguito una sola volta, risparmiando tempo e denaro su ogni localizzazione successiva.
Questa guida passo passo ti guiderà attraverso il processo di internazionalizzazione e localizzazione della tua app Android. Imparerai come preparare la tua app, gestire il contenuto dinamico e testare in varie lingue e impostazioni locali.
Come prepararsi per la localizzazione di app Android
L'internazionalizzazione prepara la tua app Android per la localizzazione. Questo processo stabilisce una solida base all'interno di Android Studio per garantire che la tua app supporti più lingue e aree geografiche. Ecco come iniziare:
-
Installa Android Studio
Inizia scaricando e installando Android Studio. Android Studio è l'ambiente di sviluppo ufficiale per Android e fornisce tutto ciò di cui hai bisogno per internazionalizzare, localizzare e testare la tua app.
-
Creare un nuovo progetto Android
Apri Android Studio e crea un nuovo progetto. Il modello "Attività vuota" offre un semplice punto di partenza.
Quindi, configura le impostazioni del tuo progetto in questo modo:
- Nome: Inserisci il nome della tua app (ad esempio, "LocalizedApp").
- Nome del pacchetto: Utilizza un identificatore univoco come "com.example.localizedappi18n".
- Lingua: selezioni Kotlin (consigliato) o Java.
- SDK minimo: Imposta la versione Android più bassa supportata dalla sua app.
Quindi, confermi le sue scelte per generare la struttura del progetto.
-
Aggiungere elementi dell'interfaccia utente con layout flessibili
Quando aggiungi elementi dell'interfaccia utente, progetta tenendo presente la localizzazione. Lingue come il tedesco spesso richiedono più spazio rispetto all'inglese, mentre i caratteri cinesi sono più compatti. Evitare di impostare larghezze fisse per gli elementi di testo, poiché le traduzioni più lunghe in alcune lingue potrebbero superare le dimensioni del contenitore.
Prendi in considerazione l'uso di strumenti come ConstraintLayout per consentire agli elementi dell'interfaccia utente di regolare dinamicamente la posizione e le dimensioni in base alla lunghezza del testo tradotto.
Ecco un esempio di XML:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/welcome_message"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
In questo caso, TextView viene utilizzato per visualizzare una risorsa stringa (ad esempio, un messaggio di benvenuto). Utilizzando wrap_content per la larghezza, l'elemento viene ridimensionato automaticamente per adattarsi alla lunghezza del testo tradotto anziché essere limitato da una dimensione fissa. Inoltre, ConstraintLayout mantiene l'oggetto TextView posizionato correttamente all'interno dello schermo, indipendentemente dalla lunghezza del testo o dalle dimensioni dello schermo.
La creazione di un layout flessibile fin dall'inizio rende la tua app perfetta indipendentemente dalla lingua in cui è localizzata.
-
Prepararsi per la localizzazione con testo esternalizzato
Il passaggio finale per preparare l'app Android per la localizzazione richiede l'archiviazione di tutto il testo rivolto all'utente in un file di risorse separato anziché essere impostato come hardcoded. Con un file di risorse centralizzato come strings.xml, Non sarà necessario sostituire manualmente il testo sparso nel codice.
Ecco come fare:
- Individua la cartella "res/values/" nella directory del tuo progetto.
- Apri il "strings.xml" (se non esiste, creane uno).
- Aggiunga il suo testo al file utilizzando una coppia nome-valore:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="welcome_message">Benvenuto nella mia app!</string>
</resources>
Torna al file activity_main.xml e aggiorna TextView per fare riferimento alla risorsa stringa:
<TextView
android:text="@string/welcome_message"
Organizzare il tuo progetto in questo modo internazionalizzerà la tua app Android, permettendoti di delineare facilmente il contenuto che deve essere localizzato in una lingua diversa.
Come localizzare un'app per Android in 4 passaggi
Ora che hai preparato la tua app Android, è il momento di esaminare il processo di localizzazione passo dopo passo, dall'impostazione delle risorse specifiche della lingua alla modifica dinamica delle impostazioni locali dell'app Android.
-
Espandi strings.xml per la localizzazione
Nella fase di preparazione, hai creato un file strings.xml per gestire tutto il testo nella tua app Android. A questo punto, è il momento di espandere questo concetto creando versioni specifiche del file per ogni lingua supportata.
Innanzitutto, crei nuove cartelle per ogni lingua di destinazione nella directory res del suo progetto. Usare un nome di cartella che includa il codice della lingua appropriato (ad esempio, «res/values-es/» per lo spagnolo e «res/values-fr/» per il francese).
Copia il file strings.xml predefinito in ogni cartella. Quindi, traduci manualmente il testo per ogni lingua. Ad esempio, il file inglese predefinito potrebbe dire:
<TextView
<string name="hello_world">Hello, World!string>
La versione in spagnolo in «values-es/strings.xml» sarebbe:
<TextView
<string name="hello_world">¡Hola, Mundo!string>
Una volta creati questi file XML specifici della lingua, Android sceglie automaticamente la versione corretta di strings.xml in base alle impostazioni della lingua del dispositivo dell'utente.
-
Gestione dei plurali per traduzioni accurate
I plurali sono complicati perché ogni lingua li gestisce in modo diverso. Ad esempio, "un elemento" è singolare in inglese, ma ogni altro numero è plurale, sia "zero elementi" che "duecento elementi". Tuttavia, lingue come il russo, il gallese e il ceco utilizzano regole più specifiche per i plurali in base al numero.
Ecco come definire le stringhe pluralizzate in strings.xml per l'inglese:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<plurals name="item_count">
<item quantity="one">%d item</item>
<item quantity="altro">%d articoli</item>
</plurals>
</resources>
Ciò tiene conto dei seguenti valori di quantità:
- Uno: usato per le forme singolari (ad esempio, un articolo).
- Altro: Utilizzato per le forme plurali (ad esempio, zero elementi, due elementi, tre elementi).
L'inglese richiede solo "uno" e "altro", ma altre lingue hanno più classificazioni. Per gestire questa situazione, Android fornisce un tag in strings.xml. Android supporta i tag per zero, uno, due, pochi, molti e altri. Di seguito sono riportati alcuni esempi di lingue che utilizzano ciascun tag:
- L'arabo impiega uno speciale accordo grammaticale per zero.
- Il russo tratta in modo diverso qualsiasi numero che termina con "1" a meno che non termini con "11".
- Il gallese usa una pluralizzazione distinta quando ci sono due di qualcosa.
- Lingue come il ceco e il maltese distinguono tra piccoli numeri e grandi numeri.
- Il cinese non fa distinzioni.
Ecco come recuperare e formattare la stringa pluralizzata in Kotlin:
val itemCount = 3
val messaggio = resources.getQuantityString(R.plurals.item_count, itemCount, itemCount)
In questo codice, R.plurals.item_count è l'ID risorsa plurale. Prima itemCount seleziona la stringa plurale in base alle regole plurali delle impostazioni locali del dispositivo e il secondo itemCount sostituisce il segnaposto%d.
Ad esempio, ecco gli output per l'inglese:
- Per ItemCount = 1: «1 articolo»
- Per itemCount = 3: "3 articoli"
-
Utilizzare i segnaposto per i valori dinamici
Le app spesso visualizzano contenuti personalizzati o dinamici, come il nome di un utente o il numero di notifiche ricevute. Invece di codificare questo contenuto, puoi utilizzare i segnaposto nelle stringhe, in questo modo:
<resources>
<string name="welcome_message">Benvenuto, %1$s! Hai %2$d nuovi messaggi.</string>
</resources>
Ecco come funziona:
- %1$s è un segnaposto per una stringa (come un nome).
- %2$d è un segnaposto per un numero (come il conteggio dei messaggi).
Quando l'app viene eseguita, questi segnaposto vengono sostituiti dinamicamente con i valori immessi dall'utente e i relativi dati dinamici.
-
Aggiungere suggerimenti contestuali
I traduttori non sempre sanno come viene usata una stringa nella tua app. Ad esempio, una parola come "menu" potrebbe significare un elenco a discesa, l'elenco dei cibi di un ristorante o una pagina delle impostazioni. Per evitare confusione, puoi aggiungere commenti direttamente nel tuo strings.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- This string is used as a label for the navigation menu →
<string name="menu_label">Menu</string>
<!-- This string is used for the settings button in the app →
<string name="settings_label">Settings</string>
</resources>
Queste note dicono al traduttore che la parola "menu" si riferisce a una funzione di navigazione nell'app, non al menu di un ristorante.
Test della localizzazione in Android
Testare la tua app Android localizzata è fondamentale per assicurarti che funzioni in varie lingue e aree geografiche. Testando su emulatori e dispositivi reali, puoi rilevare i problemi e fornire un'app che sembri naturale e funzionale per gli utenti di tutto il mondo.
Perché eseguire il test su dispositivi reali?
I dispositivi reali offrono la simulazione più vicina al modo in cui gli utenti interagiranno con la tua app. Ti mostrano come appare il testo tradotto sullo schermo di un telefono reale, indipendentemente dal fatto che sia troppo lungo o tagliato.
Perché eseguire il test con gli emulatori?
Gli emulatori sono un modo pratico per testare la tua app in numerose configurazioni. Consentono di passare rapidamente da una lingua all'altra e da un'area geografica all'altra per controllare le traduzioni, le regolazioni del layout e il comportamento dell'interfaccia utente.
La combinazione di entrambi i metodi consente di mantenere una funzionalità e un'esperienza utente ottimali in più lingue e impostazioni locali.
Come usare Smartling per la localizzazione di Android
Smartling elimina la complessità della localizzazione Android. Con strumenti basati sull'intelligenza artificiale, integrazioni di file XML Android senza soluzione di continuità e un team di traduttori esperti, Smartling offre molteplici servizi per semplificare l'intero processo di traduzione dall'inizio alla fine e automatizzare i flussi di lavoro manuali.
La sua azienda può sfruttare i sistemi di automazione e le informazioni basate sui dati di Smartling per localizzare più velocemente e mantenere la coerenza del marchio nei mercati globali, superando la concorrenza e fornendo un'esperienza utente senza precedenti.
Pronto a localizzare in modo più intelligente, non più difficile? Scaricate il nostro eBook gratuito, "10 strategie per aumentare l'efficienza della traduzione". Imparerete come migliorare la velocità, la qualità e i costi della traduzione con strategie attuabili ed esempi reali.
Se vuoi entrare in contatto con utenti Android di paesi e culture diverse, dovrai localizzare la tua app in modo che supporti più lingue. Questo processo inizia con l'internazionalizzazione di Android (i18n), che getta le basi per una localizzazione senza soluzione di continuità.
Internazionalizzare la tua app Android significa progettarla per adattarsi a più lingue senza modifiche tecniche. In questo modo, la tua app risulterà familiare agli utenti di un'altra area geografica o cultura, aumentando l'usabilità e aprendo le porte a nuovi mercati. Il processo deve essere eseguito una sola volta, risparmiando tempo e denaro su ogni localizzazione successiva.
Questa guida passo passo ti guiderà attraverso il processo di internazionalizzazione e localizzazione della tua app Android. Imparerai come preparare la tua app, gestire il contenuto dinamico e testare in varie lingue e impostazioni locali.
Come prepararsi per la localizzazione di app Android
L'internazionalizzazione prepara la tua app Android per la localizzazione. Questo processo stabilisce una solida base all'interno di Android Studio per garantire che la tua app supporti più lingue e aree geografiche. Ecco come iniziare:
-
Installa Android Studio
Inizia scaricando e installando Android Studio. Android Studio è l'ambiente di sviluppo ufficiale per Android e fornisce tutto ciò di cui hai bisogno per internazionalizzare, localizzare e testare la tua app.
-
Creare un nuovo progetto Android
Apri Android Studio e crea un nuovo progetto. Il modello "Attività vuota" offre un semplice punto di partenza.
Quindi, configura le impostazioni del tuo progetto in questo modo:
- Nome: Inserisci il nome della tua app (ad esempio, "LocalizedApp").
- Nome del pacchetto: Utilizza un identificatore univoco come "com.example.localizedappi18n".
- Lingua: selezioni Kotlin (consigliato) o Java.
- SDK minimo: Imposta la versione Android più bassa supportata dalla sua app.
Quindi, confermi le sue scelte per generare la struttura del progetto.
-
Aggiungere elementi dell'interfaccia utente con layout flessibili
Quando aggiungi elementi dell'interfaccia utente, progetta tenendo presente la localizzazione. Lingue come il tedesco spesso richiedono più spazio rispetto all'inglese, mentre i caratteri cinesi sono più compatti. Evitare di impostare larghezze fisse per gli elementi di testo, poiché le traduzioni più lunghe in alcune lingue potrebbero superare le dimensioni del contenitore.
Prendi in considerazione l'uso di strumenti come ConstraintLayout per consentire agli elementi dell'interfaccia utente di regolare dinamicamente la posizione e le dimensioni in base alla lunghezza del testo tradotto.
Ecco un esempio di XML:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/welcome_message"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
In questo caso, TextView viene utilizzato per visualizzare una risorsa stringa (ad esempio, un messaggio di benvenuto). Utilizzando wrap_content per la larghezza, l'elemento viene ridimensionato automaticamente per adattarsi alla lunghezza del testo tradotto anziché essere limitato da una dimensione fissa. Inoltre, ConstraintLayout mantiene l'oggetto TextView posizionato correttamente all'interno dello schermo, indipendentemente dalla lunghezza del testo o dalle dimensioni dello schermo.
La creazione di un layout flessibile fin dall'inizio rende la tua app perfetta indipendentemente dalla lingua in cui è localizzata.
-
Prepararsi per la localizzazione con testo esternalizzato
Il passaggio finale per preparare l'app Android per la localizzazione richiede l'archiviazione di tutto il testo rivolto all'utente in un file di risorse separato anziché essere impostato come hardcoded. Con un file di risorse centralizzato come strings.xml, Non sarà necessario sostituire manualmente il testo sparso nel codice.
Ecco come fare:
- Individua la cartella "res/values/" nella directory del tuo progetto.
- Apri il "strings.xml" (se non esiste, creane uno).
- Aggiunga il suo testo al file utilizzando una coppia nome-valore:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="welcome_message">Benvenuto nella mia app!</string>
</resources>
Torna al file activity_main.xml e aggiorna TextView per fare riferimento alla risorsa stringa:
<TextView
android:text="@string/welcome_message"
Organizzare il tuo progetto in questo modo internazionalizzerà la tua app Android, permettendoti di delineare facilmente il contenuto che deve essere localizzato in una lingua diversa.
Come localizzare un'app per Android in 4 passaggi
Ora che hai preparato la tua app Android, è il momento di esaminare il processo di localizzazione passo dopo passo, dall'impostazione delle risorse specifiche della lingua alla modifica dinamica delle impostazioni locali dell'app Android.
-
Espandi strings.xml per la localizzazione
Nella fase di preparazione, hai creato un file strings.xml per gestire tutto il testo nella tua app Android. A questo punto, è il momento di espandere questo concetto creando versioni specifiche del file per ogni lingua supportata.
Innanzitutto, crei nuove cartelle per ogni lingua di destinazione nella directory res del suo progetto. Usare un nome di cartella che includa il codice della lingua appropriato (ad esempio, «res/values-es/» per lo spagnolo e «res/values-fr/» per il francese).
Copia il file strings.xml predefinito in ogni cartella. Quindi, traduci manualmente il testo per ogni lingua. Ad esempio, il file inglese predefinito potrebbe dire:
<TextView
<string name="hello_world">Hello, World!string>
La versione in spagnolo in «values-es/strings.xml» sarebbe:
<TextView
<string name="hello_world">¡Hola, Mundo!string>
Una volta creati questi file XML specifici della lingua, Android sceglie automaticamente la versione corretta di strings.xml in base alle impostazioni della lingua del dispositivo dell'utente.
-
Gestione dei plurali per traduzioni accurate
I plurali sono complicati perché ogni lingua li gestisce in modo diverso. Ad esempio, "un elemento" è singolare in inglese, ma ogni altro numero è plurale, sia "zero elementi" che "duecento elementi". Tuttavia, lingue come il russo, il gallese e il ceco utilizzano regole più specifiche per i plurali in base al numero.
Ecco come definire le stringhe pluralizzate in strings.xml per l'inglese:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<plurals name="item_count">
<item quantity="one">%d item</item>
<item quantity="altro">%d articoli</item>
</plurals>
</resources>
Ciò tiene conto dei seguenti valori di quantità:
- Uno: usato per le forme singolari (ad esempio, un articolo).
- Altro: Utilizzato per le forme plurali (ad esempio, zero elementi, due elementi, tre elementi).
L'inglese richiede solo "uno" e "altro", ma altre lingue hanno più classificazioni. Per gestire questa situazione, Android fornisce un tag in strings.xml. Android supporta i tag per zero, uno, due, pochi, molti e altri. Di seguito sono riportati alcuni esempi di lingue che utilizzano ciascun tag:
- L'arabo impiega uno speciale accordo grammaticale per zero.
- Il russo tratta in modo diverso qualsiasi numero che termina con "1" a meno che non termini con "11".
- Il gallese usa una pluralizzazione distinta quando ci sono due di qualcosa.
- Lingue come il ceco e il maltese distinguono tra piccoli numeri e grandi numeri.
- Il cinese non fa distinzioni.
Ecco come recuperare e formattare la stringa pluralizzata in Kotlin:
val itemCount = 3
val messaggio = resources.getQuantityString(R.plurals.item_count, itemCount, itemCount)
In questo codice, R.plurals.item_count è l'ID risorsa plurale. Prima itemCount seleziona la stringa plurale in base alle regole plurali delle impostazioni locali del dispositivo e il secondo itemCount sostituisce il segnaposto%d.
Ad esempio, ecco gli output per l'inglese:
- Per ItemCount = 1: «1 articolo»
- Per itemCount = 3: "3 articoli"
-
Utilizzare i segnaposto per i valori dinamici
Le app spesso visualizzano contenuti personalizzati o dinamici, come il nome di un utente o il numero di notifiche ricevute. Invece di codificare questo contenuto, puoi utilizzare i segnaposto nelle stringhe, in questo modo:
<resources>
<string name="welcome_message">Benvenuto, %1$s! Hai %2$d nuovi messaggi.</string>
</resources>
Ecco come funziona:
- %1$s è un segnaposto per una stringa (come un nome).
- %2$d è un segnaposto per un numero (come il conteggio dei messaggi).
Quando l'app viene eseguita, questi segnaposto vengono sostituiti dinamicamente con i valori immessi dall'utente e i relativi dati dinamici.
-
Aggiungere suggerimenti contestuali
I traduttori non sempre sanno come viene usata una stringa nella tua app. Ad esempio, una parola come "menu" potrebbe significare un elenco a discesa, l'elenco dei cibi di un ristorante o una pagina delle impostazioni. Per evitare confusione, puoi aggiungere commenti direttamente nel tuo strings.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- This string is used as a label for the navigation menu →
<string name="menu_label">Menu</string>
<!-- This string is used for the settings button in the app →
<string name="settings_label">Settings</string>
</resources>
Queste note dicono al traduttore che la parola "menu" si riferisce a una funzione di navigazione nell'app, non al menu di un ristorante.
Test della localizzazione in Android
Testare la tua app Android localizzata è fondamentale per assicurarti che funzioni in varie lingue e aree geografiche. Testando su emulatori e dispositivi reali, puoi rilevare i problemi e fornire un'app che sembri naturale e funzionale per gli utenti di tutto il mondo.
Perché eseguire il test su dispositivi reali?
I dispositivi reali offrono la simulazione più vicina al modo in cui gli utenti interagiranno con la tua app. Ti mostrano come appare il testo tradotto sullo schermo di un telefono reale, indipendentemente dal fatto che sia troppo lungo o tagliato.
Perché eseguire il test con gli emulatori?
Gli emulatori sono un modo pratico per testare la tua app in numerose configurazioni. Consentono di passare rapidamente da una lingua all'altra e da un'area geografica all'altra per controllare le traduzioni, le regolazioni del layout e il comportamento dell'interfaccia utente.
La combinazione di entrambi i metodi consente di mantenere una funzionalità e un'esperienza utente ottimali in più lingue e impostazioni locali.
Come usare Smartling per la localizzazione di Android
Smartling elimina la complessità della localizzazione Android. Con strumenti basati sull'intelligenza artificiale, integrazioni di file XML Android senza soluzione di continuità e un team di traduttori esperti, Smartling offre molteplici servizi per semplificare l'intero processo di traduzione dall'inizio alla fine e automatizzare i flussi di lavoro manuali.
La sua azienda può sfruttare i sistemi di automazione e le informazioni basate sui dati di Smartling per localizzare più velocemente e mantenere la coerenza del marchio nei mercati globali, superando la concorrenza e fornendo un'esperienza utente senza precedenti.
Pronto a localizzare in modo più intelligente, non più difficile? Scaricate il nostro eBook gratuito, "10 strategie per aumentare l'efficienza della traduzione". Imparerete come migliorare la velocità, la qualità e i costi della traduzione con strategie attuabili ed esempi reali.
Tag: Siti Web e Applicazioni Web Blog