我需要的语言环境不包括在标准Magento语言扩展中,所以我需要创建我自己的。
它将是es-us -美国的西班牙语。
我找到了这篇文章:http://kb.magenting.com/content/14/50/en/translate-magento-interface-magento-localization-tips.html
上面写着:
"如果您的语言环境没有本地化包,您可以通过简单地从英语或任何其他翻译中复制本地化目录来创建它。"
谁能告诉我如何从该报价到在区域设置下拉列表中有西班牙语(美国)?
非常感谢你的帮助!
我在调查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到你的app/etc/local.xml在你的'global'标签:
<locale>
<allow>
<codes>
<en_IE/>
</codes>
</allow>
</locale>
英语(爱尔兰)区域设置将出现在您的区域设置下拉列表中。唯一的限制是语言环境代码必须是Zend框架文档中定义的代码之一:http://framework.zend.com/manual/1.12/en/zend.locale.appendix.html
'es_US'是这些支持的代码之一。我希望这能帮助到别人。
_Pez
不幸的是,看起来好像区域设置名称在Mage_Core_Model_Locale_Config
中是硬编码的。不仅如此,在安装过程中还会将语言代码安装到数据库中。
我建议做的不是重写那个类来定义你自己的自定义语言,而是"搭载"另一个语言环境,并将他们的代码用于你的自定义语言包。例如,在app/locale中,您可以放置文件夹gl_ES
,复制一个西班牙语包,并对该语言进行所需的修改。然后在下拉菜单(System> Configuration> General> locale)中选择Galician (Galician)
我认为您请求的自定义解决方案将涉及重写Mage_Core_Model_Locale_Config
以将您的新语言环境添加到$ _allowedlocale变量。我认为你可能需要将语言添加到core_language
表中,但看起来该表已被弃用。