UI mit dem Translations Editor lokalisieren

Der Übersetzungseditor bietet eine konsolidierte und bearbeitbare Ansicht aller Ihrer standardmäßigen und übersetzten Stringressourcen.

Eine Einführung zum Übersetzen Ihrer App in verschiedene Sprachen finden Sie unter Unterstützung verschiedener Sprachen und Kulturen.

Abbildung 1: Der Übersetzungseditor mit App-Text vor der Übersetzung

Stringressourcen

Die Stringressourcen für ein Projekt sind in strings.xml-Dateien enthalten. Ihr Projekt hat eine Standarddatei strings.xml, die Stringressourcen in der Standardsprache für Ihre Anwendung enthält. Dies ist die Sprache, die die meisten Ihrer App-Nutzer sprechen werden. Sie können auch übersetzte strings.xml-Dateien erstellen, die Stringressourcen für andere Sprachen enthalten, in denen Ihre App unterstützt werden soll.

Sobald Ihre standardmäßige strings.xml-Datei fertig ist, können Sie die Übersetzungen selbst hinzufügen oder einen professionellen Dienstleister für die Übersetzungen bezahlen. In jedem Fall solltest du die Android Studio-Funktionen nutzen, die dich beim Verwalten und Testen von lokalisierten Texten unterstützen. Informationen zu professionellen Übersetzungsdiensten finden Sie unter Übersetzungsdienste in Auftrag geben.

Übersetzungseditor öffnen

Sie können den Übersetzungseditor von den folgenden Stellen in Android Studio aus aufrufen.

In der Android-Ansicht öffnen

  1. Wählen Sie links im Bereich Projekt > Android die Option ModuleName > Auflösung > Werte aus.
  2. Klicken Sie mit der rechten Maustaste auf die Datei strings.xml und wählen Sie Übersetzungs-Editor öffnen aus.

    Im Translation Editor werden die Schlüssel/Wert-Paare aus der Datei strings.xml angezeigt.

    Hinweis:Wenn Sie strings.xml-Dateien übersetzt haben, verfügt Ihr Projekt über mehrere entsprechende Werte-Ordner mit Suffixen, die die Sprache angeben, z. B. values-es für Spanisch. Die Standarddatei strings.xml befindet sich immer im Ordner Werte (ohne Suffix).

Abbildung 1 zeigt den Standardtext der Anwendung (in diesem Fall Englisch) im Übersetzungseditor für eine einfache Anwendung, bevor die Übersetzung abgeschlossen ist. Der Inhalt übersetzter strings.xml-Dateien wird rechts neben der Spalte Nicht übersetzt angezeigt. Es wird eine Spalte pro Sprache angezeigt (Abbildung 2).

Aus Zeichenfolgen.xml öffnen

Du kannst über jede deiner strings.xml-Dateien auf den Übersetzungs-Editor zugreifen.

  1. Wählen Sie links im Bereich Projekt > Android die Option ModuleName > Auflösung > Werte aus.
  2. Doppelklicken Sie auf strings.xml, um sie zur Bearbeitung zu öffnen.
  3. Klicken Sie in strings.xml rechts oben auf den Link Editor öffnen.

Hinweis:Wenn Sie auf den Link Benachrichtigung ausblenden klicken, wird der Link Editor öffnen ausgeblendet. Schließen Sie das Projekt und öffnen Sie es wieder, um es wieder einzublenden.

Über den Designeditor öffnen

Sie können den Übersetzungseditor im Designeditor des Layout-Editors öffnen, um den Standardtext und den übersetzten Text an das Layout anzupassen. Informationen zum Wechseln der Sprache im Designeditor finden Sie unter Übersetzten Text im Designeditor anzeigen.

  1. Wählen Sie links im Bereich Projekt > Android die Option ModuleName > Auflösung > Layout aus.
  2. Doppelklicken Sie auf content_main.xml, um sie zur Bearbeitung zu öffnen.
  3. Klicken Sie links unten auf den Tab Design, um den Designeditor aufzurufen.
  4. Wählen Sie im Designeditor die Drop-down-Liste Sprache aus.
  5. Wählen Sie Übersetzungen bearbeiten aus.

