Pliki językowe z linii poleceń

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?

  • prostota rozwiązania
  • lekkość rozwiązania
  • możliwość oskryptowania
  • możliwość użycia na serwerze
  • do edycji plików językowych używam ulubionego edytora tekstowego

wymagane programy i narzędzia

  • wordpress-i18n
  • msgmerge
  • 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]
  • 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ć.
  • KATALOG naszego projektu.
  • 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.

Poprzedni

WordPress 3.5 Release Candidate

Następne

WordPress 3.5 Release Candidate 2 i 3

4 komentarze

  1. Mariusz Kołacz

    No tak tylko że to na Linuksie ;) Przydałaby się instrukcja jak to wykonać z linii poleceń pod Windows.

    Ps. Poedit pod Windowsem sprawdza się wyśmienicie.

  2. @Mariusz Kołacz:

    1. Nie wiem jak wykonać to pod windows, więc niestety nie przygotuję takiej instrukcji.
    2. Poedit pod windows wygląda i działa dokładnie tak samo jak pod linuxem.
  3. Wiem, na Linuksie też mam go. Na Windows Vista niegdyś miałem z nim problemy ale problem rozwiązałem, mimo to metoda z wierszem poleceń jest szybka i jak ktoś lubi taką formę może stosować – w Linuksie wykonywanie takich operacji w terminalu to przecież normalka dla kogoś kto stale pracuje na tym systemie.

  4. Pan ciekawski

    Przydał by się taki poradnik tłumaczenia szablonów które nie mogą mieć .po, .mo i trzeba je wtedy tłumaczyć ręcznie. W tedy to jest na połowę lub cały dzień pracy ja w takich chwilach pomagam sobie ale jak to się mówi dla chcącego nic trudnego. A przecież robię to dla siebie choć raz na rok gdy mi się szablon opatrzy by mieć taki szablon na jaki się uprę i basta. I choć język php coś tam liznąłem to z szablonu html + css nie umiem za chiny ludowe przerobić go pod WP a szkoda ze tak mało jest takich łopatologicznych tłumaczeń gubię się na css. Pozdrawiam serdecznie i sorrka za styl pisowni ale jestem max zmęczony po dzisiejszym dniu w nocy praca i do teraz tłumaczenie ręczne szablonu plus przerabianie go pod siebie itd…

Oparte na WordPress & Theme by Anders Norén