Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 wird empfohlen, sich mit den Richtlinien für die Globalisierungvertraut 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. Ausführliche Informationen finden Sie unter Lokalisieren von Zeichenfolgen in der Benutzeroberfläche und im Anwendungspaketmanifest.
Dieses Thema zeigt Ihnen auch, wie Sie Ihrer Standardressourcendatei (.resw) Kommentare hinzufügen. Wenn du zum Beispiel einen informellen Ton verwendest, solltest du das im Kommentar 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 verschiedene Sprachen
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. Erfahren Sie mehr unter Anpassung Ihrer Ressourcen für Sprache, Maßstab, hohen Kontrast und andere Merkmale.
Um Lokalisierungskosten zu minimieren, platzieren Sie weder Text noch kulturell sensibles Material in Bilder. 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 sorgfältig 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 Farbe. 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.
Erwägen Sie, Ihre Zeichenfolgen in Sätze aufzuteilen.
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.
Im Widerspruch zu dieser Richtlinie liegt 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 Flugmodus, 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 separate Zeichenfolgen für das Verb- und das Substantivformat. Wenn Sie nicht sicher sind, ob die Kontexte identisch sind, gehen Sie auf Nummer sicher und verwenden Sie einen unterschiedlichen Text.
Kurz gesagt, teilen Sie Ihre Strings in Teile, die in allen Kontexten funktionieren. Es gibt Fälle, in denen eine Zeichenfolge ein vollständiger 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:
Englisch | 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 „Erinnern Sie mich in {0} Minute(n).“ Die Verwendung von „minute(s)“ funktioniert im Englischen, aber in anderen Sprachen werden möglicherweise unterschiedliche Begriffe verwendet. 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 dieses nach Fertigstellung der App auftritt.
Weitere Überlegungen zu Strings
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 gestalten, wenn der Benutzer diese Informationsstufe benötigt und entweder eine Aktion ausführen oder jemanden finden kann, der dazu in der Lage ist.
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 beispielsweise etwa 40% länger als in der Standardsprache und haben Trennzeichen darin, sodass Sie auf einen Blick erkennen 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 daher für en-USkonfiguriert ist, werden 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 packen. 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.
- Wählen Sie Store aus –>App-Pakete erstellen...
- Wählen Sie im Dialogfeld "Pakete erstellen" die Option "Ich möchte Pakete erstellen, die mit einem neuen App-Namen in den Microsoft Store hochgeladen werden sollen" aus, und klicken Sie dann auf "Weiter".
- Wählen oder erstellen Sie im Dialogfeld Wählen Sie einen App-Namen einen App-Namen für Ihr Paket.
- Legen Sie im Dialogfeld Auswählen und Konfigurieren von Paketen die Option App-Bündel generieren auf Niefest.
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. Detaillierte Informationen finden Sie unter Aktualisierung von Zeichenfolgen bei Änderungen der Qualifiziererwerte und Aktualisierung von Bildern bei Änderungen der 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 |
---|---|
<Link>Nutzungsbedingungen</link> | Nutzungsbedingungen |
<Link>Datenschutzrichtlinie</link> | Datenschutzrichtlinie |
Das Einschließen des <link>
-Tags in die Ressourcendatei (.resw) bedeutet, dass es wahrscheinlich auch ü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 separate Ressourcendateien abgelegt wurden, können sie übersetzt werden. Die ideale Zeit zum Übersetzen von Zeichenfolgen ist, nachdem die Zeichenfolgen in Ihrem Projekt abgeschlossen sind, was normalerweise gegen Ende eines Projekts geschieht. Sie können den Übersetzungsprozess auf verschiedene Arten angehen. Dies kann von der Menge der zu übersetzenden Textabschnitte, der Anzahl der zu übersetzenden Sprachen und der Umsetzung abhängen (z. B. ob die Arbeit intern durchgeführt oder ein externer Anbieter beauftragt wird).
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 außer Sync geraten, was zu einer schlechten Benutzererfahrung und Wartungsproblemen 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 stehen zum Analysieren von Ressourcendateien zur Verfügung und ermöglichen Übersetzern, nur die übersetzbaren Zeichenfolgen zu bearbeiten. 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 Anleitung zur Verwendung des Multilingual App Toolkits.
- 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 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.
Halten Sie Zugriffstasten und Bezeichnungen konsistent.
Es ist eine Herausforderung, die Zugriffstasten, die in der Barrierefreiheit verwendet werden, mit der Anzeige der lokalisierten Zugriffstasten zu synchronisieren, da die beiden Zeichenfolgen-Ressourcen in zwei separaten Abschnitten kategorisiert sind. Stellen Sie sicher, dass Sie Kommentare für den Bezeichnungsstring 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 behebt dieses Problem, indem die Phonetik für die verwendeten Zeichen vom Benutzer oder Ersteller angegeben werden 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, bemüht sich Windows nach Kräften, die entsprechende Aussprache zu generieren. Es besteht jedoch die Möglichkeit, dass App-Namen mit seltenen oder einzigartigen Lesarten stattdessen einer häufigeren Lesart zugeordnet werden. 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 Anwendungsanzeigename hinzu.
Erstellen Sie einen ja-JP-Ordner unter "strings", 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: Fügen Sie den Furigana-Wert für AppName "のあ" hinzu.
Der Benutzer kann den App-Namen "希蒼" mit dem Furigana-Wert "のあ" (noa) und dem phonetischen Wert (mit der -GetPhonetic--Funktion aus dem Eingabemethodeneditor (IME)) "まれあお" (mare-ao) suchen.
Die Sortierung folgt dem Format der Regionalen 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
- Zeichenfolgen in der Benutzeroberfläche und im App-Paketmanifest lokalisieren
- Passen Sie Ihre Ressourcen für Sprache, Skalierung, hohen Kontrast und andere Kriterien an
- Layout und Schriftarten anpassen und RTL--Unterstützung hinzufügen
- Aktualisieren von Bildern bei Änderungen der Qualifiziererwerte
Beispiele
Windows developer