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.