- Przygotowanie środowiska i podstawowe pojęcia
- Co musisz wiedzieć, zanim zaczniesz
- Różnice między wersjami 1.6, 1.7 i 8.x
- Podstawowe pojęcia: język, locale, domena
- Uprawnienia, kopie zapasowe i środowiska
- Gdzie trafiają tłumaczenia
- Dodawanie nowego języka
- Szybka instalacja z paczki
- Ręczne dodanie języka w ustawieniach
- Pakiety lokalizacyjne: waluty, strefy, podatki
- Edytowanie tłumaczeń w panelu
- Wejście do edytora i typy tłumaczeń
- Tłumaczenia motywu: front sklepu
- Tłumaczenia panelu administracyjnego
- Tłumaczenia modułów
- E-maile transakcyjne
- Filtrowanie, szybkie wyszukiwanie i brakujące klucze
- Dobre praktyki w edytorze
- Praca z plikami tłumaczeń
- Gdzie znajdują się pliki
- Nadpisy i pierwszeństwo
- Tworzenie własnych kluczy w module i motywie
- Eksport i import paczek
- Wersjonowanie i współpraca zespołowa
- Motyw i warstwa wizualna
- Najczęstsze problemy i dobre praktyki
- Tłumaczenia nie wyświetlają się
- Konflikt moduł vs motyw
- Placeholdery i zmienne
- Języki RTL i znaki specjalne
- Aktualizacje i trwałość zmian
- Wydajność i pamięć podręczna
- Sklepy wielodomenowe
- E-maile: obrazy, tematy i testy
- Integracje z narzędziami CAT i zewnętrzne słowniki
- Kontrola jakości i checklisty
- Narzędzia deweloperskie i logowanie
- Warstwa treściowa poza UI
- Najlepsze praktyki procesu
Sklep internetowy nabiera skrzydeł dopiero wtedy, gdy mówi językiem swoich klientów. W PrestaShop personalizacja treści dla różnych rynków nie wymaga programowania, ale wymaga znajomości narzędzi i kilku dobrych praktyk. W tym poradniku krok po kroku przejdziesz przez dodawanie nowych języków, edycję treści interfejsu, wiadomości e-mail oraz tekstów modułów, a także nauczysz się eksportować i importować paczki tłumaczeń, pracować na plikach i rozwiązywać typowe problemy z widocznością zmian.
Przygotowanie środowiska i podstawowe pojęcia
Co musisz wiedzieć, zanim zaczniesz
Panel tłumaczeń w PrestaShop pozwala zmienić teksty interfejsu sklepu bez dotykania kodu. Zanim wejdziesz do edytora, upewnij się, że masz konto z uprawnieniami do sekcji International oraz dostęp do kopii zapasowej plików i bazy. Przyda się również dostęp do repozytorium projektu, jeśli tłumaczenia chcesz trzymać w plikach i wersjonować je wraz z motywem.
Prace nad tłumaczeniami warto prowadzić w trybie testowym, a dopiero po weryfikacji publikować je na produkcji. Dzięki temu unikniesz sytuacji, w której klienci zobaczą niedokończone teksty lub placeholdery w treści.
Różnice między wersjami 1.6, 1.7 i 8.x
W 1.6 tłumaczenia oparte są o pliki PHP i funkcję {l} w Smarty oraz $this->l w modułach. Od 1.7 i w 8.x działa system oparty o Symfony Translator i domeny tłumaczeń, a pliki mają format XLF. To ważne, bo zmienia lokalizację plików i sposób nadpisywania tekstów. Interfejs w panelu jest podobny, ale nazwy sekcji i ścieżki menu mogą się różnić: w starszych wersjach była to sekcja Localization, nowsze mają International.
Podstawowe pojęcia: język, locale, domena
Język to etykieta, którą widzisz w sklepie, np. Polish. Locale określa wariant języka i formatów, np. pl-PL. Kod ISO (np. pl) odróżnia języki. Domeny tłumaczeń to grupy kluczy, np. Shop.Theme.Catalog lub Admin.Navigation.Header. Zrozumienie tych pojęć ułatwia filtrowanie i namierzanie tekstów, które chcesz zmienić. Dodatkowo pojęcie lokalizacja obejmuje waluty, podatki, jednostki i strefy – te ustawienia znajdziesz obok tłumaczeń i często konfigurujesz równolegle.
Uprawnienia, kopie zapasowe i środowiska
Jeśli korzystasz z ról pracowników, upewnij się, że rola ma dostęp do International oraz Advanced Parameters, by czyścić pamięć podręczną. Przed dużymi zmianami zrób backup. W środowisku developerskim włącz podgląd błędów i ustaw kompilację szablonów na wymuszoną, aby szybciej widzieć efekty.
Gdzie trafiają tłumaczenia
W trybie panelu zmiany zapisywane są w nadpisaniach dla motywu i modułów, tak aby aktualizacje silnika nie kasowały Twoich edycji. W pracy z plikami trafiają do katalogów motywu lub modułów. To bezpieczne podejście, ale wymaga kontroli konfliktów podczas aktualizacji motywu czy rozszerzeń.
Dodawanie nowego języka
Szybka instalacja z paczki
Najprostsza droga to pobranie i zainstalowanie gotowej paczki językowej:
- Przejdź do International › Translations.
- W sekcji Add/Update a language wybierz docelowy język z listy.
- Kliknij dodaj/aktualizuj. Sklep pobierze pliki z repozytorium PrestaShop i zainstaluje tłumaczenia.
- Po zakończeniu odśwież stronę, wejdź do frontu i sprawdź selektor języka.
Jeśli elementy nie są przetłumaczone, to normalne – część treści pochodzi z motywu i modułów, które mogą mieć swoje osobne paczki lub wymagać ręcznej edycji w panelu.
Ręczne dodanie języka w ustawieniach
Gdy paczka nie jest dostępna lub potrzebujesz języka niestandardowego:
- Wejdź w International › Languages.
- Kliknij Add new language i uzupełnij: Name, ISO code, Language code, Date format, Numeral format, kierunek tekstu (LTR/RTL).
- Zapisz i włącz język. Ustaw go jako domyślny w Shop Parameters › General lub w ustawieniach lokalizacji.
Po dodaniu języka możesz przetłumaczyć interfejs, e-maile i treści własne (CMS, produkty) w panelu lub w plikach.
Pakiety lokalizacyjne: waluty, strefy, podatki
Oprócz samych tekstów warto doinstalować pakiet lokalizacyjny dla kraju, w którym używasz języka:
- Przejdź do International › Localization.
- Wybierz kraj i zaznacz elementy do importu: waluty, strefy, podatki, jednostki.
- Zaimportuj. Pomoże to w poprawnym formatowaniu cen, dat oraz podatków.
Nie myl tego z tłumaczeniami UI – pakiet lokalizacyjny nie podmienia tekstów interfejsu, ale przygotowuje sklep pod kątem reguł biznesowych danego rynku.
Edytowanie tłumaczeń w panelu
Wejście do edytora i typy tłumaczeń
Główna ścieżka to International › Translations. Zobaczysz moduł edytora z polami:
- Modify translations – wybierz typ: Back office, Front office, Theme translations, Installed modules translations, Email translations.
- Wybór motywu i języka, którego dotyczy edycja.
- Przyciski eksportu i importu paczek językowych.
Filtry pozwalają zawęzić wynik do brakujących tłumaczeń, konkretnej domeny lub wpisać fragment szukanego klucza.
Tłumaczenia motywu: front sklepu
Aby zmienić widoczne dla klientów teksty z warstwy wizualnej, użyj typu Theme/Front office. Następnie:
- Wybierz aktywny motyw i język.
- Wpisz fragment tekstu, który widzisz na stronie, lub poszukaj po domenie Shop.Theme.*.
- Uzupełnij brakujące pola i zapisz. Jeśli to potrzebne, wymuś odświeżenie szablonów.
Jeżeli korzystasz z własnego motywu potomnego, upewnij się, że edytujesz tłumaczenia dla niego. Dzięki temu zmiany nie znikną po aktualizacji bazowego motywu.
Tłumaczenia panelu administracyjnego
Dla sekcji Back office wybierz odpowiedni typ i język. Teksty panelu są pogrupowane w domeny Admin.*. Jeśli nie możesz znaleźć klucza, zawęź wyniki po module lub komponencie. Pamiętaj, że część komunikatów pochodzi z frameworka i może mieć inne nazwy domen.
Tłumaczenia modułów
Wybierz Installed modules translations, a następnie wskaż moduł na liście. Większość autorów dostarcza tłumaczenia, ale jeśli ich brakuje, uzupełnisz je tu. Zwracaj uwagę na zachowanie placeholderów i zmiennych. To szczególnie ważne w rozbudowanych modułyłach, które budują dynamiczne komunikaty i powiadomienia.
E-maile transakcyjne
W Email translations edytujesz zarówno HTML, jak i wersje tekstowe. Dla 1.7/8.x możesz wskazać motyw e-maili oraz język. Pamiętaj o spójności tematów wiadomości i treści – klient widzi oba. Zmieniaj tylko treści między znacznikami i nie usuwaj tokenów, takich jak {firstname}, {shop_name} czy zmienne smarty – silnik generuje z nich dane zamówienia.
Filtrowanie, szybkie wyszukiwanie i brakujące klucze
Jeśli nie znajdujesz tekstu, który widzisz na stronie, sprawdź, czy nie należy do innej domeny lub modułu. W nowych wersjach wygodny jest filtr Missing translations. Czasem tekst pochodzi z tłumaczeń motywu, a nie z modułu, choć komponent wyświetla go w bloku modułu – warto sprawdzić oba miejsca.
Dobre praktyki w edytorze
- Edytuj i zapisuj sekcjami – łatwo wrócisz do bezpieczeństwa wersji.
- Używaj konsekwentnej terminologii w całym sklepie.
- Testuj różne stany interfejsu: puste koszyki, błędy walidacji, brak produktów.
- Po większym zestawie zmian wyczyść cache i odśwież stronę w trybie prywatnym.
Praca z plikami tłumaczeń
Gdzie znajdują się pliki
W 1.7 i 8.x pliki tłumaczeń znajdują się w formacie XLIFF w następujących miejscach:
- Motyw: /themes/nazwa_motywu/translations/locale.xlf
- Moduł: /modules/nazwa_modułu/translations/locale.xlf
- Motyw dla modułu: /themes/nazwa_motywu/modules/nazwa_modułu/translations/locale.xlf
- Rdzeń: zasoby w katalogach PrestaShopBundle lub /translations – nie edytuj bez potrzeby.
W 1.6 znajdziesz pliki PHP: dla motywu w /themes/nazwa/lang/iso.php, a dla modułów w /modules/nazwa/translations/iso.php. Aktualizacje przenoszą część treści do nowego systemu, ale jeśli utrzymujesz starszy sklep, trzymaj się właściwego formatu.
Nadpisy i pierwszeństwo
PrestaShop stosuje priorytet: tłumaczenia w motywie i jego katalogach modułów mają pierwszeństwo przed domyślnymi w module, a te z kolei nadpisują rdzeń. Dzięki temu najłatwiej trwale modyfikować teksty poprzez pliki w katalogu motywu, co docenisz przy wdrożeniach CI/CD i pracy zespołowej.
Tworzenie własnych kluczy w module i motywie
Jeśli tworzysz własny moduł lub zmieniasz szablon, wstawiaj tłumaczenia poprzez funkcje zgodne z wersją sklepu i określaj domeny zgodnie z konwencją Modules.Nazwa.Admin lub Shop.Theme.Obszar. To ułatwi późniejsze wyszukiwanie i spójność. Dla motywów trzymaj strukturę i pliki w katalogu translations, a statyczne komunikaty w Smarty otaczaj funkcją tłumaczenia z poprawną domeną.
Eksport i import paczek
W International › Translations znajdziesz sekcję Export a language:
- Wybierz język i motyw.
- Kliknij Export – pobierzesz paczkę ZIP z plikami tłumaczeń.
- Dodaj paczkę do repozytorium lub przekaż ją na inne środowisko.
Dla importu użyj Import a language i wskaż paczkę ZIP. Jeśli chcesz, aby pliki trafiły do motywu, przygotuj paczkę z właściwą strukturą katalogów. Ta metoda świetnie sprawdza się przy migracjach i wdrożeniach etapowych.
Wersjonowanie i współpraca zespołowa
Zalecaj trzymanie zmian w repozytorium i przeglądy kodu dla tłumaczeń plikowych. W praktyce:
- Wymuszaj UTF-8 bez BOM w edytorze.
- Ustal konwencję nazw domen tłumaczeń dla projektu.
- Łącz PR-y z linkami do zrzutów ekranu – łatwiej ocenić kontekst.
- Na CI uruchamiaj budowę artefaktów i testy dymne pod kątem brakujących kluczy.
Warto też oznaczać tłumaczenia wymagające rewizji komentarzem w pliku XLIFF. Dzięki temu tłumacze i deweloperzy wiedzą, które ciągi wymagają weryfikacji UX.
Motyw i warstwa wizualna
Własny motyw daje pełną kontrolę nad brzmieniem komunikatów. Aby nie stracić tłumaczeń po aktualizacji, korzystaj z motywu potomnego i umieszczaj pliki w jego katalogach translations oraz modules. W razie zmiany grafiki i layoutu upewnij się, że nowe szablony odwołują się do tych samych kluczy, albo przygotuj migrację tłumaczeń do nowych domen.
Najczęstsze problemy i dobre praktyki
Tłumaczenia nie wyświetlają się
Najczęstszą przyczyną jest pamięć podręczna. Włącz tryb developerski na czas pracy lub po zapisaniu tłumaczeń wyczyść Advanced Parameters › Performance i kliknij Clear cache. Dodatkowo w sekcji Smarty ustaw rekompilację szablonów, aby wymuszać efekt zmian. Jeśli to nie pomaga, sprawdź, czy tekst nie pochodzi z innej domeny niż ta, którą edytowałeś.
Konflikt moduł vs motyw
Tekst w widoku modułu bywa fizycznie zdefiniowany w szablonie motywu, który nadpisuje plik modułu. Rozwiązanie: sprawdź katalog /themes/nazwa/modules/nazwa_modułu i poszukaj tam kluczy tłumaczeń. Edytuj je w panelu jako tłumaczenia modułu dla wybranego motywu, albo w pliku XLIFF w katalogu motywu.
Placeholdery i zmienne
Nie usuwaj i nie zmieniaj kolejności placeholderów typu %s, %d, {firstname}, {date}. Jeśli musisz zmienić szyk zdania, dopasuj go tak, by placeholdery zachowały sens. W przeciwnym razie ryzykujesz błędy czasu wykonania lub niespójne komunikaty.
Języki RTL i znaki specjalne
Dla języków pisanych od prawej do lewej włącz RTL w ustawieniach języka i sprawdź kaskadę stylów motywu. Upewnij się, że pliki fontów wspierają znaki diakrytyczne. Unikaj wklejania formatowanych znaków spoza UTF-8 – trzymaj się czystego tekstu i encji HTML tam, gdzie to konieczne.
Aktualizacje i trwałość zmian
Po aktualizacji modułu niekiedy dochodzi do zmiany domen lub kluczy. Jeśli tłumaczenie zniknęło, sprawdź log zmian modułu i porównaj pliki XLIFF. Trzymając tłumaczenia po stronie motywu, minimalizujesz ryzyko nadpisania przez instalator pakietu. Unikaj edycji plików w katalogach rdzenia – przy kolejnej aktualizacji zostaną nadpisane.
Wydajność i pamięć podręczna
W dużych katalogach produktowych lub przy wielu językach odświeżanie tłumaczeń może chwilę potrwać. Zaplanuj „okna zmian” poza godzinami szczytu i wykorzystuj narzędzia do przeładowania cache warstwy front-end, jeśli korzystasz z CDN. Monitoruj logi po masowym imporcie tłumaczeń.
Sklepy wielodomenowe
W trybie multistore ustaw kontekst odpowiedniego sklepu przed edycją tłumaczeń, zwłaszcza jeśli każdy sklep ma inny motyw. Teksty panelu są wspólne, ale tłumaczenia motywu i e-maili zależą od aktywnego motywu w danym sklepie. Po wdrożeniu przejdź przez każdy sklep i sprawdź, czy selektor języka, e-maile i stronice CMS działają poprawnie.
E-maile: obrazy, tematy i testy
Pamiętaj, aby zaktualizować także wersję tekstową e-maili – część klientów i filtrów antyspamowych zwraca na nią uwagę. Jeśli używasz obrazów w e-mailach, sprawdź ścieżki po eksporcie i imporcie paczek. Wysyłaj testy z poziomu zamówienia lub modułów e-mail, by sprawdzić rzeczywisty wygląd w skrzynkach.
Integracje z narzędziami CAT i zewnętrzne słowniki
Format XLIFF dobrze współpracuje z narzędziami CAT. Jeśli tłumaczy wielu specjalistów, rozważ proces: eksport paczki, praca w narzędziu, import z powrotem i review w środowisku testowym. Utrzymuj glosariusz terminów dla sklepu, aby zachować spójność języka marketingowego i transakcyjnego.
Kontrola jakości i checklisty
- Sprawdź koszyk, checkout, maile zamówienia, zwroty i powiadomienia.
- Przejrzyj menu, stopkę, breadcrumb i komunikaty walidacji.
- Zweryfikuj tłumaczenia atrybutów i cech produktów, jeśli są wyświetlane w filtrach.
- Na mobile upewnij się, że długość tekstów nie psuje layoutu przy zawijaniu wierszy.
Po każdym wdrożeniu odnotuj wersje paczek i zakres zmian. Przyda się to przy debugowaniu oraz jako dokumentacja projektu.
Narzędzia deweloperskie i logowanie
Jeśli w logach widzisz ostrzeżenia o brakującym kluczu tłumaczenia, odtwórz sytuację i zanotuj domenę. Dobre logowanie i etykiety commitów upraszczają późniejszą nawigację po zmianach w repozytorium. Gdy pracujesz na środowisku Docker, upewnij się, że wolumeny zawierają aktualne pliki tłumaczeń i że kontener nie buforuje przestarzałych danych.
Warstwa treściowa poza UI
Pamiętaj, że tłumaczenia interfejsu to tylko część pracy. Strony CMS, opisy produktów, atrybuty, cechy, kategorie i banery wymagają osobnej lokalizacji. Zadbaj o spójność języka, odmianę nazw własnych i dostosowanie jednostek miary. Wykorzystaj listy eksportu i importu CSV dla produktów, aby szybciej wprowadzać wielojęzyczne opisy.
Najlepsze praktyki procesu
- Plan: zdefiniuj zakres, role i narzędzia, zanim zaczniesz.
- Konwencja: stosuj spójne domeny i nazewnictwo kluczy.
- Recenzja: podwójne sprawdzenie językowe i funkcjonalne w stagingu.
- Publikacja: okno wdrożeniowe i monitorowanie błędów.
- Utrzymanie: cykliczne przeglądy po aktualizacjach modułów i motywu.
Trzymając się tych zasad, skrócisz czas wdrożenia tłumaczeń i ograniczysz ryzyko regresji w kolejnych wersjach, a Twoje szablony oraz komunikaty pozostaną spójne na wszystkich stronach i kanałach.