Magento :: Перевести текст из файлов JavaScript - PullRequest
8 голосов
/ 13 октября 2011

Magento использует систему для перевода текста в файлах шаблонов, используя:

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

или

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

Это работает довольно хорошо. Но когда я добавляю текст в файл JavaScript, я не могу использовать эти два метода.

Есть ли способ, которым я мог бы сделать подобное с переводами для файлов JavaScript?

Ответы [ 4 ]

19 голосов
/ 13 октября 2011

Вы можете сделать это в файле шаблона 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>

EDIT : С 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>

Затем переведите строку, как вы делаете это для PHP, благодаря CSV-файлу. Это добавит перевод в код JavaScript, как показано ниже: var Translator = new Translate(...)

4 голосов
/ 21 августа 2012

Просто используйте следующий метод в ваших скриптах:

Translator.translate('Some phrase');
0 голосов
/ 16 апреля 2019

Используйте это в js файле:

Translator.translate('Some phrase');

Но чтобы это сработало, вы должны определить этот перевод в phtml :

Translator.add('Some phrase', "<?php echo $this->__('Some phrase'); ?>");
0 голосов
/ 12 октября 2015

Это правильный способ перевода строк JavaScript в файл .phtml

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

Обновление: исправлена ​​опечатка.

...