Ich bin neu in dieser Magento-Community und habe mich an eine sehr grundlegende Sache gehalten. Ich erhalte den Namen der Region (des Bundesstaates) von einer Kundenadresse mit diesem Code
$billingAddress = Mage::getModel('customer/address')->load($billingAddressId);
$RegionName = $billingAddress->getRegion();
Jetzt werden einige Regionen in der Sprache des Gebietsschemas zurückgegeben. Ein Beispiel ist - Oberösterreich . Ich möchte, dass dies in die Standardsprache en_GB übersetzt wird.
Ich hatte auch ein ähnliches Problem mit dem Ländernamen, fand aber eine Lösung dafür als -
$locale = new Zend_Locale('en_GB');
$countries = $locale->getTranslationList('Territory', $locale->getLanguage(), 2);
$countryName = $countries[$billingAddress->getCountryId()];
Damit wurde der zurückgegebene Name von Deutschland nach Deutschland konvertiert
Ich suche die gleiche Lösung auch für den Namen der Region. Jede Hilfe wäre dankbar.
language
multi-language
Eine Ameise
quelle
quelle
Antworten:
Um die Region in Ihr Gebietsschema aufzunehmen, müssen Sie sie nur zur Tabelle " directory_country_region_name" hinzufügen. Basierend auf dem Gebietsschema des Geschäfts wird sie korrekt abgerufen. Wenn Sie also eine Region wie die folgende haben:
region_id
,country_id
,code
,default_name
1001, IN, DE, Delhi
Dann sehen die Tabellendaten des Verzeichnisses_Land_Region_Name für das Gebietsschema en_US wie folgt aus:
locale
,region_id
,name
'en_US', '1001', 'New Delhi'
So erhalten Sie die lokalisierte Regions-ID basierend auf der aktuellen Region:
Basierend auf der aktuellen Speicherortung werden die Daten aus der Tabelle abgerufen.
directory_country_region_name
Wenn sie nicht in der Tabelle gefunden werden, wird diedirectory_country_region_name
Standardeinstellung geladen.quelle
$billingAddressId
, können Sie einige Code - Schnipsel teilen , dass ich folgen muss Region Name in meiner gewünschten Sprache zu erhalten.