Jeden komentarz, dwa komentarze, pięć komentarzy…

Kategoria: Webmastering Data publikacji: 1 komentarz

Jedna osoba, trzy osoby, sześć osób. Jeden obraz, cztery obrazy, pięć obrazów. Jeden komentarz, dwa komentarze, pięć komentarzy. Niestety język polski nie jest tak prosty jak język angielski, gdzie do „comment” wystarczy dodać „s” na końcu, aby otrzymać liczbę mnogą. Jednak jest na to rozwiązanie.

Sprawę dodatkowo komplikuje fakt, iż jeśli mamy w dziesiątkach cyfrę „1”, stosujemy tylko formę dopełniacza („212 komentarzy”, a nie „212 komentarze”).

Programista PHP ze mnie jak z koziej dupy trąba, ale w ramach ćwiczeń postanowiłem napisać prostą funkcję rozwiązującą problem odmiany rzeczownika zależnej od liczby.

function odmiana ( $liczba ) {

  $slowo = array (
   'm' => 'komentarz',  // mianownik [kto? co?], l. poj.
   'b' => 'komentarze', // biernik [kogo? co?], l. mn.
   'd' => 'komentarzy'  // dopełniacz [kogo? czego?], l. mn.
  );

  $dlugosc_ciagu       = strlen($liczba);
  $ostatnia_cyfra      = substr( $liczba, $dlugosc_ciagu-1 );
  $przedostatnia_cyfra = substr( $liczba, $dlugosc_ciagu-2, 1 );

  if ( $liczba == 1 )
    return '1 ' . $slowo['m'];
  elseif ( $ostatnia_cyfra > 1 and $ostatnia_cyfra < 5 and $przedostatnia_cyfra != 1 )
    return $liczba . ' ' . $slowo['b'];
  else
    return $liczba . ' ' . $slowo['d'];

}

Może komuś to się przyda i zaoszczędzi czas. ;-)

Komentarze (1)

  1. winek

    Kiedy on się nauczy pisać kod po angielsku… (stara winkowa śpiewka :D). Dzięki za kodzik. Muszę w końcu porządnie internacjonalizację w pehapie ogarnąć.

Dodaj komentarz