12 maja 2020

Jak przetłumaczyć motyw WordPressa

Zapewne część z was spotyka się z sytuacją, gdy na stronie internetowej prowadzonej w języku polskim widnieją kwiatki typu "Leave a comment" i "Read more". Większość przechodzi nad tym do porządku dziennego, a nawet nie zwraca na to uwagi, ale garstce osób angielskie wstawki uwierają jak sól w oku – szczególnie gdy prowadzą profesjonalną stronę firmową. Jak się tego pozbyć?

Rzadko który motyw WordPressa dostarcza z automatu różne wersje językowe. Z reguły są one przygotowywane w języku angielskim. Natomiast dobrze napisany motyw umożliwia jego samodzielne przetłumaczenie. Kwiatki, o których pisałam wcześniej, są zaszyte w plikach PHP motywu i do ich tłumaczenia potrzeba specjalnych narzędzi.

Wypróbowane przeze mnie metody tłumaczenia motywu to:

  1. Tłumaczenie na podstawie pliku .pot.
  2. Tłumaczenie na podstawie plików motywu.
  3. Tłumaczenie za pomocą wtyczki.

Tłumaczenie motywu na podstawie pliku .pot

Potrzebujesz:

  • pliku .pot swojego motywu,
  • programu PoEdit.

Plik .pot znajdziesz na serwerze w katalogu /wp-content/themes/nazwa-twojego-motywu/languages. Ściągnij go na swój komputer, a następnie otwórz program PoEdit i wybierz opcję "Create New Translation". Wskaż plik .pot, który wcześniej ściągnąłeś z serwera i ustaw "Translation Language" na "Polish (Poland)". Gdy program wczyta plik .pot, twoim oczom ukaże się cała masa słów i zdań wymagających tłumaczenia. Nie trać jednak ducha! Nie wszystko trzeba tłumaczyć – znajdź tylko to (CTRL + F), co kłuje cię w oczy najbardziej. Zapisz plik i przejdź do katalogu, w którym znajduje się plik .pot. Zobaczysz, że zostały utworzone dwa dodatkowe pliki z rozszerzeniami .po.mo. Zmień ich nazwę na nazwa-twojego-motywu-pl_PL.ponazwa-twojego-motywu-pl_PL.mo i wgraj je na serwer do katalogu /wp-content/languages/themes.

Uwaga: nazwa-motywu użyta w plikach .po.mo musi zgadzać się z nazwą motywu w /wp-content/themes. Czyli jeśli twój motyw nazywa się "The Best WordPress Theme Ever!", ale w katalogu widnieje pod nazwą "the-best-wp-theme-ever", to powinieneś użyć tej drugiej nazwy: the-best-wp-theme-ever-pl_PL.mo.

Jeśli wszystkie kroki zostały wykonane poprawnie, przetłumaczone frazy powinny znaleźć się na stronie. Jeśli się nie pojawiają, wyczyść cache i odśwież stronę. Jeśli nadal ich nie ma, sprawdź, czy w pliku .pot nie ma danego zwrotu dwa razy, czy na pewno dobrze nazwałeś pliki i czy wgrałeś je do dobrego katalogu.

Nie mam pliku .pot! Czyli tłumaczenie motywu na podstawie kodu źródłowego

To już jest trochę hardcore, ale jaka satysfakcja!

Potrzebujesz:

  • wszystkich plików swojego motywu,
  • programu PoEdit.

Ściągnij przez FTP wszystkie pliki strony znajdujące się w katalogu /wp-content/themes/nazwa-twojego-motywu. To może trochę potrwać. Otwórz program PoEdit, wybierz "File" → "New" i ustaw "Translation Language" na "Polish (Poland)". Zapisz plik. Na ekranie pojawią się dwie opcje: "Update from POT" i "Extract from sources". Jako że nie mamy pliku .pot, wybieramy drugą opcję. Teraz trzeba wskazać programowi ścieżkę do plików źródłowych motywu i określić, w jaki sposób ma znaleźć frazy do przetłumaczenia.

W zakładce "Sources Paths" wciskamy plus pod okienkiem "Paths", wybieramy "Add Folders..." i wskazujemy ścieżkę do katalogu ze źródłami. Natomiast w zakładce "Sources Keywords" wpisujemy "__" (dwa podkreślniki), "e_", "esc_html_e" i "esc_html__" (z dwoma podkreślnikami na końcu). Dzięki temu program wyłuska z plików źródłowych wszystkie frazy przygotowane do tłumaczenia. Teraz wystarczy przetłumaczyć interesujące nas wyrażenia, zapisać plik, a wygenerowane pliki wgrać na serwer. Uff!

Nie mam pliku .pot! Czyli tłumaczenie motywu za pomocą wtyczki

Oczywiście WordPress nie byłby sobą, gdyby nie ułatwiał życia wtyczkami. Do tłumaczenia wpisów blogowych i treści tworzonych przez użytkownika polecam wtyczkę Polylang. Jej darmowa wersja wystarcza do tłumaczenia treści, ale nawet wersja płatna nie przetłumaczy motywu. Trzeba skorzystać z czegoś innego.

W mojej pracy zetknęłam się z płatną wtyczką WPML, dzięki której możesz przetłumaczyć WSZYSTKO. Wtyczka daje sporo możliwości, ale może się okazać trudna w obsłudze, a czasem płata psikusy. Zetknęłam się z sytuacją, gdy słowo kluczowe WordPressa "page" zostało automatycznie przetłumaczone na "Seite" w języku niemieckim! Efekt był taki, że pewna sekcja strony nie wyświetlała się dla wersji niemieckiej. Zdebugowanie tego problemu zajęło mi kilka godzin i nie wiem, jak ktoś zielony w obszarze stron internetowych mógłby sobie sam poradzić. Mimo wszystko można spróbować i w razie problemów skorzystać z supportu zawartego w cenie wtyczki.