App lokalisierbar machen

Eine lokalisierte App kann für andere Märkte, Sprachen oder Regionen lokalisiert werden, ohne funktionsbezogene Fehler in der App aufzudecken. Die wichtigste Eigenschaft einer lokalisierbaren App ist, dass ihr ausführbarer Code sauber von ihren lokalisierbaren Ressourcen getrennt wurde. Daher sollten Sie festlegen, welche Ressourcen Ihrer App lokalisiert werden müssen. Fragen Sie sich, was sich ändern muss, wenn Ihre App für andere Märkte lokalisiert werden soll.

Außerdem wird empfohlen, sich mit den Richtlinien für die Globalisierung vertraut zu machen.

Legen Sie Ihre Zeichenfolgen in Ressourcendateien (.resw)

Coden Sie keine Zeichenfolgenliterale in Ihrem imperativen Code, XAML-Markup oder in Ihrem App-Paketmanifest. Legen Sie Stattdessen Ihre Zeichenfolgen in Ressourcendateien (.resw) ein, damit sie unabhängig von den erstellten Binärdateien Ihrer App an verschiedene lokale Märkte angepasst werden können. Weitere Informationen finden Sie unter Lokalisieren von Zeichenfolgen in Ihrem Ui- und App-Paketmanifest.

In diesem Thema erfahren Sie auch, wie Sie Ihrer Standardressourcendatei (RESW) Kommentare hinzufügen. Wenn Sie beispielsweise eine informelle Stimme oder einen informellen Ton annehmen, sollten Sie dies in Kommentaren erläutern. Vergewissern Sie sich außerdem, dass nur die Zeichenfolgen, die übersetzt werden müssen, für Übersetzer bereitgestellt werden, um den Aufwand zu minimieren.

Legen Sie die Standardsprache für Ihre App entsprechend in der Quelldatei des App-Paketmanifests (der Package.appxmanifest Datei) fest. Die Standardsprache bestimmt die Sprache, die verwendet wird, wenn die bevorzugten Sprachen des Benutzers keiner der unterstützten Sprachen Ihrer App entsprechen. Markieren Sie alle Ihre Ressourcen mit ihrer Sprache (auch die in Ihrer Standardsprache, z. B. \Assets\en-us\Logo.png), damit das System erkennen kann, in welcher Sprache sich die Ressource befindet und wie sie in bestimmten Situationen verwendet wird.

Anpassen Ihrer Bilder und anderer Dateiressourcen für die Sprache

Im Idealfall können Sie Ihre Bilder globalisieren, d.h. sie kulturunabhängig machen. Erstellen Sie für Alle Bilder und andere Dateiressourcen, bei denen dies nicht möglich ist, so viele verschiedene Varianten, wie Sie benötigen, und fügen Sie die entsprechenden Sprachqualifizierer in ihre Datei- oder Ordnernamen ein. Weitere Informationen finden Sie unter Anpassen Ihrer Ressourcen für Sprache, Skalierung, hohen Kontrast und andere Qualifizierer.

Um die Lokalisierungskosten zu minimieren, sollten Sie zunächst keinen Text oder kultursensibles Material in Bilder einfügen. Ein Bild, das in ihrer eigenen Kultur geeignet ist, kann in anderen Kulturen anstößig oder falsch interpretiert werden. Vermeiden Sie die Verwendung von kulturspezifischen Bildern wie Postfächern, die weltweit nicht üblich sind. Vermeiden Sie religiöse Symbole, Tiere, politische oder geschlechtsspezifische Bilder. Auch die Darstellung von Fleisch, Körperteilen oder Handgesten kann ein sensibles Thema sein. Wenn Sie all dies nicht vermeiden können, müssen Ihre Bilder nachdenklich lokalisiert werden. Wenn die lokalisierte Sprache in eine andere Leserichtung als die ursprüngliche Sprache verläuft, unterstützen symmetrische Bilder und Effekte die Spiegelung besser.

Vermeiden Sie auch die Verwendung von Text in Bildern und Sprache in Audio-/Videodateien.

