Gibt es eine einfache Möglichkeit, um die Sprache code aus einem Land, code in PHP
Ich bin unter Verwendung der ISO 3166-1-alpha-2-codes zu passieren, um eine Anwendung zum abrufen einer lokalisierten feed z.B. /feeds/us für die USA. Ich habe eine switch-Anweisung dient ein feed basiert auf, dass country_code.
Ist es ein Weg, um zu konvertieren, dass die zweistelligen code für die Sprache-code z.B. "en_US"? Ich Frage mich, ob es eine standard /Funktion /Bibliothek für die dies in PHP oder ob ich meine eigenen bauen array?
Welche Sprache der code sollte "CH" verwenden? "IN"? Ein "NEIN"?
Werfen Sie einen Blick auf die neue Liste, die Liste in die Antwort ist übrigens veraltet. diese enthält 422 - 460 Einträge. msdn.microsoft.com/en-us/library/cc233968.aspx
Ich wollte vorschlagen, dass, wenn Ihr Ziel ist, das Gebietsschema zu formatieren Währung für einen lokalen Markt gibt es eine Strategie, die es HACKS durch:
Wenn Ihr Ziel für das Gebietsschema ist die Anzeige der Währung Werte richtig die ich gefunden habe, dieser einfache HACK, funktioniert "OK": prepend 'en_' zu Ihrem Land code. Die Anzeige der Währung wird standardmäßig auf den gemeinsamen standard für das Land. <?php $fmt = numfmt_create( 'en_BR', NumberFormatter::CURRENCY ); echo numfmt_format_currency($fmt, 1234567.891234567890000, "BRL")."<hr>"; ?>
Werfen Sie einen Blick auf die neue Liste, die Liste in die Antwort ist übrigens veraltet. diese enthält 422 - 460 Einträge. msdn.microsoft.com/en-us/library/cc233968.aspx
Ich wollte vorschlagen, dass, wenn Ihr Ziel ist, das Gebietsschema zu formatieren Währung für einen lokalen Markt gibt es eine Strategie, die es HACKS durch:
Wenn Ihr Ziel für das Gebietsschema ist die Anzeige der Währung Werte richtig die ich gefunden habe, dieser einfache HACK, funktioniert "OK": prepend 'en_' zu Ihrem Land code. Die Anzeige der Währung wird standardmäßig auf den gemeinsamen standard für das Land. <?php $fmt = numfmt_create( 'en_BR', NumberFormatter::CURRENCY ); echo numfmt_format_currency($fmt, 1234567.891234567890000, "BRL")."<hr>"; ?>
InformationsquelleAutor codecowboy | 2012-04-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als andere haben darauf hingewiesen, es gibt keine eingebaute Funktion, da diese wahrscheinlich durch die Realität in vielen Ländern, die mehrere Sprachen. So kann ich leider nicht verweisen Sie auf eine Bibliothek, die dies tut, aber ich Tat, gehen Sie vor und schreiben ein wenig Funktion, die tut, was Sie wollen.
Gibt es zwei Vorbehalte, die man als-wenn-es ist nicht eine Sprache, es wird nur einfach das erste Gebietsschema in der Liste. Um dies zu umgehen, müssten Sie, um etwas Logik um den Aufruf einer Funktion mit der entsprechenden Sprache. Die andere ist, dass es braucht, um php5-intl installiert.
Fatal error: Call to undefined function locale_get_region() in php-shell-code
Hast du die intl extension installiert?
InformationsquelleAutor TheJF
Können Sie nicht automatisch konvertiert Land code Sprache code, da einige Länder die Verwendung mehrerer Sprachen. Auf der anderen Seite, OS localization system unterstützt möglicherweise mehrere Varianten einer einzigen Sprache für verschiedene Länder (z.B. de_de vs en_US).
Z.B. die Schweiz (CH) Deutsch und Französisch Häufig verwendet (64% und 20% der Bevölkerung, nach http://en.wikipedia.org/wiki/Switzerland). Wenn Sie sich entscheiden, eine einzige Sprache für country-code-CH, eine der beiden Sprachen kann sinnvoll sein für einige Menschen. Beachten Sie, dass einige Teile der Schweiz nur Deutsch oder Französisch als offizielle Sprache (aber nicht beide sehen http://en.wikipedia.org/wiki/File:Sprachen_CH_2000_EN.svg für details).
Wenn Sie MÜSSEN wählen Sie eine Sprache für jedes Land, würde ich vorschlagen, tun die Auswahl, die von hand für jedes Land, die Sie unterstützen. Für eine halbherzig automatische Anwendung, die Sie Scannen könnte durch die verfügbaren Sprachen und wählen Sie die erste, die mit dem entsprechenden country code nach dem Unterstrich.
Ich denke, Sie meinte, de_CH und fr_CH. Ich wusste nicht, dass die Verwendung von Land-name, gefolgt vom name der Sprache war eine Allgemeine Kennzeichnung Stil. Hier in Finnland wird das Gebietsschema sv_FI ist in der Regel bezeichnet als suomenruotsi", was direkt übersetzt "Finnlands Schwedische" anstelle von "schwedischen Finnland", zu.
InformationsquelleAutor Mikko Rantalainen
Werden Sie wollen, um Querverweis die folgenden Dateien:
Gibt es keine aktuellen Satz PHP-Funktion gibt, diese Daten, die ich bin mir dessen bewusst.
InformationsquelleAutor Andrew Odendaal
den Antwort von TheJF ist ziemlich gut, allerdings gibt es ein paar (Allgemeine) Fragen, die ich stieß:
seinen code zurück
br-FR
wenn Sie anrufencountry_code_to_locale("FR")
- jetztbr
(Breton) ist noch nicht einmal eine offizielle Sprache, die laut Wikipedia. Obwohlfr-FR
ist in der Listebr-FR
ist das erste im array. dies geschieht mit vielen anderen Ländern auch.viele andere locale Listen versuchen extrem vollständige und betrachten alle möglichen Sprachen
ist es schwierig die Grenze zu ziehen ist hier, gute Beispiele, wo Sie sicherlich möchten, dass mehrere Sprachen für ein Land sind: Kanada und die Schweiz
Ging ich mit einer einfachen Ansatz:
Hielt ich nur 1 Sprache für die meisten Länder, und Links mehrere für einige Ländern wie BE, CA, CH, ZA. Ich hielt
es-US
, aber ich bin nicht sicher, dass (Wikipedia sagt:Official languages: None at federal level
)Ich auch immer mehrere Sprachen für die Länder, die ich war zu faul, um Forschung oder beide verwenden, lateinischen und kyrillischen
Fügte ich
shuffle($locales);
die randomize-array, so dass wir bekommen zufällige Schauplätze für Länder mit mehreren Sprachen. Es machte Sinn für meinen Anwendungsfall, aber möchten Sie vielleicht zu entfernen.Für meine Zwecke, nur Sprachen, die relevante Prävalenz auf der web von Interesse sind. Diese Liste ist keineswegs vollständig oder korrekt, aber pragmatisch.
So, hier ist meine Liste Gebietsschema:
und den code:
InformationsquelleAutor Eugen