Sprachcodes für vereinfachtes Chinesisch und traditionelles Chinesisch?

79

Wir erstellen mehrsprachige Unterwebsites auf unserer Website.

Ich möchte die 2-Buchstaben-Sprachcodes verwenden. Spanisch und Französisch sind einfach. Sie erhalten URLs wie:

mydomain.com/es
mydomain.com/fr

Aber ich habe ein Problem mit traditionellem und vereinfachtem Chinesisch. Gibt es Standards für welche 2-Buchstaben-Codes für diese Sprachen verwendet werden sollen?

mydomain.com/zh
mydomain.com/?
Jeph Perro
quelle
2
Sie sagen, Spanisch und Französisch sind einfach, aber die CLDR-Datenbank listet jeweils 26 und 47 länderspezifische Varianten auf! Es hängt nur davon ab, wie stark die von Ihnen bereitgestellten Ressourcen von den Unterschieden abhängen.
Patanjali

Antworten:

171

@dkarp gibt eine ausgezeichnete allgemeine Antwort. Ich werde einige zusätzliche Einzelheiten in Bezug auf Chinesisch hinzufügen:

Es gibt mehrere Länder, in denen Chinesisch die wichtigste Schriftsprache ist. Der Hauptunterschied zwischen ihnen besteht darin, ob sie vereinfachte oder traditionelle Zeichen verwenden, aber es gibt auch geringfügige regionale Unterschiede (im Wortschatz usw.). Die Standardmethode zur Unterscheidung wäre ein Ländercode, z. B. zh_CNfür das chinesische Festland, zh_SGfür Singapur, zh_TWfür Taiwan oder zh_HKfür Hongkong.

Festlandchina und Singapur verwenden beide vereinfachte Zeichen, und die anderen verwenden traditionelle Zeichen. Da China und Taiwan sind die beiden mit der größten Bevölkerung, gerade zh_CNund zh_TWwerden häufig verwendet , um die vereinfachten und traditionellen Charakter Versionen einer Website zu unterscheiden.

Technisch korrekter, aber in der Praxis nicht häufig verwendet , wäre die Verwendung zh_HANSfür (generische) vereinfachte chinesische Schriftzeichen und zh_HANTfür traditionelle chinesische Schriftzeichen, außer in seltenen Fällen, in denen es sinnvoll ist, verschiedene Länder zu unterscheiden.

Todd Owen
quelle
10
Dies ist eine großartige Antwort - gut geschrieben und wahrscheinlich nicht etwas, was die meisten Leute wissen. Und es zieht eine schöne Linie zwischen dem, was technisch korrekter ist ( zh_HANS) und dem, was im allgemeinen Gebrauch tatsächlich da draußen ist ( zh_CN). Sie können eine Google-Suche nach den beiden Begriffen durchführen - es handelt sich um einen 7-zu-1-Unterschied zugunsten von zh_CN, der ehrlich gesagt geringer ist als ich erwartet hatte.
Dkarp
11
Tatsächlich ist der Unterschied bei den URLs so groß wie ich erwartet hatte. inurl:zh_CNgibt 4,3 Millionen Treffer; inurl:zh_HANSgibt 20K. Trotzdem eine wirklich informative Antwort.
Karp
1
Der Unterschied zwischen HANS und HANT ist viel weniger nützlich als CN und TW, da der Unterschied mehr als die Zeichen, aber die regionenspezifische Verwendung ist. ZB wird das Unterprogramm auf dem chinesischen Festland als 子程序 übersetzt, in Taiwan jedoch als 子 程式. In diesem Beispiel sind die Zeichen in vereinfachtem und traditionellem Chinesisch identisch, die Übersetzung sollte jedoch unterschiedlich sein.
Yongwei Wu
33

Hierfür gibt es in der Tat eine Standarddarstellung. Da die Leute auf genau das gleiche Problem gestoßen sind, das Sie sehen - dieselbe Sprache, aber unterschiedliche Dialekte oder Zeichen -, haben sie den aus zwei Buchstaben bestehenden Sprachcode um einen aus zwei Buchstaben bestehenden Regionalcode erweitert. Möglicherweise haben Sie eine universelle französische Seite unter mydomain.com/fr, aber die Internationalisierung für französisch-kanadische Leser kann dazu führen, dass Sie mydomain.com/fr_CA(Kanada) und mydomain.com/fr_FR(Frankreich) erhalten. Einige Plattformen verwenden einen Bindestrich anstelle eines Unterstrichs, um die Sprach- und Regionscodes (daher fr-CAund fr-FR) zu trennen .

Das Standardgebietsschema für vereinfachtes Chinesisch ist zh_CN. Das Standardgebietsschema für traditionelles Chinesisch ist zh_TW.

Ich zögere, Sie auf die tatsächlichen BCP 47- Standarddokumente hinzuweisen , da diese ein wenig detailgetreu und ein wenig leicht lesbar sind. Verwenden Sie einfach Standard-Gebietsschema-IDs, wie sie von Java verwendet werden , und Sie werden in Ordnung sein.

dkarp
quelle
2

