Magento::从javascript文件翻译文本

xxhby3vn  于 2022-11-12  发布在  Java
关注(0)|答案(5)|浏览(142)

Magento使用一个系统来翻译模板文件中的文本,该系统使用:
$this->__('text to be translated.');

Mage::helper('modulename')->__('text to be translated.'); .
这个方法很好用,但是当我在javascript文件中添加文本时,我不能使用这两种方法。
有没有办法我可以做一个类似的事情与翻译的javascript文件?

lx0bsm1f

lx0bsm1f1#

您可以在模板文件yourfile. phtml中执行此操作。JavaScript js/mage/translate.js文件必须包含在HTML头中(默认情况下,Magento会执行此操作)。

<script type="text/javascript">
    Translator.add('You should take care of this confirmation message!','<?php echo Mage::helper('yourmodule')->__('You should take care of this confirmation message!')?>');
</script>

从Magento 1.7开始,您可以在etc/文件夹下的模块中添加一个jtranslator.xml文件,并设置如下字符串:

<jstranslator>
    <!-- validation.js -->
    <validate-no-html-tags translate="message" module="core">
        <message>HTML tags are not allowed</message>
    </validate-no-html-tags>
    <validate-select translate="message" module="core">
        <message>Please select an option.</message>
    </validate-select>
</jstranslator>

然后像在PHP中那样通过CSV文件翻译字符串,这样就可以将翻译结果添加到JavaScript代码中,如下所示:var Translator = new Translate(...)

4si2a6ki

4si2a6ki2#

只需在脚本中使用以下方法:

Translator.translate('Some phrase');
l5tcr1uw

l5tcr1uw3#

我只是作了最简单的说明:

let sometext = '<?php echo $this->__('text to be translated.'); ?>' + someVarData;
kupeojn6

kupeojn64#

这是在.phtml文件中转换JavaScript字符串的正确方法

Translator.add({"To be translated":"<?php echo $this->_('To be translated'); ?>"});
ru9i0ody

ru9i0ody5#

js文件中使用这个是:

Translator.translate('Some phrase');

但要使其正常工作,您应该在phtml中定义此转换:

Translator.add('Some phrase', "<?php echo $this->__('Some phrase'); ?>");

相关问题