Die Verwendung von Farbe in Ihrer App

Achten Sie bei der Verwendung von Farben auf Acht. Die Verwendung von Farbkombinationen, die Nationalflaggen oder politischen Bewegungen zugeordnet sind, kann problematisch sein. Die Farbauswahl muss möglicherweise von Kulturexperten überprüft werden. Es gibt auch Probleme mit der Barrierefreiheit bei der Verwendung von Farben. Wenn Sie Farbe verwenden, um eine Bedeutung zu vermitteln, sollten Sie diese Informationen auch auf andere Weise übermitteln, z. B. Größe, Form oder Bezeichnung.

Erwägen Sie, Ihre Zeichenfolgen in Sätze einzuteilen

Verwenden Sie Zeichenfolgen in angemessener Größe. Kurze Zeichenfolgen sind einfacher zu übersetzen, und sie ermöglichen das Übersetzungsrecycling (was Kosten spart, da dieselbe Zeichenfolge nicht mehrmals an den Lokalisierungsisierer gesendet wird). Außerdem werden extrem lange Zeichenfolgen möglicherweise nicht von Lokalisierungstools unterstützt.

In Spannung mit dieser Richtlinie besteht jedoch das Risiko, eine Zeichenfolge in verschiedenen Kontexten wieder zu verwenden. Auch einfache Wörter wie "ein" und "aus" können je nach Kontext unterschiedlich übersetzt werden. Im Englischen können sich „on“ und „off“ auf das Ein- und Ausschalten von Flugzeugmodus, Bluetooth oder Geräten beziehen. Im Italienischen hängt die Übersetzung jedoch davon ab, was ein- und ausgeschaltet wird. Sie müssten für jeden Kontext ein Zeichenfolgenpaar erstellen. Sie können Zeichenfolgen im gleichen Kontext mehrmals verwenden. Sie können z. B. die Zeichenfolge „Volume“ sowohl für Soundeffekte als auch für die Lautstärke von Musik verwenden, da sich beides auf die Intensität von Tönen bezieht. Verwenden Sie dieselbe Zeichenfolge jedoch nicht für Festplattenvolumes, da sich hier Kontext und Bedeutung unterscheiden und das Wort anders übersetzt wird.

Zudem können Zeichenfolgen wie „text“ oder „fas“ in der englischen Sprache als Verb und als Substantiv verwendet werden, was die Übersetzung erschweren kann. Erstellen Sie deshalb jeweils eine getrennte Zeichenfolge für das Verb und das Substantiv. Falls unklar ist, ob es sich um den gleichen Kontext handelt, gehen Sie auf Nummer sicher, und verwenden Sie getrennte Zeichenfolgen.

Kurz gesagt: Teilen Sie Ihre Zeichenfolgen in Teile ein, die in allen Kontexten funktionieren. Es gibt Fälle, in denen eine Zeichenfolge einen ganzen Satz sein muss.

Betrachten Sie die folgende Zeichenfolge: "Die {0} konnte nicht synchronisiert werden."

Eine Vielzahl von Wörtern könnte ersetzen {0}, z. B. "Termin", "Aufgabe" oder "Dokument". Obwohl dieses Beispiel für die englische Sprache funktioniert, funktioniert es nicht in allen Fällen für den entsprechenden Satz in z. B. Deutsch. Sie sehen, dass in den folgenden deutschen Sätzen einige der Wörter in der Vorlagenzeichenfolge („Der“, „Die“, „Das“) zum parametrisierten Wort passen müssen:

Englisch Deutsch
The appointment could not be synchronized. Der Termin konnte nicht synchronisiert werden.
The task could not be synchronized. Die Aufgabe konnte nicht synchronisiert werden.
The document could not be synchronized. Das Dokument konnte nicht synchronisiert werden.

Als weiteres Beispiel sollten Sie den Satz "Erinnern Sie mich in {0} Minuten(en)" betrachten. Die Verwendung von "minute(s)" funktioniert für die englische Sprache, aber andere Sprachen können andere Begriffe verwenden. Auf Polnisch heißt es je nach Kontext „minuta“, „minuty“ oder „minut“.

