Užitečné pluginy, návody a šablony pro WordPress CMS

Dokonalý překlad počtu komentářů ve WordPress šabloně

Při překladu WordPress šablony narazíme na problém, jak se vypořádat se skloňováním slova “komentář” při zobrazení počtu komentářů. Oproti angličtině má totiž čeština o jeden možný tvar víc.

Tam kde si angličtina vystačí s No comments, one comment a more comments potřebuje čeština tyto tvatry: “Žádný komentář”, “1 komentář”, “2 komentáře”, “5 komentářů”.

Problém je právě s těmi dvěma komentáři. Způsobů jak tento problém při překladu obejít je jistě více. Já vám představím dva. Jeden je opravdu obezličkou, druhý je propracovanější.

Chytrý překlad

Pro překlad počtu komentářů nám slouží parametry funkce comments_popup_lin­k(). Využití této funkce použité v defaultní šabloně WordPress 2.9:

comments_popup_lin­k(‚No Comments »‘, ‚1 Comment »‘, ‚% Comments »‘);

Jak je vidět, můžeme napřekládat bez problému zobrazení pro žádný komentář i jeden komentář, ale poté máme problém s 2,3,4 a nebo více komentáři. Zvolíme ‘% komentářů” nebo ‘% komentáře’? Ani jedna volba není ta správná. Po troše přemýšlení můžeme naše dilema vyřešit dvojtečkou.

comments_popup_lin­k(‚Žádné komentáře »‘, ‚1 Komentář »‘, ‚Komentářů: % »‘);

Jednoduché, ovšem těžko říct, jak moc elegantní řešení to je.

Využití hooku

Při tomto řešení využijeme toho, že funkce comments_number() zpřístupňuje hook comments_number. Na tento hook pověsíme vlastní funkci, přidávající hodnotu pro počet komentářů v rozpětí od 2 do 4, včetně krajních hodnot.

Stačí vložit následující kód do souboru functions.php:

function czech_comments_num­ber($output, $number){ if ( $number > 1 && $number <= 4) $output = str_replace(‚%‘, number_format_i18n($num­ber), ‚% Komentáře‘); return $output;   }   add_action(‚com­ments_number‘, ‚czech_commen­ts_number‘, 10, 2);

A to poté bude fungovat v kombinaci s voláním funkce commnets_popup_lin­k() z vaší šablony, kde si napřekládáte text pro počet komentářů 0, 1 a více jak 4:

comments_popup_lin­k(‚Žádné komentáře »‘, ‚1 komentář »‘, ‚% komentářů »‘);

Je možné, že naše šablona někde využívá funkci comments_number() přímo, v tom případě i ji budem volat se tejnými parametry jako funci comments_popup_link a i tato funkce vrátí kýžený výsledek.

Reference:

http://codex.wordpress.org/…s_popup_link

http://core.trac.wordpress.org/…template.php

http://codex.wordpress.org/…ments_number

http://codex.wordpress.org/…e/add_action

http://codex.wordpress.org/…pply_filters


Celý příspěvek »

 

OVX.cz 2003 | Přihlásit se
Bez cookies už dnes těžko provozovat plnohodnotný web. Setrváním zde tudíž vyjadřujete souhlas s jejich používáním. Více informací. | Zavřít.