【问题标题】:Magento :: Translate text from javascript filesMagento :: 从 javascript 文件中翻译文本
【发布时间】:2011-12-06 18:09:47
【问题描述】:

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

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

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

这很好用。 但是当我将文本添加到 javascript 文件时,我不能使用这两种方法。

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

【问题讨论】:

标签: javascript php magento translation


【解决方案1】:

您可以在模板文件 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/ 文件夹下的模块中添加一个文件 jstranslator.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>

借助 CSV 文件,然后像为 PHP 所做的那样翻译字符串。这会将翻译添加到 JavaScript 代码中,如下所示 var Translator = new Translate(...)

【讨论】:

  • 我之前尝试过,但没有成功。我会再试一次,只是为了确保。
  • 不起作用...不幸的是。我在本地文件夹中为我的一个自定义模块创建了一个新助手。并在我的 .phtml 文件顶部添加了 Js。但这根本行不通。
  • Translator 是 Magento 的一个 javascript 变量。也许它不见了。在 Javascript 标签中尝试: new Translate({'您应该处理这个确认消息!', '__('你应该处理这个确认消息!' )?>' })
  • 检查你的 HTML 源代码中是否有 var Translator
  • 您能否提供一个代码示例,说明您希望在何处显示已翻译的字符串?
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      js 文件中使用这个:

      Translator.translate('Some phrase');
      

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

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

      【讨论】:

        【解决方案5】:

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

        Translator.translate('Some phrase');
        

        【讨论】:

          猜你喜欢
          • 2013-02-27
          • 2014-09-07
          • 2011-11-28
          • 1970-01-01
          • 1970-01-01
          • 2018-11-29
          • 2012-05-29
          • 2013-08-07
          • 1970-01-01
          相关资源
          最近更新 更多