Podobne pytanie zostało już zadane tutaj: tłumaczenia tekstów javascript Magento 2 , ale Magento zaktualizowało tę technikę tłumaczenia w wersji beta.
Jak mogę dodać lub zaktualizować tłumaczenia używane przez Javascript?
Doszedłem do wniosku, że Magento tworzy plik o nazwie „js-translation.json” w folderze statycznym. Jeśli edytuję ten plik bezpośrednio, widzę, że moje tłumaczenia są aktualizowane. Ale gdzie jest tworzony ten plik i jak mogę dodawać tłumaczenia, aby Magento automatycznie dodawał to do pliku js-translation.json po wygenerowaniu?
Aktualizacja
Prawidłowa odpowiedź na to pytanie wciąż nie jest podana, chociaż Mage2.PRO wskazał mi właściwy kierunek, to nie jest pełna odpowiedź. Mój plik js-translation.json jest nadal pusty po wygenerowaniu.
Na przykład lubię tłumaczyć przycisk Dodaj do koszyka. Ten przycisk ma trzy stany: Dodaj do koszyka, Dodawanie ... i Dodano ... Jak mogę przetłumaczyć te słowa? Kolejny przykład: „Nie masz produktów w koszyku”. tekst w minikartce. Myślę, że wszystkie te frazy powinny być przetłumaczone z js-translation.json, ale gdzie je dodać, aby plik był wypełniony tymi tłumaczeniami?
$.mage.__('Add To Cart')
, zostanie on automatycznie pobrany przezsetup:static-content:deploy
polecenie. Jedynym haczykiem jest to, że musisz mieć w plikach ustawień regionalnych inne tłumaczenie tekstu. Teksty, które mają jako tłumaczenie ten sam tekst, nie są dodawane do pliku json, aby nie zwiększać rozmiaru bez powodu.Odpowiedzi:
Nie jestem pewien, czy już to wymyśliłeś, ale myślałem, że i tak odpowiem ...
Sądzę, że pozostałe odpowiedzi zmierzają we właściwym kierunku.
Zakładając, że masz już zainstalowane tłumaczenia, jeśli nie:
bin/magento i18n:pack -m replace -d source_nl_NL.csv . nl_NL
Przede wszystkim wyczyść pamięć podręczną (jak sugerowali również inni):
rm -rf var/cache var/generation var/page_cache var/view_preprocessed
Po drugie, wyczyść folder pub / static:
rm -rf pub/static/*/
Następnie regenerujemy zawartość statyczną: (brakowało mi kodu języka w innych odpowiedziach).
bin/magento setup:static-content:deploy nl_NL
- Upewnij się, że dodajesz kod językaTeraz sprawdź, czy utworzono js-translation.json:
find pub/static/ -name "js-translation.json"
Najprawdopodobniej otrzymasz listę
js-translation.json
plików. Sprawdź te pliki i usuń je, jeśli są puste lub zawierają coś podobnego[]
.źródło
Spróbuj dodać tłumaczenia do plików .csv, a następnie upewnij się, że wykonano kolejne kroki:
źródło
Usuń całą pamięć podręczną i usuń zawartość folderu pub / static.
Przejdź do katalogu głównego i uruchom poniższe polecenie: -
konfiguracja php bin / magento: zawartość statyczna: wdrażanie
Mam nadzieję, że Twój problem zostanie rozwiązany.
źródło
Miałem ten sam problem, jak „Nie można tłumaczyć wyrażeń na $ .mage .__ ('XXX')”, gdy wyrażenie w phtml działało idealnie. Rozwiązanie było genialnie proste.
$ t (...) i $ .mage analizuje tylko pliki * .js
W związku z tym nie należy do słownika tłumaczeń js.
Tak więc podczas renderowania skryptu sekcji w plikach phtml powinieneś bezpośrednio wstawić już przetłumaczone frazy za pomocą opakowań
__('Translated phrase')
.źródło