Sprachabgleich

Applies to Windows and Windows Phone

Der Abgleich mit der Sprache des Benutzers ist eine wichtige Komponente der Windows-Runtime-APIs. Die Möglichkeit, die höchstmögliche Übereinstimmung zwischen verfügbaren Ressourcen und vom Benutzer bevorzugten Sprachen zu ermitteln, ist erforderlich, um für die Nutzung mehrsprachiger Apps eine optimale Benutzererfahrung sicherzustellen. In diesem Thema wird die zum Ermitteln der höchstmöglichen Übereinstimmung verwendete Logik beschrieben.

Einführung

Unter Windows können Benutzer ihre Vorlieben in Bezug auf die Sprache genau beschreiben. Außerdem können Entwickler die Sprache ihrer Inhalte flexibel beschreiben, um eine effiziente Lokalisierung und Bereitstellung sowie eine gute Benutzeroberfläche zu erzielen. Dazu müssen Entwickler keine speziellen Code schreiben oder über tief gehende Kenntnisse im Bereich der Sprachen und der Abgleichlogik von Sprachen verfügen. Von Windows wird sichergestellt, dass Benutzer immer die besten sprachlichen Ergebnisse erhalten und für Entwickler kein großer Aufwand anfällt.

Windows beinhaltet einen speziellen Mechanismus zum Vergleichen und Bewerten einer nach Priorität sortierten Liste der Sprachübereinstimmungen. Der Bewertungsmechanismus verwendet Daten aus der BCP-47-Registrierung für untergeordnete Tags und andere Datenquellen. Dies ermöglicht einen Bewertungsgradienten mit unterschiedlichen Übereinstimmungsqualitäten. Wenn mehrere Kandidaten verfügbar sind, wird der Kandidat mit dem besten Übereinstimmungsergebnis ausgewählt. Dadurch können Entwickler Sprachinhalten allgemeine Tags hinzufügen, bei Bedarf aber dennoch bestimmte Inhalte angeben. Eine englische App beispielsweise beinhaltet viele Zeichenfolgen, die sowohl für die US-amerikanische als auch die britische Version gelten. Werden diese Zeichenfolgen mit dem Tag "en" (Englisch) versehen, kann dadurch Platz gespart und der Lokalisierungsaufwand reduziert werden. Wenn eine Unterscheidung erforderlich ist, z. B. in einer Zeichenfolge mit dem Wort "color" oder "colour", können für die US-amerikanische und die britische Version jeweils die Tags "en-US" und "en-GB" verwendet werden.

Sprachtags

Sprachen werden mit normalisierten, richtig formatierten BCP-47-Sprachtags bezeichnet. Komponenten für untergeordnete Tags werden in der BCP-47-Registrierung für untergeordnete Tags definiert. Eine normale Struktur für ein BCP-47-Sprachtag besteht aus mindestens einem dieser untergeordneten Tags:

  • Untergeordnetes Sprachtag (erforderlich)
  • Untergeordnetes Skripttag (kann mithilfe des Standardelements in der Registrierung für untergeordnete Tags abgeleitet werden)
  • Untergeordnetes Regionstag (optional)
  • Untergeordnetes Variantentag (optional)

Zusätzliche Subtag-Elemente können vorhanden sein, wirken sich jedoch nur unerheblich auf den Sprachabgleich aus.

Sprachbereiche werden mit dem Platzhalter "*" angegeben, z. B. "en-*".

Abgleichen zweier Sprachen