Lokalisieren Sie den gesamten Satz, statt nur ein einzelnes Wort, um das Problem zu beheben. Auf den ersten Blick wirkt diese Lösung vielleicht nicht ganz so elegant und sieht nach überflüssiger Arbeit aus, die Gründe sprechen jedoch für sich:

  • Für alle Sprachen wird eine grammatikalisch korrekte Meldung angezeigt.
  • Ihr Übersetzer muss sich nicht fragen, durch welche Zeichenfolgen ersetzt werden sollen.
  • Sie müssen keine kostspielige Codefehlerbehebung implementieren, wenn ein solches Problem in der fertigen App auftaucht.

Weitere Überlegungen zu Zeichenfolgen

Vermeiden Sie Umgangssprachen und Metaphern in den Zeichenfolgen, die Sie in Ihrer Standardsprache erstellen. Sprache, die für eine demografische Gruppe spezifisch ist, z. B. Kultur und Alter, kann schwer zu verstehen oder zu übersetzen sein, da nur Personen in dieser demografischen Gruppe diese Sprache verwenden. Ebenso ergeben Metaphern nicht für alle Personen Sinn. Ein "Bluebird" bedeutet beispielsweise etwas Spezifisches für diejenigen, die Teil der Skikultur sind, aber diejenigen, die nicht Teil dieser Kultur sind, verstehen den Verweis nicht.

Verwenden Sie keinen technischen Jargon, Abkürzungen oder Akronyme. Fachsprache wird von Fachfremden kaum verstanden und ist schwer zu übersetzen. Im alltäglichen Sprachgebrauch ist diese Terminologie unüblich. Technische Sprache wird häufig in Fehlermeldungen angezeigt, um Hardware- und Softwareprobleme zu identifizieren, aber Sie sollten Zeichenfolgen nur dann technisch sein , wenn der Benutzer diese Informationsebene benötigt, und kann entweder eine Aktion ausführen oder jemanden finden, der dies kann.

Die Verwendung einer informellen Stimme oder Einestons in Ihren Zeichenfolgen ist eine gültige Wahl. Sie können Kommentare in Ihrer Standardressourcendatei (RESW) verwenden, um diese Absicht anzugeben.

Pseudolokalisierung

Pseudolokalisieren Sie Ihre App, um Probleme mit der Lokalisierung aufzudecken. Pseudolokalisierung ist eine Art Lokalisierungstest. Sie erstellen eine Reihe von Ressourcen, die nicht wirklich übersetzt werden. sie sehen nur so aus. Ihre Zeichenfolgen sind etwa 40 % länger als in der Standardsprache und verfügen über Trennzeichen, sodass Sie auf einen Blick sehen können, ob sie auf der Benutzeroberfläche abgeschnitten wurden.

Überlegungen zur Bereitstellung

Wenn Sie eine App installieren, die lokalisierte Sprachdaten enthält, stellen Sie möglicherweise fest, dass nur die Standardsprache für die App verfügbar ist, obwohl Sie zunächst Ressourcen für mehrere Sprachen eingeschlossen haben. Dies liegt daran, dass der Installationsprozess so optimiert ist, dass nur Sprachressourcen installiert werden, die der aktuellen Sprache und Kultur des Geräts entsprechen. Wenn Ihr Gerät für en-US konfiguriert ist, werden daher nur die en-US-Sprachressourcen mit Ihrer App installiert.

Hinweis

Nach der Erstinstallation ist es nicht möglich, zusätzliche Sprachunterstützung für Ihre App zu installieren. Wenn Sie die Standardsprache nach der Installation einer App ändern, verwendet die App weiterhin nur die ursprünglichen Sprachressourcen.

