Localizzare l'interfaccia utente con l'editor di traduzioni

L'editor delle traduzioni fornisce una visualizzazione consolidata e modificabile di tutte le risorse stringa predefinite e tradotte.

Per un'introduzione alla traduzione della tua app in diverse lingue, leggi l'articolo Supporto di diverse lingue e culture.

Figura 1. L'editor delle traduzioni che mostra il testo dell'app prima della traduzione

Risorse stringa

Le risorse stringa per un progetto sono contenute in file strings.xml. Il progetto ha un file strings.xml predefinito contenente risorse di tipo stringa nella lingua predefinita della tua app, ovvero la lingua che dovrebbe parlare la maggior parte degli utenti dell'app. Puoi anche avere file strings.xml tradotti contenenti risorse di tipo stringa per altre lingue che vuoi che la tua app possa supportare.

Una volta completato il file strings.xml predefinito, puoi aggiungere le traduzioni manualmente o pagare un servizio professionale per le traduzioni. In ogni caso, dovresti sfruttare le funzionalità di Android Studio per gestire e testare il testo localizzato. Per informazioni sui servizi di traduzione professionale, consulta Ordinare servizi di traduzione.

Apri l'editor delle traduzioni

Puoi accedere all'editor delle traduzioni dalle seguenti posizioni in Android Studio.

Apri dalla visualizzazione Android

  1. Nel riquadro Progetto > Android a sinistra, seleziona ModuleName > res > valori.
  2. Fai clic con il pulsante destro del mouse sul file strings.xml e seleziona Apri l'editor delle traduzioni.

    L'editor delle traduzioni mostra le coppie chiave-valore del file strings.xml.

    Nota: dopo aver tradotto i file strings.xml, il tuo progetto ha più cartelle values corrispondenti con suffissi che indicano la lingua, ad esempio values-es per lo spagnolo. Il tuo file strings.xml predefinito si trova sempre nella cartella values (senza suffisso).

La Figura 1 mostra il testo predefinito dell'app (in questo caso l'inglese) nell'editor delle traduzioni per un'app semplice prima che sia terminato il lavoro di traduzione. I contenuti dei file strings.xml tradotti verranno visualizzati a destra della colonna Non traducibile con una colonna per lingua, come mostrato nella figura 2.

Apri dall'interno diStrings.xml

Puoi accedere all'Editor delle traduzioni da uno qualsiasi dei tuoi file strings.xml.

  1. Nel riquadro Progetto > Android a sinistra, seleziona ModuleName > res > valori.
  2. Fai doppio clic sul file strings.xml per aprirlo e modificarlo.
  3. In strings.xml, fai clic sul link Apri editor nell'angolo in alto a destra.

Nota: se fai clic sul link Nascondi notifica, il link Apri editor non viene più visualizzato. Per ripristinarlo, chiudi e riapri il progetto.

Apri dall'editor di progettazione

Puoi aprire l'editor delle traduzioni dall'editor di progettazione dell'editor del layout per modificare il testo predefinito e tradotto in modo che si adatti meglio al layout. Per informazioni su come cambiare lingua nell'editor di progettazione, consulta la sezione Visualizzare il testo tradotto nell'editor di design.

  1. Nel riquadro Progetto > Android a sinistra, seleziona ModuleName > res > layout.
  2. Fai doppio clic sul file content_main.xml per aprirlo e modificarlo.
  3. Fai clic sulla scheda Design nell'angolo in basso a sinistra per visualizzare l'editor Design.
  4. Nell'editor di design, seleziona l'elenco a discesa Lingua .
  5. Seleziona Modifica traduzioni .

Configurare le righe non traducibili

Nell'Editor delle traduzioni, puoi selezionare Non traducibile per indicare che non vuoi che il testo in questa riga venga tradotto. Il testo che non vuoi che venga tradotto potrebbe essere un testo specifico di prodotti, come nomi commerciali e marchi, o termini tecnici che non hanno una traduzione.

Quando selezioni l'opzione Non traducibile, la riga corrispondente nel file strings.xml predefinito aggiunge translatable="false". Nell'esempio seguente, easyApp nella riga superiore non viene tradotto perché è il nome del prodotto.

<resources>
    <string name="app_name" translatable="false">EasyApp</string>
    <string name="action_settings">Settings</string>
    <string name="easy_app">I am a Simple App!</string>
    <string name="next_page">Next Page</string>
    <string name="second_page_message">I am the Second Page!</string>
    <string name="title_activity_second">SecondActivity</string>