Nicht übersetzbare Zeilen konfigurieren

Im Übersetzungseditor können Sie die Option Nicht übersetzbar auswählen, um anzugeben, dass der Text in dieser Zeile nicht übersetzt werden soll. Text, der nicht übersetzt werden soll, kann produktspezifischer Text wie Handelsnamen und Marken oder auch technische Begriffe sein, für die es keine Übersetzung gibt.

Wenn Sie das Kästchen Nicht übersetzt anklicken, wird in der entsprechenden Zeile in der strings.xml-Standarddatei translatable="false" hinzugefügt. Im folgenden Beispiel wird EasyApp in der obersten Zeile nicht übersetzt, da es der Produktname ist.

<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>

Sprachen hinzufügen und löschen

Der Translations Editor unterstützt BCP 47 und kombiniert Sprach- und Regionscodes (Länder) zu einer einzigen Auswahl für die gewünschten Lokalisierungen. Ein Gebietsschema definiert mehr als eine Sprache. Eine Sprache enthält länderspezifische Formatierungen für Datum und Uhrzeit, Währungen und Dezimalzahlen.

So fügen Sie eine Sprache hinzu:

  1. Klicken Sie im Übersetzungseditor auf das Globussymbol .
  2. Wählen Sie in der Drop-down-Liste die Sprache aus, die Sie hinzufügen möchten.

    Die neue Sprache wird im Übersetzungseditor angezeigt und dem Projekt wird der Ordner values-* mit der Datei strings.xml hinzugefügt. Beispiel: values-es für Spanisch.

So löschen Sie eine Sprache:

Sie können eine Sprache im Übersetzungseditor löschen, indem Sie jeden Wert in der Spalte löschen (siehe Text bearbeiten, hinzufügen oder löschen). Alternativ können Sie den Projektordner für diese Sprache folgendermaßen löschen:

  1. Wählen Sie links im Bereich Projekt > Android die Option ModuleName > Auflösung aus.
  2. Klicken Sie mit der rechten Maustaste auf den Ordner values-* für die Sprache, die Sie löschen möchten. Beispiel: values-hi für Hindi.
  3. Wählen Sie in der Drop-down-Liste Löschen aus, um den Ordner und die zugehörige Datei strings.xml zu löschen.

Text bearbeiten, hinzufügen und löschen

Du kannst die Texteinstellungen direkt in der Datei strings.xml oder über den Übersetzungs-Editor bearbeiten. In diesem Abschnitt wird der Ansatz des Translations Editors beschrieben. Im Übersetzungseditor können Sie Text über die Listenansicht oder über das Feld Übersetzung unten im Übersetzungseditor bearbeiten, hinzufügen oder löschen.

Abbildung 2: Listenansicht oben und das Feld Übersetzung unten

Listenansicht

So bearbeiten oder fügen Sie Text hinzu:

  1. Doppelklicken Sie auf die Zelle, in der Sie Text bearbeiten oder hinzufügen möchten.
  2. Sie können Text über die Tastatur kopieren und einfügen. Wenn Sie eine Tastatur haben, die diakritische Zeichen unterstützt, können Sie den Text direkt in die Listenansicht eingeben.
  3. Drücken Sie die Tabulatortaste oder bewegen Sie den Cursor aus dem Feld heraus.

So löschen Sie Text:

  1. Doppelklicken Sie auf die Zelle, die Sie löschen möchten.
  2. Wählen Sie in der Listenansicht den Text aus und drücken Sie Löschen.
  3. Drücken Sie die Tabulatortaste oder bewegen Sie den Cursor aus dem Feld heraus.

Übersetzungsfeld

So bearbeiten oder fügen Sie Text hinzu:

  1. Klicken Sie in der Listenansicht einmal auf die Zelle, in der Sie Text bearbeiten oder hinzufügen möchten.
  2. Kopieren Sie im Feld Translation den Text auf der Tastatur oder fügen Sie ihn direkt in das Feld Translation ein, wenn Sie eine Tastatur haben, die diakritische Zeichen unterstützt.
  3. Drücken Sie die Tabulatortaste oder bewegen Sie den Cursor aus dem Feld heraus.

