Как перевести сообщение об ошибке JS или текст в Magento 2?


13

У меня есть два представления: английский и арабский. По умолчанию сообщение об ошибке проверки js необходимо перевести на арабский, так как это сделать? А также у меня есть несколько пользовательских текстов о том, как это сделать.

Я создал i18n для арабского, работает нормально, если я делаю эхо в файле PHTML или PHP, таким же образом, как передать его в js также в Magento 2

кто-нибудь поможет мне

Ответы:


29

Вы можете перевести сообщение об ошибке JS, как это

require([
'jquery', // jquery Library
'jquery/ui', // Jquery UI Library
'mage/translate' // Magento text translate (Validation message translte as per language)
], function($){ 
    $(window).load(function() {
        alert($.mage.__('Enter Your message here'));
    });
});

Magento2 использовать mage/translate.jsдля перевода


создал ar_KW.csv в моем модуле, в папке i18n, которая переведена как «Введите здесь ваше сообщение» в моем ji, попробовал, чтобы это не работало, но в phtml, если я отображаю переведенный текст, который я отображаю
Pradeep Kumar

Вы очистили свой кэш и развернули статический контент? @PradeepKumar
Кейур Шах

Просто ответ, который я искал! +1
thdoan

Имейте в виду, что это не будет работать, если вы используете его непосредственно в файлах phtml. Magento будет только анализировать и переводить из js и html файлов.
eInyzant

Это будет работать, но это не то, что чистый код; Вы требуете мага / перевода, но не используете его. ,
Оливер де Крамер



5

после глубокого копания я узнал концепцию локализации в magento2

Ниже приведены вещи, которым вы должны следовать, на моем сайте у нас есть два вида en и ar_kw арабский

  1. Создать языковой пакет http://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-i18n.html#config-cli-subcommands-xlate-example2

  2. чтобы получить все фразы, вам нужно запустить команду ex

    php D:\xampp\htdocs\magento2\bin\magento i18n:collect-phrases -o "D:\xampp\htdocs\magento2\app\code\Sugarcode\Test\i18n\ar_KW.csv" D:\xampp\htdocs\magento2\app\code\Sugarcode\Test

    он плохо прочитал мой тестовый модуль и создал CSV Sugarcode \ Test \ i18n \ ar_KW.csv

все получится __('Some Text') and $.mage.__('Some Text')в JS и подготовить CSV

  1. Теперь переведите созданный файл на арабский язык, который вы можете сохранить в названии кода локали ar_KW.csv (он может быть внутри вашего модуля или внутри вашего языкового модуля)
  2. удалить папку var и запустить bin\magento setup:static-content:deploy en_US ar_KW

  3. он создаст все js вместе с файлом js-translation.json в каждой теме / ex luma / ar_KW, js-translation.json будет иметь все переведенные на js данные в формате json, когда вы увидите сообщение об ошибке, которое будет показано в этом файле только


Здравствуйте, я сделал все шаги в соответствии с вашим ответом, код, который я добавил для ex: alert ($. Mage .__ ('js test')); правильно приходит в генерации языкового файла, но когда я изменяю перевод, сообщение js остается тем же. Я что-то пропустил ?
Сунил Верма

2

выдает ошибку, если вы используете __, поэтому следуйте приведенному ниже коду

  require([
    'jquery', // jquery Library
    'mage/translate'
   ], function($,$t){ 
        $(window).load(function() {
            alert($t('Enter Your message here'));
        });
    });


0

Добавьте в шаблон .phtml ваше сообщение об ошибке, например:
<?php echo __('This is a required field.'); ?>
- активный перевод онлайн
- перевод

сделанный


Не могли бы вы добавить более подробную информацию для ответа о том, как и почему это работает?
17
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.