我们可以在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.
?
答案 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() ?>
我只需要自己,让我反思:
在phtml中添加了需要翻译的字符串:
<script type="text/javascript">
//<![CDATA[
Translator.add('String to translate', '<?php echo $this->__('String to translate'); ?>');
//]]>
</script>
,请使用:
Translator.translate('String to translate');
现在您可以使用您的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文件自定义翻译。