Jak zrobić prawidłową (polską) odmianę informacji o liczbie komentarzy w WordPress?

Jakiś czas temu dostałem pytanie od stałego czytelnika:

W angielskim jest 0 „No Responses”, 1 „One Response”, 2 i więcej „Responses”. W polskim 0 „Bez komentarza”, 1 „1 komentarz”, 2-4 „Komentarze”, 5 i więcej- „Komentarzy”. Nie jest stylistycznie poprawnie pisanie np. „2 komentarzy”, a taką formę można najczęściej spotkać w różnych miejscach w sieci. Ja rozwiązuję ten problem w moich templatkach 0 „Wpisz komentarz”, 1 „Jeden komentarz”, 2 i więcej „Komentarzy: „. Nie wiem, czy jest możliwe zaimplementowanie przedziału 2-4 tak, aby było „komentarze”. Na razie nie spotkałem się tym w żadnej templatce. Próbowałem sam to rozwiązać, ale bez skutku. Może warto o tym napisać?

Spróbujemy rozwiązać ten problem w najprostszy z możliwych sposobów.

Najpierw będziemy sprawdzać ile mamy komentarzy, a potem w zależności od tego w jakim przedziale znajdzie się ta liczba ustawimy odpowiedni format wyświetlania.

Sprawę załatwi poniższy kod:

$num_comments = get_comments_number();
if ( comments_open() ) {
 	if ( $num_comments == 0 ){
 	  	$comments = "Nie ma jeszcze komentarzy";
 	} elseif ( $num_comments == 1 ) {
 	  	$comments = "Jest już pierwszy komentarz";
 	} elseif ( 5 > $num_comments > 1 ) {
 	  	$comments = "Są już " . $num_comments . " komentarze";
 	} else {
 	  	$comments = "Jest już " . $num_comments. " komentarzy";
 	}
        $write_comments = '<a href="' . get_comments_link() .'">'. $comments.'</a>';
} else {
        $write_comments = 'Komentarze są wyłączone';
}

Na koniec wstawiamy i ostylowujemy w odpowiednim miejscu:

<?php echo $write_comments; ?>

Dla zainteresowany więcej informacji w Codex: get_comments_number


Opublikowano

w

,

przez

Komentarze

16 odpowiedzi na „Jak zrobić prawidłową (polską) odmianę informacji o liczbie komentarzy w WordPress?”

  1. Awatar Przemek

    Byłoby super, gdyby to jeszcze opakować translacjami.

    1. Awatar Jakub Milczarek

      @Przemek – Trzeba trochę zmodyfikować pliki językowe i potem dodać zamiast „xyz” -> __(’ xyz’)

  2. […] tego serwisu Follow us on Twitter 88 śledzących RSS  /  Mail 413 czytelników WordPress i liczenie komentarzy po polsku 1 głosuj! WordPress sam z siebie pozwala wyświetlać odmienioną liczbę komentarzy dla […]

  3. Awatar Damian

    Można też tak, że jak n to liczba komentarzy i n = 1 wtedy używamy formy „1 komentarz”, gdy n => <2;4> lub n % 10 => <2;4> to wybieramy formę „% komentarze” a dla reszty „% komentarzy”.

  4. Awatar Łukasz Więcek - Majsterkowo.pl

    Tak trochę nie do końca zadziała to tak, jak powinno. Tzn. błędny jest warunek, że dla >=5 wyświetla się „komentarzy”, bo np. 24 też go spełnia, a powinno być „komentarze” ;)

    1. Awatar Jakub Milczarek

      @Łukasz Więcek – Masz rację – zupełnie o tym zapomniałem ale przyznam szczerze, że nie mam pomysłu, jak to w prosty sposób załatwić…

      1. Awatar Łukasz Więcek - Majsterkowo.pl

        Może stosować te warunki tylko do ostatnich cyfr z ciągu – bo czy to będzie:

        4, 104, 1004, … komentarze
        14, 114, 114, … komentarzy

        Na upartego, jest to do zrobienia. Tylko trzeba by pogłówkować, bo dla małych liczb jest tylko trochę zamieszania, a później, to już schemat się powiela (>=20).

  5. Awatar Tomasz Gąsior

    Tłumacząc angielski motyw WordPressa na polski, zawsze stosuję formę: Komentarze (X). I to najprostsze rozwiązanie sprawy. ;)

    1. Awatar Jakub Milczarek

      @Tomasz Gąsior – Oczywiście to jest najprostsze rozwiązanie ale czasami klienci chcą inaczej :)

  6. Awatar Kamil

    Gdzieś/kiedyś znalazłem i używam do dzisiaj, sprawdza się bardzo dobrze: http://pastebin.com/hgEDAaRG

  7. Awatar Filip

    Może tutaj jeszcze rozmowa z amistad18 może wniesie coś ciekawego do dyskusji:
    http://pl.forums.wordpress.org/topic/prawidlowa-wersja-slowa-komentarze

  8. Awatar rwpb

    Dzięki za zajęcie się tym tematem.
    @Tomasz Gąsior – jest jeszcze prostsze rozwiązanie, można wyświetlać samą liczbę komentarzy w graficznym dymku. Nie trzeba wtedy żadnego tłumaczenia nie tylko na polski, ale też na dowolny język.

    Ja cały czas myślałem jak zrobić „dodatkowe” liczby mnogie w języku polskim, nie wpadłem na liczenie komentarzy. Spróbuję to zaimplementować.

  9. Awatar seq

    a nie lepiej używać „Komentarze: 1” dla każdej opcji się sprawdzi i nie mabłędów :) jak tak zazwyczaj robię, w przeciwnym wypadku jest sporo wątpliwości, pytań i narzekań ze strony klientów internautów etc. :)

    pozdrawiam

  10. […] 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 […]

  11. Awatar Aga

    Chciałam się tu dopisać z rozwiązaniem, ale ostatecznie zdecydowałam, że lepiej pokazac je w formie tutoriala, żeby było jasno i przejrzyście:
    http://webfaces.pl/blog/rozwiazany-problem-liczby-mnogiej-w-tlumaczeniu-motywu-wordpressa/

  12. Awatar marek

    Ja również używał bym prostej wersji. 1.Nie ma jeszcze komentarzy 2. Zostawionych komentarzy i tutaj liczba – każda pasuje :)