top of page

[rozwiązany] Problem liczby mnogiej w tłumaczeniu motywu WordPressa

Jak poprawnie przygotować motyw WordPressa na obsługę liczby mnogiej

Wpis będzie odpowiedzią do dyskusji, jaka wywiązała się pod artykułem na dev.wpzlecenia dotyczącym prawidłowej odmiany informacji o liczbie komentarzy. Autor artykułu słusznie zwrócił uwagę na potrzebę dbałości o poprawną odmianę słówka „komentarze” na blogu w WordPressie.

Jako rozwiązanie zaprezentował sposób, który sprowadzał sie do wyświetlenia odpowiednio odmienionego tekstu w zależności od liczby komentarzy. Jeden z komentujących zauważył, że zaprezentowany sposób nie obejmuje wszystkich przypadków. Problem jednak jest głębszy. Tworząc motyw, powinniśmy przygotować go tak, aby szybko i poprawnie móc go przetłumaczyć na dowolny język bez ingerencji tłumacza w kod.

Innymi słowy, wszystko to, co wiąże się z lokalizacją powinniśmy wynieść poza kod. Dzięki temu nasz motyw będzie mógł wykorzystać zarówno Polak, jak i przysłowiowy Niemiec i Rusek. Bez względu na to ile form liczby mnogiej występuje w ich ojczystym języku.

Jak poprawnie przygotować motyw WordPressa na obsługę liczby mnogiej – 4 kroki

Można to osiągnąć prosto i bardziej elegancko. Podczas pisania motywu wystarczy pamiętać o wywołaniu odpowiednich funkcji i a potem, przygotowując tłumaczenie, w pliku pl_PL.po podać odpowiednie ustawienia w edytorze translacyjnym, np. w programie poedit. Ale po kolei.

Krok 1: Przygotowanie motywu

1. Motyw na poprawną obsługę liczby mnogiej trzeba wcześniej przygotować. Standardowy motyw WordPressa Twenty Eleven jest dobrym przykładem. W pliku comments.pho znajdziemy kod, który napisany jest zgodnie z zasadami sztuki. Niżej prezentuję nieco uproszczony (w dalszym ciągu poprawny) odpowiednik:

<?php
printf( _n( 'One Comment', '%1$s Comments', get_comments_number(), 'nazwa_motywu' ),
number_format_i18n( get_comments_number() ));
?>

Na uwagę zasługują dwie funkcje:

  1. get_comments_number – zwraca liczbę komentarzy

  2. number_format_i18n( get_comments_number() ) – dzięki tej funkcji w połączeniu z liczbą komentarzy motyw automatycznie wyświetli poprawną odmianę dla liczby mnogiej.

Czary mary? Tak, ale dorośli wiedzą, że magikowi trzeba wcześniej pomóc. Więc pomóżmy…

Krok 2: Przygotowanie kodu obejmującego wszystkie formy liczby mnogiej

Lista kodów dla Gettext PO wg Translate Toolkit & Pootle

Lista kodów dla Gettext PO wg Translate Toolkit & Pootle


Jest taka stronka pt. „Translate Toolkit & Pootle”, która pomaga przeprowadzać lokalizację oprogramowania dla różnych języków świata. Znajdziemy tam tabelkę również dla języka polskiego. Kod podany w tabelce jest swego rodzaju gotowcem (do wykorzystania w programach typu gettext), który uwzględnia wszystkie formy liczby mnogiej w danym języku w zależności od liczby, z którą idzie w parze. Kod ten użyjemy w kolejnym kroku.

Krok 3: Ustawienia w edytorze poedit

Krok 3a. Otwieramy plik pl_PL.po w programie poedit (jeśli nie wiesz jak działa program poedit i w jaki sposób należy go skonfigurować, zapoznaj się z artykułem Jak przetłumaczyć skórkę WP). Wchodzimy do Katalog->Ustawienia i wprowadzamy poniższy kod w pierwszej zakładce, w pole „Formy liczby mnogiej”.

nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2) 

Jeżeli ten kod wygląda dla Ciebie znajomo, to podpowiadam, że mogłeś go zobaczyć w ustawieniach dla plików pl_PL.po/pl_PL.mo motywu Twenty Eleven.

Ustawienia liczby mnogiej w programie poedit

Ustawienia liczby mnogiej w programie poedit


Efekt wykonania tego kroku widzimy na obrazku obok.

Ustawienia słów kluczowych w programie poedit

Ustawienia słów kluczowych w programie poedit


Krok 3b. Wchodzimy do zakładki Słowa kluczowe i dodajemy następujące linie:

  1. _n:1,2

  2. _n_noop:1,2

  3. _nx:1,2

  4. _nx_noop:1,2

Uwaga: każdą z tych linii dodajemy w osobnym wierszu.

Dzięki dodaniu tych linii podczas wykonywania aktualizacji na podstawie źródeł (Katalog -> Aktualizuj na podstawie źródeł) program poedit zaczyta te linie kodu, które dotyczą miejsc w kodzie php, gdzie użyliśmy funkcji _n. Efekt widoczny na ilustacji do kolejnego kroku.

Krok 4: Przetłumaczenie frazy „komentarze” w 3 różnych formach

Fraza One Comment, Comments w poedit

Fraza One Comment, Comments w poedit


Pozostaje najprzyjemniejsza i najciekawsza czynność – wprowadzenie polskich odpowiedników. Wykonujemy aktualizację (Katalog -> Aktualizuj ze źródeł) i widzimy ciekawą rzecz. Dla komentarza „One comment” mamy cały zestaw okienek – zobacz rysunek obok. W polach Forma 0, Forma 1, Forma 2 wpisujemy odpowiednio: 1 komentarz, %1$s Komentarze, %1$s Komentarzy.

I gotowe. Podczas zapisu pliku pl_PL.po, zostanie utworzony plik pl_PL.mo. Oba pliki wrzucamy na serwer do katalogu languages i od tej pory fraza „komentarze” będzie wyświetlać się poprawnie bez względu na to czy jest ich 2, 5 czy 141.

Wpisy o podobnej tematyce

Comments


© 2023 by Agnieszka Brocik Real Estate Consulting. Powered and secured by Wix

bottom of page