Wenn Sie sicherstellen möchten, dass nach der Installation alle Sprachressourcen verfügbar sind, erstellen Sie eine Konfigurationsdatei für das App-Paket, die angibt, dass bestimmte Ressourcen während der Installation erforderlich sind (einschließlich Sprachressourcen). Dieses optimierte Installationsfeature wird automatisch aktiviert, wenn die Appxbundle-Datei Ihrer Anwendung beim Packen generiert wird. Weitere Informationen finden Sie unter Sicherstellen, dass Ressourcen auf einem Gerät installiert sind, unabhängig davon, ob sie für ein Gerät erforderlich sind.

Optional können Sie die Appxbundle-Generierung deaktivieren, um sicherzustellen, dass alle Ressourcen (nicht nur eine Teilmenge) installiert sind. Dies wird jedoch nicht empfohlen, da dies die Installationszeit Ihrer App erhöhen kann.

Deaktivieren Sie die automatische Generierung von .appxbundle, indem Sie das Attribut "App Bundle generieren" auf "never" festlegen:

  1. Klicken Sie in Visual Studio mit der rechten Maustaste auf den Projektnamen.
  2. Wählen Sie Store –>App-Pakete erstellen... aus.
  3. Wählen Sie im Dialogfeld Ihre Pakete erstellen die Option Ich möchte Pakete erstellen aus, die mit einem neuen App-Namen in den Microsoft Store hochgeladen werden sollen, und klicken Sie dann auf Weiter.
  4. Wählen Sie im Dialogfeld App-Namen auswählen einen App-Namen aus, bzw. erstellen Sie einen App-Namen für Ihr Paket.
  5. Legen Sie im Dialogfeld Pakete auswählen und konfigurierendie Option App-Bündel generieren auf Nie fest.

Geopolitisches Bewusstsein

Vermeiden Sie politische Beleidigungen in Karten oder bei Verweisen auf Regionen. Karten können umstrittene regionale oder nationale Grenzen enthalten, und sie sind eine häufige Quelle für politische Straftaten. Achten Sie darauf, dass jede Benutzeroberfläche, die zum Auswählen einer Nation verwendet wird, als "Land/Region" bezeichnet. Das Auflisten eines umstrittenen Gebiets in einer Liste mit der Bezeichnung "Länder", z. B. in einem Adressformular, könnte einige Benutzer beleidigen.

Sprach- und Regionsänderungsereignisse

Abonnieren Sie Ereignisse, die ausgelöst werden, wenn sich die Sprach- und Regionseinstellungen des Systems ändern. Führen Sie dies aus, damit Sie Ressourcen ggf. erneut laden können. Weitere Informationen finden Sie unter Aktualisieren von Zeichenfolgen als Reaktion auf Änderungsereignisse für Qualifiziererwerte und Aktualisieren von Images als Reaktion auf Änderungsereignisse für Qualifiziererwerte.

Sicherstellen der richtigen Parameterreihenfolge beim Formatieren von Zeichenfolgen

Gehen Sie nicht davon aus, dass alle Sprachen Parameter in derselben Reihenfolge ausdrücken. Betrachten Sie beispielsweise dieses Format.

    string.Format("Every {0} {1}", monthName, dayNumber); // For example, "Every April 1".

Die Formatzeichenfolge in diesem Beispiel funktioniert für Englisch (USA). Es ist jedoch nicht geeignet für Deutsch (Deutschland), wo Tag und Monat in umgekehrter Reihenfolge angezeigt werden. Stellen Sie sicher, dass der Übersetzer die Absicht der einzelnen Parameter kennt, damit er die Reihenfolge der Formatelemente in der Formatzeichenfolge (z. B. "{1}{0}") entsprechend der Zielsprache umkehren kann.

Nicht zu lokalisieren

Nur natürliche Sprache an Übersetzer übermitteln; keine Programmiersprache oder Markup. Ein <link> Tag ist keine natürliche Sprache. Betrachten Sie diese Beispiele.

Lokalisieren Sie dies nicht. Lokalisieren Sie diese
<Nutzungsbedingungen></Link> Nutzungsbedingungen
<Link-Datenschutzrichtlinie></Link> Datenschutzrichtlinie

