3

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

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

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

它说:

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

有人可以告诉我如何从该报价中获得在语言环境下拉列表中使用西班牙语(美国)吗?

非常感谢你的帮助!

4

2 回答 2

12

我在调查 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 中:

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

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

'es_US' 是这些受支持的代码之一。我希望这对某人有所帮助。

_佩斯

于 2013-05-28T21:08:54.890 回答
2

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

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

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

于 2013-01-16T00:03:29.573 回答