如何在Magento中创建自定义区域设置?

时间:2013-01-15 22:53:22

标签: magento locale

我需要的语言环境不包含在标准的Magento语言扩展中,所以我需要创建自己的语言环境。

这将是es-us - 美国的西班牙语。

我发现了这篇文章:http://kb.magenting.com/content/14/50/en/translate-magento-interface-magento-localization-tips.html

它说:

“如果您的语言环境没有本地化软件包,您可以通过简单地从英语或任何其他翻译复制本地化目录来创建它。”

有人可以告诉我如何从该引用中获得西班牙语(美国)的语言环境下拉菜单吗?

非常感谢你的帮助!

2 个答案:

答案 0 :(得分:11)

我在调查Mage_Core_Model_Locale_Config时得到了这个答案,我能够提出一个完全不需要任何代码更改的解决方案。

Mage_Core_Model_Locale_Config确实包含硬编码的语言环境列表,但getAllowedLocales()方法将此与

的输出结合起来
Mage::getConfig()->getNode(Mage_Core_Model_Locale::XML_PATH_ALLOW_CODES);
1.4.2中的

Mage_Core_Model_Locale :: XML_PATH_ALLOW_CODES的值是

'global/locale/allow/codes'

所以你需要做的就是将以下xml添加到你的'global'标签中的app / etc / local.xml中:

         <locale>
        <allow>
            <codes>
                <en_IE/>
              </codes>
        </allow>
    </locale>

英语(爱尔兰)语言环境将显示在您的语言环境下拉列表中。唯一的限制是语言环境代码必须是Zend Framework文档中定义的代码之一: http://framework.zend.com/manual/1.12/en/zend.locale.appendix.html

'es_US'是这些受支持的代码之一。我希望能帮助别人。

_Pez

答案 1 :(得分:2)

不幸的是,看起来好像是Mage_Core_Model_Locale_Config中的区域设置名称是硬编码的。不仅如此,在安装过程中还会在数据库中安装语言代码。

我建议做的不是重写该类来定义自己的自定义语言,而是“捎带”在另一个语言环境中并将其代码用于自定义语言包。例如,在app / locale中,您可以放置​​文件夹gl_ES,复制西班牙语语言包,然后对该语言进行修改。然后,对于商店的下拉菜单(系统&gt;配置&gt;常规&gt;区域设置),您可以选择Galician (Galician)

您认为我要求的自定义解决方案会涉及重写Mage_Core_Model_Locale_Config以将新区域设置添加到$ _allowedLocales变量中。我认为您可能需要将该语言添加到core_language表中,但看起来该表已被弃用。