Magento ::从javascript文件翻译文本

时间:2011-10-13 08:01:28

标签: php javascript jquery magento translation

Magento使用系统翻译模板文件中的文本:

$this->__('text to be translated.');

Mage::helper('modulename')->__('text to be translated.');

这很有效。 但是当我向javascript文件添加文本时,我无法使用这两种方法。

有没有办法可以对javascript文件的翻译做类似的事情?

5 个答案:

答案 0 :(得分:18)

您可以在模板文件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中将文件jstranslator.xml添加到etc /文件夹下的模块中,并设置如下字符串:

<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>

然后,就像使用CSV文件一样,为PHP翻译字符串 这样,会将翻译添加到javascript代码中,如下面的var Translator = new Translate(...)

答案 1 :(得分:4)

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

Translator.translate('Some phrase');

答案 2 :(得分:1)

我只是做了一个最简单的方法:

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

答案 3 :(得分:0)

这是使用.phtml文件翻译JavaScript字符串的正确方法

$file = $form->getElement('pendingFileAttachments')->getTransferAdapter()->getFileInfo();
$file['tmp_name'] // this is filepath

更新:修正了错字。

答案 4 :(得分:-1)

使用它在 js 文件中:

Translator.translate('Some phrase');

但是要使其生效,您应该在 phtml 中定义此翻译:

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