Čeština pro WordPress 3.5.1

Před několika dny vyšla první opravná a bezpečnostní verze WordPress 3.5.1. Čeština vychází teprve dnes (chřipka) a obsahuje pouze několik drobných změn. Doporučujeme neotálet s automatickou aktualizací, pro nové instalace si pak můžete stáhnout kompletní balíček. A pro zajímavost, zatím byla česká verze WordPressu 3.5 použita na téměř 14 tisíc webech. Aktuální česká verze by se [...]

Jak nainstalovat češtinu do WordPressu

Ano, jak všichni správně víte, tak WordPress je pravidelně překládán do češtiny (v poslední době to trochu vázne, ale měl by to být jen dočasný problém). Ovšem, může se stát, že si stáhnete anglickou verzi nebo vám hosting sám vytvoří cizojazyčnou mutaci. Vy si web nastavíte, vložíte články a ejhle, uvědomíte si, že potřebujete nahodit [...]

Překlad šablony Grey

Dnes vám přináším překlad šablony Grey do češtiny. Má dvousloupcový vzhled a je přímo napěchovaná social widgety. Můžete zobrazit vaše poslední tweety nebo fotky z flickru. Samozřejmostí je i facebook like button u každého článku. Všechno si můžete nastavit v administraci, tu jsem ovšem nechal pouze v angličtině, takže pozor. Pokud jste bloger a kamarád [...]

Překlad šablony Melville

Melville je jednoduchá šablona vhodná především pro blogování či žurnalistiku. Co se týče kódu, tak z větší části vychází ze základní Twenty Ten, kterou autoři pouze upravili k obrazu svému. Je to ovšem vidět pouze v samotném zdrojovém kódu, protože pro oko návštěvníka vidí něco úplně jiného. Při čtení ho zaručeně nic nevyruší. Prvky jsou [...]

Překlad šablony Structure Blog

Přináším vám další z řady překladů wordpressáckých free šablon. Tentokrát tu máme černobílý Structure Blog. Jak už z názvů vyplývá hodí se především pro nějaké to osobní psaní než pro obsáhlý magazín. Už v základu počítá s integrací twitteru a facebooku, odkaz na ně je umístěn ve vyhledávacím políčku. Pokud v šabloně objevíte nějakou chybu, [...]

Překlad počtu komentářů

Určitě jste se s tím setkali. Po projití desítek webů s šablonami konečně naleznete takovou, která je natolik levná, že kvůli ní nemusíte posílat svoje poslední spodky na aukro a zároveň se jeví natolik hezky, že se za ní nemusíte ani trochu stydět. Je samozřejmě v angličtině a na nějakou vícejazyčnost vám z vysoka kašle. Ručně tedy upravujete šablonu, řádek po řádce se snažíte přeložit každé anglické slovíčko. Ale ejhle, jakmile narazíte na komentáře, jsou na ně vaše překladatelné schopnosti krátké. Čeština je natolik vymyšlená, že potřebujete hned čtyři verze – žádné komentáře, 1 komentář, 2-4 komentáře a 5 a více komentářů. Šablona vám ale nabízí jen tři možnosti (viz. níže), co tedy dál?

comments_number('Add Comment »','1 Comment »','% Comments »');

Tímto kódem jsou komentáře obvykle vkládány. Zápis se ale může lišit šablonu od šablonu od šablony, ale po chvíli hledání byste ho měli být schopni najít. Abychom se skamarádili s češtinou, tak vytvoříme vlastní funkci, která bude naše komentáře vkládat. Tu vložíme do souboru functions.php, jež je standardní součástí všech šablon.

function pocetKomentaru(){ $pocetKomentaru = get_comments_num­ber(); if(comments_o­pen()){ if($pocetKomentaru == 0) $komentText = "Žádné komentáře"; elseif($pocet­Komentaru == 1) $komentText = "1 komentář"; elseif($pocet­Komentaru < 5) $komentText = $pocetKomentaru . " komentáře"; else $komentText = $pocetKomentaru . " komentářů"; return "<a href='" . get_comments_link() ."'>". $komentText."</a>"; } else return "Komentáře byly vypnuty"; }

Co se ve funkci děje? Nejdřív zjistíme počet komentářů u příspěvku, slušně se WordPressu zeptáme jestli jsou komentáře povolené a následně podle počtu vrátíme příslušný text. Radujme se a slavme, naše funkce je hotová a plně použitelná. Do kódu šablony stačí vložit:

echo pocetKomentaru();

a komentáře se již zobrazují hezky česky.

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