Das Einschließen des <link> Tags in Ihre Ressourcendatei (.resw) bedeutet, dass es wahrscheinlich auch übersetzt wird. Dadurch würde das Tag ungültig. Wenn Sie über lange Zeichenfolgen verfügen, die Markup einschließen müssen, um den Kontext beizubehalten und die Reihenfolge sicherzustellen, machen Sie in Kommentaren klar, was nicht übersetzt werden soll.

Auswählen eines geeigneten Übersetzungsansatzes

Nachdem die Zeichenfolgen in Ressourcendateien untergliedert wurden, können sie übersetzt werden. Der ideale Zeitpunkt für die Übersetzung ist nach Fertigstellung der Zeichenfolgen im Projekt, was in der Regel gegen Projektende der Fall ist. Der Übersetzungsprozess kann auf unterschiedliche Weise gehandhabt werden. Die Vorgehensweise hängt vom Umfang der zu übersetzenden Zeichenfolgen ab, von der Anzahl der zu übersetzenden Sprachen und wie die Übersetzung erfolgt (intern oder über externe Auftragnehmer).

Berücksichtigen Sie diese Optionen.

  • Die Ressourcendateien können zum Übersetzen direkt im Projekt geöffnet werden. Dieser Ansatz eignet sich gut für ein Projekt mit einer kleinen Menge von Zeichenfolgen, die in zwei oder drei Sprachen übersetzt werden müssen. Er könnte sich für Szenarien eignen, in denen ein Entwickler mehrere Sprachen spricht und die Übersetzung übernehmen kann. Dieser Ansatz profitiert von der Schnellen, erfordert keine Tools und minimiert das Risiko von Fehlübersetzungen. Aber es ist nicht skalierbar. Insbesondere kann es passieren, das die Ressourcen in verschiedenen Sprachen nicht mehr synchron sind, was eine mangelnde Benutzerfreundlichkeit und Verwaltungsprobleme zur Folge haben kann.
  • Die Zeichenfolgenressourcendateien werden im XML- oder ResJSON-Textformat erstellt und können somit zur Übersetzung mit einem Texteditor übergeben werden. Die übersetzten Dateien würde dann wieder in das Projekt kopiert werden. Bei diesem Ansatz besteht die Gefahr, dass Übersetzer versehentlich die XML-Tags bearbeiten. Andererseits besteht die Möglichkeit, Übersetzungen außerhalb des Microsoft Visual Studio-Projekts durchzuführen. Dieser Ansatz eignet sich gut für Projekte, die nur in wenige Sprachen übersetzt werden. Das XLIFF-Format ist ein XML-Format, das speziell für die Lokalisierung vorgesehen ist. Es sollte zudem von einigen Lokalisierungsanbietern oder -tools unterstützt werden. Sie können mit dem Multilingual App Toolkit XLIFF-Dateien aus anderen Ressourcendateien wie „.resw“ oder „.resjson“ generieren.

Hinweis

Die Lokalisierung kann auch für andere Ressourcen erforderlich sein, einschließlich Bildern und Audiodateien.

Beachten Sie auch Folgendes:

  • Lokalisierungstools Es gibt eine Reihe von Lokalisierungstools, mit denen Ressourcendateien analysiert werden können und nur die übersetzbaren Zeichenfolgen von Übersetzern bearbeitet werden können. Das Risiko, dass ein Übersetzer versehentlich XML-Tags bearbeitet, ist somit geringer. Der Nachteil ist aber, dass neue Tools und Prozesse in den Lokalisierungsprozess eingebunden werden müssen. Ein Lokalisierungstool eignet sich gut für Projekte mit einer großen Menge von Zeichenfolgen, aber einer kleinen Anzahl von Sprachen. Weitere Informationen finden Sie unter Verwenden des Multilingual App Toolkit.
  • Lokalisierungsanbieter Erwägen Sie die Verwendung eines Lokalisierungsanbieters, wenn Ihre Anwendung umfangreiche Zeichenfolgen enthält, die in eine große Anzahl von Sprachen übersetzt werden müssen. Ein Lokalisierungsanbieter kann Sie hinsichtlich der Tools und Prozesse beraten sowie die Ressourcendateien übersetzen. Diese Lösung ist ideal, stellt allerdings auch die teuerste Option dar und kann die Bearbeitungszeit für den übersetzten Inhalt verlängern.