So löschen Sie Text:

  1. Klicken Sie einmal auf die Zelle, die Sie löschen möchten.
  2. Wählen Sie im Feld Übersetzung den Text aus und klicken Sie auf Löschen.

Schlüssel hinzufügen und löschen

Im Übersetzungseditor werden in der Spalte Schlüssel die eindeutigen IDs für jedes Datenelement in den strings.xml-Dateien aufgeführt. Sie können Schlüssel über den Translation Editor hinzufügen und löschen. Wenn Sie einen Schlüssel löschen, werden er und alle zugehörigen Übersetzungen vom Translations Editor gelöscht. Der Translations Editor verwendet die Refaktorierung „Safe Delete“, um einen Schlüssel zu löschen. So wissen Sie, ob der Schlüsseltext an anderer Stelle verwendet wird, und haben die Möglichkeit, die erforderlichen Anpassungen vorzunehmen, bevor Sie den Schlüssel löschen. Mit der Safe Delete-Referenz wird sichergestellt, dass der Code auch nach dem Löschen des Schlüssels kompiliert wird.

So fügen Sie einen Schlüssel hinzu:

  1. Klicken Sie im Übersetzungseditor auf Schlüssel hinzufügen .
  2. Geben Sie im Dialogfeld einen Schlüsselnamen, einen Standardwert und den Speicherort der Standarddatei strings.xml ein.

    Abbildung 3: Schlüssel hinzufügen

So löschen Sie einen Schlüssel:

  1. Wählen Sie im Translation Editor den Schlüssel aus, den Sie löschen möchten.
  2. Klicken Sie auf Schlüssel entfernen .
  3. Entscheiden Sie im Dialogfeld Löschen, ob Sie sicher löschen möchten und ob in Kommentaren und Strings gesucht werden soll. Klicken Sie dann auf OK.

    Abbildung 4: Dialogfeld „Löschen“

    Wenn es keine Verweise (Nutzungen) auf den gelöschten Schlüssel gibt oder wenn alle Verweise sicher minimierbar sind, wird der Schlüssel gelöscht. Andernfalls zeigt der Übersetzungseditor das Dialogfeld Nutzungen erkannt mit Informationen zu den erkannten Problemen an.

    Abbildung 5: Dialogfeld „Löschen“

  4. Wählen Sie Nutzungen ansehen aus, um zu prüfen, was gelöscht wird. Im Dialogfeld Sichere Löschkonflikte finden werden alle Nutzungen angezeigt, die nicht sicher gelöscht werden können. Sie können dann den entsprechenden Code bearbeiten.

    Abbildung 6: Unsichere Verwendung

  5. Klicken Sie mit der rechten Maustaste auf eine Nutzung, um das Kontextmenü aufzurufen, und wählen Sie Zur Quelle springen aus, um die erforderlichen Änderungen vorzunehmen.
  6. Wählen Sie im Bereich Konflikte beim sicheren Löschen suchen die Option Sicheres Löschen noch einmal ausführen aus, damit keine anderen Verwendungen vorhanden sind, die Ihre Aufmerksamkeit erfordern.
  7. Wenn die Nutzungen bereinigt sind, klicken Sie auf Refaktorieren, um den Schlüssel zu löschen.

Fehler korrigieren

Abbildung 7 zeigt, wie der Übersetzungseditor den Inhalt der englischen, spanischen und französischen strings.xml-Dateien anzeigt. Der rote Text kennzeichnet Zeilen mit Fehlern.

Abbildung 7: Roter Text weist auf eine Fehlerbedingung hin, die Sie beheben müssen.

Wenn Sie einen Fehler beheben möchten, bewegen Sie den Mauszeiger auf den roten Text, um eine Erklärung des Problems und seine Lösung anzuzeigen.

Wenn du im Übersetzungseditor Änderungen vornimmst, werden die zugrunde liegenden strings.xml-Dateien mit deinen Änderungen aktualisiert. Wenn du Änderungen in einer strings.xml-Datei vornimmst, wird die entsprechende Spalte im Translations Editor mit den Änderungen aktualisiert.

