Ako ste napravili sajt u WordPressu i dodali više jezika koristeći Polylang, sada treba da prevedete i sve stringove (reči) koje Polylang nije registrovao automatski da treba da budu prevedeni. U zavisnosti od toga koliko dobro je vaša tema napravljena, Polylang po nekom nepisanom pravilu ne registruje baš ono što vam je potrebno.

Da bi sve prošlo kako treba, ovaj postupak se sastoji od sledećih koraka:

  1. Registracija stringova u Strings translations
  2. Ubacivanje prevoda za registrovane stringove
  3. Kako da Polylang-u bude jasno koje reči treba da prevodi na osnovu registrovanih stringova

Registracija novih stringova u Polylang

Da bi Polylang znao šta treba da prevodi potrebno je registrovati reči koje je potrebno prevoditi. Polylang već podrazumevano povuče sve reči za koje smatra da treba budu prevedene i smesti ih u Strings Translations. Međutim, problem su reči koje Polilang ne vidi kao reči koje treba prevoditi.

Evo primera reči koje sam ja dodao u Strings Translations, a koje Polylang nije odmah povukao, može se videti da su u pitanju bitne reči koje takođe treba prevesti:

Evo šta treba da uradite. Pronađite string koji treba registrovani. Meni je trebalo da registrujem Sign Out, pa sam otišao u header.php (datoteka u temi) i pronašao red koji sadrži:

<?php _e('Sign Out', 'child9'); ?>

Dakle, treba registrovati Sign Out. Kada to saznate idite u functions.php (datoteka u temi) i na dnu dodajte sledeći red:

pll_register_string('child9', 'Sign Out', 'true');

Od tog trenutka, string Sign Out nalazi se u Strings Translations i tu možete dodati prevode za jezike koje ste podesili u Polylang.

Ubacivanje prevoda za registrovane stringove

Idite u Strings Translations i dodajte prevode za novi string:

Prilično jednostavno, ali to nije dovoljno. Sada smo dali do znanja Polylang-u za koje reči treba da nudi prevod koji smo ubacili ali Polylang još uvek ne zna gde treba da prikaže te reči. Potrebno je uraditi sledeće.

Pozivanje prevoda za registrovane stringove

Vratite se u header.php datoteku i tamo gde je stajalo:

<?php _e('Sign Out', 'child9'); ?>

Umesto toga stavite:

<?php echo pll_e('Sign Out')?>

I to je to. Sada ste dali do znanja Polylang-u da treba da reč Sign Out menja u zavisnosti od jezika koji se odabere na sajtu.

Ovaj postupak treba ponoviti za svaku reč-string koji treba prevoditi. Imajte u vidu da se stringovi nalaze u različitim fajlovima teme, dok sve stringove registrujete kroz functions.php datoteku.

Isprobao sam priključke koji bi trebalo da uštede vreme

Isprobao sam dva i ni jedan nije radio, tj. ni jedan string nije bio registrovan automatski. Pronašao sam tri uputstva programera koji objašnjavaju šta treba da se uradi, ali nisam ni tako uspeo jer su uputstva bila pisana programerskim žargonom. Na kraju sam sam iskopao gde i šta treba staviti da bi sve radilo kako treba. I to je zapisano ovde.