{"id":233730,"date":"2023-02-20T12:03:00","date_gmt":"2023-02-20T09:03:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233730"},"modified":"2022-11-11T12:04:37","modified_gmt":"2022-11-11T09:04:37","slug":"wordpressi-teemaopetus-algajatele-8-osa-tolge","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/wordpressi-teemaopetus-algajatele-8-osa-tolge\/","title":{"rendered":"WordPressi teema\u00f5petus algajatele \u2013 8. osa: T\u00f5lge"},"content":{"rendered":"\n<p>Selles \u00f5ppet\u00fckis \u00f5pime, kuidas WordPressis t\u00f5lkimine (v\u00f5i muidu tuntud kui i18n) t\u00f6\u00f6tab ja kuidas oma mallides vajalikke muudatusi teha. Samuti \u00f5pime, kuidas PoEdit \u00f5igesti seadistada, et luua meie teema jaoks t\u00f5lkefail, mis on valmis t\u00f5lkimiseks erinevatesse keeltesse.<\/p>\n<h2>Miks vaeva n\u00e4ha t\u00f5lketoe lisamisega?<\/h2>\n<p>K\u00f5ik teemad, v\u00e4hemalt need, mis on avalikud, et seda saaksid kasutada ka teised inimesed peale arendaja, peaksid olema t\u00f5lkimiseks saadaval. Seda nimetatakse rahvusvahelistumiseks (l\u00fchidalt i18n) ja see v\u00f5imaldab inimestel t\u00f5lkida teie teemasse lisatud tekste teise keelde.<\/p>\n<p>See toimib nii, et teema autori v\u00f5i pistikprogrammide arendajana m\u00e4hite k\u00f5ik oma tekstid (nt &quot;Loe edasi&quot;, &quot;Postitusi pole&quot;) teatud funktsioonidesse. Need funktsioonid muudavad selle nii, et WordPress saab need \u00fcles korjata ja sisestada. t\u00f5lge, kui see on olemas. Oma teemasse (v\u00f5i pistikprogrammi) saate iga t\u00f5lgitud keele jaoks lisada teatud failit\u00fc\u00fcbiga faile v\u00f5i veenduda, et teised inimesed saavad luua oma t\u00f5lke oma keelde.<\/p>\n<p>See on v\u00e4ga kasulik inimestele, kes soovivad kasutada WordPressi ja teie teemat (v\u00f5i 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.<\/p>\n<p>Kui olete teemast huvitatud, on WordPress Codexil pikk ja hea <a href=\"https:\/\/codex.wordpress.org\/I18n_for_WordPress_Developers\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">i18n-i dokumentatsioonijuhend arendajatele<\/a>.<\/p>\n<h2>i18n rakendamine meie teemas<\/h2>\n<p>Oleme selle teema\u00f5petuse seeria <a href=\"http:\/\/awhitepixel.com\/blog\/wordpress-theme-tutorial-for-beginners-part-7-theme-setup-and-featured-images\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">eelmises etapis<\/a> juba teinud esimese osa, kuhu lisasime <code>load_theme_textdomain<\/code>oma teema seadistusfunktsiooni. Kui unustasite, lisasime selle:<\/p>\n<pre><code>load_theme_textdomain('wptutorial', get_stylesheet_directory(). '\/lang');<\/code><\/pre>\n<p>Esimene argument on k\u00e4epide, see on ainulaadne string, mille abil saate r\u00fchmitada k\u00f5ik teie teemasse kuuluvad tekstid. Korrate seda k\u00e4epidet iga kord, kui muudate teksti t\u00f5lgitavaks. Teine argument \u00fctleb WordPressile, kus t\u00f5lkefailid asuvad. M\u00e4\u00e4rasime need asuma <code>lang<\/code>meie teemakataloogi alamkaustas &quot; &quot;.<\/p>\n<p>\u00c4rge muretsege, kui seda kausta pole v\u00f5i see ei sisalda faile \u2013 miski ei jookse kokku. Kui WordPress ei leia kausta ega \u00f5igeid t\u00f5lkefaile, naaseb see vaikimisi teemas olevatele tekstidele.<\/p>\n<p>J\u00e4rgmine samm on kogu meie koodi l\u00e4bimine ja mis tahes tekstiv\u00e4ljundi leidmine, mis peaks olema t\u00f5lgitav. Hea tava on veenduda, et katame absoluutselt k\u00f5ik tekstid. Miski pole t\u00fc\u00fctum, kui kasutada teemat v\u00f5i pistikprogrammi, mille autor on tekstid k\u00f5vasti kodeeritud, muutes t\u00f5lkimise v\u00f5i muutmise v\u00f5imatuks.<\/p>\n<h2>Kuidas muuta tekste t\u00f5lgitavaks<\/h2>\n<p>K\u00f5ikide tekstidega me paneme need \u00fchte WordPressi gettext-funktsiooni, mis enamasti on <code>_e()<\/code>v\u00f5i <code>__()<\/code>. Esimene on allkriips &quot;e&quot;-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\u00f5i kasutada muutujana.<\/p>\n<p>WordPressil on rohkem gettexti funktsioone, mis teenivad konkreetsemaid eesm\u00e4rke, n\u00e4iteks <code>esc_html__()<\/code>, <code>_n()<\/code>ja <code>_x()<\/code>palju muud. Kuid me ei lasku selles \u00f5petuses olevate isikute \u00fcksikasjadesse.<\/p>\n<p>Funktsioonidel gettext on kaks parameetrit; esiteks tekst ise ja teiseks k\u00e4epide, mille m\u00e4\u00e4rasite <code>load_theme_textdomain<\/code>. Sel juhul on see &quot; <code>wptutorial<\/code>&quot;.<\/p>\n<p>N\u00e4iteks kui teil on midagi sellist:<\/p>\n<pre><code>echo 'Read more';<\/code><\/pre>\n<p>Peate selle asendama j\u00e4rgmisega:<\/p>\n<pre><code>_e('Read more', 'wptutorial');<\/code><\/pre>\n<p>Ja samamoodi muutujasse salvestamiseks;<\/p>\n<pre><code>$myvariable = 'Read more';<\/code><\/pre>\n<p>See tuleb kirjutada nii:<\/p>\n<pre><code>$myvariable = __('Read more', 'wptutorial');<\/code><\/pre>\n<p>N\u00fc\u00fcd peame leidma oma mallidest k\u00f5ik tekstid! Kui olete j\u00e4rginud seda \u00f5petust t\u00e4hega T, pole seda palju. Meil on m\u00f5ned stringid sees <code>index.php<\/code>ja m\u00f5ned <code>single.php<\/code>.<\/p>\n<h2>T\u00f5lketoe lisamine meie teemasse<\/h2>\n<p>Alustame <code>index.php<\/code>ja otsime \u00fcles s\u00f5num \u201eVabandust, postitusi pole&quot;, mille lisasime, kui silmus ei sisaldanud \u00fchtegi postitust. Me m\u00e4hime selle teksti sisse, <code>_e()<\/code>sest tahame seda ikkagi kajada. Nii et see on see, mida me saame:<\/p>\n<pre><code>...\n} else {\n    ?&gt;&lt;p&gt;&lt;?php _e('No posts, sorry.', 'wptutorial'); ?&gt;&lt;\/p&gt;&lt;?php\n}\n...<\/code><\/pre>\n<p>Kuna kasutasite <code>_e()<\/code>, ei tohiks te esilehel v\u00f5i arhiivis v\u00e4rskendamise vajutamisel muutusi n\u00e4ha. Kuid kapoti all on see tekst n\u00fc\u00fcd t\u00f5lgitav!<\/p>\n<p>Sama tekst on meie <code>single.php<\/code>ja <code>page.php<\/code>. V\u00e4rskendage neid samal viisil, nagu tegime aastal <code>index.php<\/code>. Lisasime veel m\u00f5ned tekstid <code>single.php<\/code>, nii et p\u00e4rast k\u00f5igi tekstide t\u00f5lgitavaks muutmist n\u00e4eb see v\u00e4lja j\u00e4rgmine:<\/p>\n<pre><code>...\n        &lt;?php the_category(); ?&gt;\n        &lt;p&gt;&lt;?php _e('Posted', 'wptutorial'); ?&gt;: &lt;?php the_date(); ?&gt; &lt;?php _e('at', 'wptutorial'); ?&gt; &lt;?php the_time(); ?&gt;&lt;\/p&gt;\n        &lt;p&gt;&lt;?php _e('Author', 'wptutorial'); ?&gt;: &lt;?php the_author(); ?&gt;&lt;\/p&gt;\n    &lt;\/article&gt;\n    &lt;?php endwhile;\n} else {\n    ?&gt;&lt;p&gt;&lt;?php _e('No posts, sorry.', 'wptutorial'); ?&gt;&lt;\/p&gt;&lt;?php\n}\n\u00a0\n...<\/code><\/pre>\n<p>Edaspidi k\u00f5ik tekstid, mille me oma teemasse lisame, m\u00e4hime need kindlasti sisse <code>__()<\/code>v\u00f5i <code>_e()<\/code>.<\/p>\n<h2>T\u00f5lkefailid<\/h2>\n<p>Teema t\u00f5lkefailide lisamiseks on kaks v\u00f5imalust;<\/p>\n<ul>\n<li>Esitage <code>.pot<\/code>-fail<\/li>\n<li>v\u00f5i esitage paar <code>.po<\/code>ja <code>.mo<\/code>failid.<\/li>\n<\/ul>\n<p><code>.pot<\/code>-faili soovitatakse teemade puhul, mida m\u00fc\u00fcte v\u00f5i kingite teistele kasutajatele, kuna selle failiga on v\u00e4ga lihtne uue keele jaoks t\u00f5lkefaili genereerida. Nende failide loomine pole aga lihtne (v\u00f5i tasuta). Kui olete tuttav WP-CLI-ga (k\u00e4surea WordPress) v\u00f5i Gruntiga, saate j\u00e4rgida <a href=\"https:\/\/codex.wordpress.org\/I18n_for_WordPress_Developers#POT_files\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPressi dokumentatsiooni juhiseid siin<\/a>. Kui ei, v\u00f5ib teie jaoks olla teine \u200b\u200b\u200b\u200balternatiiv.<\/p>\n<p>Failid <code>.po<\/code>ja <code>.mo<\/code>t\u00f6\u00f6tavad koos. WordPress n\u00f5uab <code>.mo<\/code>tekstide t\u00f5lkimiseks, kuid see fail ei ole inimloetav. Seet\u00f5ttu on meil <code>.po<\/code>fail, mis on meie jaoks loetav. \u00d5ige tarkvaraga genereerib see <code>.mo<\/code>faili alati, kui teete muudatusi.<\/p>\n<p><code>.po<\/code>Failide ja puuduseks <code>.mo<\/code>on see, et peate iga keele jaoks looma \u00fche paari ja kui olete selle m\u00f5nda keelde t\u00f5lkinud, pole lihtsat v\u00f5imalust k\u00f5iki t\u00f5lkeid t\u00fchjendada, et teha uus keel.<\/p>\n<p>Redigeerimiseks <code>.pot<\/code>ja <code>.po<\/code>failide tegemiseks on vaja programmi. K\u00f5ige tavalisem on <a href=\"https:\/\/poedit.net\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PoEdit<\/a>. PoEdit on tasuta ja t\u00f6\u00f6tab nii iOS-i kui ka Windowsi jaoks. Kuid m\u00f5ned t\u00e4iustatud funktsioonid (nt <code>.pot<\/code>-faili genereerimine) n\u00f5uavad kahjuks tasulist versiooni. Kasutame <code>.po<\/code>oma teema jaoks faili loomiseks tasuta versiooni.<\/p>\n<p>Laadige alla ja installige PoEdit, et j\u00e4rgida \u00fclej\u00e4\u00e4nud \u00f5petust.<\/p>\n<h2>PoEditiga meie teema jaoks .po-faili loomine<\/h2>\n<p>Ingliskeelse t\u00f5lkefaili tegemisel pole tavaliselt m\u00f5tet, kui k\u00f5ik meie teema tekstid on niikuinii ingliskeelsed, kuid selle \u00f5petuse jaoks teen ingliskeelse t\u00f5lkefaili.<\/p>\n<p>1 Avage PoEdit ja kl\u00f5psake File &gt; New\u2026<\/p>\n<p>2 Teil palutakse valida keel. Valige soovitud keel, n\u00e4iteks inglise keel.<\/p>\n<p>3 Vajutage Salvesta (Ctrl+S). Otsige \u00fcles oma teemakaust ja sisestage <code>\/lang\/<\/code>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 <code>en_US<\/code>, norra keele jaoks see <code>nb_NO<\/code>. Googeldage seda v\u00f5i vaadake <a href=\"https:\/\/wpastra.com\/docs\/complete-list-wordpress-locale-codes\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">seda \u00fclevaadet<\/a> oma keelekoodi leidmiseks. Anname sellele nime <code>en_US.po<\/code>.<\/p>\n<p>4 Kl\u00f5psake men\u00fc\u00fcs Kataloog &gt; Atribuudid\u2026<\/p>\n<p>5 Esimesel vahekaardil v\u00f5ite sisestada teatud teabe, n\u00e4iteks oma projekti (teema) nime, v\u00f5i muuta keelt, kuid see pole vajalik. Soovitan s\u00e4ilitada t\u00e4hestiku UTF-8, kuna see on see, mida me WordPressi jaoks kirjutame.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152370-61e4d69a10501.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152370-61e4d69a10501.png\" alt=\"WordPressi teema\u00f5petus algajatele \u2013 8. osa: T\u00f5lge\" ><\/a><\/p>\n<p>6 Kl\u00f5psake vahekaarti Allikateed. Siin peate m\u00e4\u00e4ratlema, millistest kaustadest peaks fail otsima t\u00f5lgitavaid tekste. Teed on suhtelised ja kuna oleme selle juba oma teema alamkausta salvestanud, teame, et see peab minema \u00fche kataloogi v\u00f5rra \u00fclespoole. Vajutage kasti Teed all olevat nuppu + ja valige Lisa kaustu. Valige oma teemade kataloog. See peaks lisama tee elemendi &quot;.&quot; (minge \u00fche kausta v\u00f5rra \u00fcles). Kontrollige veelkord, et \u201eBase path&#8221; viitaks teie juurteema kataloogile.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152370-61e4d69b261fd.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152370-61e4d69b261fd.png\" alt=\"WordPressi teema\u00f5petus algajatele \u2013 8. osa: T\u00f5lge\" ><\/a><\/p>\n<p>7 Klikkige j\u00e4rgmisel vahekaardil \u201eAllikate m\u00e4rks\u00f5nad&#8221;. Siin peate PoEditile \u00fctlema, milliseid funktsioone olete t\u00f5lgitavate tekstide jaoks kasutanud (nt <code>__<\/code>, <code>_e<\/code>, <code>esc_html_e<\/code>jne). Iga funktsiooni lisamiseks kl\u00f5psake nuppu + ja kirjutage need ilma &#8220;()ta&#8221;. See on teie otsustada, kas soovite katta k\u00f5ik oma alused ja lisada k\u00f5ik WordPressi gettexti funktsioonid, kuid selles \u00f5petuses teame, et oleme kasutanud ainult kahte. Seega lisame kaks elementi; <code>__()<\/code>ja <code>_e()<\/code>. Lisage funktsioonid ilma sulgudeta.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152370-61e4d69c29a5b.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152370-61e4d69c29a5b.png\" alt=\"WordPressi teema\u00f5petus algajatele \u2013 8. osa: T\u00f5lge\" ><\/a><\/p>\n<p>8 Vajutage nuppu OK.<\/p>\n<p>9 J\u00e4\u00e4b \u00fcle vaid k\u00e4skida PoEditil, et ta skanniks pakutud teed funktsioonide jaoks, kasutades <code>__()<\/code>ja <code>_e()<\/code>(v\u00f5i mis iganes te sisestasite). Seda saate teha, vajutades nuppu &quot;Uuenda koodist&quot;. (Windowsi versioonil on nupul tekst, kuid iOS-i versioonil mitte \u2013 nii et iOS-i puhul peate vajutama nuppu, mis tavaliselt on t\u00f6\u00f6riistaribal viimane; failiikoon, mille \u00fclaosas on ikoon &quot;uuesti&quot;. Kl\u00f5psake nuppu &quot;Uuenda koodist&quot; ja peaksite n\u00e4gema k\u00f5iki tekste koos t\u00f5lkeliidesega:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152370-61e4d69d34b4a.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152370-61e4d69d34b4a.png\" alt=\"WordPressi teema\u00f5petus algajatele \u2013 8. osa: T\u00f5lge\" ><\/a><\/p>\n<p>Tore!<\/p>\n<h3>Loodud t\u00f5lkefailid<\/h3>\n<p>N\u00fc\u00fcd saate kasutada PoEditit iga stringi t\u00f5lkimiseks, kuid me ei tee seda siin, kuna pole m\u00f5tet inglise keelt inglise keelde t\u00f5lkida. \u00c4rge unustage faili v\u00e4rskendamiseks ja genereerimiseks nuppu Salvesta <code>.mo<\/code>ning iga kord, kui lisate oma teemasse uue teksti, peate uuesti vajutama nuppu &quot;V\u00e4rskenda koodist&quot;. Seej\u00e4rel kuvatakse teie mallide uued muudatused.<\/p>\n<p>Kui m\u00e4rgite <code>\/lang<\/code>oma teemakataloogi kausta alamkausta, peaksite n\u00e4gema kahte faili; <code>.po<\/code>\u00e4sja loodud fail <code>.mo<\/code>ja sama nimega fail, mille genereerisime PoEditi salvestades.<\/p>\n<p>Saate teha <code>en_US.po<\/code>failist koopia ja nimetada selle \u00fcmber m\u00f5neks muuks keelekoodiks. Kuid pidage meeles, et PoEdit ei paku lihtsat viisi k\u00f5igi t\u00f5lgitud stringide kustutamiseks; sa peaksid \u00fckshaaval t\u00fchjendama. See on p\u00f5hjus, miks see on ebameeldiv kasutajatele, kes soovivad t\u00f5lkida teie teemat teise keelde. Nii et kui teil on v\u00f5imalus <code>.pot<\/code>faili teha, peaksite seda tegema.<\/p>\n<p>WordPress otsib t\u00f5lkefaili s\u00f5ltuvalt keelest, mis on m\u00e4\u00e4ratletud administraatori men\u00fc\u00fcs Seaded&gt; Saidi keel. Kui lisasite m\u00f5ne muu keele kui inglise keel, saate seda testida, vahetades saidi keele ja vaadata, kas teie t\u00f5lge ilmub!<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Saame teada, kuidas WordPressis t\u00f5lkimine (ehk i18n) t\u00f6\u00f6tab ja kuidas tekste t\u00f5lgitavaks muuta. Sisaldab ka juhendit PoEditi kasutamise kohta .po-failide genereerimiseks.<\/p>\n","protected":false},"author":1,"featured_media":224072,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,894,718,894,916,916,1110,842,926,926,842,863,863],"tags":[1165],"class_list":{"0":"post-233730","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-arendaja","8":"category-kood","11":"category-muud","13":"category-n-a","14":"category-opetused","15":"category-teemasid","18":"category-wordpress-4","20":"tag-affiai-et"},"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/233730","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/comments?post=233730"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/233730\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/224072"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=233730"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=233730"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=233730"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}