Arhiva za tag K2

Problem s prijevodom K2 - riješen!

Na blogu Wordpress Croatia uspio sam pronaći rješenje problema s prijevodom (tekst s rješenjem), tako da sam uzalud izgubio dan i pol na uzaludnim promjenama verzija K2 i isključivanja pluginova, kao i detaljnim pregledavanjem baze.

No, bitno da je sve riješeno ;-)

Iz nepoznatih mi je razloga hrvatski prijevod K2 teme - nestao netragom. Pokušao sam s instalacijom novog K2 (RC4 umjesto RC3), novu verziju prijevoda, postavke na hostingu i slično, no nema napretka. Što je uzrok, nemam pojma jer do prije dva dana je sve funkcioniralo, a jučer i danas više ne funkcionira, iako nisam ništa promijenio.

Ukoliko netko zna što bi mogao biti točan uzrok, neka podijeli. Pregled foruma i guglanje, te pregled bugova na googlecode-u za K2 nisu me učinili ništa pametnijim.

Sitna nadogradnja K2 - link za hr.digg

Kako mi se prilično sviđa čitava ideja oko dvanula servisa, motala mi se ideja po glavi kako efikasno napraviti link za prijavu pojedinog teksta na hr.digg i to bez korištenja plugin-a koji je dostupan na navedenoj stranici (imao sam neke određene probleme s točnim pozicioniranjem linka i kustomizacijom kada sam koristio plugin; moje je znanje programiranja ipak ograničeno, pa nisam uspio srediti kod plugin-a tako da u potpunosti dobijem ono što želim, a vjerujem kako za moje želje postoji i neko jednostavnije rješenje).

Konačno, u općem nedostatku vremena i razloga što se uvijek našlo nešto drugo što bi se moglo ukomponirati u engine bloga (ja sam ipak tehničar po struci; osobno mi je vrlo zanimljivo petljati pod haubom neke mašine do određene razine).

Iako je u dvanula.FAQ dana uputa kako postaviti link za hr.digg; varijabla title se relativno jednostavno dobiva pomoći funkcije the_permalink(); zanimalo me kako doći do varijable description koja je jedna od opcija u linku - ono što sam se domislio nije neka velika pamet, ali bitno da odrađuje posao:

<?php
$id_posta = get_the_ID();
$odabrani_post_id = get_post($id_posta);
$sadrzaj = $odabrani_post_id->post_content;
$description = substr($sadrzaj, 0, 100);
$description = urlencode(strip_tags($description));
?>


<span class=”entry-digg”>
<a href=”http://www.dvanula.com/diggit/?url=<?php the_permalink(); ?>
&title=<?php the_title(); ?>
&description=<?php echo $description; ?>”> hr.digg | prijavi</a>
</span>


Broj 100 u funkciji substr() označava koliko znakova će se uzeti iz string-a i to je u granicama prema onome što se preporuča na dvanula (100-200 znakova). Gornji se kod stavlja u theloop.php i to negdje prije ili poslje funkcije the_content(). Osobno, najboljim mi se činilo staviti link u zaglavlje teksta.

Na ovaj način uspio sam postići da mi se linkovi za prijavu na hr.digg ne pokazuju ispod teksta, već u njegovom zaglavlju, te da se isti ne pojavljuju ispod kratkih objava U par riječi… u sidebar-u. Nisam previše guglao na ovu temu, pa je ovo možda reciklaža već napisanog.
Sve navedeno traži obavezan backup theloop.php i barem osnovno snalaženje u šumi php i html koda. Naravno, sve se radi na vlastitu odgovornost, nesavjesno petljanje po theloop.php može dovesti do ne baš željenih događaja. Ne navodi se bezveze u početku koda komentar:

This is the loop, which fetches entries from your database.

It is a very delicate piece of machinery. Be gentle!

Prijevod K2

Nekoliko puta sam na ovom blogu rekao kako ne volim previše miješati engleski (ili neki drugi strani jezik) s hrvatskim. Još dok sam koristio prošlu WordPress temu, potrudio sam se dosta toga prevesti na hrvatski, pa tako nemam Archives već imam Arhivu i slično. No, da bih to napravio, morao sam vršiti izmjene direktno u PHP kodu, što baš i nije najsretnije rješenje.

WordPress i K2 nude sjajnu mogućnost prevođenja kroz GNU gettext framework, tako da čitav posao lokalizacije može biti obavljen na vrlo jednostavan način i to korištenjem .pot, .po i .mo datoteka, te poEdit programa (koji je opensource i kao takav dostupan bez novčane naknade).

Prije bilo kakvog preuređivanja datoteka, obavezno jest napraviti backup svih datoteka koje se misli mijenjati, kao i backup baze podataka! Nepridržavanjem je moguće upropastiti mjesece i godine pisanja.

K2 tema u svom direktoriju sadrži K2.pot datoteku što je u stvari “katalog” pojmova. Nakon što se napravi download, ova se datoteka učita pomoću poEdit-a, koji tada stvara *.po i *.mo datoteku (ovdje * mijenja bilo koji naziv, osobno sam koristio hr_HR). Nadalje, u poEdit-u se tada vrlo lako piše prijevod svakog pojma kojeg se želi prevesti. Program je dostupan i na hrvatskom jeziku (ipak mu prijevod nije bilo teško napisati ;-) ).

Zatim je potrebno napraviti upload kreirane datoteke *.mo, nakon dovršetka prijevoda i to u osnovni direktorij K2 teme, (npr. /wp-contents/themes/direktorij_k2_teme).

Nakon toga, u wp-config.php, koji se nalazi u osnovnom direktoriju, potrebno je naći redak

define ('WPLANG', '');

i promijeniti ga u

define ('WPLANG', 'hr_HR');

Umjesto hr_HR može ići i neko drugo ime koje je isto kao i ime *.mo datoteke. U PHP naredbu ne stavlja se ekstenzija .mo!

Naravno, ovo nije moj hack ili umotvorina, već uputstvo preuzeto sa službenog K2 foruma. Osobno, htio sam napraviti vlastiti prijevod jer smatram kako dovoljno dobro poznajem hrvatski i engleski jezik, barem za svoje potrebe.

Moj hr_HR.mo dostupan je na zahtjev, kao i eventualni savjeti oko kreiranja prijevoda. Na stranicama hrvatski WordPress (WordPress Croatia) dostupan je hr.mo, odnosno prijevod kompletnog WP, uključujući i verziju 2.3. Prijevod je dobar i vidljiv je uloženi trud. Međutim, ne prevodi baš sve iz K2, pa je možda bolje koristiti k2.pot i dopuniti ono što nedostaje.

Na službenim je stranicama dostupan i kompletan postupak prijevoda, sa svim pojašnjenjima (naravno, Codex je u pitanju).