Jak przetłumaczyć komunikat o błędzie JS lub tekst w Magento 2?


13

Mam dwa widoki Domyślny komunikat o błędzie sprawdzania poprawności js po angielsku i arabsku musi zostać przetłumaczony na język arabski, więc jak to zrobić? Mam też kilka niestandardowych tekstów, jak to zrobić.

Stworzyłem i18n dla języka arabskiego, działa poprawnie, jeśli wykonuję echo w pliku PHTML lub PHP, w ten sam sposób, jak przenieść go do js również w Magento 2

ktoś mi pomoże

Odpowiedzi:


29

Możesz przetłumaczyć komunikat o błędzie js w ten sposób

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'));
    });
});

Wykorzystanie Magento2 mage/translate.jsdo tłumaczenia


utworzyłem ar_KW.csv w moim module i18n folder w tym przetłumaczonym „Wpisz swoją wiadomość tutaj” w moim ji próbowałem go nie działać, ale w phtml, jeśli echo przetłumaczonego tekstu wyświetlam
Pradeep Kumar

Czy wyczyściłeś pamięć podręczną i wdrożyłeś zawartość statyczną? @PradeepKumar
Keyur Shah

Tylko odpowiedź, której szukałem! +1
thdoan

Pamiętaj, że to nie zadziała, jeśli użyjesz go bezpośrednio w plikach phtml. Magento będzie analizować i tłumaczyć tylko z plików js i html.
eInyzant

To zadziała, ale nie jest tak czyste od kodu; potrzebujesz maga / tłumacza, ale go nie używasz. .
oliver de Cramer

10

Uwaga dodatkowa: jeśli potrzebujesz dołączyć zmienną do tłumaczenia (w js), możesz użyć tego :

$.mage.__('Hello %1').replace('%1', yourVariable);


5

po głębokim kopaniu poznałem pojęcie lokalizacji w magento2

poniżej są rzeczy, które musisz śledzić, na mojej stronie mamy dwa widoki en i ar_kw arabski

  1. Utwórz pakiet językowy http://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-i18n.html#config-cli-subcommands-xlate-example2

  2. aby uzyskać wszystkie frazy, musisz uruchomić polecenie 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

    źle przeczytał mój moduł testowy i utworzył plik CSV Sugarcode \ Test \ i18n \ ar_KW.csv

dostanie wszystko __('Some Text') and $.mage.__('Some Text')w js i przygotuje csv

  1. przetłumacz teraz wygenerowany plik na arabski, który możesz przechowywać w nazwie kodu regionu ar_KW.csv (może znajdować się w module lub wewnątrz modułu językowego)
  2. usuń folder var i uruchom bin\magento setup:static-content:deploy en_US ar_KW

  3. utworzy wszystkie pliki js wraz z plikiem js-translation.json w każdym temacie / ex luma / ar_KW, js-translation.json będzie miał przetłumaczone wszystkie strony js w formacie json, gdy tylko pojawi się błąd msg tylko


Witaj, wykonałem wszystkie kroki zgodnie z twoją odpowiedzią, kod dodałem dla ex: alert ($. Mage .__ ('js test')); pojawia się poprawnie w generowaniu pliku językowego, ale kiedy zmieniam tłumaczenie, komunikat js nadal pojawia się tak samo. Coś mi brakuje?
Sunil Verma

2

wyrzuca błąd, jeśli używasz __, więc postępuj zgodnie z poniższym kodem

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


0

Dodaj w szablonie .phtml komunikat o błędzie, taki jak:
<?php echo __('This is a required field.'); ?>
- aktywne tłumaczenie online
- tłumaczenie

gotowy


Czy możesz dodać więcej szczegółów odpowiedzi, jak i dlaczego to działa?
tjons
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.