Tłumaczenie modułu nie działa, tekst zostaje po angielsku.

Pytanie opublikowane 2408 wyświetleń

Gdy tłumaczenie modułu PrestaShop zostaje po angielsku, zwykle stringi nie zostały jeszcze przetłumaczone albo nadal serwowana jest stara wersja z cache. Przejdź przez to w kolejności:

Panel administracyjny PrestaShop, International > Translations, ekran zarządzania tłumaczeniami.
Użyj Translations, aby zaktualizować teksty modułu, gdy nadal wyświetlają się po angielsku.
  • Przetłumacz stringi. Przejdź do International → Translations → Translate modules, wybierz moduł i język, a potem uzupełnij tłumaczenia.
  • Wyczyść cache. Smarty może nadal serwować stary szablon, wyczyść cache z Advanced Parameters → Performance.
  • Sprawdź, jakiego systemu używa moduł. Niektóre moduły dostarczają własne pliki tłumaczeń zamiast systemu PrestaShop; dokumentacja powie, który wariant obowiązuje.
  • Dopasuj właściwy plik. Jeśli szablony używają {l s='...' mod='modulename'}, tłumaczenie musi znajdować się w pliku tłumaczeń tego modułu, a nie w globalnych tłumaczeniach PrestaShop.

Więcej napraw: poradnik rozwiązywania problemów PrestaShop.

Po edycji tłumaczeń wyczyść zarówno cache PrestaShop, jak i dowolny cache serwera/CDN, który może trzymać skompilowane szablony. Upewnij się też, że tłumaczysz w odpowiednim kontekście sklepu i języka w multistore, bo string może być przetłumaczony dla jednego sklepu albo locale, a inny nadal będzie wracał do angielskiego.

Od strony modułu szablony Smarty zwykle wywołują translator PrestaShop z nazwą modułu, np. {l s='Related Products' mod='mprblogrevolution'}. Ta wartość mod musi pasować do katalogu modułu, a stare moduły mogą nadal polegać na plikach w swoim folderze translations/. Jeśli konkretna fraza nigdy nie pojawia się na ekranie tłumaczeń back office, może być budowana dynamicznie w PHP albo JavaScript, więc wyszukaj dokładny angielski tekst w źródłach modułu i potwierdź, że jest opakowany funkcją tłumaczeń.

W starszych lub legacy modułach tłumaczenia zwykle pochodzą z modules/modulename/translations/xx.php oraz wywołań Smarty, takich jak {l s='Text' mod='modulename'}. W nowszym kodzie PrestaShop 1.7/8/9 mogą być zamiast tego używane domeny tłumaczeń Symfony, często z plikami katalogów takimi jak translations/fr-FR/Modules.Modulename.Admin.xlf lub Modules.Modulename.Shop.xlf. Przetłumaczenie pliku legacy nie naprawi tekstu renderowanego przez domenę Symfony.

JavaScript to osobny przypadek: teksty wypisywane do zmiennych JS mogą być tłumaczone po stronie serwera, ale teksty wpisane na stałe w plikach .js wymagają mechanizmu tłumaczeń JavaScript modułu albo muszą najpierw zostać udostępnione z PHP/szablonów. Jeśli tylko przyciski lub alerty w przeglądarce pozostają po angielsku, przeszukaj także pliki views/js/ modułu, oprócz PHP i szablonów Smarty.

{l s='Table Optimization' mod='mprcleanuprevolution'}

$_MODULE['<{mprcleanuprevolution}prestashop>db_optimize_e48edafb7a762aa641253a1475eb1933'] = 'Optimisation des tables';
$_MODULE['<{mprcleanuprevolution}mypresta-rocks>db_optimize_e48edafb7a762aa641253a1475eb1933'] = 'Optimisation des tables';

Czy ta odpowiedź była pomocna?

Masz jeszcze pytania?

Nie możesz znaleźć tego, czego szukasz? Wyślij nam pytanie, a odpowiemy.

Ładowanie...
Do góry