Beispiele für Korrekturen im Übersetzungseditor:

  • In Abbildung 7 ist zu sehen, dass in der Zeile app_name die Option Untranslatable aktiviert ist, obwohl eine spanische Übersetzung angegeben wurde. Löschen Sie die spanische Übersetzung, um den Fehler zu beheben.
  • In Abbildung 7 ist zu sehen, dass in der Zeile next_page keine französische Übersetzung vorhanden ist. Kopieren Sie mit der Tastatur Page Suivante in die Zelle und korrigieren Sie den Fehler. Beim Kopieren und Einfügen über die Tastatur wird der Text mit den diakritischen Zeichen in die Zelle kopiert.

Übersetzten Text im Design Editor anzeigen

Wenn du sehen möchtest, wie der übersetzte Text im App-Layout angezeigt wird, kannst du den Text im Designeditor so zwischen der Standard- und der übersetzten Version wechseln:

  1. Wählen Sie links im Bereich Projekt > Android die Option ModuleName > Auflösung > Layout aus.
  2. Doppelklicken Sie auf content_main.xml, um sie zur Bearbeitung zu öffnen.
  3. Klicken Sie links unten auf den Tab Design, um den Designeditor aufzurufen.
  4. Wählen Sie im Designeditor die Drop-down-Liste Sprache aus.
  5. Wählen Sie Übersetzungen bearbeiten aus.
  6. Wählen Sie die Sprache aus, in der Sie Ihre App sehen möchten.

    Abbildung 8: In der Drop-down-Liste mit den Sprachen ist Spanisch ausgewählt.

Im Design Editor wird das Layout Ihrer App in der ausgewählten Sprache angezeigt. In diesem Fall ist das Spanisch.

Abbildung 9: Der Design Editor zeigt übersetzten Text in Spanisch an

Standardsprache des Designeditors festlegen

Wählen Sie zum Zurücksetzen der Standardsprache es > Sprache aus.

Abbildung 10: Standardsprache festlegen

Lokalisierbaren Text verwalten und testen

Die Android-Plattform und Android Studio bieten mehrere Funktionen zum Verwalten und Testen des lokalisierbaren App-Texts. Diese Funktionen bieten Optionen, mit denen Sie Probleme mit rechtsläufigen Schriften (RTL-Skripten) wie Arabisch oder Hebräisch beheben können. Wenn Sie den lokalisierbaren Text testen, können Sie Anpassungen am UI-Text und an seinem Layout vornehmen, bevor Sie die Nachrichten per Commit an das Quell-Repository übertragen, damit sie später übersetzt werden.

Projekt für RTL-Unterstützung refaktorieren

Android Studio verfügt über einen Refaktorierungsbefehl, der bidirektionalen Text in TextView-, ConstraintLayout- und LinearLayout-Elementen unterstützt. So können Nutzer in deinen Apps Text sowohl in rechtsläufigen (LTR) als auch in RTL-Scripts (Rechts-nach-links) anzeigen und bearbeiten. Der Befehl ermöglicht außerdem eine automatische Spiegelung von App-UI-Layouts und aller Ansichts-Widgets. Damit die Änderung der Textrichtung und die Layoutspiegelung angezeigt wird, müssen Sie auch die Eigenschaften für Text- und Layoutrichtung im Layout-Editor festlegen.

