Magento中Javascript的语言环境语言

时间:2011-09-15 07:29:55

标签: magento

我们可以在Magento中配置设置语言环境语言并使用函数$this->__(string $test)进行翻译。

此功能如何,但适用于javascript?例如,当我使用validation.js时,当遇到一些错误时,它将显示带有我设置的语言环境语言的消息。

validation.js文件位于:src/js/prototype/prototype.js

在文件内部,我们会看到一些内容:

Validation.addAllThese([
    ['validate-select', 'Please select an option.', function(v) {
                return ((v != "none") && (v != null) && (v.length != 0));
            }],
    ['required-entry', 'This is a required field.', function(v) {
                return !Validation.get('IsEmpty').test(v);
            }],
    ['validate-number', 'Please enter a valid number in this field.', function(v) {
                return Validation.get('IsEmpty').test(v) || (!isNaN(parseNumber(v)) && !/^\s+$/.test(parseNumber(v)));
            }]
]

那么,我怎样才能翻译消息This is a required field.Please select an option.

2 个答案:

答案 0 :(得分:10)

我不确定这是不是你要问的,但javascript信息的翻译是在 app / code / Core / Mage / Core / Helper / Js.php 中设置的 - &gt ; _getTranslateData()并在app / design / 包中调用 / 主题 /template/page/html/head.phtml <?php echo $this->helper('core/js')->getTranslatorScript() ?>

我只需要自己,让我反思:

  1. 在phtml中添加了需要翻译的字符串:

    <script type="text/javascript">
        //<![CDATA[
            Translator.add('String to translate', '<?php echo $this->__('String to translate'); ?>');
        //]]>
    </script>
    
  2. 在您的javascript文件中
  3. ,请使用:

    Translator.translate('String to translate');
    
  4. 现在您可以使用您的csv翻译文件

答案 1 :(得分:1)

添加Javascript翻译并避免混合PHP和JS的正确方法是在模块中添加jstranslator.xml文件。

文件的内容应该是这样的:

<jstranslator>
    <my-message translate="message" module="mymodule">
        <message>My Original Message in Base Language</message>
    </my-message>
</jstranslator>

然后简单地使用您自己的模块的翻译csv文件来翻译这些字符串。

值得一提的是,如果您打算翻译核心验证按摩,那些已经位于Mage_Core.csv翻译文件中。您应该为您的语言环境创建相应的翻译文件,或者像往常一样通过主题中的translate.csv文件自定义翻译。