Yii2 Gebietsschema ändern-Formate
Ich bin der Migration von Yii-1.x Yii2.
In Yii-1.x man könnte festlegen/ändern der lokalisierten Formate in einer Datei (sth wie /app/i18n/en.php
), wo Sie alle Ihre gewünschten Formate, die Sie später verwenden.
Jetzt in Yii2 dieser Weg ist?
Habe ich 4 Sprachen, jeder hat andere Einstellungen. Was soll ich tun, wenn ich eine neue Formatierung Funktion?
E. g. Ich möchte ein format für die Preise in einem shop, in jedem lang anders
DE - 1.234,56
EN - 1,234.567
SK - 1234,5
CZ - 1 234,5678
Also ich erstelle eine neue formatter-Funktion Yii::$app->formatter->asPrice(1234.567890)
.
Muss ich ein Programm switch
innerhalb der Funktion, und überprüfen Sie für die Sprache? Das wäre sehr unbequem, und viele von Doppelzüngigkeit, wenn ich brauche mehr solche Funktionen. Und wenn ich eine neue Sprache später würde ich anpassen, um alle diese Funktionen mit einer neuen case
.
Es muss eine bessere Lösung. Irgendwelche Ideen?
UPDATE
Ich denke, dass Sie Jungs haben nicht bekommen, mein problem.. ich weiß, ich kann die locale, und verwenden Sie die asDecimal oder ähnliche Funktion. Aber das problem ist, dass ich nicht speziell passen Sie die Formatierung Optionen, wird automatisch das format definiert, in der intl PHP-extension. Ich brauche die Möglichkeit, um speziell passen diese Formate. Vielleicht z.B. die Standardeinstellung für de ist 2 Nachkommastellen, aber ich brauche 3. Wo kann ich das einstellen?
InformationsquelleAutor Asped | 2015-03-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Yii2 offiziellen Dokumentation:
Können Sie, wie unten:
Also, wenn Sie die Tabelle mit der Sprache Sie können festlegen-locale-es-und im main-layout definieren", Yii::$app->formatter->locale = $lang->locale", wobei $lang Objekt der Sprache model(Klasse) die aktuelle Sprache.
Jetzt ist es klar, Wie etwa die Erstellung von separaten config-Datei mit der locale-Einstellungen lassen sagen _locale.php auf der Grundlage der ausgewählten Sprache auswählen, locale-Einstellungen. Fügen Sie alle notwendigen Formate
'formatter' => [ 'dateFormat' => 'dd.MM.yyyy', 'decimalSeparator' => ',', 'thousandSeparator' => ' ', 'currencyCode' => 'EUR', ],
sich und verschmelzen mit \yii\helpers\ArrayHelper::merge () - Methode Haupt-und _locale-Dateien. Ich habe nicht vor, wie dieses aber es ist so, wie version.hm, das scheint wie eine relativ gute Idee, gehen für. Aber so wie ich es verstehe, gibt es keine Standard-option, dies zu ändern, dann..
hm, aber das problem ist jetzt, wenn dies zu tun.. in der config weiß ich nicht, die aktuelle Sprache noch...
Wie zu Holen Sie sich die Sprache aus der session? Wenn Sie speichern die Sprache in der session.
InformationsquelleAutor sambua
Warum nicht Sie verwenden möchten asDecimal?
Oder Sie können versuchen, so etwas wie:
InformationsquelleAutor Latikov Dmitry