Das folgende Verfahren zeigt, wie Sie Ihr Projekt für RTL-Unterstützung refaktorieren:

  1. Wählen Sie Refaktorieren > Nach Möglichkeit RTL-Unterstützung hinzufügen aus, um das in Abbildung 11 gezeigte Dialogfeld aufzurufen.

    Abbildung 11: RTL-Unterstützung hinzufügen

    • Wenn das <application>-Element in deiner AndroidManifest.xml-Datei nicht das android:supportsRTL="true"-Attribut hat, klicke das Kästchen AndroidManifest.xml aktualisieren an.
    • Wenn die targetSdkVersion deiner Anwendung 17 oder höher ist, wähle Eigenschaften links/rechts durch Start-/Ende-Eigenschaften ersetzen aus. In diesem Fall sollten die Properties „start“ und „end“ anstelle von „left“ und „right“ verwenden. Aus android:paddingLeft wird beispielsweise android:paddingStart.
    • Wenn die targetSdkVersion deiner Anwendung 16 oder kleiner ist, wähle Generate -v17-Versionen aus. In diesem Fall sollte deine XML-Datei beide Attributsätze verwenden. Beispielsweise sollte deine XML-Datei sowohl android:paddingLeft als auch android:paddingStart enthalten.
  2. Klicken Sie auf Ausführen, um das Fenster Vorschau der Refaktorierung suchen aufzurufen.

    Abbildung 12: Vorschau ansehen

  3. Klicken Sie auf Refaktorieren.

Weitere Informationen zum Refaktorieren deines Projekts für eine RTL-Unterstützung findest du unter Native RTL-Unterstützung in Android 4.2.

Eigenschaften der Text- und Layoutrichtung

Das Fenster "Eigenschaften" auf der rechten Seite enthält die Eigenschaft textDirection für Text-Widgets und die Eigenschaft layoutDirection für Layout-Widgets zum Ändern der Richtung von Text und Layoutkomponenten. Die Richtungseigenschaften sind im Fenster Eigenschaften auf der rechten Seite aufgeführt und funktionieren mit API-Level 17 oder höher.

Damit die Änderung der Textrichtung und die Layoutspiegelung angezeigt wird, müssen Sie das Projekt außerdem für die RTL-Unterstützung refaktorieren. Im Englischen werden bei der Änderung der Textrichtung nur Satzzeichen von der rechten zur linken Seite des Textes verschoben. So wird aus „Hello World!“ beispielsweise „!Hello World“. Damit der LTR-Text zu RTL wechselt, müssen Sie in Ihrer App eine RTL-Sprache verwenden. Wenn Sie Englisch verwenden und zu Testzwecken den Text in RTL ändern möchten, verwenden Sie pseudolocales. Pseudolokalisierungen sind unabhängig vom Refaktorierungsbefehl und den Richtungseigenschaften.

So rufen Sie die Routeneigenschaften auf und verwenden sie:

  1. Wählen Sie im Layouteditor ein Textwidget aus.
  2. Öffnen Sie das Fenster Eigenschaften und suchen Sie nach der RTL-Eigenschaft, die Sie verwenden möchten.

    Wählen Sie eine der folgenden Optionen aus, um den Attributwert festzulegen:

    • firstStrong:Standardeinstellung für die Stammansicht. Das erste starke Richtungszeichen bestimmt die Absatzrichtung. Wenn kein starkes Richtungszeichen vorhanden ist, ist die Absatzrichtung die aufgelöste Layoutrichtung der Ansicht.
    • anyRtl:Die Absatzrichtung ist RTL, wenn ein starkes RTL-Zeichen enthält. Andernfalls ist es LTR, wenn es starke LTR-Zeichen enthält. Wenn beides nicht angegeben ist, ist die Absatzrichtung die aufgelöste Layoutrichtung der Ansicht.
    • ltr:Die Absatzrichtung ist LTR.
    • rtl:Die Absatzrichtung ist RTL.
    • locale:Die Absatzrichtung stammt aus der Systemsprache.
    • Übernehmen:Standardeinstellung. Verwenden Sie die in der übergeordneten Datei festgelegte Richtung.
  3. Um Text und Layout umgekehrt zu überprüfen, führen Sie die App aus.

Pseudolokalisierungen

Ein Pseudogebiet ist eine simulierte Sprache, die die Eigenschaften von Sprachen annimmt, die beim Übersetzen einer App UI-, Layout-, RTL- und andere Übersetzungsprobleme verursachen. Pseudolokalisierungen bieten sofortige und automatische Übersetzungen für alle lokalisierbaren Nachrichten, die auf Englisch lesbar sind. Auf diese Weise können Sie nicht übersetzbare Nachrichten in Ihrem Quellcode erfassen.

Informationen zur Verwendung von Pseudosprachen finden Sie unter App mit Pseudolokalisierungen testen.