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/?
utf-8
internationalization
cjk
chinese-locale
Jeph Perro
quelle
quelle
Antworten:
@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_CN
für das chinesische Festland,zh_SG
für Singapur,zh_TW
für Taiwan oderzh_HK
fü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_CN
undzh_TW
werden 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_HANS
für (generische) vereinfachte chinesische Schriftzeichen undzh_HANT
für traditionelle chinesische Schriftzeichen, außer in seltenen Fällen, in denen es sinnvoll ist, verschiedene Länder zu unterscheiden.quelle
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 vonzh_CN
, der ehrlich gesagt geringer ist als ich erwartet hatte.inurl:zh_CN
gibt 4,3 Millionen Treffer;inurl:zh_HANS
gibt 20K. Trotzdem eine wirklich informative Antwort.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 Siemydomain.com/fr_CA
(Kanada) undmydomain.com/fr_FR
(Frankreich) erhalten. Einige Plattformen verwenden einen Bindestrich anstelle eines Unterstrichs, um die Sprach- und Regionscodes (daherfr-CA
undfr-FR
) zu trennen .Das Standardgebietsschema für vereinfachtes Chinesisch ist
zh_CN
. Das Standardgebietsschema für traditionelles Chinesisch istzh_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.
quelle
Die Sprache hängt davon ab, wo sie gesprochen wird (doh!), Daher spiegeln Sprach- und Gebietsschema-Codes diese Realität wider.
zh
ist der grundlegende Sprachcode, aber da es zwei Hauptformen davon gibt, gibt eszh_Hans
undzh_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_HK
undzh_Hant_HK
fü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:
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.
quelle