✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

WordPressi teemaõpetus algajatele – 8. osa: Tõlge

11

Selles õppetükis õpime, kuidas WordPressis tõlkimine (või muidu tuntud kui i18n) töötab ja kuidas oma mallides vajalikke muudatusi teha. Samuti õpime, kuidas PoEdit õigesti seadistada, et luua meie teema jaoks tõlkefail, mis on valmis tõlkimiseks erinevatesse keeltesse.

Miks vaeva näha tõlketoe lisamisega?

Kõik teemad, vähemalt need, mis on avalikud, et seda saaksid kasutada ka teised inimesed peale arendaja, peaksid olema tõlkimiseks saadaval. Seda nimetatakse rahvusvahelistumiseks (lühidalt i18n) ja see võimaldab inimestel tõlkida teie teemasse lisatud tekste teise keelde.

See toimib nii, et teema autori või pistikprogrammide arendajana mähite kõik oma tekstid (nt "Loe edasi", "Postitusi pole") teatud funktsioonidesse. Need funktsioonid muudavad selle nii, et WordPress saab need üles korjata ja sisestada. tõlge, kui see on olemas. Oma teemasse (või pistikprogrammi) saate iga tõlgitud keele jaoks lisada teatud failitüübiga faile või veenduda, et teised inimesed saavad luua oma tõlke oma keelde.

See on väga kasulik inimestele, kes soovivad kasutada WordPressi ja teie teemat (või pistikprogrammi) teises keeles kui algkeel, milles see on kirjutatud (mis on tavaliselt inglise keel). Kuid seda saab kasutada ka teatud tekstide muutmiseks samas keeles millekski erinevaks.

Kui olete teemast huvitatud, on WordPress Codexil pikk ja hea i18n-i dokumentatsioonijuhend arendajatele.

i18n rakendamine meie teemas

Oleme selle teemaõpetuse seeria eelmises etapis juba teinud esimese osa, kuhu lisasime load_theme_textdomainoma teema seadistusfunktsiooni. Kui unustasite, lisasime selle:

load_theme_textdomain('wptutorial', get_stylesheet_directory(). '/lang');

Esimene argument on käepide, see on ainulaadne string, mille abil saate rühmitada kõik teie teemasse kuuluvad tekstid. Korrate seda käepidet iga kord, kui muudate teksti tõlgitavaks. Teine argument ütleb WordPressile, kus tõlkefailid asuvad. Määrasime need asuma langmeie teemakataloogi alamkaustas " ".

Ärge muretsege, kui seda kausta pole või see ei sisalda faile – miski ei jookse kokku. Kui WordPress ei leia kausta ega õigeid tõlkefaile, naaseb see vaikimisi teemas olevatele tekstidele.

Järgmine samm on kogu meie koodi läbimine ja mis tahes tekstiväljundi leidmine, mis peaks olema tõlgitav. Hea tava on veenduda, et katame absoluutselt kõik tekstid. Miski pole tüütum, kui kasutada teemat või pistikprogrammi, mille autor on tekstid kõvasti kodeeritud, muutes tõlkimise või muutmise võimatuks.

Kuidas muuta tekste tõlgitavaks

Kõikide tekstidega me paneme need ühte WordPressi gettext-funktsiooni, mis enamasti on _e()või __(). Esimene on allkriips "e"-ga, mida kasutatakse siis, kui soovite teksti samal ajal kajada. Teine on kaks allkriipsu ja seda kasutatakse siis, kui te ei soovi seda kajada, vaid salvestada või kasutada muutujana.

WordPressil on rohkem gettexti funktsioone, mis teenivad konkreetsemaid eesmärke, näiteks esc_html__(), _n()ja _x()palju muud. Kuid me ei lasku selles õpetuses olevate isikute üksikasjadesse.

Funktsioonidel gettext on kaks parameetrit; esiteks tekst ise ja teiseks käepide, mille määrasite load_theme_textdomain. Sel juhul on see " wptutorial".