</resources>

Aggiungere ed eliminare lingue

L'editor delle traduzioni supporta BCP 47 e combina i codici delle impostazioni internazionali e della regione (paese) in un'unica selezione per le localizzazioni target. Un'impostazione internazionale definisce più impostazioni della lingua. Le impostazioni internazionali includono la formattazione dipendente dal paese per elementi come data e ora, valute e decimali.

Per aggiungere una lingua:

  1. Nell'Editor delle traduzioni, fai clic sull'icona a forma di globo .
  2. Dall'elenco a discesa, seleziona la lingua che vuoi aggiungere.

    La nuova lingua viene visualizzata nell'editor delle traduzioni e al progetto viene aggiunta una cartella values-* con un file strings.xml. Ad esempio, values-es per lo spagnolo.

Per eliminare una lingua:

Puoi eliminare una lingua nell'editor delle traduzioni eliminando ogni valore nella colonna (consulta la sezione Modificare, aggiungere o eliminare il testo) oppure puoi eliminare la cartella del progetto per quella lingua nel seguente modo:

  1. Nel riquadro Progetto > Android a sinistra, seleziona ModuleName > res.
  2. Fai clic con il pulsante destro del mouse sulla cartella values-* della lingua che vuoi eliminare. Ad esempio, values-hi per l'hindi.
  3. Dall'elenco a discesa, seleziona Delete (Elimina) per eliminare la cartella e il relativo file strings.xml.

Modificare, aggiungere ed eliminare testo

Puoi modificare le impostazioni del testo direttamente nel file strings.xml o tramite l'editor delle traduzioni. Questa sezione descrive l'approccio dell'editor delle traduzioni. Nell'editor delle traduzioni, puoi modificare, aggiungere o eliminare il testo tramite la visualizzazione elenco o tramite il campo Traduzione nella parte inferiore dell'editor delle traduzioni.

Figura 2. Visualizzazione elenco in alto e il campo Traduzione in basso

Visualizzazione elenco

Per modificare o aggiungere testo:

  1. Fai doppio clic sulla cella in cui vuoi modificare o aggiungere testo.
  2. Esegui un copia e incolla della tastiera oppure, se disponi di una tastiera che supporta i segni diacritici, digita direttamente nella visualizzazione elenco.
  3. Usa il tasto Tab o sposta il cursore fuori dal campo.

Per eliminare il testo:

  1. Fai doppio clic sulla cella da eliminare.
  2. Nella visualizzazione elenco, seleziona il testo e premi Elimina.
  3. Usa il tasto Tab o sposta il cursore fuori dal campo.

Campo di traduzione

Per modificare o aggiungere testo:

  1. Nella visualizzazione elenco, fai clic una volta sulla cella in cui vuoi modificare o aggiungere testo.
  2. Esegui un copia e incolla della tastiera nel campo Traduzione oppure, se disponi di una tastiera che supporta i segni diacritici, digita direttamente nel campo Traduzione.
  3. Usa il tasto Tab o sposta il cursore fuori dal campo.

Per eliminare il testo:

  1. Fai clic una sola volta sulla cella da eliminare.
  2. Nel campo Traduzione, seleziona il testo e premi Elimina.

Aggiungi ed elimina chiavi

Nella colonna Chiave dell'editor delle traduzioni sono elencati gli identificatori univoci per ogni elemento di dati nei file strings.xml. Puoi aggiungere ed eliminare chiavi tramite l'editor delle traduzioni. Quando elimini una chiave, l'editor delle traduzioni elimina la chiave e tutte le traduzioni associate. L'editor delle traduzioni utilizza il refactoring dell'eliminazione sicura per eliminare una chiave, in modo da sapere se il testo della chiave viene utilizzato altrove e avere la possibilità di apportare le modifiche necessarie prima di eliminare la chiave. Il riferimento di eliminazione sicura garantisce che il codice continui a essere compilato dopo l'eliminazione della chiave.

Per aggiungere una chiave:

  1. Nell'editor delle traduzioni, fai clic su Aggiungi chiave .
  2. Nella finestra di dialogo, inserisci il nome della chiave, il valore predefinito e la posizione del file strings.xml predefinito.

    Figura 3. Aggiungi una chiave

