Press "Enter" to skip to content

PrestaShop 1.7.5.0 – problem z tłumaczeniem modułu koszyka (lub innego modułu) w kupionym szablonie

Admin 1

Nowy mechanizm tłumaczeń

W wersji 1.7.x oprogramowania PrestaShop przebudowano system tłumaczeń modułu. Tzn. częściowo się on zmienił, bo niektóre moduły korzystają jeszcze ze.. starego sposobu.

W każdym razie w sekcji

Ulepszenia -> Międzynarodowy -> Tłumaczenia

Mamy formularz, gdzie wybieramy nasz szablon albo interesujący nas moduł.

Należy tutaj zaznaczyć, że nasz zespół nie jest zwolennikami tej “dobrej zmiany”… Szczególnie, jak mamy bardzo dużo modułów – ciężko każdy tłumaczyć z osobna lub w ogóle znaleźć interesującą nas frazę. Kiedy wszystkie były na jednej stronie – można było je rozwinąć i od razu ją znaleźć. Co prawda napotykało to problem max_input_vars, ale większość hostingów już to wspierało.

Tak czy inaczej jakoś musimy żyć z nowym systemem tłumaczeń, jeśli chcemy cieszyć się wersją 1.7.x. Przebudowany mechanizm tłumaczeń nie jest niestety wolny od błędów..

Problem z tłumaczeniem modułu w PrestaShop 1.7.x

Poniżej sposób na obejście irytującego problemu, w którym nie można znaleźć fazy do tłumaczenia. Tutaj – frazy w module koszyka.

To oczywiście tylko przykład – Twój moduł może być zupełnie inny. Przedstawimy tutaj kolejno występujący problem i metodę jego rozwiązania. Analogicznie możesz postąpić w Twoim przypadku.

Wersja PrestaShop na której było to wykonywane to: 1.7.5.0.

Na początek wyłączamy cache’owanie szablonu, wykonuje się to analogicznie jak w przypadku wersji 1.6.x:

Zaawansowane -> Wydajność.

Do przetłumaczenia jest przycisk “Checkout Now!“. Występuje on w rozwijanym module koszyka:

Wchodzimy w w/w dział do tłumaczenia i wybieramy moduł “Koszyk”:

Wciskamy przycisk “Modyfikuj”:

Niestety próżno tu szukać naszej frazy “Checkout Now!” do przetłumaczenia.. Jedynie są frazy z admina:(

Naprawa niedziałającego tłumaczenia modułu w PrestaShop 1.7

Jest jednak wyjście z tej sytuacji. Dość niestandardowe. Ale działa:) Aby to przetłumaczyć musimy posłużyć się innym modułem. Raczej nie będzie to moduł “wbudowany” w PrestaShop. Musi to być moduł który został zainstalowany wraz z zakupionym szablonem.

W naszym przypadku będzie to moduł do logowania z górnej belki:

Znajdujemy jego tłumaczenie w systemie tłumaczeń. W tym przypadku znalazł się on w tłumaczeniach szablonu:

U Ciebie może być to zupełnie inny moduł i jego tłumaczenie może być zupełnie gdzie indziej – zasada pozostaje ta sama.

Następnie odnajdujemy wystąpienie frazy z blelki “Login or register” w pliku tpl:

Tutaj był to plik:

Następnie po prostu dopisujemy (w dowolnym miejcu) naszą problematyczną frazę:

której nie możemy przetłumaczyć w module koszyka.

Uwaga! Należy ją dopisać dokładnie na tej samej zasadzie, co znaleziony tekst (tutaj) “Login Or Register“. Czyli (tutaj) dodać atrybut: d=’Shop.Theme.Actions’. W ten sposób bedzie można ją analogicznie do frazy z belki przetłumaczyć.

Następnie odnajdujemy plik tpl z problematyczną frazą, której nie możemy przetłumaczyć. Czyli kod przycisku z napisem “Checkout Now!“.

W naszym przypadku był to plik:

Wklejamy w wybranym miejcu (tekst przycisku) ten sam kod:

który dopisaliśmy do pliku tpl górnej belki. Czyli np.:

Po odświeżeniu szablonu widzimy tę frazę w niestandardowym miejscu (spokojnie, zaraz ją usuniemy):

Wchodzimy ponownie do miejsca, gdzie mogliśmy przetłumaczyć “Login Or Register” i i po odświeżeniu strony admina wpisujemy tam naszą frazę: “Checkout Now!”. Następnie tłumaczymy ją i zapisujemy:

Następnie usuwamy fragment kodu:

z pliku:

dotyczącego górnej belki.

Tłumaczenie mimo, że fraza zniknie z tego pliku – pozostanie w bazie danych. Ku naszej uciesze – w bloku koszyka tłumaczenie też powinno się pojawić:

Nie da się ukryć, że jest to sposób rozwiązania problemu na około. Jednak co ważniejsze działa i pozwoli obejść niedoskonałości systemu tłumaczeń w wersji PrestaShop 1.7.5.0.

Jeśli masz inne sposoby radzenia sobie z tym problemem – podziel się nimi w komentarzu pod artykułem lub na naszym Facebooku.

Postscriptum

Po dokładnej analizie bazy danych MySQL naszego sklepu możemy zaobserwować, że wyżej zaprezentowane modyfikacje skutkują dodaniem nowych wpisów w tabeli pr_translation:

Czyli przy odpowiednim zapytaniu SQL dodającym nowy wiersz w tym miejscu – teoretycznie możemy od razu dodać takie tłumaczenie. Jednak jest to temat na osobny artykuł, bo nie było to przez nasz zespół dokładnie sprawdzane.

grafika: wallpapercave.com

  1. włodek włodek

    Witam
    Podczas rejestracji klient wpisuje swoje dane,imię,nazwisko….. i adres. Dla mnie jest to bardzo mylące gdyż sam rejestrując się w jakimś sklepie wpisuję w tym miejscu miasto zamieszkania. A powinna być ulica.
    Więc pytanie jest następujące,jak zamienić w tym formularzu słowo adres na ulica?

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Zobacz także !
Jak poprawić nieznośny błąd z kodowaniem polskich znaków w PrestaShop…