Tłumaczenia Magento 2 nie działają


10

Próbuję przetłumaczyć tekst na stronie kasy:

„Podany kod pocztowy wydaje się być nieprawidłowy”.

Jednak po dodaniu frontend/..theme../Magento_Checkout/i18n/en_US.csvi ponownym wdrożeniu nie ma tłumaczenia:

„Podany kod pocztowy wydaje się być nieprawidłowy.”, „Test”.

Wyczyściłem również pamięć podręczną. Co ja robię źle?


sprawdź moją zaktualizowaną odpowiedź. Mam nadzieję, że teraz pracuję dla ciebie.
Suresh Chikani

Odpowiedzi:


15

Utwórz katalog app/i18n/Vendorname/en_US

Polecenie wydania:

bin/magento i18n:collect-phrases --output "app/i18n/Vendorname/en_US/en_US.csv" --magentoSpowoduje to zebranie wszystkich możliwych do przetłumaczenia fraz w pliku csv i umieszczenie go w określonej ścieżce. Wprowadź zmiany w pliku csv zgodnie z wymaganiami i po wydaniu polecenia gotowości:

bin/magento i18n:pack app/i18n/Vendorname/en_US/en_US.csv -d en_US

Spowoduje to wdrożenie tłumaczeń z Twojego pliku.

wyczyść pamięć podręczną itp. Powinieneś zobaczyć zmiany.


To wygląda obiecująco. Mówi, że pakiet językowy został pomyślnie zapisany, ale wciąż nie ma tłumaczenia.
Ciasto

Kiedy ponownie wykonuję polecenie kolekcjonowania wyrażeń, tłumaczenie powraca do tego, co było. Dlaczego nie oszczędza?
Ciasto

Jest to normalne zachowanie, gdy przywołujesz frazy, to one zastępują twoje zmiany, ponieważ Magento zapamiętał wszystkie domyślne frazy. Proces polega na tym, że zbierasz frazy, dokonujesz zmian i wdrażasz je. Po wdrożeniu możesz przejść do odpowiedniego modułu, powiedzmy, że dokonałeś zmiany w opcji Dodaj do koszyka, aby dodać do torby, możesz przejść do dostawcy / module-catalog / i18n / en_US. csv i poszukaj zmiany. Właśnie przetestowałem to ponownie i działa tak, jak powinno. Upewnij się, że zmieniasz drugą instancję w tłumaczeniu i czyścisz pamięć podręczną poprawnie. Możesz także spróbować ponownie wdrożyć zawartość statyczną.
Devtype

Wielkie dzięki, naprawdę działa. Jednak niektóre tłumaczenia nie są dostępne. Tłumaczenie „Przykład:” i „Pola obowiązkowe” nie są tłumaczone. Dlaczego?
Ciasto

Znalazłem problem. Musiałem skonfigurować php bin / magento: aktualizacja. Potem moja strona została pomieszana, ale poprawienie tego tematu było możliwe dzięki zastosowaniu motywu. Nie mam pojęcia, dlaczego to zadziałało. Dzięki
Cake

4

Możesz zmienić tylko tekst napisany w tłumaczeniu

Lubić : $this->__("Sample Taxt");

Sugerowany tekst nie został napisany w tłumaczeniu, więc nie można go zmienić za pomocą tłumaczenia.

Jeśli chcesz to zmienić, możesz go znaleźć w pliku JS , który znajduje się:

vendor/magento/module-checkout/view/frontend/web/js/model/shipping-rates-validator.js

Uwaga: musisz zastąpić plik JS w swoim motywie.

Usuń pub / static / *

Uruchom polecenie :

php bin/magento setup:static-content:deploy 

php bin/magento cache:clean

Usuń pamięć podręczną przeglądarki.


Próbowałem tego i z jakiegoś powodu to nie działało.
Ciasto

Skopiowałem ten plik, zmieniłem tłumaczenie i umieściłem go w app / design / frontend / <vendor> / <theme> / Magento_Checkout / web / js / model, ponownie wdrożyłem i wyczyściłem pamięć podręczną. Ale bez zmian ..
Ciasto

sprawdź moją zaktualizowaną odpowiedź. Mam nadzieję, że teraz pracuję dla ciebie.
Suresh Chikani

To rzeczywiście działało. Jednak rozwiązanie dostarczone przez Devtype bardziej odpowiada moim potrzebom w tym przypadku. Dzięki za pomoc! :)
Ciasto

1

Miałem ten sam problem na mojej stronie Magento 2, próbowałem różnego rodzaju sugestii, jak to naprawić, ale jedyną rzeczą, która działała dla mnie, było -

  1. iść do /pub/static/frontend/<theme>/<theme>/<language for example pl_PL>

  2. Znajdź js-translation.jsoni usuń (na wszelki wypadek wykonaj kopię!)

  3. Wróć do folderu głównego Magento i uruchom php bin/magento setup:static-content:deploy pl_PL

  4. Następnie uruchomić php bin/magento cache:flush

Otóż ​​to. Jeśli wrócisz do /pub/static/frontend/<theme>/<theme>/<language for example pl_PL>folderu, zauważ, js-translation.jsonże zostały wygenerowane ponownie.

Ten problem występuje, ponieważ po uruchomieniu instalacji statycznej magento generuje plik js-translation.json ze wszystkimi tłumaczeniami wstawionymi do tego jednego pliku i wywołuje go przy każdym załadowaniu strony. Kiedy jest już wygenerowany i zwykle pusty, nie może go zastąpić nowymi informacjami. Usunięcie go i ponowne wygenerowanie rozwiąże problem.

Mam nadzieję, że to komuś pomoże.


Cześć @Pinky_P, w moim przypadku plik js-translation.json został zaktualizowany o oczekiwane tłumaczenie. Ale nie pokazuje się w interfejsie. Czy możesz mi pomóc w rozwiązaniu tego problemu.
Ramya

0

Ust Tylko przypomnienie ...

Magento przechowuje niektóre dane tłumaczeniowe w pamięci przeglądarki.

Oprócz wewnętrznych pamięci podręcznych Magento może być konieczne wyczyszczenie elementów pamięci przeglądarki.

wprowadź opis zdjęcia tutaj

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.