Per eliminare una chiave:

  1. Nell'editor delle traduzioni, seleziona la chiave che vuoi eliminare.
  2. Fai clic su Rimuovi chiavi .
  3. Nella finestra di dialogo Elimina, decidi se vuoi eseguire un'eliminazione sicura e se vuoi cercare nei commenti e nelle stringhe, quindi fai clic su OK.

    Figura 4. Elimina finestra di dialogo

    Se non sono presenti riferimenti (utilizzi) alla chiave eliminata o se tutti i riferimenti sono comprimibili in modo sicuro, la chiave viene eliminata. In caso contrario, l'editor delle traduzioni mostra la finestra di dialogo Utilizzi rilevati con informazioni sui problemi rilevati.

    Figura 5. Elimina finestra di dialogo

  4. Seleziona Visualizza utilizzi per vedere cosa verrà eliminato. La finestra di dialogo Trova conflitti di eliminazione sicura mostra tutti gli utilizzi che non è sicuro eliminare in modo che tu possa modificare il codice corrispondente.

    Figura 6. Utilizzi non sicuri

  5. Fai clic con il pulsante destro del mouse su un utilizzo per visualizzare il menu contestuale e seleziona Vai all'origine per apportare le modifiche necessarie.
  6. Nel riquadro Trova conflitti di eliminazione sicura, seleziona Ripeti eliminazione sicura per assicurarti che non vi siano altri utilizzi che richiedono attenzione.
  7. Al termine della pulizia degli utilizzi, fai clic su Esegui il refactoring per eliminare la chiave.

Correggi errori

La Figura 7 mostra l'editor delle traduzioni che mostra i contenuti dei file strings.xml in inglese, spagnolo e francese. Il testo rosso indica le righe con errori.

Figura 7. Il testo in rosso indica una condizione di errore che dovrete correggere

Per correggere un errore, passa il mouse sopra il testo rosso per visualizzare una spiegazione del problema e la sua risoluzione.

Quando apporti modifiche nell'editor delle traduzioni, i file strings.xml sottostanti vengono aggiornati con le modifiche. Quando apporti modifiche a un file strings.xml, la colonna corrispondente nell'editor delle traduzioni viene aggiornata con le modifiche.

Esempi di correzioni dell'Editor delle traduzioni:

  • La figura 7 mostra che per la riga app_name è selezionata l'opzione Non traducibile, ma è disponibile una traduzione in spagnolo. Elimina la traduzione spagnola per correggere l'errore.
  • La figura 7 mostra che nella riga next_page manca una traduzione francese. Utilizza la tastiera per copiare Page Suivante nella cella in modo da correggere l'errore. Un'operazione di copia e incolla da tastiera copia il testo con i segni diacritici nella cella.

Visualizzare il testo tradotto nell'Editor di progettazione

Per vedere come viene visualizzato il testo tradotto nel layout dell'app, passa dalla versione predefinita a quella tradotta nell'editor di progettazione e viceversa, come segue:

  1. Nel riquadro Progetto > Android a sinistra, seleziona ModuleName > res > layout.
  2. Fai doppio clic sul file content_main.xml per aprirlo e modificarlo.
  3. Fai clic sulla scheda Design nell'angolo in basso a sinistra per visualizzare l'editor Design.
  4. Nell'editor di design, seleziona l'elenco a discesa Lingua .
  5. Seleziona Modifica traduzioni .
  6. Seleziona la lingua che vuoi utilizzare per visualizzare l'app.

    Figura 8. L'elenco a discesa delle lingue con lo spagnolo selezionato

L'editor di progettazione mostra il layout dell'app nella lingua selezionata, che in questo caso è lo spagnolo.

Figura 9. L'editor di design che mostra il testo tradotto in spagnolo

Impostare l'Editor di progettazione sulla lingua predefinita

Per ripristinare la lingua predefinita, seleziona es > Lingua .

Figura 10. Imposta la lingua predefinita

Gestisci e testa il testo localizzabile

La piattaforma Android e Android Studio forniscono diverse funzionalità per aiutarti a gestire e testare il testo localizzato dell'app. Queste funzionalità offrono opzioni per aiutarti a individuare i problemi relativi agli script da destra a sinistra (RTL), come l'arabo o l'ebraico. Il test del testo localizzabile ti consente di apportare modifiche al testo dell'interfaccia utente e al suo layout prima di eseguire il commit dei messaggi nel repository di origine per essere inviati per la traduzione in un secondo momento.

Refactoring del progetto per il supporto RTL