Näiteks kui teil on midagi sellist:

echo 'Read more';

Peate selle asendama järgmisega:

_e('Read more', 'wptutorial');

Ja samamoodi muutujasse salvestamiseks;

$myvariable = 'Read more';

See tuleb kirjutada nii:

$myvariable = __('Read more', 'wptutorial');

Nüüd peame leidma oma mallidest kõik tekstid! Kui olete järginud seda õpetust tähega T, pole seda palju. Meil on mõned stringid sees index.phpja mõned single.php.

Tõlketoe lisamine meie teemasse

Alustame index.phpja otsime üles sõnum „Vabandust, postitusi pole", mille lisasime, kui silmus ei sisaldanud ühtegi postitust. Me mähime selle teksti sisse, _e()sest tahame seda ikkagi kajada. Nii et see on see, mida me saame:

Kuna kasutasite _e(), ei tohiks te esilehel või arhiivis värskendamise vajutamisel muutusi näha. Kuid kapoti all on see tekst nüüd tõlgitav!

Sama tekst on meie single.phpja page.php. Värskendage neid samal viisil, nagu tegime aastal index.php. Lisasime veel mõned tekstid single.php, nii et pärast kõigi tekstide tõlgitavaks muutmist näeb see välja järgmine:

Edaspidi kõik tekstid, mille me oma teemasse lisame, mähime need kindlasti sisse __()või _e().

Tõlkefailid

Teema tõlkefailide lisamiseks on kaks võimalust;

  • Esitage .pot-fail
  • või esitage paar .poja .mofailid.

.pot-faili soovitatakse teemade puhul, mida müüte või kingite teistele kasutajatele, kuna selle failiga on väga lihtne uue keele jaoks tõlkefaili genereerida. Nende failide loomine pole aga lihtne (või tasuta). Kui olete tuttav WP-CLI-ga (käsurea WordPress) või Gruntiga, saate järgida WordPressi dokumentatsiooni juhiseid siin. Kui ei, võib teie jaoks olla teine ​​​​alternatiiv.

Failid .poja .motöötavad koos. WordPress nõuab .motekstide tõlkimiseks, kuid see fail ei ole inimloetav. Seetõttu on meil .pofail, mis on meie jaoks loetav. Õige tarkvaraga genereerib see .mofaili alati, kui teete muudatusi.

.poFailide ja puuduseks .moon see, et peate iga keele jaoks looma ühe paari ja kui olete selle mõnda keelde tõlkinud, pole lihtsat võimalust kõiki tõlkeid tühjendada, et teha uus keel.

Redigeerimiseks .potja .pofailide tegemiseks on vaja programmi. Kõige tavalisem on PoEdit. PoEdit on tasuta ja töötab nii iOS-i kui ka Windowsi jaoks. Kuid mõned täiustatud funktsioonid (nt .pot-faili genereerimine) nõuavad kahjuks tasulist versiooni. Kasutame .pooma teema jaoks faili loomiseks tasuta versiooni.

Laadige alla ja installige PoEdit, et järgida ülejäänud õpetust.

PoEditiga meie teema jaoks .po-faili loomine

Ingliskeelse tõlkefaili tegemisel pole tavaliselt mõtet, kui kõik meie teema tekstid on niikuinii ingliskeelsed, kuid selle õpetuse jaoks teen ingliskeelse tõlkefaili.

1 Avage PoEdit ja klõpsake File > New…

2 Teil palutakse valida keel. Valige soovitud keel, näiteks inglise keel.

3 Vajutage Salvesta (Ctrl+S). Otsige üles oma teemakaust ja sisestage /lang/alamkaust. (Kui te ei loonud seda viimases etapis, looge see kohe). Teie faili nimi on kriitiline. Teemade puhul tuleks sellele nimetada ainult teie keelekood. Ameerika inglise keele jaoks oleks see en_US, norra keele jaoks see nb_NO. Googeldage seda või vaadake seda ülevaadet oma keelekoodi leidmiseks. Anname sellele nime en_US.po.