Wenn Windows zwei Sprachen vergleicht, geschieht dies in der Regel im Kontext eines umfangreicheren Prozesses. Möglicherweise wird der Vorgang im Kontext der Bewertung mehrerer Sprachen durchgeführt, z. B. wenn Windows die Anwendungssprachenliste generiert (siehe So wird's gemacht: Verwalten von Sprache und Region). Windows gleicht dazu mehrere Sprachen aus den Benutzereinstellungen mit den im App-Manifest angegebenen Sprachen ab. Der Vergleich kann auch im Rahmen der Bewertung von Sprachen und anderen Qualifizierern für ein bestimmtes Element erfolgen. Ein Beispiel hierfür ist, wenn unter Windows eine bestimmte Dateiressource in einen bestimmten Ressourcenkontext aufgelöst wird und der Wohnort des Benutzers oder die aktuelle Skalierung des Geräts oder der DPI-Wert neben der Sprache als weitere Faktoren verwendet werden, die in die Ressourcenauswahl eingehen.

Beim Abgleich von zwei Sprachtags wird dem Vergleich basierend auf der Höhe der Übereinstimmung ein Wert zugewiesen.

ÜbereinstimmungWertBeispiel
Genaue ÜbereinstimmungHöchsteren-AU : en-AU
Übereinstimmung der Variante (Sprache, Skript, Region, Variante)en-AU-variant1 : en-AU-variant1-t-ja
Übereinstimmung der Region (Sprache, Skript, Region)en-AU : en-AU-variant1
Teilweise Übereinstimmung (Sprache, Skript):
Übereinstimmung der Makroregionen-AU : en-053
Regionsneutrale Übereinstimmungen-AU : en
Übereinstimmung der ortografischen Affinität (eingeschränkte Unterstützung)en-AU : en-GB
Übereinstimmung der bevorzugten Regionen-AU : en-US
Übereinstimmung irgendeiner Regionen-AU : en-CA
Nicht festgelegte Sprache (Übereinstimmung irgendeiner Sprache)en-AU : und
Keine Übereinstimmung (Nichtübereinstimmung des Skripts oder des Tags für die primäre Sprache)Niedrigsteren-AU : fr-FR

 

  • Genaue Übereinstimmung

    Zwei Tags sind genau gleich, unabhängig von der darin enthaltenen Anzahl der untergeordneten Tagelemente. Ein Vergleich wird von einer Übereinstimmung der Variante oder Region möglicherweise auf diesen Übereinstimmungstyp heraufgestuft.

  • Übereinstimmung der Variante

    Zwei Tags stimmen in Bezug auf Sprache, Skript, Region und untergeordnete Variantentags überein, unterscheiden sich jedoch in anderer Hinsicht.

  • Übereinstimmung der Region

    Zwei Tags stimmen in Bezug auf Sprache, Skript und untergeordnete Regionstags überein, unterscheiden sich jedoch in anderer Hinsicht.

  • Teilweise Übereinstimmungen

    Zwei Tags stimmen in Bezug auf untergeordnete Sprach- und Skripttags überein, unterscheiden sich jedoch in Bezug auf das untergeordnete Regionstag oder ein anderes untergeordnetes Tag:

    • Übereinstimmung der Makroregion

      Beide Tags stimmen in Bezug auf Sprach- und Skripttags überein. Beide Tags verfügen über untergeordnete Regionstags, von denen eines eine Makroregion beschreibt, in der die andere Region enthalten ist. Die untergeordneten Tags für die Makroregion sind immer numerischer Art und werden von den Regionscodes der Statistikabteilung der Vereinten Nationen (M49) abgeleitet. Ausführliche Informationen zu umfassenden Beziehungen finden Sie unter Composition of macro geographic (continental) regions, geographical sub-regions, and selected economic and other groupings (Zusammensetzung makrogeografischer (Kontinental-)Regionen, geografischer Unterregionen und ausgewählter ökonomischer und anderer Gruppierungen).

      Hinweis  UN-Codes für "ökonomische Gruppierungen" oder "andere Gruppierungen" werden in BCP-47 nicht unterstützt.

      Hinweis  Ein Tag mit dem untergeordneten Makroregion-Tag "001" wird als gleichwertig mit einem regionsneutralen Tag angesehen. Beispielsweise werden "es-001" und "es" als Synonyme behandelt.

    • Regionsneutrale Übereinstimmung

      Beide Tags stimmen in den untergeordneten Sprach- und Skripttags überein, und nur ein Tag besitzt ein Regionstag. Eine Übereinstimmung des übergeordneten Elements wird den partiellen Übereinstimmungen vorgezogen.

    • Übereinstimmung der ortografischen Affinität

      Beide Tags stimmen in den untergeordneten Sprach- und Skripttags überein, und die untergeordneten Regionstags weisen ortografische Affinität auf. Die Affinität basiert auf in Windows vorgehaltenen Daten, die sprachspezifisch ähnliche Regionen definieren, z. B. "en-IE" und "en-GB".

    • Übereinstimmung der bevorzugten Region

      Beide Tags stimmen in den untergeordneten Sprach- und Skripttags überein, und ein untergeordnetes Regionstag ist das untergeordnete Standardregionstag für die Sprache. Beispiel: "fr-FR" ist die Standardregion für das untergeordnete Tag "fr". Dies basiert auf in Windows vorgehaltenen Daten, die eine Standardregion für jede Sprache definieren, in die Windows lokalisiert wurde.

    • Übereinstimmung gleichgeordneter Elemente

      Beide Tags stimmen in den untergeordneten Sprach- und Skripttags überein und besitzen untergeordnete Regionstags, es ist jedoch keine andere Beziehung zwischen ihnen definiert. Bei der Übereinstimmung mehrerer gleichgeordneter Elemente erhält das zuletzt aufgeführte gleichgeordnete Element einen höheren Wert, wenn keine höhere Übereinstimmung vorliegt.

  • Nicht festgelegte Sprache

    Eine Ressource wird möglicherweise mit dem Tag "und" versehen. Damit wird angegeben, dass sie mit jeder Sprache übereinstimmt. Dieses Tag kann auch mit einem Skripttag zum Filtern der Übereinstimmungen auf Basis eines Skripts verwendet werden. Beispiel: "und-Latn" stimmt mit allen Sprachtags überein, die lateinische Schrift verwenden. Weitere Informationen finden Sie weiter unten.

  • Nichtübereinstimmung des Skripts

    Wenn zwei Tags nur im Tag für die primäre Sprache, aber nicht im Skript übereinstimmen, wird das Paar als nicht übereinstimmend betrachtet. Es erhält einen Wert für eine Stufe unterhalb der gültigen Übereinstimmungen.

  • Keine Übereinstimmung

    Nicht übereinstimmende untergeordnete Tags für die primäre Sprache erhalten einen Wert für eine Stufe unterhalb einer gültigen Übereinstimmung.

Beispiele

  1. Die Benutzersprache "zh-Hans-CN" (vereinfachtes Chinesisch (China)) würde mit den folgenden Ressourcen (falls von der App bereitgestellt) in der angegebenen Prioritätsreihenfolge übereinstimmen. Ein X steht für eine Nichtübereinstimmung.

    Beispiel: zh-Hans-CN

    1. Genaue Übereinstimmung; 2. und 3. Übereinstimmung der Region; 4. Übereinstimmung des übergeordneten Elements; 5. Übereinstimmung der gleichgeordneten Elemente

  2. Wenn für ein untergeordnetes Sprachtag in der BCP-47-Registrierung für untergeordnete Tags ein Wert zum Unterdrücken von Skripts definiert ist, wird ein entsprechender Abgleich ausgeführt. Dabei wird der Wert des unterdrückten Skriptcodes übernommen. Im folgenden Beispiel ist die Benutzersprache "en-AU" (Englisch (Australien)):

    Beispiel: en-AU

    1. Genaue Übereinstimmung; 2. Übereinstimmung der Makroregion; 3. Regionsneutrale Übereinstimmung; 4. Übereinstimmung der orthographischen Affinität; 5. Übereinstimmung der bevorzugten Region; 6. Übereinstimmung der gleichgeordneten Elemente

Abgleichen einer Sprache mit einer Sprachenliste

Manchmal wird der Abgleich im Rahmen des umfangreicheren Prozesses zum Abgleichen einer einzelnen Sprache mit einer Liste von Sprachen ausgeführt. Ein Beispiel hierfür ist eine Übereinstimmung einer einzelnen sprachbasierten Ressource mit einer Sprachenliste einer App. Der Wert für die Höhe der Übereinstimmung wird nach der Position der ersten übereinstimmenden Sprache in der Liste gewichtet. Je weiter unten in der Liste sich die Sprache befindet, desto niedriger ist der Wert.

Wenn die Sprachenliste zwei oder mehr regionale Varianten mit denselben untergeordneten Sprach- und Skripttags enthält, werden Vergleiche für das erste Sprachtag nur für genaue Übereinstimmungen und Übereinstimmungen der Variante und Region bewertet. Die Vergabe von Werten für partielle Übereinstimmungen wird bis zur letzten Regionsvariante verschoben. Dadurch können Benutzer das Abgleichverhalten für ihre Sprachenliste genau steuern. Es ist z. B. möglich, dass eine genaue Übereinstimmung für ein sekundäres Element in der Liste einer partiellen Übereinstimmung für das erste Element in der Liste vorgezogen wird, wenn ein drittes Element vorliegt, das mit der Sprache und dem Skript des ersten Elements übereinstimmt. Beispiel:

  • Sprachenliste (in dieser Reihenfolge): "pt-PT" (Portugiesisch (Portugal)), "en-US" (Englisch (USA)), "pt-BR" (Portugiesisch (Brasilien)).
  • Ressourcen: "en-US", "pt-BR".
  • Ressource mit dem höherem Wert: "en-US".
  • Beschreibung: Der Vergleich beginnt mit "pt-PT", es wird jedoch keine genaue Übereinstimmung gefunden. Da "pt-BR" in der Sprachenliste des Benutzers vorhanden ist, wird die teilweise Übereinstimmung auf den Vergleich mit "pt-BR" verschoben. Der nächste Sprachvergleich ist "en-US", für den eine genaue Übereinstimmung vorliegt. Die Ressource, die Vorrang hat, ist daher "en-US".

ODER

  • Sprachenliste (in dieser Reihenfolge): "es-MX" (Spanisch (Mexiko)), "es-HO" (Spanisch (Honduras)).
  • Ressourcen: "en-ES", "es-HO".
  • Ressource mit dem höherem Wert: "es-HO".

Nicht festgelegte Sprache ("und")

Das Sprachtag "und" kann zum Angeben einer Ressource verwendet werden, die mit allen Sprachen übereinstimmt, wenn keine bessere Übereinstimmung vorliegt. Sie ähnelt dem BCP-47-Sprachbereich "*" oder "*-<Skript>". Beispiel:

  • Sprachenliste: "en-US", "zh-Hans-CN".
  • Ressourcen: "zh-Hans-CN", "und".
  • Ressource mit dem höherem Wert: "und".
  • Beschreibung: Der Vergleich beginnt mit "en-US", aber basierend auf "en" wird keine Übereinstimmung gefunden (weder eine partielle noch eine höhere Übereinstimmung). Da eine Ressource mit dem Tag "und" vorhanden ist, wird diese vom Abgleichalgorithmus verwendet.

Das Tag "und" ermöglicht, dass mehrere Sprachen eine einzelne Ressource gemeinsam verwenden und einzelne Sprachen als Ausnahmen behandelt werden. Beispiel:

  • Sprachenliste: "zh-Hans-CN", "en-US".
  • Ressourcen: "zh-Hans-CN", "und".
  • Ressource mit dem höherem Wert: "zh-Hans-CN".
  • Beschreibung: Der Vergleich findet eine genaue Übereinstimmung für das erste Element und sucht daher nicht nach der mit "und" bezeichneten Ressource.

"und" kann mit einem Skripttag zum Filtern von Ressourcen nach Skript verwendet werden. Beispiel:

  • Sprachenliste: "ru".
  • Ressourcen: "und-Latn", "und-Cyrl", "und-Arab".
  • Ressource mit dem höherem Wert: "und-Cyrl".
  • Beschreibung: Der Vergleich findet keine Übereinstimmung für "ru" (weder eine partielle noch höhere), daher wird das Sprachtag "und" abgeglichen. Der dem Sprachtag "ru" zugeordnete Wert für die Skriptunterdrückung "Cyrl" stimmt mit der Ressource "und-Cyrl" überein.

Ortografische Regionsaffinität

Wenn zwei Sprachtags mit unterschiedlichen untergeordneten Regionstags abgeglichen werden, besitzen bestimmte Regionspaare vielleicht eine höhere Affinität zueinander als andere. Nur die ähnlichen Gruppen für Englisch ("en") werden unterstützt. Die untergeordneten Regionstags "PH" (Philippinen) und "LR" (Liberia) besitzen eine ortografische Affinität mit dem untergeordneten Regionstag "US". Alle anderen untergeordneten Regionstags werden dem untergeordneten Regionstag "GB" (Vereinigtes Königreich) zugeordnet. Wenn sowohl die Ressource "en-US" als auch die Ressource "en-GB" vorhanden ist, erhält daher eine Sprachenliste von "en-HK" (Englisch (Hongkong SAR)) einen höheren Wert für "en-GB"-Ressourcen als für "en-US"-Ressourcen.

Behandeln von Sprachen mit vielen regionalen Varianten

Bestimmte Sprachen verfügen über viele Muttersprachler in unterschiedlichen Regionen, die verschiedene Varianten der Sprache sprechen. Dies gilt z. B. für Sprachen wie Englisch, Französisch und Spanisch, die auch zu den Sprachen gehören, die in mehrsprachigen Apps am häufigsten unterstützt werden. Zu den regionalen Unterschieden können Abweichungen bei der Schreibweise (z. B. "color" und "colour" im Englischen) oder beim Dialekt sein, also beispielsweise bei der Wortwahl (z. B. "truck" und "lorry" im Englischen).

Diese Sprachen mit erheblichen regionalen Abweichungen sorgen beim Erstellen einer weltweit einsetzbaren App für bestimmte Fragen, die gelöst werden müssen: "Wie viele unterschiedliche Varianten sollen unterstützt werden?" "Welche Varianten?" "Welche Art der Verwaltung der Ressourcen für diese regionalen Varianten ist für die App am kostengünstigsten?" Die Beantwortung all dieser Fragen würde den Rahmen dieses Themas sprengen. Die in Windows enthaltenen Mechanismen für den Sprachabgleich umfassen jedoch Funktionen, die Apps beim Behandeln regionaler Varianten unterstützen.

Von Apps wird häufig nur eine Variante einer Sprache unterstützt. Angenommen, eine App verfügt über Ressourcen für nur eine Variante des Englischen, die von englischen Muttersprachlern unabhängig von der Region verwendet werden soll, aus der sie stammen. In diesem Fall würde das Tag "en" ohne untergeordnetes Tag für die Region auf diese Zielsetzung hinweisen. Für Apps wurden jedoch meist Tags wie "en-US" verwendet, die ein untergeordnetes Tag für die Region enthalten. In diesem Fall funktioniert dies auch: Von der App wird nur eine Variante des Englischen verwendet. Windows führt den Abgleich einer Ressource, die mit einem Tag für eine regionale Variante versehen ist, mit einer vom Benutzer bevorzugten Sprache entsprechend durch.

Wenn zwei oder mehr regionale Varianten unterstützt werden sollen, kann ein Unterschied zwischen "en" und "en-US" jedoch eine erhebliche Auswirkung auf die Benutzererfahrung haben. Dabei ist es dann wichtig zu berücksichtigen, welche untergeordneten Tags für die Region verwendet werden.

Beispiel: Angenommen, Sie möchten für das in Kanada und in Europa gesprochene Französisch separate Französisch-Lokalisierungen bereitstellen. Für Französisch (Kanada) können Sie "fr-CA" verwenden. Für Muttersprachler in Europa wird für die Lokalisierung Französisch (Frankreich) verwendet, sodass sich "fr-FR" eignet. Was erhalten dann aber Benutzer aus Belgien, deren sprachliche Vorliebe "fr-BE" ist? Die Region "BE" unterscheidet sich sowohl von "FR" als auch von "CA", sodass für beide die Übereinstimmung "beliebige Region" nahe liegen würde. Für Französisch ist jedoch Frankreich die bevorzugte Region, sodass in diesem Fall "fr-FR" als beste Übereinstimmung angesehen wird.

Angenommen, Sie haben die App zuerst nur für eine Variante des Französischen lokalisiert und die Zeichenfolgen für Französisch (Frankreich) mit der generischen Qualifizierung "fr" verwendet und möchten dann Unterstützung für Frankreich (Kanada) hinzufügen. Es ist sehr wahrscheinlich, dass für Französisch (Kanada) nur bestimmte Ressourcen neu übersetzt werden müssen. Sie können weiterhin alle ursprünglichen Ressourcen verwenden, die Qualifizierung als "fr" beibehalten und nur die kleine Gruppe neuer Ressourcen mit dem Tag "fr-CA" hinzufügen. Wenn die bevorzugte Benutzersprache "fr-CA" lautet, verfügt die Ressource "fr-CA" über eine höhere Übereinstimmungsbewertung als die Ressource "fr". Falls die bevorzugte Benutzersprache eine andere Variante von Französisch ist, ergibt sich für die regionsneutrale Ressource "fr" eine höhere Übereinstimmung als für "fr-CA".

Nehmen wir als weiteres Beispiel an, Sie möchten für Muttersprachler aus Spanien und Lateinamerika separate Lokalisierungen für Spanisch bereitstellen. Angenommen, die Übersetzungen für Lateinamerika werden von einem Anbieter in Mexiko geliefert. Sollten Sie für diese beiden Ressourcengruppen dann "es-ES" (Spanien) und "es-MX" (Mexiko) verwenden? Wenn Sie so vorgehen, kann dies zu Problemen für Muttersprachler aus anderen Regionen Lateinamerikas führen, z. B. Argentinien oder Kolumbien, da dafür die Ressourcen von "es-ES" verwendet werden würden. In diesem Fall gibt es eine bessere Alternative: Sie können mit dem untergeordneten Tag für die Makroregion ("es-419") angeben, dass die Ressourcen für Muttersprachler aus allen Teilen Lateinamerikas und der Karibik verwendet werden sollen.

Regionsneutrale Sprachtags und untergeordnete Tags für die Makroregion können sehr effektiv sein, wenn Sie mehrere regionale Varianten unterstützen möchten. Wenn Sie die Anzahl von erforderlichen separaten Ressourcen reduzieren möchten, können Sie eine Ressource so qualifizieren, dass die jeweils zutreffende größtmögliche Abdeckung widergespiegelt wird. Anschließend können Sie eine Ressource mit breiter Abdeckung bei Bedarf um eine speziellere Variante erweitern. Eine Ressource mit einem regionsneutralen Sprachqualifizierer wird für Benutzer jeder regionalen Variante verwendet, es sei denn, es ist eine andere Ressource mit einem regionsspezifischeren Qualifizierer vorhanden, die für den jeweiligen Benutzer gilt. Die Ressource "en" ergibt beispielsweise eine Übereinstimmung für einen Benutzer von "Englisch (Australien)". Eine Ressource mit "en-053" (Englisch für Australien oder Neuseeland) ergibt für den Benutzer jedoch eine bessere Übereinstimmung, und die bestmögliche Übereinstimmung wird mit "en-AU" erzielt.

Englisch erfordert hierbei besondere Beachtung. Wenn von einer App die Lokalisierung für zwei Varianten des Englischen hinzugefügt wird, sind dies meist Englisch (USA) und Englisch (Großbritannien), was auch als "internationales" Englisch bezeichnet wird. Wie oben bereits erwähnt, richten sich auch bestimmte Regionen außerhalb der USA nach der Schreibweise der Vereinigten Staaten. Dies wird beim Windows-Sprachabgleich entsprechend berücksichtigt. Dabei wird davon abgeraten, für eine der Varianten das regionsneutrale Tag "en" zu verwenden. Nutzen Sie stattdessen "en-GB" und "en-US". (Falls für eine Ressource jedoch keine separaten Varianten erforderlich sein sollten, kann "en" verwendet werden.) Wenn Sie "en-GB" oder "en-US" durch "en" ersetzen, steht dies im Konflikt mit dem von Windows bereitgestellten orthographischen Regionsbezug. Falls eine dritte Lokalisierung für Englisch hinzugefügt wird, sollten Sie für die zusätzlichen Varianten je nach Bedarf ein spezifisches untergeordnetes Tag oder ein untergeordnetes Tag für die Makroregion einsetzen (z. B. "en-CA", "en-AU" oder "en-053"), dabei aber "en-GB" und "en-US" weiterverwenden.

Verwandte Themen

So wird's gemacht: Verwalten von Sprache und Region
BCP-47-Sprachtags

 

 

Anzeigen:
© 2014 Microsoft