Android Studio dispone di un comando di refactoring che consente il supporto del testo bidirezionale negli elementi TextView, ConstraintLayout e LinearLayout, in modo che le app possano visualizzare e consentire agli utenti di modificare il testo in script da sinistra a destra (LTR) e da destra a sinistra (RTL). Il comando fornisce inoltre il mirroring automatico dei layout dell'interfaccia utente delle app e di tutti i widget di visualizzazione. Per visualizzare la modifica della direzione del testo e il mirroring del layout, devi anche impostare le proprietà della direzione del testo e del layout nell'editor di layout.

La seguente procedura mostra come eseguire il refactoring del progetto per il supporto RTL:

  1. Seleziona Refactoring > Aggiungi supporto RTL dove possibile per visualizzare la finestra di dialogo mostrata nella figura 11.

    Figura 11. Aggiungi supporto RTL

    • Se l'elemento <application> nel file AndroidManifest.xml non ha l'attributo android:supportsRTL="true", seleziona la casella di controllo Aggiorna AndroidManifest.xml.
    • Se il valore targetSdkVersion della tua app è 17 o superiore, seleziona Sostituisci proprietà sinistra/destra con proprietà inizio/fine. In questo caso, le proprietà devono utilizzare "start" e "end" anziché "left" e "right". Ad esempio, android:paddingLeft diventa android:paddingStart.
    • Se il valore targetSdkVersion della tua app è 16 o inferiore, seleziona Genera versioni -v17. In questo caso, il codice XML deve utilizzare entrambi gli insiemi di proprietà. Ad esempio, il tuo XML deve utilizzare sia android:paddingLeft sia android:paddingStart.
  2. Per visualizzare la finestra Trova anteprima di refactoring, fai clic su Esegui.

    Figura 12. Controlla l'anteprima

  3. Fai clic su Esegui il refactoring.

Per saperne di più sul refactoring del progetto per il supporto RTL, consulta Supporto RTL nativo in Android 4.2.

Proprietà della direzione di testo e layout

Nella finestra Proprietà sulla destra viene visualizzata la proprietà textDirection da utilizzare con i widget di testo e la proprietà layoutDirection da utilizzare con i widget di layout per cambiare la direzione dei componenti di testo e layout. Le proprietà della direzione sono elencate nella finestra Proprietà sulla destra e funzionano con l'API di livello 17 o superiore.

Per vedere la modifica della direzione del testo e il mirroring del layout, devi anche eseguire il refactoring del progetto per il supporto RTL. In inglese, la modifica della direzione del testo sposta solo la punteggiatura dal lato destro al lato sinistro del testo; ad esempio, "Hello World!" diventa "!Hello World". Per visualizzare il passaggio del testo LTR alla modalità RTL, devi utilizzare una lingua RTL nell'app. Se vuoi utilizzare l'inglese e vedere il passaggio a RTL a scopo di test, usa pseudolocali. Gli pseudolocali sono indipendenti dal comando di refactoring e dalle proprietà delle direzioni.

Per accedere alle proprietà delle indicazioni stradali e utilizzarle:

  1. Nell'Editor di layout, seleziona un widget di testo.
  2. Apri la finestra Proprietà e cerca la proprietà RTL che vuoi utilizzare.

    Per impostare il valore della proprietà, seleziona una delle seguenti opzioni:

    • firstStrong: impostazione predefinita per la vista principale. Il primo carattere direzionale forte determina la direzione del paragrafo. Se non è presente un carattere direzionale forte, la direzione del paragrafo corrisponde alla direzione del layout risolta della vista.
    • anyRtl: la direzione del paragrafo è RTL se contiene caratteri RTL efficaci; altrimenti, è LTR se contiene caratteri LTR efficaci. Se non c'è nessuna delle due, la direzione del paragrafo corrisponde alla direzione del layout risolta della vista.
    • ltr: la direzione del paragrafo è LTR.
    • rtl: la direzione del paragrafo è RTL.
    • locale: la direzione del paragrafo proviene dalle impostazioni internazionali di sistema.
    • Eredita: impostazione predefinita. Utilizza la direzione impostata nell'elemento principale.
  3. Esegui l'app per rivedere il testo e il layout invertiti.

Pseudolocali

Uno pseudolocale è un'impostazione internazionale simulata progettata per assumere le caratteristiche delle lingue che causano problemi di UI, layout, RTL e altri problemi di traduzione quando un'app viene tradotta. Gli pseudolocali forniscono traduzioni istantanee e automatiche leggibili in inglese per tutti i messaggi localizzabili. In questo modo puoi individuare i messaggi non traducibili nel codice sorgente.

Per informazioni su come utilizzare gli pseudolocali, consulta Testare la tua app con pseudolocali.