我已经成功创建了用于原型验证的新规则,现在我需要翻译错误消息(位置:Javascript中的String)。但是,我只能翻译所有消息,新的自定义消息似乎不可翻译。我该如何更改?
也许您需要jstranslator.xml
文件夹中的etc
文件:
<?xml version="1.0" encoding="UTF-8"?>
<jstranslator>
<some-message-name translate="message" module="mymodule">
<message>This is the text in my own js validation</message>
</some-message-name>
</jstranslator>
具有以下结构和含义:
<jstranslator>
-[一个] XML根节点。<some-message-name>
-[零个或多个]根节点子元素,在所有jstranslator.xml
文件中具有唯一的XML元素名称(否则,基于模块列表的成功,加载顺序排在最后)。translate="message"
-(可选)提示正在翻译的子元素被命名为“ message
”,但是对于js转换XML文件进行了硬编码(Magento CE 1.9,搜索“ [C0 ]“),则不需要使用此属性。*/message
-(可选)模块名称,如果省略,则值为“ module="mymodule"
”。稍后将用于实例化数据帮助器(从该模块),然后负责加载翻译(例如,从CSV文件)。core
-[每个父级零个或一个]消息进行翻译。该元素的文本值node-value被视为添加到javascript Translator对象数据。<message>
文件。然后将您的翻译行放入jstranslator.xml
文件:
Something_Mymodule.csv
然后在您的js脚本中,您可以通过
Translator使用您自己的翻译:其他参考
"This is the text in my own js validation", "(translated in a different language or speech)"
Translator.translate('This is the text in my own js validation');
找到一个函数
_ getTranslateData()然后您会看到一堆消息。只需将您的消息添加到数组中的某个位置,如下所示:
\app\code\core\Mage\Core\Helper\Js.php
不要忘记逗号
(,)。然后将翻译放入某些翻译文件中。
在使用此消息的文件中(我在opcheckout.js
文件中使用它),您需要将文本换成'This is my validation message' => $this->__('This is my validation message')
。我还没有弄清楚哪个翻译文件很重要。您可以尝试
我在Translator.translate('This is my validation message')
。Mage_Core.csv
中需要它,并且可以在其中使用。无论如何,对于那些对更多内容感兴趣的人,我注意到这些javascript消息打印在每个html页面的标题中,并且有些担心会干扰SEO。无论如何这是打印在文件中
Mage_Checkout.csv
和代码。\app\design\frontend\bmled\default\template\page\html\head.phtml
<?php echo $this->helper('core/js')->getTranslatorScript() ?>
[我希望这会有所帮助,我希望它在任何地方都可以使用,到目前为止,我仅在Onepage Checkout上进行了测试。
app/local/ur_language/Mage_Core.csv
如果已定义,VarienForm在js验证中使用它
app/design/frontend/default/default/template/page/htmlhead.phtml
放进去之后,它仍然不起作用,因为尚未将翻译插入翻译文件中。检查这两件事,它应该开始工作。