Die Sprache hängt davon ab, wo sie gesprochen wird (doh!), Daher spiegeln Sprach- und Gebietsschema-Codes diese Realität wider. zhist der grundlegende Sprachcode, aber da es zwei Hauptformen davon gibt, gibt es zh_Hansund zh_Hant, aber es sind immer noch nur Sprachcodes, keine Gebietsschemas.

Standortspezifisch

Um vollständig zu spezifizieren , welche Sprache in einer verwendet wird , insbesondere Lage, hat die Landesvorwahl noch nachgestellt werden, so machen zh_Hans_HKund zh_Hant_HKfür vereinfachtes und traditionelles Chinesisch, jeweils sowohl als in Hong Kong gesprochen.

Tatsächlich ist in vielen Ländern häufig etwas Spezifischeres als der Ländercode erforderlich, was jedoch die Komplexität und Wartung von Datenbanken wie CLDR sowie die Support-Infrastruktur, die in diese Datenbanken eingespeist werden kann, wie die Extraktion von IP-zu-Standort-Details, exponentiell erhöht ist nicht allgemein verfügbar oder genau genug.

Text behoben

Wenn der Code nur angeben soll, welche festen Zeichenfolgen in der Benutzeroberfläche verwendet werden sollen, oder sogar ganze Seiten auf einer Site, ist ein Ländersuffix nicht wirklich erforderlich, es sei denn, es gibt mehr als einige Stellen, an denen die Sprache variiert signifikant genug (standortbezogene Informationen), um sich die Mühe zu machen, einen ganzen separaten Ressourcensatz zu erstellen.

Je größer der Ressourcensatz ist, desto wahrscheinlicher ist es, dass ein auf dem Gebietsschema basierender Sprachcode [in diesem Zusammenhang nur ein Sprachattribut anstelle eines echten Gebietsschemas, sodass Sie ihn so nennen können, wie Sie möchten!] Erforderlich ist, aber zumindest Sie muss das nur bei Bedarf tun.

On-the-Fly-Werte

Wenn Sie jedoch bestimmte Variablenwerte wie Datum, Uhrzeit, Währungen und Zahlen im laufenden Betrieb formatieren möchten, werden Gebietsschemas wichtig, da alle Tools, die solche Funktionen unterstützen (wie diejenigen, die auf Unicode-CLDR-Daten basieren), diese erwarten. Das Gebietsschema für diese muss eine separate Einstellung zu dem Code sein, für den eine intern generierte UI-Sprache verwendet werden soll, es sei denn, Sie möchten für jedes bekannte Gebietsschema einen Ressourcensatz erstellen und diese ad nauseum verwalten!

Browser-Sprachwerkzeuge

Beachten Sie, dass die Sprachwerkzeuge des Browsers das Feld entsprechend diesem Gebietsschema überprüfen, wenn Sie das Gebietsschema für eine Webseite angeben, die wie in Eingabefeldern bearbeitet werden kann, und die Rechtschreibprüfung in Attributen oder CSS für das Feld aktiviert wurde.

Kriterien

Sie müssen sich darüber im Klaren sein, was der Ressourcensatz bereitstellt. Beachten Sie also Folgendes:

  • Feste Saiten? Nur Sprache.
  • Formatieren im laufenden Betrieb? Gebietsschema.
  • Rechtschreibprüfung in der Anzeigeumgebung? Gebietsschema.
  • Ganze Seiten / Unterwebsite? Nur Sprache, sonst Gebietsschema (als Sprachvariante), wenn wesentlich andere Inhalte erforderlich sind.

Tabellenkalkulation zur Minimierung des Wartungsaufwands

Ich verwende eine Tabelle, um UI-Zeichenfolgen zu speichern, in denen jeder Sprachcode einen übergeordneten Code hat, sodass die Zelle für ihre Version einer Zeichenfolge eine Formel hat, die ihre Zeichenfolge vom übergeordneten Code erhält. Um eine benutzerdefinierte Zeichenfolge für diese Sprache und Zeichenfolge zu erstellen, überschreibe ich einfach die Zellenformel mit dem genauen Text. Dies minimiert den Ressourcenaufwand. Am Ende führe ich ein Makro aus, das für jede Sprache eine vollständige Ressourcendatei generiert.

Patanjali
quelle
Ich denke, wenn Ihre Programmiersprache (wie Java) oder Ihr Sprachanpassungsframework das Format zh-hans_CN unterstützen kann, dann entscheiden Sie sich dafür. Wenn dies nicht der Fall ist, impliziert das Land das 'Skript', wie Hans für zh_CN, zh_SG und Hant für zh_TW, zh_HK angenommen wird. So kann der Skriptteil weggelassen werden. Wenn Ihr System überhaupt keine Länderübereinstimmung hat, wie es für die meisten Sprachen en / fr / de / es hat ... dann hat es möglicherweise zumindest für bestimmte langs das Format zh_hans / zh_hant (wie es Drupal meistens ist auf diese Weise , so kann ich damit meine mobilen Anwendungen diese Informationen senden in meinem Drupal CMS API abgeglichen)
armyofda12mnkeys