wo magento-Shops Land voller name
Habe ich Stunden damit verbracht zu suchen, zu finden, wo magento stores voller county name.
Wir können eine vollständige Liste der Länder, die mit diesem code:
$_countries = Mage::getResourceModel('directory/country_collection')
->loadData()
->toOptionArray(false);
Dieser wird ein array zurückgeben, mit country-code und name, untersuchte ich die directory-Modul, und fand heraus, dass dieser Aufruf holt die Daten aus der Tabelle
directory_county
Aber diese Tabelle nicht über die volle county name! Also, wo ist es gespeichert?
und wie ist es wieder mit diesem Anruf?
Vielen Dank im Voraus.
- Warum müssen Sie den Tabellennamen ein. Was ist der Zweck ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok also zum Ausgleich für meine falsche Antwort. Hier ist, wie das funktioniert:
/lib/Zend/Locale/Data/en.xml - wenn Ihr Shop in Englisch ist, sonst ein anderes xml in der gleichen directoery gelesen. Jedes Land und dessen code unter dem xml-tag
<territory>
Xml wird zwischengespeichert, mit der Zend_Cache_Core-Klasse.
/lib/Zend/Locale.php - Funktion ruft die getTranslation lib/Zend/Cache/Core.php Klasse
das laden aus dem cache.
Beispiel: Wenn Sie den Namen ändern, von einem Land in en.xml und deaktivieren Sie die magento-cache. Sie sehen die änderung, wenn u aufrufen, Ihren code erneut ein.
Vollständigen Ländernamen sind nicht in der Datenbank gespeichert. Magento verwendet die eingebaute Zend-Funktionalität.
Datei prüfen:
lib/Zend/Locale/Data/Translation.php
für die vollständige Liste.Verwenden Sie die Zend_Local übersetzung.
Verwenden Sie die Spalte 'iso2_code' aus der Tabelle 'directory_country' für Ihre $code.
Magneto speichert nur die Ländercodes in DB und setzt für Namen, die auf Zend Locale-Modul zu bieten übersetzten Namen für verschiedene Gebietsschemas.
Durch die
toOptionArray
Methode ruft es dieZend_Locale
- Klasse, um den übersetzten Wert.Finden
$name = Mage::app()->getLocale()->getCountryTranslation($data['value']);
, die bekommtMage_Core_Model_Locale
und dann zuZend_Locale
.Er entscheidet, welche der Knoten aus den Daten zu Lesen, durch die switch-case-Anweisung in
Zend_Locale_Data::getContent()
Zeile# 962, 963Magento speichert die Namen, so dass, wenn Sie irgendwelche änderungen vornehmen zu
XML
Dateien, stellen Sie sicher, zu reinigen Sie Ihren cache-Ordner zu bekommen, was Sie suchen.