top of page

Pliki językowe z linii poleceń

Zdjęcie autora: Piotr BartczakPiotr Bartczak

Wtyczki i motywy WordPress powinny być napisane po angielsku a do tłumaczenia używać gettext. Dzięki temu można w prosty sposób dodawać tłumaczenia, zupełnie nie ingerując w kod.

Opiszę tutaj jak w narzędziach konsolowych uzyskać wynikowy plik tłumaczenia.

Całość zaczęła się do tego, że kilka razy zdarzyło mi się przeczytać następujące zdanie:

ten poEdit to jest chory w obsłudze w ogóle…

Muszę przyznać że poEdit coć jest dość siermiężnym narzędziem, które jednak doskonale sprawdza się w swojej roli. Sam jednak z niego już nie korzystam. Zamiast tego używam narzędzi z trybu tekstowego.

Opisane tutaj rozwiązanie stosuję od około dwóch lat i zaoszczędziło mi mnóstwo czasu. Przyznam też od razu, że nie jest dla wszystkich, bo nie każdy lubi „babrać” się w shellu.

dlaczego tak?

  1. prostota rozwiązania

  2. lekkość rozwiązania

  3. możliwość oskryptowania

  4. możliwość użycia na serwerze

  5. do edycji plików językowych używam ulubionego edytora tekstowego


wymagane programy i narzędzia

  1. wordpress-i18n

  2. msgmerge

  3. msgfmt

Do generowania pliku pot wykorzystuję dostarczane przez automattic odpowiednie narzędzia, które można pobrać z repozytorium:

svn co http://svn.automattic.com/wordpress-i18n/tools/trunk ~/wordpress-i18n

Co da nam w rezultacie katalog

wordpress-i18n

w naszym domowym, co zostanie za chwile wykorzystane.

Pozostałe dwa punkty, to polecenia należące do pakietu gettext, który dla Ubuntu instalujemy w następujący sposób:

sudo apt-get install gettext

Cały przykład zawiera wszystko co potrzebne żeby wykonać tłumaczenie dla motywu Twenty Ten.

generowanie pliku twentyten.pot

Na początek należy wygenerować plik bazowy na podstawie katalogu zawierającego to co chcemy mieć przetłumaczone.

Składnia dla makepot.php jest następująca:

php makepot.php PROJEKT KATALOG [PLIK]
  1. Jako PROJEKT wybieramy jedną z następujących opcji: generic, wp-core, wp-ms, wp-tz, wp-plugin, wp-theme, bb, mu, bp, rosetta. Dobraną oczywiście do tego co zamierzamy zrobić.

  2. KATALOG naszego projektu.

  3. PLIK jest opcjonalny, jego brak spowoduje wyświetlenie efektu pracy.

Skoro już wszystko wiadomo, to wygenerujmy plik pot dla wybranego motywu:

php -e ~/wordpress-i18n/makepot.php wp-theme twentyten/languages/twentyten.pot

W efekcie otrzymamy gotowy, zawierający wszystkie możliwe do przetłumaczenia frazy. Tworzenie takiego pliku uruchamiamy zawsze po dodaniu czegoś, co wymaga potem tłumaczenia. Praktycznie wykonuję to zawsze po skończonej pracy, a przed ostatecznym commitem.

tworzenie pliku pl_PL.po

Na początku należy wykonać zwykłe kopiowanie i uzupełnić kilka informacji związanych z tym, że jest to tłumaczenia, a nie plik startowy.

cp twentyten.pot pl_PL.po

aktualizacja pliku pl_PL.po

Do aktualizowania zmian potrzebujemy świeżego pliku pot oraz komendy msgmerge:

msgmerge -U pl_PL.po twentyten.pot

edycja pliku pl_PL.po

Ten punkt pozostawię prawie pusty. Każdy z nas ma swój własny, najukochańszy edytor z którego korzysta i nie moją rolą jest przekonywanie kogokolwiek do vima, bo każdy ma prawo błądzić :D

Tak czy inaczej należy wypełnić w pliku pl_PL.po, odpowiednim tłumaczeniem, wszystkie linijki tego typu:

msgstr ""

generowanie pliku pl_PL.mo

Na sam koniec należy wygenerować binarny słownika pl_PL.mo

msgfmt --statistics -v pl_PL.po -o pl_PL.mo

podsumowanie

Nie wiem jak Wy generujecie pliki językowe, ale ja nie znam aktualnie lepszej metody. Jeżeli znasz inną, może lepszą, to napisz mi to koniecznie w komentarzu. Sprawdzę.

Co prawda warto by jeszcze podpiąć aktualizowanie plików po pod hooka w subversion, ale jakoś nigdy na to czasu nie znalazłem.

1 wyświetlenie0 komentarzy

Ostatnie posty

Zobacz wszystkie

Comments


bottom of page