Beibehalten der Konsistenz von Zugriffsschlüsseln und Bezeichnungen

Die „Synchronisierung“ der für die Barrierefreiheit verwendeten Zugriffstasten mit der Anzeige der lokalisierten Zugriffstasten stellt eine besondere Herausforderung dar, da beide Zeichenfolgenressourcen in getrennten Abschnitten kategorisiert sind. Stellen Sie für die Bezeichnungszeichenfolge unbedingt Kommentare bereit wie: Make sure that the emphasized shortcut key is synchronized with the access key.

Unterstützung von Furigana für japanische Zeichenfolgen, die sortiert werden können

Japanische Kanji-Zeichen haben die Eigenschaft, dass je nach Wort, in dem sie verwendet werden, mehrere Lesevorgänge (Aussprache) vorhanden sind. Bei der Sortierung japanisch bezeichneter Objekte (wie Anwendungsnamen, Dateien, Lieder usw.) führt das zu Problemen. Japanische Kanji wurden in der Vergangenheit in der Regel in einer maschinenverständlichen Reihenfolge namens XJIS sortiert. Da es sich hierbei um keine phonetische Sortierung handelt, ist sie für menschliche Nutzer leider nicht hilfreich.

Furigana umgeht dieses Problem, indem der Benutzer oder Ersteller die Phonetik für die verwendeten Zeichen angeben kann. Wenn Sie das folgende Verfahren zum Hinzufügen von Furigana zu Ihrem App-Namen verwenden, können Sie sicherstellen, dass es an der richtigen Position in der App-Liste sortiert ist. Wenn Der App-Name Kanji-Zeichen enthält und furigana nicht angegeben wird, wenn die Benutzeroberflächensprache oder die Sortierreihenfolge auf Japanisch festgelegt ist, bemüht sich Windows nach besten Kräften, die entsprechende Aussprache zu generieren. Es ist jedoch möglich, App-Namen mit seltener oder spezieller Schreibweise stattdessen nach einer gebräuchlicheren Schreibweise zu sortieren. Daher besteht die bewährte Methode für japanische Anwendungen (insbesondere solche, die Kanji-Zeichen in ihrem Namen enthalten) darin, eine Furigana-Version ihres App-Namens als Teil des japanischen Lokalisierungsprozesses bereitzustellen.

  1. Fügen Sie „ms-resource:Appname“ als Paketanzeigenamen und Anwendungsanzeigenamen hinzu.

  2. Erstellen Sie unter „strings“ den Ordner „ja-JP“, und fügen Sie zwei Ressourcendateien wie folgt hinzu:

    strings\
        en-us\
        ja-jp\
            Resources.altform-msft-phonetic.resw
            Resources.resw
    
  3. Unter „Resources.resw“ für „ja-JP“ allgemein: Fügen Sie eine Zeichenfolgenressource für den App-Namen „希蒼“ hinzu.

  4. In Resources.altform-msft-phonetic.resw for Japanese furigana resources: Add furigana value for AppName "のあ"

Der Benutzer kann nach dem App-Namen "希蒼" suchen, indem er sowohl den furigana-Wert "のあ" (noa) verwendet, als auch den phonetischen value (mit der GetPhonetic-Funktion aus dem Eingabemethoden-Editor (IME)) "まれあお" (mare-ao).

Die Sortierung folgt dem regionalen Format der Systemsteuerung:

  • Unter einem japanischen Benutzergebietsschema
    • Wenn Furigana aktiviert ist, wird "希蒼" unter "の" sortiert.
    • Wenn Furigana fehlt, wird "希蒼" unter "ま" sortiert.
  • Unter einem nicht japanischen Benutzergebietsschema
    • Wenn Furigana aktiviert ist, wird "希蒼" unter "の" sortiert.
    • Wenn Furigana fehlt, wird "希蒼" unter "漢字" sortiert.

Beispiele