Gibt es eine Möglichkeit, um die Liste der verfügbaren Gebietsschemas in PHP?
In Java, können Sie rufen Sie Locale.getAvailableLocales()
aus, um die Liste der verfügbaren Gebietsschemas.
Ich hatte erwartet, ein äquivalent aus der PHP Gebietsschema Klasse, konnte aber keinen finden.
Gibt es einen Weg, um ein array mit allen gültigen Locales?
Siehe auch: " Standard-Gebietsschema für die Sprache PHP und Liste der verfügbaren collators in PHP?
InformationsquelleAutor Benjamin | 2012-04-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Teil der Verwirrung hier, dass PHP hat zwei Konzepte namens "locale", die sind so ziemlich völlig getrennt.
Die erste ist die ältere, die im Grunde nur verwendet die C-locale-Funktionen. Das ist das, was hinter
setlocale
und der locale-Unterstützung in einigen PHP-Funktionen (wiemoney_format
zum Beispiel). Dies ist, was andere Antworten, erwähnen, läuftlocale -a
auf der Kommandozeile und mitsetlocale
reden.PHP
Locale
Klasse und die andere Verwandte Funktionen aus derintl
- Erweiterung neuere ist, und nicht funktioniert auf die gleiche Weise. Anstelle der Verwendung der glibc-locale-Zeug, verwendet es eine Bibliothek namens ICU, die Schiffe seine eigenen lokalen Daten. PHP hat bieten eine Methode, um zu bestimmen, welche Gebietsschemas unterstützt diese system: ResourceBundle::Methoden getlocales. Die Dokumentation ist ein wenig Wolle hier, aber Sie können rufen Sie diese als statische Methode, und übergeben Sie die leere saite, die ICU verwenden, die Standard-Ressourcen, so bekommen Sie eine Liste der unterstützten Gebietsschemas fürintl
:InformationsquelleAutor John Flatness
Ich glaube nicht, dass es einen integrierten Funktionen für diese. Sie müssen Fragen, das Betriebssystem, welche locales installiert sind.
Zum Beispiel, wenn Sie führen Sie auf einem unix-system benötigen Sie, um den Befehl auszuführen:
Für Windows finden Sie unter msdn.microsoft.com/en-us/library/39cwe7zf%28v=vs.100%29.aspx
Ich habe ein php-Skript geschrieben, dass die Kontrollen gegen @user2627106 die Liste, um zu sehen, welche locales sind und nicht unterstützt werden. Dies kann nützlich sein, wenn Sie auf einem shared webhost und habe keinen Zugriff auf die shell oder
shell_exec('...')
gist.github.com/Azeirah/266c52619ae8930ed4ef45776fc36532InformationsquelleAutor
Ich nun auch dieses problem gelöst. Hier ist, was passiert ist.
Dies wird nützlich sein, wenn Sie mit übersetzung Dateien. Lokal in der Datenbank gespeichert und in übereinstimmung mit der ausgewählten übersetzung-Datei. Dieser Ansatz ist nicht abhängig vom Betriebssystem.
Schauplätze sind viel mehr als nur strings verwendet werden, in der übersetzung von Dateien, Sie bieten i18n-Unterstützung für Datum/Uhrzeit und zahlen formatieren, etc. Daher ist eine Feste Liste ist der nächste keine Verwendung, wenn nicht unterstützt durch die Intensivstation Daten.
"...Diese Erweiterung ist gebündelt mit PHP ab PHP-version 5.3.0. ..." php.net/manual/en/intl.requirements.php
Die Erweiterung wird als Bundle mit PHP, aber AFAIK die Locale-Liste (Daten) ist system-abhängig.
InformationsquelleAutor
Unter Windows können Sie versuchen, rufen Sie die
setlocale()
php-Funktion, mit der Sie alle Elemente der folgenden Liste:http://msdn.microsoft.com/en-us/goglobal/bb895996.aspx
Hier ist ein code sniplet, um eine Liste aller verfügbaren locales auf einem Windows-basierten host:
InformationsquelleAutor Balazs Nemeth
system("locale -a|grep XX");
woXX
ist die Sprache, code, dh.system("locale -a|grep de");
InformationsquelleAutor Qrzysio