Skloňování

Pokud se má na stránce automaticky vypisovat něco ve stylu „5 nových komentářů“, je třeba řešit skloňování.

Bez správného ohýbání slov by web mohly hyzdit texty typu:

  • 2 nových komentářů
  • Nových komentářů: 1

Skloňování počtu v češtině

Zatímco angličtina rozlišuje mezi jedničkou a vším ostatním (1 comment vs. 2 comments), čeština je v tomto komplikovanější.

  • 1 komentář
  • 2, 3, 4 komentáře
  • 5 a více komentářů

Při psaní českého textu aplikace jsou proto potřeba tři různé tvary.

Skloňování v JavaScriptu

Funkce zajišťující správné skloňování musí zvolit česky korektní tvar na základě počtu. Aby funkce fungovala i pro záporná čísla převádí se počet na číslo kladné – absolutní hodnotu (Math.abs).

function sklonovani(pocet, slova) {
  pocet = Math.abs(pocet);
  if (pocet == 1) return slova[0];
  if (pocet < 5 && pocet > 0) return slova[1];
  return slova[2];
}

Použití je následovné (tvary pro jednotlivé počty se předávají jako pole):

var pocetKomentaru = 5;
alert(
  sklonovani(
    pocetKomentaru, 
    ['komentář', 'komentáře', 'komentářů']
  )
);
webů

Samostatná ukázka

Skloňování slov v PHP

PHP a JS jsou si hodně podobné.

Skloňující funkce tedy bude velmi podobná jako v JavaScriptu.

function sklonovani($pocet, $slova) {
  $pocet = abs($pocet);
  if ($pocet == 1) return $slova[0];
  if ($pocet < 5 && $pocet > 0) return $slova[1];
  return $slova[2];
}

Použití:

echo sklonovani(
  3, // tři komentáře 
  array('komentář', 'komentáře', 'komentářů')
);

Správný tvar slov v CSS

I v prostém HTML/CSS jde skloňování nouzově vyřešit.

Dá-li se zajistit výpis počtu do CSS třídy, správného tvaru slov se docílí vypsáním v CSS vlastností content.

To je všechno. Líbil se vám článek a chcete se dozvědět, až vyjde další?

Sledujte:

 

Připomínky mi pište do komentářů ↓

Generování PDF

Generování PDF

Vytváření PDF dokumentů v JavaScriptu a PHP.

Offline webová stránka

Offline webová stránka

Jak umožnit návštěvníkům stažení celé webové stránky pro prohlížení offline, umístění na CD apod.

Zjištění barvy obrázku

Zjištění barvy obrázku

Jak v JavaScriptu i PHP zjistit hlavní barvu obrázku.

Automatické generování obsahu

Automatické generování obsahu stránky

Automatické generování obsahu HTML stránky v JavaScriptu i PHP.

Výpis náhodného obsahu

Výpis náhodného textu

Jak na stránce náhodně vypsat obrázek, odkaz, reklamu, text nebo cokoliv jiného.

Komentáře