Tworzenie motywu z możliwością tłumaczenia

MultilanguageZaskakująco mało osób wie, że motywy dla WordPressa można w bardzo szybki, łatwy i przede wszystkim wygodny sposób tłumaczyć na inne języki. Z wielką przykrością stwierdzam jednak, że niewielu autorów motywów dla WordPressa daje nam taką możliwość. W dzisiejszym wpisie dowiemy się, w jaki sposób sprawić, aby nasz motyw obsługiwał pliki językowe oraz aby był bardzo łatwy w tłumaczeniu przez osoby trzecie. Wbrew pozorom wielojęzyczność, to bardzo ważna kwestia, o której nie powinniśmy zapominać.

Wstawianie wymaganego kodu

Zaczniemy od pliku functions.php naszego motywu, do którego należy wstawić kod odpowiedzialny za obsługę plików językowych. Jeżeli motyw nie posiada takiego pliku, utwórz go, pamiętając jednak o znacznikach PHP.

load_theme_textdomain('wpmediapl', TEMPLATEPATH.'/languages');

$locale = get_locale();
$locale_file = TEMPLATEPATH."/languages/$locale.php";
if (is_readable($locale_file))
require_once($locale_file);

Fragment 'wpmediapl' to pewien rodzaj identyfikatora, którym będziemy się posługiwać w plikach naszego motywu. Możesz zmodyfikować ten fragment, jednak wykorzystując do tego wyłącznie najprostsze znaki. Moim zdaniem, najlepszym wyjściem jest wykorzystanie uproszczonej nazwy motywu.

Modyfikacja wyświetlania tekstu w plikach

Warunkiem ułatwionego tłumaczenia motywu w przyszłości jest odpowiednie oznaczenie tekstu w plikach źródłowych. Poniższym sposobem należy wyświetlać każdy tekst, który może zostać przetłumaczony. Dotyczy to akapitów, krótkich nazw, linków, po prostu wszystkiego.

Uwaga: Jeżeli jesteś bardziej zaawansowanym autorem motywów, zainteresuj się wykorzystywaniem tej metody tłumaczenia dla funkcji związanych z datą. Oznaczając parametry jako możliwych do przetłumaczenia możesz znacznie ułatwić korzystanie z motywu w krajach, gdzie obowiązuje np. czas 12 godzinny, czy niestandardowy format domyślnej daty.

<?php _e("The page you're looking for doesn't exist", "wpmediapl"); ?>
<?php the_content(__('Read more...', "wpmediapl")); ?>

Użycie powyższego kodu oznacza, że zawarty w nich tekst będzie można w późniejszym etapie przetłumaczyć. Dodatkowo proszę zwrócić uwagę na identyfikator "wpmediapl", który powinien być identyczny z tym wymienionym w poprzednim punkcie.

Funkcja _e() służy do oznaczania prostych elementów, natomiast funkcja __() służy do oznaczania elementów już zagnieżdżonych w innych funkcjach.

Uwaga: W oryginalnych plikach motywu zaleca się korzystanie wyłącznie z języka angielskiego. Jeżeli sam korzystasz z innego języka, powinieneś samodzielnie przetłumaczyć później swój motyw.

Generowanie arkusza tłumaczeń

Gdy wszystkie elementy są już odpowiednio oznaczone, należy wygenerować pewnego rodzaju indeks, zawierający wszystkie frazy wykorzystane w naszym motywie. Oczywiście możesz ten plik napisać ręcznie, lecz jest to bardzo męczące i nie trudno wtedy o pomyłkę. Skorzystamy więc z odpowiedniego, darmowego generatora plików .po online.

Przejdźmy więc na stronę generatora. W polu formularza wprowadź plik .zip zawierający wszystkie pliki źródłowe motywu. Generator automatycznie rozpakuje archiwum i przeskanuje pliki w poszukiwaniu naszych fragmentów.

Wykorzystanie pliku .po

W zasadzie na tym etapie nasza praca dobiega końca. Wygenerowany plik .po wystarczy dołączyć do plików naszego motywu, dzięki czemu będzie on mógł zostać wykorzystany przez tłumaczy. Dodatkowo nie musimy wysyłać całego motywu do tłumacza. Jemu do poprawnej pracy wystarczy tylko ten jeden plik.

Tłumaczenie motywu

W celu przetłumaczenia motywu na inny język należy wykorzystać wygenerowany wcześniej plik .po. Otwórz go edytorem obsługującym ten format (np. programem PoEdit). Dzięki tej aplikacji będziemy mogli wygenerować plik .mo dla pojedynczego języka tłumaczenia motywu. Dalej umieszczając wygenerowany plik np. pl_PL.mo w katalogu languages naszego motywu, WordPress automatycznie załaduje polskie tłumaczenie i od razu zastosuje nasz język.

Nazwa ładowanego pliku językowego to nic innego jak język zdefiniowany w pliku konfiguracyjnym wp-config.php.

Podsumowanie

To wszystko. Od teraz nasz motyw może zostać przetłumaczony na inne języki. Mam nadzieję, że chociaż garstka autorów zadba od dzisiaj o wielojęzyczność swoich motywów, bo na prawdę warto.

  • Blip
  • Twitter
  • Flaker
  • Śledzik
  • Grono
  • OSnews.pl
  • Facebook
  • Wykop
  • Google Bookmarks
  • del.icio.us

About pavobe

Miłośnik wszelkich poczynań grupy Automattic. Jednocześnie główny autor bloga WPMedia.pl.
This entry was posted in Development, Nowe możliwości, Porady and tagged , , , , . Bookmark the permalink. Follow any comments here with the RSS feed for this post.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

*

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

CommentLuv Enabled