Ich suche nach einer Liste aller Gebietsschemas und ihrer Funktionscodes für eine PHP-Anwendung, die ich schreibe. Gibt es große Unterschiede in diesen Daten zwischen den Plattformen?
Kann ich bei der Entwicklung einer internationalen Anwendung nur eine Version von Englisch unterstützen oder gibt es weltweit erhebliche Unterschiede in Englisch?
php
internationalization
locale
Kirk Ouimet
quelle
quelle
en
Verwendung sinden_US
unden_GB
, wobei die Hauptunterschiede darin bestehen, dass die letztere im Allgemeinenise
anstelle der ersteren verwendetize
wird und die ursprüngliche französische Schreibweise von Wörtern wiemetre
anstelle vonmeter
und keine phonetischen Kontraktionen verwendet, indemsulphur
anstelle von verwendet wirdsulphur
.en_GB
wird normalerweise die Rechtschreibkonventionen abdecken, die in früheren Kolonien verwendet wurden, die kulturell nicht von den USA dominiert wurden, wieen_AU
unden_NZ
. Siehe tysto.com/uk-us-spelling-list.html .en_US
als einzigesen
Gebietsschema nicht zu viele Federn zerzaust.Antworten:
Die Bedeutung von Gebietsschemas besteht darin, dass Ihre Umgebung / Ihr Betriebssystem Formatierungsfunktionen für alle installierten Gebietsschemas bereitstellen kann, auch wenn Sie diese beim Schreiben Ihrer Anwendung nicht kennen. Auf meinem Windows 7-System sind 211 Gebietsschemas installiert (siehe unten), sodass Sie wahrscheinlich keinen benutzerdefinierten Code oder keine Übersetzung für diese vielen Gebietsschemas schreiben würden.
Das Wichtigste für verschiedene Versionen von Englisch ist die Formatierung von Zahlen und Daten. Andere Unterschiede sind insofern von Bedeutung, als Sie bestimmte Variationen berücksichtigen möchten und können.
quelle
MessageFormatter::formatMessage
oder einmalige Verwendungmsgfmt_format_message
wie in behandeltmsgfmt_format_message('ar-ye', '{0,date,medium}', array('2017-01-27))
, die erzeugt wird٢٧/٠١/٢٠١٧
. In Zeiten, in denen als UTC gespeicherte Werte verwendet werden, ist es wahrscheinlich besser, dieIntlDateFormatter
Klasse zu verwenden, da Sie eine Zeitzone eingeben können, um die Ortszeit in der Sprache anzuzeigen.en-029
ist, ist esEnglish (Caribbean)
: stackoverflow.com/questions/7192410/…In der akzeptierten Antwort fehlen einige ziemlich wichtige Orte. Zum Beispiel unterscheiden die chinesischen Orte nicht zwischen den verschiedenen Schriften (vereinfachtes Han, traditionelles Han). Was ist ein chinesischer Staatsbürger auf dem Festland, der möchte, dass traditioneller Han verwendet wird - die Umgebung von Hongkong?
Ich habe diese Liste von iOS-Gebietsschemas genommen , den seltsamen POSIX-Eintrag entfernt, ihn als Javascript formatiert und nach Wert sortiert. Wenn Sie also eine geordnete Objektimplementierung verwenden und eine Liste erstellen, indem Sie die Schlüssel durchgehen und den Wert zurückgeben, wird dies der Fall sein den vom Menschen lesbaren Text in der richtigen Reihenfolge anzeigen). Außerdem enthält diese Liste sowohl einen Haupteintrag pro Sprache als auch alle regionenspezifischen Varianten. Auf diese Weise haben Sie immer eine festgelegte Fallback-Option, beispielsweise wenn Ihre Schnittstelle nur die Option 'en' definiert hat - was Sie sonst nicht wissen würden worauf man zuverlässig zurückgreifen kann.
quelle
zh-hans-hk
undzh-hant-hk
. Die PHP-intl
Objektgruppe toleriert die Angabe von Gebietsschemas als Kleinbuchstaben und Bindestriche sowie das Akzeptieren derlang_COUNTRY
Stile.intl
Klassen nur für alle Ihre Bemühungen, einschließlich Zeitzonen und Gebietsschemas, da sie auf der CLDR-Datenbank basieren und mit jeder PHP-Version aktualisiert werden. Die anderen PHP-Funktionen können auf isolierten Datasets basieren, die nicht den Synchronisierungsaufwand haben, der in das umfassende CLDR-Dataset eingeflossen ist. Einige dieser anderen Funktionen können daher zu Abweichungen von den CLDR-Funktionen führen, insbesondere da internationale Bemühungen mehr auf CLDR standardisieren . Möglicherweise müssen Sie einige dieser anderen Funktionen als Ersatz verwenden, wenn Sie vor 5.6 arbeiten.intl
Klassen besteht darin, dass Ihre Seiten in der Hälfte der Zeit bereitgestellt werden.Obwohl die akzeptierte Antwort ziemlich vollständig ist (ich habe mich in einer ähnlichen Frage verwendet, die sich mir gestellt hat), denke ich, dass es sich lohnt, die gesamten unterstützten Sprachcodes und Variationen sowie Codierungen zu platzieren und den Benutzer auf eine Datei zu verweisen, die in fast vorhanden ist Alle Linux-Distributionen, falls er einfach eine schnellere Antwort und zum Beispiel kein Internet möchte.
Dies ist die Datei
/usr/share/i18n/SUPPORTED
und ihr Inhalt:quelle
Von http://www.w3.org/International/articles/language-tags/
AFAIK Die meisten Anwendungen, die das Gebietsschema berücksichtigen (die von Fachleuten geschrieben wurden), halten sich an diesen Standard. Es ist nicht nur etwas, das jemand zusammengeschmissen hat und das verschiedene Menschen unterschiedlich interpretieren.
Ich würde Ihnen dringend empfehlen, die Internationalisierungsfunktionen Ihrer speziellen Entwicklungssprache zu untersuchen, da Sie das Rad wahrscheinlich neu erfinden werden, wenn Sie dies nicht tun.
quelle
Wenn Sie php-intl verwenden , um Ihre Anwendung zu lokalisieren, möchten Sie wahrscheinlich ResourceBundle :: getLocales () anstelle einer statischen Liste verwenden, die Sie selbst verwalten. Es kann Ihnen auch Gebietsschemas für eine bestimmte Sprache geben.
quelle
Hier ist eine ziemlich vollständige Liste der Kulturcodes . Soweit ich das beurteilen kann, unterscheiden sie sich nicht zwischen den Programmiersprachen, da es sich um einen RFC-Standard handelt. Was Englisch betrifft, denke ich, wenn Sie entweder das Generikum
en
oder möglicherweise das unterstützenen-US
, sollten Sie in Ordnung sein.quelle
en-US
. Nur eine Tatsache des Lebens. Schauen Sie sich nur an, wie die meisten Online-Zeitungsseiten auf der ganzen Welt Zitate im US-Stil verwenden, selbst wenn sie sich an ein lokales Publikum richten. Das Publikum hat sich weiterentwickelt, trotz dessen, was viele von uns für ihre persönlichen Vorlieben verwenden.Sprachliste
Liste aller Sprachen mit Namen und ISO 639-1-Codes in allen Sprachen und allen Datenformaten.
Formate verfügbar
https://github.com/umpirsky/language-list
quelle
en_IE
anders alsen_US
in einer Reihe von Aspekten (Währung, Maße, Rechtschreibung usw.).