4 Klõpsake menüüs Kataloog > Atribuudid…

5 Esimesel vahekaardil võite sisestada teatud teabe, näiteks oma projekti (teema) nime, või muuta keelt, kuid see pole vajalik. Soovitan säilitada tähestiku UTF-8, kuna see on see, mida me WordPressi jaoks kirjutame.

WordPressi teemaõpetus algajatele – 8. osa: Tõlge

6 Klõpsake vahekaarti Allikateed. Siin peate määratlema, millistest kaustadest peaks fail otsima tõlgitavaid tekste. Teed on suhtelised ja kuna oleme selle juba oma teema alamkausta salvestanud, teame, et see peab minema ühe kataloogi võrra ülespoole. Vajutage kasti Teed all olevat nuppu + ja valige Lisa kaustu. Valige oma teemade kataloog. See peaks lisama tee elemendi "." (minge ühe kausta võrra üles). Kontrollige veelkord, et „Base path” viitaks teie juurteema kataloogile.

WordPressi teemaõpetus algajatele – 8. osa: Tõlge

7 Klikkige järgmisel vahekaardil „Allikate märksõnad”. Siin peate PoEditile ütlema, milliseid funktsioone olete tõlgitavate tekstide jaoks kasutanud (nt __, _e, esc_html_ejne). Iga funktsiooni lisamiseks klõpsake nuppu + ja kirjutage need ilma “()ta”. See on teie otsustada, kas soovite katta kõik oma alused ja lisada kõik WordPressi gettexti funktsioonid, kuid selles õpetuses teame, et oleme kasutanud ainult kahte. Seega lisame kaks elementi; __()ja _e(). Lisage funktsioonid ilma sulgudeta.

WordPressi teemaõpetus algajatele – 8. osa: Tõlge

8 Vajutage nuppu OK.

9 Jääb üle vaid käskida PoEditil, et ta skanniks pakutud teed funktsioonide jaoks, kasutades __()ja _e()(või mis iganes te sisestasite). Seda saate teha, vajutades nuppu "Uuenda koodist". (Windowsi versioonil on nupul tekst, kuid iOS-i versioonil mitte – nii et iOS-i puhul peate vajutama nuppu, mis tavaliselt on tööriistaribal viimane; failiikoon, mille ülaosas on ikoon "uuesti". Klõpsake nuppu "Uuenda koodist" ja peaksite nägema kõiki tekste koos tõlkeliidesega:

WordPressi teemaõpetus algajatele – 8. osa: Tõlge

Tore!

Loodud tõlkefailid

Nüüd saate kasutada PoEditit iga stringi tõlkimiseks, kuid me ei tee seda siin, kuna pole mõtet inglise keelt inglise keelde tõlkida. Ärge unustage faili värskendamiseks ja genereerimiseks nuppu Salvesta .moning iga kord, kui lisate oma teemasse uue teksti, peate uuesti vajutama nuppu "Värskenda koodist". Seejärel kuvatakse teie mallide uued muudatused.

Kui märgite /langoma teemakataloogi kausta alamkausta, peaksite nägema kahte faili; .poäsja loodud fail .moja sama nimega fail, mille genereerisime PoEditi salvestades.

Saate teha en_US.pofailist koopia ja nimetada selle ümber mõneks muuks keelekoodiks. Kuid pidage meeles, et PoEdit ei paku lihtsat viisi kõigi tõlgitud stringide kustutamiseks; sa peaksid ükshaaval tühjendama. See on põhjus, miks see on ebameeldiv kasutajatele, kes soovivad tõlkida teie teemat teise keelde. Nii et kui teil on võimalus .potfaili teha, peaksite seda tegema.

WordPress otsib tõlkefaili sõltuvalt keelest, mis on määratletud administraatori menüüs Seaded> Saidi keel. Kui lisasite mõne muu keele kui inglise keel, saate seda testida, vahetades saidi keele ja vaadata, kas teie tõlge ilmub!

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem