Язык локали для Javascript в Magento - PullRequest
3 голосов
/ 15 сентября 2011

Мы можем сконфигурировать в Magento для установки языка локали и использовать функцию $this->__(string $test) для перевода.

Как насчет этой функции, но для javascript? Например, когда я использую validation.js и при получении каких-либо ошибок будет отображаться сообщение с языком локали, который я установил.

Файл validation.js находится по адресу: src/js/prototype/prototype.js

Внутри файла мы увидим что-то:

Validation.addAllThese([
    ['validate-select', 'Please select an option.', function(v) {
                return ((v != "none") && (v != null) && (v.length != 0));
            }],
    ['required-entry', 'This is a required field.', function(v) {
                return !Validation.get('IsEmpty').test(v);
            }],
    ['validate-number', 'Please enter a valid number in this field.', function(v) {
                return Validation.get('IsEmpty').test(v) || (!isNaN(parseNumber(v)) && !/^\s+$/.test(parseNumber(v)));
            }]
]

Итак, как мне перевести сообщения This is a required field., Please select an option.?

Ответы [ 2 ]

10 голосов
/ 15 сентября 2011

Я не уверен, что это то, что вы спрашиваете, но переводы javascript-сообщений установлены в app / code / Core / Mage / Core / Helper / Js.php -> _getTranslateData() и вызывается в app / design / package / theme / template / page / HTML / head.phtml <?php echo $this->helper('core/js')->getTranslatorScript() ?>

Мне просто нужно это самому, позвольте мне перефразировать:

  1. в phtml вы добавляете строки, которые нужно перевести:

    <script type="text/javascript">
        //<![CDATA[
            Translator.add('String to translate', '<?php echo $this->__('String to translate'); ?>');
        //]]>
    </script>
    
  2. в вашем файле JavaScript, используйте:

    Translator.translate('String to translate');
    
  3. теперь вы можете использовать файлы переводов CSV

1 голос
/ 09 февраля 2015

Правильный способ добавить переводы Javascript и избежать смешивания PHP и JS - это добавить файл jstranslator.xml в ваш модуль.

Содержимое файла должно быть примерно таким:

<jstranslator>
    <my-message translate="message" module="mymodule">
        <message>My Original Message in Base Language</message>
    </my-message>
</jstranslator>

Тогда просто используйте csv-файлы перевода собственного модуля для перевода этих строк.

Стоит отметить, что если вы намереваетесь переводить основные валидационные сообщения, они уже находятся в файле перевода Mage_Core.csv. Вам следует создать соответствующий файл перевода для вашей локали или настроить переводы через файл translate.csv в вашей теме, как обычно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...