Magento指定店铺翻译

给指定模块添加对应翻译文件,并在配置文件config.php配置好


    
        
            
                
                    
                        Core.csv
                    
                
            
        
    

根据指定的店铺找到对应的店铺code

public static function getStoreConfig($path, $store = null)
{
    return self::app()->getStore($store)->getConfig($path);
}
$newLocaleCode = Mage::getStoreConfig(
    Mage_Core_Model_Locale::XML_PATH_DEFAULT_LOCALE, $storeId
);

$initialEnvironmentInfo = Mage::getSingleton('core/app_emulation')->startEnvironmentEmulation($storeId);
Mage::app()->getLocale()->setLocaleCode($newLocaleCode);
Mage::getSingleton('core/translate')->setLocale($newLocaleCode)->init(Mage_Core_Model_App_Area::AREA_FRONTEND, true);

$translatedString = Mage::helper('core')->__($string);
Mage::getSingleton('core/app_emulation')->stopEnvironmentEmulation($initialEnvironmentInfo);

$newLocaleCode是根据当前的$storeId得到对应的站点code

$initialEnvironmentInfo是根据$storeId模拟出该店铺环境

第三句是将指定的店铺code设定为当前店铺code

第四句是设置好当前店铺,然后初始化找到对应的翻译

第五句是停止当前环境模拟

这段代码整体思路也算是magento内部翻译的处理逻辑,底层方法比较乱,感兴趣的可以自己研究一下,不过这段代码总结起来就是先根据指定的店铺模拟出一个对应店铺的虚拟环境,然后将指定的店铺设置成当前店铺找到当前店铺对应的翻译,然后初始化将该店铺下的所有翻译文件里面的翻译语句拿出来组装到一起,然后根据给定的语句到这个组装好的翻译里面去找这句话对应的翻译,然后再关闭当前模拟的虚拟店铺

你可能感兴趣的:(magento常用方法)