Machen Sie Ihre App lokalisierbar
Eine lokalisierte App ist eine App, die für andere Märkte, Sprachen oder Regionen lokalisiert werden kann, ohne funktionsbezogene Mängel in der App aufzudecken. Die wichtigste Eigenschaft einer lokalisierbaren App besteht darin, dass der ausführbare Code sauber von den lokalisierbaren Ressourcen getrennt wurde. Sie sollten also bestimmen, welche Ressourcen Ihrer App lokalisiert werden müssen. Fragen Sie sich, was geändert werden muss, wenn Ihre App für andere Märkte lokalisiert werden soll.
Außerdem empfehlen wir Ihnen, sich mit den Richtlinien für die Globalisierung vertraut zu machen.
Fügen Sie Ihre Zeichenfolgen in Ressourcendateien (.resw) ein.
Verwenden Sie keine hartcodierten Zeichenfolgenliterale im imperativen Code, XAML-Markup oder im App-Paketmanifest. Fügen 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 der Benutzeroberfläche und im Paketmanifest der App.
In diesem Thema wird auch gezeigt, wie Sie Ihrer Standardressourcendatei (RESW) Kommentare hinzufügen. Wenn Sie z. B. eine informelle Stimme oder einen tonlosen Ton übernehmen, müssen Sie dies in Kommentaren erklären. Um die Kosten zu minimieren, stellen Sie außerdem sicher, dass nur die zu übersetzenden Zeichenfolgen für Übersetzer bereitgestellt werden.
Legen Sie die Standardsprache für Ihre App in der Quelldatei des App-Paketmanifests (der Package.appxmanifest
Datei) entsprechend 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 (z. B. die in ihrer Standardsprache \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 Bilder und andere Dateiressourcen, bei denen dies nicht möglich ist, so viele verschiedene Varianten davon, 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 Lokalisierungskosten zu minimieren, platzieren Sie text- oder kulturempfindliches Material nicht in Bilder, um mit ihnen zu beginnen. Ein Bild, das in Ihrer eigenen Kultur geeignet ist, kann in anderen Kulturen anstößig oder falsch interpretiert werden. Vermeiden Sie die Verwendung kulturspezifischer Bilder wie Postfächer, die auf der ganzen Welt nicht üblich sind. Vermeiden Sie religiöse Symbole, Tiere, politische oder geschlechtsspezifische Bilder. Die Anzeige von Fleisch, Körperteilen oder Handbewegungen kann auch ein sensibles Thema sein. Wenn Sie nicht alle diese Vermeiden können, müssen Ihre Bilder nachdenklich lokalisiert werden. Wenn Sie eine Sprache mit einer anderen Leserichtung als Ihre eigenen lokalisieren, erleichtern die Verwendung symmetrischer Bilder und Effekte die Unterstützung der Spiegelung.
Vermeiden Sie auch die Verwendung von Text in Bildern und Sprache in Audio-/Videodateien.
Die Verwendung von Farben in Ihrer App
Achten Sie bei der Verwendung von Farben darauf. Die Verwendung von Farbkombinationen, die nationalen Flaggen oder politischen Bewegungen zugeordnet sind, kann problematisch sein. Farbauswahlen müssen möglicherweise von Kulturexperten überprüft werden. Es gibt auch Probleme mit der Barrierefreiheit bei der Verwendung von Farben. Wenn Sie Farben verwenden, um die Bedeutung zu vermitteln, sollten Sie diese Informationen auch auf andere Weise vermitteln, z. B. Größe, Form oder Beschriftung.
Berücksichtigen Sie die Berücksichtigung der Zeichenfolgen in Sätze.
Verwenden Sie entsprechend angepasste Zeichenfolgen. Kurze Zeichenfolgen sind einfacher zu übersetzen, und sie ermöglichen das Recycling von Übersetzungen (was Kosten spart, da dieselbe Zeichenfolge nicht mehr als einmal an den Lokalisierer gesendet wird). Außerdem werden extrem lange Zeichenfolgen möglicherweise nicht von Lokalisierungstools unterstützt.
Aber in Spannungen mit dieser Richtlinie besteht das Risiko, eine Zeichenfolge in verschiedenen Kontexten wiederzuverwenden. Auch einfache Wörter wie "ein" und "aus" können je nach Kontext unterschiedlich übersetzt werden. In der englischen Sprache können "Ein" und "Aus" für einen Umschalter für den Flight-Modus, Bluetooth und Geräte verwendet werden. Aber in Italienisch hängt die Übersetzung vom Kontext ab, was aktiviert und deaktiviert wird. Sie müssen für jeden Kontext ein Zeichenfolgenpaar erstellen. Sie können Zeichenfolgen wiederverwenden, wenn die beiden Kontexte identisch sind. Beispielsweise können Sie die Zeichenfolge "Volume" sowohl für die Lautstärke des Soundeffekts als auch für die Musiklautstärke wiederverwenden, da beide auf die Intensität von Sound verweisen. Sie sollten diese Zeichenfolge nicht wiederverwenden, wenn Sie auf ein Festplattenvolume verweisen, da der Kontext und die Bedeutung unterschiedlich sind und das Wort möglicherweise anders übersetzt wird.
Darüber hinaus kann eine Zeichenfolge wie "Text" oder "Fax" sowohl als Verb als auch als Substantiv in der englischen Sprache verwendet werden, was den Übersetzungsprozess verwechseln kann. Erstellen Sie stattdessen eine separate Zeichenfolge für das Verb und das Substantivformat. Wenn Sie nicht sicher sind, ob die Kontexte identisch sind, führen Sie einen Fehler auf der sicheren Seite durch, und verwenden Sie eine unterschiedliche Zeichenfolge.
Kurz gesagt, gliedern Sie Ihre Zeichenfolgen in Teile, die in allen Kontexten funktionieren. Es gibt Fälle, in denen eine Zeichenfolge einen ganzen Satz sein muss.
Beachten 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". Dieses Beispiel funktioniert zwar für die Englische Sprache, funktioniert aber nicht in allen Fällen für den entsprechenden Satz in z. B. Deutsch. Beachten Sie, dass in den folgenden deutschen Sätzen einige der Wörter in der Vorlagenzeichenfolge ("Der", "Die", "Das") mit dem parametrisierten Wort übereinstimmen müssen:
Deutsch | Deutsch |
---|---|
Der Termin konnte nicht synchronisiert werden. | Der Termin konnte nicht synchronisiert werden. |
Die Aufgabe konnte nicht synchronisiert werden. | Die Aufgabe konnte nicht synchronisiert werden. |
Das Dokument konnte nicht synchronisiert werden. | Das Dokument konnte nicht synchronisiert werden. |
Betrachten Sie als weiteres Beispiel den Satz "In {0} Minute(n)." Die Verwendung von "minute(s)" funktioniert für die Englische Sprache, aber andere Sprachen verwenden möglicherweise unterschiedliche Begriffe. Die polnische Sprache verwendet z. B. "minuta", "minuty" oder "minut" je nach Kontext.
Um dieses Problem zu lösen, lokalisieren Sie den gesamten Satz anstelle eines einzelnen Worts. Dies mag wie zusätzliche Arbeit und eine unelegante Lösung erscheinen, aber es ist die beste Lösung, weil:
- Für alle Sprachen wird eine grammatikalisch korrekte Meldung angezeigt.
- Ihr Übersetzer muss nicht fragen, welche Zeichenfolgen ersetzt werden sollen.
- Sie müssen keine kostspielige Codekorrektur implementieren, wenn ein Problem wie diese Oberfläche nach Abschluss der App auftritt.
Weitere Überlegungen für Zeichenfolgen
Vermeiden Sie Kolloquialismen und Metaphern in den Zeichenfolgen, die Sie in Ihrer Standardsprache erstellen. Eine für eine demografische Gruppe spezifische Sprache, z. B. Kultur und Alter, kann schwer zu verstehen oder zu übersetzen sein, da nur Personen in dieser demografischen Gruppe diese Sprache verwenden. Ebenso können Metaphern für eine Person sinnvoll sein, aber nichts für jemand anderes bedeuten. Ein "Bluebird" bedeutet beispielsweise etwas Spezifisches für diejenigen, die Teil der Skikultur sind, aber diejenigen, die nicht Teil dieser Kultur sind, verstehen den Bezug nicht.
Verwenden Sie keinen technischen Jargon, Abkürzungen oder Akronyme. Die technische Sprache wird von nicht-technischen Zielgruppen oder Personen aus anderen Kulturen oder Regionen weniger verstanden, und es ist schwierig zu übersetzen. Personen verwenden diese Arten von Wörtern nicht in alltäglichen Unterhaltungen. Die technische Sprache wird häufig in Fehlermeldungen angezeigt, um Hardware- und Softwareprobleme zu identifizieren. Sie sollten jedoch Zeichenfolgen nur dann technisch sein, wenn der Benutzer diese Informationsstufe benötigt, und entweder eine Aktion ausführen oder jemanden finden kann, der dies kann.
Die Verwendung einer informellen Stimme oder eines Tons in Ihren Zeichenfolgen ist eine gültige Wahl. Sie können Kommentare in der Standardressourcendatei (.resw) verwenden, um diese Absicht anzugeben.
Pseudolokalisierung
Pseudolokalisieren Sie Ihre App, um lokalisierbare Probleme aufzudecken. Pseudolokalisierung ist eine Art von Lokalisierungs-Trockenlauf oder Offenlegungstest. 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 sie haben Trennzeichen in ihnen, damit Sie auf einen Blick sehen können, ob sie in 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 alle Sprachressourcen nach der Installation 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 Verpacken generiert wird. Weitere Informationen finden Sie unter Sicherstellen, dass Ressourcen auf einem Gerät installiert sind, unabhängig davon, ob ein Gerät sie benötigt.
Um sicherzustellen, dass alle Ressourcen installiert sind (nicht nur eine Teilmenge), können Sie die Appxbundle-Generierung deaktivieren, wenn Sie Ihre App verpacken. Dies wird jedoch nicht empfohlen, da sie die Installationszeit Ihrer App erhöhen kann.
Deaktivieren Sie die automatische Generierung von .appxbundle, indem Sie das Attribut "App Bundle generieren" auf "nie" festlegen:
- Klicken Sie in Visual Studio mit der rechten Maustaste auf den Projektnamen.
- Store auswählen –> App-Pakete erstellen...
- Wählen Sie im Dialogfeld "Pakete erstellen" die Option "Pakete erstellen" aus, die mit einem neuen App-Namen in den Microsoft Store hochgeladen werden sollen, und klicken Sie dann auf "Weiter".
- Wählen/erstellen Sie im Dialogfeld "App-Name auswählen" einen App-Namen für Ihr Paket.
- Legen Sie im Dialogfeld "Pakete auswählen und konfigurieren" "App-Bündel generieren" auf "Nie" fest.
Geopolitisches Bewusstsein
Vermeiden Sie politische Beleidigungen in Karten oder wenn Sie auf Regionen verweisen. Karten können umstrittene regionale oder nationale Grenzen enthalten, und sie sind eine häufige Quelle politischer Straftaten. Achten Sie darauf, dass jede Ui, die für die Auswahl einer Nation verwendet wird, als "Land/Region" bezeichnet wird. Das Auflisten eines umstrittenen Territoriums 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. Ausführliche Informationen finden Sie unter Aktualisieren von Zeichenfolgen als Reaktion auf Änderungsereignisse für Qualifiziererwerte und Aktualisieren von Bildern 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 z. B. 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 für Deutsch (Deutschland) geeignet, z. B. wo der Tag und der Monat in umgekehrter Reihenfolge angezeigt werden. Stellen Sie sicher, dass der Übersetzer die Absicht der einzelnen Parameter kennt, damit sie die Reihenfolge der Formatelemente in der Formatzeichenfolge (z. B. "{1}{0}") entsprechend der Zielsprache umkehren können.
Nicht überlokalisieren
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 dies |
---|---|
<Linkbedingungen></Link> | Nutzungsbedingungen |
<Link-Datenschutzrichtlinie></Link> | Datenschutzrichtlinie |
Das Einschließen des <link>
Tags in die Ressourcendatei (.resw) bedeutet, dass es ebenfalls wahrscheinlich übersetzt wird. Dadurch würde das Tag ungültig. Wenn Sie lange Zeichenfolgen haben, die Markup einschließen müssen, um den Kontext beizubehalten und die Reihenfolge sicherzustellen, machen Sie es in Kommentaren klar, was nicht übersetzt werden soll.
Auswählen eines geeigneten Übersetzungsansatzes
Nachdem Zeichenfolgen in Ressourcendateien getrennt wurden, können sie übersetzt werden. Die ideale Zeit zum Übersetzen von Zeichenfolgen liegt darin, dass die Zeichenfolgen in Ihrem Projekt abgeschlossen sind, was normalerweise am Ende eines Projekts geschieht. Sie können den Übersetzungsprozess auf verschiedene Arten angehen. Dies kann von der Menge der zu übersetzenden Zeichenfolgen, der Anzahl der zu übersetzenden Sprachen und derEn Umsetzung abhängen (z. B. intern im Vergleich zur Einstellung eines externen Anbieters).
Berücksichtigen Sie diese Optionen.
- Die Ressourcendateien können übersetzt werden, indem sie direkt im Projekt geöffnet werden. Dieser Ansatz eignet sich gut für ein Projekt mit kleinen Zeichenfolgen, die in zwei oder drei Sprachen übersetzt werden müssen. Es könnte für ein Szenario geeignet sein, in dem ein Entwickler mehr als eine Sprache spricht und bereit ist, den Übersetzungsprozess zu verarbeiten. Dieser Ansatz profitiert davon, schnell zu sein, erfordert keine Tools und minimiert das Risiko von Fehltranslationen. Aber es ist nicht skalierbar. Insbesondere können die Ressourcen in verschiedenen Sprachen leicht nicht mehr synchronisiert werden, was zu schlechten Benutzerfreundlichkeiten und Wartungsschmerzen führt.
- Die Zeichenfolgenressourcendateien befinden sich im XML- oder ResJSON-Textformat, sodass sie für die Übersetzung mit einem beliebigen Text-Editor übergeben werden können. Die übersetzten Dateien würden dann wieder in das Projekt kopiert. Dieser Ansatz birgt ein Risiko, dass Übersetzer versehentlich die XML-Tags bearbeiten, aber es ermöglicht die Übersetzungsarbeit außerhalb des Microsoft Visual Studio-Projekts. Dieser Ansatz könnte gut für Projekte funktionieren, die in eine kleine Anzahl von Sprachen übersetzt werden müssen. Das XLIFF-Format ist ein XML-Format, das speziell für die Verwendung in der Lokalisierung entwickelt wurde, und sollte von einigen Lokalisierungsanbietern oder Lokalisierungstools gut unterstützt werden. Sie können das Multilingual App Toolkit verwenden, um XLIFF-Dateien aus anderen Ressourcendateien zu generieren, z. B. RESW oder RESJSON.
Hinweis
Die Lokalisierung kann auch für andere Ressourcen erforderlich sein, einschließlich Bilder und Audiodateien.
Sie sollten auch Folgendes berücksichtigen:
- Lokalisierungstools Eine Reihe von Lokalisierungstools sind für die Analyse von Ressourcendateien verfügbar und ermöglichen nur die übersetzbaren Zeichenfolgen, die von Übersetzern bearbeitet werden können. Durch diesen Ansatz wird das Risiko reduziert, dass ein Übersetzer versehentlich die XML-Tags bearbeitet. Aber es hat den Nachteil, ein neues Tool und einen neuen Prozess in den Lokalisierungsprozess einzuführen. Ein Lokalisierungstool eignet sich gut für Projekte mit einer großen Anzahl von Zeichenfolgen, aber einer kleinen Anzahl von Sprachen. Weitere Informationen finden Sie unter Verwendung des Multilingual App Toolkits.
- Lokalisierungsanbieter sollten einen Lokalisierungsanbieter verwenden, wenn Ihre Anwendung umfangreiche Zeichenfolgen enthält, die in eine große Anzahl von Sprachen übersetzt werden müssen. Ein Lokalisierungsanbieter kann Ratschläge zu Tools und Prozessen sowie zum Übersetzen Ihrer Ressourcendateien geben. Dies ist eine ideale Lösung, ist aber auch die kostspieligste Option und kann die Bearbeitungszeit für Ihre übersetzten Inhalte erhöhen.
Zugriffstasten und Bezeichnungen konsistent halten
Es ist eine Herausforderung, die zugriffstasten zu synchronisieren, die in der Barrierefreiheit mit der Anzeige der lokalisierten Zugriffstasten verwendet werden, da die beiden Zeichenfolgenressourcen in zwei separaten Abschnitten kategorisiert werden. Stellen Sie sicher, dass Sie Kommentare für die Bezeichnungszeichenfolge angeben, z. B.: 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, je nach dem Wort, in dem sie verwendet werden, mehrere Lesewerte (Aussprache) zu haben. Dies führt zu Problemen, wenn Sie versuchen, japanische benannte Objekte wie Anwendungsnamen, Dateien, Songs usw. zu sortieren. Japanische Kanji wurden in der Vergangenheit in der Regel in einer maschinenverständlichen Reihenfolge namens XJIS sortiert. Leider, weil diese Sortierreihenfolge nicht phonetisch ist, ist sie für Menschen nicht sehr nützlich.
Furigana funktioniert um dieses Problem, indem der Benutzer oder Ersteller die Phonetik für die verwendeten Zeichen angeben kann. Wenn Sie mit dem folgenden Verfahren Furigana zu Ihrem App-Namen hinzufügen, können Sie sicherstellen, dass sie an der richtigen Position in der App-Liste sortiert ist. Wenn Ihr App-Name Kanji-Zeichen enthält und Furigana nicht angegeben wird, wenn die UI-Sprache des Benutzers oder die Sortierreihenfolge auf Japanisch festgelegt ist, wird Windows am besten bemüht, die entsprechende Aussprache zu generieren. Es besteht jedoch die Möglichkeit, dass App-Namen mit seltenen oder eindeutigen Lesewerten stattdessen unter einem häufigeren Lesen sortiert werden können. Daher ist die bewährte Methode für japanische Anwendungen (insbesondere diejenigen, die Kanji-Zeichen in ihren Namen enthalten) eine Furigana-Version ihres App-Namens als Teil des japanischen Lokalisierungsprozesses bereitzustellen.
Fügen Sie "ms-resource:Appname" als Paketanzeigename und den Anwendungsanzeigenamen hinzu.
Erstellen Sie einen ja-JP-Ordner unter Zeichenfolgen, und fügen Sie zwei Ressourcendateien wie folgt hinzu:
strings\ en-us\ ja-jp\ Resources.altform-msft-phonetic.resw Resources.resw
In Resources.resw für allgemeine ja-JP: Fügen Sie eine Zeichenfolgenressource für den App-Namen "希蒼" hinzu.
In Resources.altform-msft-phonetic.resw für japanische Furigana-Ressourcen: Add furigana value for AppName "のあ"
Der Benutzer kann den App-Namen "希蒼" mit dem Furigana-Wert "のあ" (noa) und dem phonetischen value (using the GetPhonetic function from the Input Method Editor (IME)) "まれあお" (mare-ao).
Die Sortierung folgt dem Format "Regional 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.
Zugehörige Themen
- Richtlinien für Globalisierung
- Lokalisieren von Zeichenfolgen in der Benutzeroberfläche und im App-Paketmanifest
- Anpassen von Ressourcen mit Qualifizierern für Sprache, Skalierung, hohen Kontrast und anderen Qualifizierern
- Passen Sie Layout und Schriftarten an, und unterstützen Sie RTL
- Aktualisieren von Bildern als Reaktion auf Änderungsereignisse für Qualifiziererwerte
Beispiele
Windows developer