Įeiti
Visos kompiuterių paslaptys pradedantiesiems ir profesionalams
  • Java žaidimai iš Prince Of Persia serijos mobiliesiems telefonams Atsisiųskite žaidimą Prince of Persia 5 į savo telefoną
  • Atsisiųskite veiksmą Batman: Rise of Android for Android Phone Games Batman
  • Automobilio stiprintuvas - ekonomiškos galimybės sukurti garsą salone Kaip surinkti garso stiprintuvo grandinę
  • Aukštos kokybės stiprintuvas be grįžtamojo ryšio: „The End Millennium“ dviejų pakopų tranzistorinis stiprintuvas
  • Streams World Of Tanks Aces gg l pirmasis tankas
  • Geriausi vidutiniai tankai „World of Tanks“.
  • Atidaryti failą po. Kaip išversti „WordPress“ temas. Sudarytas vertimo failas: .mo

    Atidaryti failą po.  Kaip išversti „WordPress“ temas.  Sudarytas vertimo failas: .mo

    Visi tekstai, kuriuos reikia išversti (dialogai, meniu ir t.t.), išsaugomi PO faile. PO failas yra programos vertimo failas su plėtiniu .po ir su specialia struktūra, kurioje yra: informacija apie kalbą, vertėjas, originalūs dialogai ir jų vertimai. Originalūs dialogai prasideda msgstr, po kurio eina eilutės msgstr„vertimo tekstas“. Informacija apie kalbą ir vertėją yra PO failo pradžioje. Jei dialogui nėra vertimo, išeikite msgstr tuščia. Eilutės, prasidedančios simboliu #, yra komentarai.

    Tuščio vertimo pavyzdys:

    #: src/PackageCommands.cs:57 src/PackageCommands.cs:3181 msgid "Ieškoti atitikties bet kuriai paieškos eilutei" msgstr "Ieškoti atitikties bet kuriai paieškos eilutei"

    Čekų vertimo pavyzdys:

    #: src/PackageCommands.cs:57 src/PackageCommands.cs:3181 msgid "Ieškoti atitikties bet kuriai paieškos eilutei" msgstr "Vyhledat výsledek odpovídající alespoň některému zzcřetěu zzcřet"

    Kas yra POT failai

    POT failas yra vertimo šablonas. Jo struktūra panaši į PO failo struktūrą, tačiau jame yra tik originalus tekstas anglų kalba ir nėra vertėjo ar kalbos informacijos. PO failai sukuriami iš POT failų. Jei PO failus kuriate rankiniu būdu teksto rengyklėje, turite pridėti informacijos apie tikslinę kalbą ir išsaugoti su plėtiniu .po. Jei neteisingai sukursite PO failo antraštę, PO neatliks sintaksės patikrinimo ir statistikoje bus paryškinta purpurine spalva, nurodant neišverstas, neatpažintas eilutes.

    Failo rug.pot pradžia:

    #TIEKANT APRAŠYMO PAVADINIMO. # Autoriaus teisės (C) PAKETO AUTORIŲ TEISIŲ TURĖTOJAS METAI # Šis failas platinamas pagal tą pačią licenciją kaip ir paketas PAKETAS. # PIRMASIS AUTORIUS ,METAI. # #, fuzzy msgid "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To:\n" "POT-Creation-Date: 2006-05-02 20:04- 0400\n" "PO-Peržiūros data: YEAR-MO-DA HO:MI+ZONE\n" "Paskutinis vertėjas: FULL NAME \n" "Kalbos komanda: LANGUAGE \n" "MIME versija: 1.0\n" "Turinio tipas: tekstas/paprastas; charset=CHARSET\n" "Turinio perdavimo kodavimas: 8 bitai\n"

    rug.hu.po failo pradžia:

    # hu.po vertimas į # Peter Breuer , 2003. # Marcel Hilzinger , 2003. # Marcel Hilzinger , 2004. # Szabolcs Varga , 2004, 2005. # Kalmanas Kemenczy "" " n" "PĮ peržiūros data: 2006-06-08 17:26+0200\n" "Paskutinis vertėjas:\n" "Kalbos komanda: \n" "MIME versija: 1.0\n" "Turinio tipas: tekstas/paprastas; charset=UTF-8\n" "Turinio perdavimo kodavimas: 8 bitai\n" "X generatorius: KBabel 1.11.2\n" "Daugiskaitos formos: nplurals=1; daugiskaita=0;\n"

    Kur pradėti versti PO failus

    Lokalizavimui pradėti tereikia teksto rengyklės, su kuria užpildysite tuščias vietas su vertimu msgstr linijos. Jums gali būti patogiau tam naudoti specialias komunalines paslaugas.

    Originalus angliškas tekstas PO failuose, pradedant nuo msgstr pakeisti negalima. Galite pakeisti tik vertimą. Jei originaliame tekste anglų kalba radote klaidą, praneškite apie tai naudodami Bugzilla. Bet koks neteisingas tekstas pirmiausia turi būti pataisytas programos šaltinio kode, o tada sukuriamas naujas POT failas.

    Spartieji klavišai

    Yra du skirtingi sparčiųjų klavišų kūrimo būdai.

    Msgid "&Pridėti..." msgstr "&Pridėjimas"

    Msgid "_Add" msgstr "_Pridėti"

    Vertimo eilutėje galite pasirinkti bet kurį simbolį (t. y. galite pakeisti greitojo klavišo vietą), tačiau jei šaltinio eilutėje naudojamas simbolis „&“, tada vertime turi būti naudojamas simbolis „&“ ( tas pats su „_“). Jei prie eilutės negalite pridėti sparčiojo klavišo, naudokite šį metodą:

    Msgid "&Pridėti..." msgstr "新增(&A)"

    Msgid "_Add" msgstr "新增(_A)"

    Kintamieji

    Visi eilutėje naudojami kintamieji įterpiami vietoje dviejų raidžių sekos, kurios pirmoji vieta yra simbolis „%“, o antroje – raidė arba skaičius. Eilutės, kurioje yra 1 kintamasis, pavyzdys:

    Msgstr "Automatinis konfigūravimas per %s?" msgstr ""

    Kintamieji turi būti vertime, jei jie yra šaltinio eilutėje.

    Stygų formatavimas

    Beveik kiekviename PO faile galite rasti formatavimo eilutes. Daugumoje jų yra HTML žymos, kartais XML žymos arba kita formatavimo kalba. Visos šios eilutės turi būti vertime.

    \n nauja linija
    kai_tekstas miniatiūra
    kai_tekstas kursyvu tekstas

    Daugiskaitos formų vartojimas

    POT failo eilutė, kurioje yra žodžiai, vartojami tiek vienaskaita, tiek daugiskaita (daugiskaita), atsižvelgiant į kintamojo reikšmę.

    Jei įdiegėte savo kompiuteryje antivirusinė programa Gali nuskaityti visus kompiuteryje esančius failus, taip pat kiekvieną failą atskirai. Galite nuskaityti bet kurį failą dešiniuoju pelės mygtuku spustelėdami failą ir pasirinkę atitinkamą failo patikrinimo, ar nėra virusų, parinktį.

    Pavyzdžiui, šiame paveikslėlyje jis paryškintas failas mano-failas.po, tada reikia dešiniuoju pelės mygtuku spustelėti šį failą ir failo meniu pasirinkti parinktį "nuskaityti su AVG". Pasirinkus šią parinktį, AVG Antivirus atsidarys ir nuskaitys failą, ar nėra virusų.


    Kartais dėl to gali įvykti klaida neteisingas programinės įrangos įdiegimas, kuris gali atsirasti dėl diegimo proceso metu iškilusios problemos. Tai gali trukdyti jūsų operacinei sistemai susiekite savo PO failą su tinkama taikomąja programine įranga, darantis įtaką vadinamajai „failų plėtinių asociacijos“.

    Kartais paprasta iš naujo įdiegti „Apache OpenOffice“. gali išspręsti jūsų problemą tinkamai susieję PO su Apache OpenOffice. Kitais atvejais gali kilti problemų dėl failų susiejimo blogas programinės įrangos programavimas kūrėjas ir jums gali tekti susisiekti su kūrėju dėl tolesnės pagalbos.


    Patarimas: Pabandykite atnaujinti Apache OpenOffice į naujausią versiją, kad įsitikintumėte, jog turite naujausius pataisymus ir naujinimus.


    Tai gali atrodyti pernelyg akivaizdu, bet dažnai Problemą gali sukelti pats PO failas. Jei gavote failą el. pašto priedu arba atsisiuntėte jį iš svetainės ir atsisiuntimo procesas buvo nutrauktas (pvz., nutrūko elektra ar dėl kitos priežasties), failas gali būti sugadintas. Jei įmanoma, pabandykite gauti naują PO failo kopiją ir bandykite atidaryti dar kartą.


    Atsargiai: Sugadintas failas gali sukelti papildomos žalos ankstesnei arba esamai jūsų kompiuteryje esančiai kenkėjiškajai programai, todėl svarbu, kad jūsų kompiuteris būtų atnaujintas naudojant naujausią antivirusinę programą.


    Jei jūsų failas yra P.O. susijusių su jūsų kompiuterio aparatine įranga norėdami atidaryti failą, kurio jums gali prireikti atnaujinti įrenginių tvarkykles susijusi su šia įranga.

    Ši problema paprastai siejami su medijos failų tipais, kurios priklauso nuo sėkmingo kompiuterio viduje esančios techninės įrangos atidarymo, pvz. garso arba vaizdo plokštė. Pavyzdžiui, jei bandote atidaryti garso failą, bet negalite jo atidaryti, gali prireikti atnaujinti garso plokštės tvarkykles.


    Patarimas: Jei bandydami atidaryti PO failą gaunate .SYS failo klaidos pranešimas, problema tikriausiai gali būti susijusi su sugadintomis arba pasenusiomis įrenginių tvarkyklėmis kuriuos reikia atnaujinti. Šį procesą galima palengvinti naudojant tvarkyklės atnaujinimo programinę įrangą, tokią kaip DriverDoc.


    Jei veiksmai neišsprendžia problemos ir vis dar kyla problemų atidarant PO failus, tai gali būti dėl to turimų sistemos išteklių trūkumas. Norint tinkamai atidaryti kai kurias PO failų versijas, gali prireikti daug išteklių (pvz., atminties / RAM, apdorojimo galios). Ši problema yra gana dažna, jei naudojate gana seną kompiuterio aparatinę įrangą ir tuo pačiu daug naujesnę operacinę sistemą.

    Ši problema gali kilti, kai kompiuteriui sunku atlikti užduotį, nes operacinė sistema (ir kitos fone veikiančios paslaugos) gali sunaudoja per daug išteklių PO failui atidaryti. Prieš atidarydami nešiojamąjį objektą, pabandykite uždaryti visas savo kompiuteryje esančias programas. Atlaisvinus visus turimus išteklius kompiuteryje bus sudarytos geriausios sąlygos bandant atidaryti PO failą.


    Jei tu atliko visus aukščiau aprašytus veiksmus ir jūsų PO failas vis tiek neatsidarys, gali tekti paleisti įrangos atnaujinimas. Daugeliu atvejų, net naudojant senesnes aparatinės įrangos versijas, apdorojimo galios vis tiek gali pakakti daugumai vartotojų programų (nebent dirbate daug procesoriaus reikalaujančio darbo, pvz., 3D atvaizdavimo, finansinio / mokslinio modeliavimo arba intensyvus daugialypės terpės darbas). Taigi, tikėtina, kad jūsų kompiuteryje nėra pakankamai atminties(paprastai vadinama „RAM“ arba laisvosios kreipties atmintimi), kad atliktų failo atidarymo užduotį.

    Nepaisant to, kad pasaulinė kultūra, atstovaujama Vikipedijos ir Paulo McCartney, tikina, kad Marija turėjo mažą ėriuką, aštuntadalyje žemės jie ir toliau tiki, kad iš tikrųjų „Marija turėjo ėriuką“. Kas iš tikrųjų buvo su Marija ir kaip tai užrašyti įvairiomis pasaulio kalbomis? Pabandykime tai išsiaiškinti (ir suprasti, ką apie tai galvoja japonai) kartu su mūsų mėgstamu Python ir jo integruotu moduliu, skirtu daugiakalbiams vertimams palaikyti gettext.

    Sudarytas vertimo failas: .mo

    Taigi, mes išvertėme eilutes savo programoje. Veltui, beje. gettext skirtas išimtinai išversti ištisus paruoštus sakinius, o jame pavojinga versti atskirus žodžius ir sakinių šablonus... (pavyzdžiui, gettext visiškai nepalaiko atvejų ir lyties ir kažkaip tik palaiko skirtumą tarp vienaskaitos ir daugiskaita, taigi, norėdami pakeisti Mariją „Tanya“ arba „Sveta“, turėsite atsižvelgti į kiekvieną galimą originalaus vardo panaudojimo atvejį.) Na, o, mūsų atveju tai nėra svarbu. Dabar mūsų užduotis kitokia: paruošti vertimo failą naudojimui.

    Naudoti šaltinio teksto failą būtų nepatogu dėl našumo priežasčių (programoms, kuriose yra daug verčiamo teksto), todėl gettext sistema naudoja failus, sukompiliuotus į specialų formatą. Kompiliavimui galime naudoti įrankį msgfmt iš paketo gettext arba msgfmt.py iš Python paketo (į Debianą panašiuose platinimuose jis yra paketo python2.5-examples dalis). Naudokime antrąjį:

    Msgfmt.py mary.po

    Taip, matome failą mary.mo. Skirtingai nuo mary.po, jis aiškiai nėra skirtas rankiniam redagavimui.

    Katalogo struktūra ir programos paleidimas

    Jei ruoštume programą diegimui paslaugų kataloguose, sukurtume kažką panašaus į šią hierarchiją (Debian Linux atveju): sistemos katalogas /usr/share/locale, su pakatalogiais skirtingoms kalboms - ru, en ir tt .; juose - LC_MESSAGES kataloge, o ten jau - toks failas kaip mary.mo (su kuo unikalesniu pavadinimu, kad netrukdytų kitoms programoms). Bet mūsų mokymo atveju mes tiesiog savo kataloge sukursime lokalės pakatalogius, jame sukursime ru/LC_MESSAGES pakatalogius ir įdėsime mary.mo į paskutinį.

    Dabar pagaliau pridėkite gettext palaikymą prie mūsų programos:

    #!/usr/bin/python
    importuoti gettext

    Gettext.install("mary", "./locale", unicode=True)

    Vardas = _("Marija")
    gyvūnas = _("ėriena")

    Spausdinti _("%s turėjo šiek tiek %s") % (vardas, gyvūnas)

    Kas pasikeitė? Mes importavome gettext modulį (na, tai akivaizdu). Mes taip pat įdiegėme funkciją _() į globalią programos erdvę, kuri, norėdama išversti eilutes pakatalogyje./locale (antrasis argumentas), suras katalogą su dabartine lokale (tas pats pakatalogis ru) ir pakatalogis LC_MESSAGES ieškos unikodo (trečias argumentas ) failo mary.mo programos mary vertimo (pirmasis argumentas).

    Ką reiškia "įdiegta"? Faktas yra tas, kad atlikę šį veiksmą galime importuoti kitus savo programos modulius, o funkcija _() juose jau bus apibrėžta.

    Pradedame savo programą...

    1:/tmp/mary> ./mary.py
    Mary turėjo mažą ėriuką

    Taip. Kažkas panašaus į tai.

    Premija

    Pagal „Google“ vertėją .po failas japonų kalba atrodytų maždaug taip:
    msgstr ""
    msgstr ""
    "Turinio tipas: tekstas/paprastas; charset=UTF-8\n"

    Msgstr "Marija"
    msgstr "メアリー"

    Msgstr "ėriena"
    msgstr "子羊"

    Msgstr "%s turėjo šiek tiek %s"
    msgstr "%sの%sいた"

    O norint normaliai palaikyti japonų kalbą (be rusų), paskutinę kodo eilutę turėsime pakeisti į
    print (_("%s turėjo šiek tiek %s") % (vardas, gyvūnas)).encode("UTF-8")

    Šiame straipsnyje kalbėsime apie tai, kaip sukurti ir prijungti vertimo failus bei kaip vėliau išversti tekstą įskiepiuose ir temose. Taip pat čia trumpai apžvelgiau keletą teorinių punktų, dažniausiai daromas klaidas ir kaip dirbti su Poedit programa. Na, aš duosiu jums patarimų dėl vertimų.

    Ką išversti?

    Prieš pereidami prie vertimo, nuspręskime, ką turime išversti, nes tai turi įtakos tai, kaip turime išversti.

    Temos / papildinio vertimas iš „WordPress“ katalogo

    Tokiam vertimui reikia naudoti svetainę translate.wordpress.org. Ką reikėtų daryti:

    1. Prisijungti.
    2. Pasirinkite norimą vertimo kalbą
    3. Raskite papildinį / temą, kurią norite išversti.
    4. Ir išverskite jį tiesiai svetainėje.
    5. Kai vertimas bus patvirtintas, „WordPress“ svetainės administravimo srityje atnaujinsite papildinio / temos vertimą.

    6. Atnaujinkime. Vertimas atliktas!

    Pastaba: ne visi papildiniai iš katalogo palaiko vertimą per translate.wordpress.org. Tokiais atvejais reikia versti kaip įprasta (skaitykite kitą pastraipą).

    Temos / papildinio vertimas NE iš „WordPress“ katalogo

    Šiuo atveju jums reikia:

    Temos / papildinio vertimas

    Kaip tai daroma ir kaip tai veikia, aprašyta toliau skyriuose „1 etapas“ ir „2 etapas“.

    Jei planuojate įtraukti papildinį / temą į „WordPress“ katalogą. Labai rekomenduojama atlikti vertimą per translate.wordpress.org. Skaitykite daugiau apie tai (anglų kalba) (išsami informacija šiame straipsnyje neaprašyta).

    Kaip vertimas veikia „WordPress“ (teorija)

    Turime pradėti nuo svarbiausio dalyko: vertimo failų: .mo .po .pot . PHP veikia tik su .mo failais, .po ir .pot – tai žmonėms ir vertimo programoms.

    „WordPress“ versti naudojamas tik .mo failas. Puslapio generavimo metu šis failas įtraukiamas – iš jo sukuriamas PHP objektas su eilučių pertraukomis ir įdedamas į atmintį. Be to, naudojant vertimo funkcijas kode, prašomos eilutės vertimas paimamas iš šio objekto. Štai kaip viskas paprasta.

    Taigi, norėdami išversti eilutes temoje / papildinyje, mums reikia:

    Svarbu suprasti, kad jungiant .mo failą jam suteikiamas identifikatorius (parametras $domain) ir toks identifikatorius (domenas) nurodomas eilučių vertimo funkcijoms. Domenas susieja .mo failą su vertimo funkcijomis. Tie. verčiant funkcijoje nurodome iš kurio MO failo reikia gauti nurodytos eilutės vertimą. Pavyzdys:

    // prijungti MO vertimo failą ir nurodyti jo ID - mydomain: load_theme_textdomain("manodomenas", get_template_directory() . "/languages"); // išversti - dar kartą nurodykite ID - mydomain: _e("Komentaras:", "mano domenas");

    1 etapas: sukurkite savo papildinį ir išverskite jį

    Jei jau turite paruoštą temą / papildinį ir jums tiesiog reikia ją išversti, pereikite tiesiai prie vertimo (2 etapas).

    Kad vertimo procesas būtų aiškus, sukurkime labai paprastą įskiepį ir išverskime jį į rusų kalbą. Pavadinkime papildinį my-translation-demo. Turėtume turėti tokią papildinio struktūrą:

    1. „WordPress“ papildinių aplanke sukurkite aplanką my-translation-demo: /plugins/my-translation-demo.
    2. Šiame aplanke sukursime lang aplanką: /my-translation-demo/lang.
    3. Sukurkime failą my-translation-demo.php: /my-translation-demo/my-translation-demo.php.
    4. Prie sukurto php failo pridėkime šį kodą:

    E() -

    Ex() –

    X() -

    N(1) –

    N(3) –

    N(10) –

    Nx(1) –

    Nx(3) –

    Nx(10) –

    esc_attr__() -

    esc_attr_e() -

    esc_html__() -

    esc_html_e() –

    Papildinys paruoštas! Eikime į administratoriaus skydelį, suaktyvinkime papildinį, eikime į papildinio puslapį.

    Papildinys naudoja visas „WordPress“ vertimo funkcijas. Taip pat yra prijungtas vertimo failas myl10n-ru_RU.mo, kurio dar nėra. Sukūrus .mo failą, įskiepis bus išverstas (sukursime žemiau).

    Kurdami papildinį atkreipkite dėmesį į parametrus. Jie turi būti nurodyti teisingai, kad įskiepių puslapyje veiktų įskiepio pavadinimo ir aprašymo vertimas.

    * Teksto domenas: myl10n * Domeno kelias: /lang

    Taip pat prie vertimo funkcijų pridedame pavadinimą ir aprašymą, kad analizatorius galėtų juos rasti.

    // eilutės, skirtos įskiepių antraštėms išversti, kad jos atsidurtų .po faile. __("Demo WordPress vertimas"); __("Bandomasis papildinys, skirtas išmokti kurti vertimus "WordPress");

    „WordPress“ taip pat naudoja parametrą „Text Domain:“, kad ieškotų vertimo failo . Ten failas turėtų būti pavadintas TRANSLATION-DOMAIN_LOCAL.mo .

    2 etapas: vertimas. .mo .po failų kūrimas

    Norėdami sukurti MO failą, turime turėti paruoštą PO failą, todėl visa užduotis yra sukurti PO failą.

    Yra keletas PO failo kūrimo parinkčių. Čia apžvelgsime darbą su Poedit programa. Pirmiausia turite atsisiųsti „Poedit“ ir ją įdiegti (nemokama versija leidžia padaryti viską, ko mums reikia).

    Galite sukurti PO failą naudodami „Poedit“, tačiau mes jį sukursime nestandartiškai - tai daug lengviau:


    Vertimas paruoštas ir veikia. Jei dabar eisite į papildinio puslapį, visos eilutės bus išverstos:

    Kodėl patogu kurti .po failą rankiniu būdu, o ne per Poedit programą?

    Nes tai greičiau: šiuo atveju jums nereikia nurodyti jokių nustatymų, galite tiesiog nukopijuoti kodą (iš 2 punkto) į .po failą, įmesti šį failą į Poedit, spustelėti „Išskleisti iš šaltinio kodo“, tada „Gerai“ ir išverskite. (nustatymus galima keisti pačiame po faile, tam nereikia jokios programos).

    O norėdami sukurti failą naudodami „Poedit“, jums reikia:

    1. Atidarykite „Poedit“.
    2. Pasirinkite: Failas > Naujas... .
    3. Atsidariusiame lange pasirinkite kalbą, į kurią verčiate.
    4. Langas tiesiog išnyks, o mes sėdime apstulbę: „Ką daryti toliau?
    5. Ir tada reikia paspausti mygtuką Sutaupyti, pasirodžiusiame naršyklėje raskite temos aplanką, eikite į lang aplanką, įveskite failo pavadinimą myl10n-ru_RU.po ir spustelėkite Gerai.
    6. Langas vėl dingsta, o mes toliau svarstome: „Ką dabar daryti?
    7. Dabar reikia paspausti mygtuką: Ištrauka iš šaltinio kodo. Atsidarys langas, kuriame turėsite nustatyti PO failo nustatymus. Viskas, kas parašyta aukščiau esančio PO failo kode: projekto pavadinimas, projekto komanda, koduotės, aplankai, kuriuose rinkti vertimo eilutes, raktiniai žodžiai vertimo eilučių paieškai. Apskritai, čia turėsite suktis ir nedaryti klaidų.

      Kai nustatysite nustatymus, spustelėkite „Gerai“.

    8. Tada laukiame, kol iš projekto failų bus surinktos vertimo eilutės ir atsidursime eilučių vertimo lange (ekranas aukščiau). Išverskite eilutes, paspauskite Sutaupyti.
    9. Sukurtas vertimas ir MO failas!

    Vertimo atnaujinimas (jei kodas pasikeičia)

    Čia viskas labai paprasta:

    1. Atidarykite „Poedit“..
    2. Į jį įmetame bet kokį PO failą iš projekto ir Spustelėkite „Atnaujinti iš kodo“(mygtukas skydelyje).
    3. Mes verčiame naujos linijos ir spustelėkite "Išsaugoti"(mygtukas skydelyje).
    4. Vertimas atnaujintas! Galite uždaryti „Poedit“.

    POT failo kūrimas

    „Pot“ failas yra vertimo šablonas. Tai tiesioginė .po failo kopija, tik tada, kai nėra išversta nė viena eilutė. Tie. visos vertimo eilutės gaunamos iš projekto failų, bet dar nieko neišversta.

    Iš to, kas išdėstyta aukščiau, išplaukia, Norėdami sukurti reikalingą POT failą pereikite visą .po failo kūrimo procedūrą ir galiausiai nieko neverskite, o eikite į Failas > Išsaugoti kaip ir išsaugokite failą su plėtiniu .pot.

    Sukurti POT failą gali būti dar lengviau. Paimkite .po failą ir pakeiskite jo plėtinį į .pot . Tai neapdorotas metodas, tačiau toks failas su išverstomis eilutėmis gali būti naudojamas ir kaip šablonas kuriant vertimą į bet kurią kalbą (bent jau taip veikia Poedit).

    Kodėl jums reikia .pot failo?
    Kad būtų vienas failas, kuriame visada būtų naujausios vertimo eilutės. Naudoti jį kaip pagrindą kuriant vertimą į kitą kalbą.

    Pavyzdžiui, jei PO ir MO vertimo failai yra patalpinti į visuotinių vertimų aplanką, negalime mesti PO failo į programą ir spustelėti „Atnaujinti iš kodo“, nes PO faile kelias į papildinio failus greičiausiai bus neteisinga (arba jos visai nebus) ir vertimo eilučių nebus galima atnaujinti. Tokiu atveju naudojamas POT failas, kuris visada turi būti įskiepio aplanke, o pasikeitus jame esančiam kodui reikia atnaujinti vertimo eilutes, todėl visada gausime naujausią vertimo eilutės šabloną.

    Jei PO failas yra įskiepio aplanke, tada POT failas nereikalingas, vertimą galima sukurti iš PO failo.

    Prijunkite .mo vertimo failą

    Kaip prijungti MO failą įskiepyje, jau nurodyta aukščiau esančiame papildinio kode. Ir čia aš sutelksiu dėmesį į „WordPress“ funkcijas, skirtas prijungti šį failą. Funkcijos:

    load_plugin_textdomain($domain, false, $plugin_rel_path) Apima MO failą iš papildinio. Įpakavimas, skirtas load_textdomain() . Pirma, ji ieško MO failo bendrame įskiepių vertimų aplanke: /wp-content/language/plugins. Failas turi būti pavadintas TRANSLATION_DOMAIN-LOCAL.mo . load_muplugin_textdomain($domain, $plugin_rel_path) Apima MO failą iš MU papildinio. Įpakavimas, skirtas load_textdomain() . Pirma, ji ieško MO failo bendrame įskiepių vertimų aplanke: /wp-content/language/plugins. Failas turi būti pavadintas TRANSLATION_DOMAIN-LOCAL.mo . load_theme_textdomain($domain, $path) Apima MO failą iš temos. Įpakavimas, skirtas load_textdomain() . Pirma, ji ieško MO failo bendros temos vertimo aplanke: /wp-content/language/themes. Failas turi būti pavadintas LOCAL.mo (kai failas yra temoje) ir THEMES_FOLDER-LOCAL.mo (kai failas yra bendrinamame aplanke). load_textdomain($domain, $mofile) Sujungia MO failą iš bet kurios vietos (reikia nurodyti visą kelią iki MO failo kartu su failo pavadinimu).

    Pažvelkime į MO failų prijungimo pavyzdžius.

    Daroma prielaida, kad ryšio kodas bus pagrindiniame papildinio/temos faile arba faile, esančiame įskiepio/temos šakniniame kataloge. Jei taip nėra, __FILE__ turi būti pakeistas atitinkamu keliu.

    // papildinio vertimo failas. // failas turėtų būti vadinamas: DOMAIN-LOCAL.mo, pavyzdžiui: myl10n-ru_RU.mo add_action("plugins_loaded", function())( load_plugin_textdomain("mano papildinys", false, dirname(plugin_basename(__FILE__)) . "/kalbos")); // MU papildinio vertimo failas. // failas turėtų būti vadinamas: DOMAIN-LOCAL.mo, pavyzdžiui: myl10n-ru_RU.mo load_muplugin_textdomain("mano papildinys", dirname(plugin_basename(__FILE__)) . "/languages")); // temos vertimo failas. // faile turi būti esamos lokalės pavadinimas, pvz.: ru_RU.mo add_action("after_setup_theme", function())( load_theme_textdomain("mano_tema", get_template_directory() . "/languages"); )); // bet koks vertimo failas // Prijunkite failą.mo (failo pavadinimas: ru_RU.mo arba kažkas kitas, priklauso nuo lokalės) add_action("plugins_loaded", function())( $mo_file_path = dirname(__FILE__) . "/lang /". get_locale () . ".mo"; load_textdomain("mano vertimas", $mo_failo_kelias);

    Nebūtina jungti funkcijų prie kabliukų, bet pavyzdžiuose vis tiek dariau taip, kaip rekomenduojama.

    Pastaba: jei vertimo failas yra , šių funkcijų naudoti nereikia. „WordPress“ automatiškai įtraukia vertimo failus iš visuotinio aplanko pagal parametrą Text Domain: papildinio antraštėje.

    Vertimo funkcijos

    Kaip naudotis vertimo funkcijomis, jau nurodyta aukščiau esančiame papildinio kode. O čia aprašysiu kiekvieną funkciją (detalų aprašymą skaitykite funkcijos aprašyme).

    __($tekstas, $domenas) Išverčia nurodytą tekstą ir grąžina jį apdoroti. _e($tekstas, $domenas) Išverčia nurodytą tekstą ir parodo jį ekrane. _x($tekstas, $kontekstas, $domenas) Išverčia nurodytą tekstą pagal nurodytą kontekstą ir grąžina jį apdoroti. _ex($tekstas, $kontekstas, $domenas) Išverčia nurodytą tekstą, atsižvelgdamas į nurodytą kontekstą, ir parodo jį ekrane. _n($single, $plural, $number, $domain) Gauna vienaskaitos arba daugiskaitos vertimo eilutę, atitinkančią nurodytą skaičių (1 komentaras, 2 komentarai). _nx($single, $plural, $number, $context, $domain) Gauna vienaskaitos arba daugiskaitos vertimo eilutę, atsižvelgiant į nurodytą kontekstą. _n_noop($ vienaskaita, $daugiskaita, $domenas) Dummy funkcija. Analogiškas _n() . Naudojamas, kai reikia apibrėžti daugiskaitos vertimo eilutes, bet naudokite jas kur nors vėliau kode. Funkcijos grąžintas rezultatas turi būti apdorotas translate_nooped_plural() funkcija. Pavyzdžiui, šios funkcijos rezultatą patogu naudoti parametruose, kai iš anksto nežinome, koks bus skaičius, o vertimą reikia atlikti vėliau. _nx_noop($singular, $plural, $context, $domain) Tas pats kaip _n_noop(), tik su kontekstu. esc_attr__($text, $domain) HTML žymos atributų verčių vertimas. Esc_attr(__()) trumpinys. esc_attr_e($tekstas, $domenas) Tas pats kaip esc_attr__() , bet iškart parodo rezultatą ekrane. esc_html__($text, $domain) Teksto, kuriame gali būti HTML žymų, vertimas. Esc_html(__()) trumpinys. esc_html_e($text, $domain) Tas pats kaip esc_html__() , bet iškart parodo rezultatą ekrane.

    Klaidos naudojant vertimo funkcijas

    #1 Negalite naudoti kintamųjų / konstantų vertimo funkcijos parametruose

    Kadangi programos gali analizuoti tik eilutes, bet ne kintamuosius. Programos neanalizuoja, kas yra nurodytame kintamajame, o tiesiog nuskaito kodą kaip tekstą ir ištraukia eilutes vertimui...

    // Taip _e("Sveikas pasaulis!", "mano domenas"); // Nėra _e($ string, "mano domenas"); _e("Sveikas pasauli!", $domenas); _e("Sveikas pasaulis!", DOMAIN);

    #2 Nenaudokite HTML vertimo eilutėse (jei įmanoma)

    Pavyzdžiui, jei nurodysite

    vertimo eilutėje ir vertėjas padaro klaidą, tada HTML žymėjimas gali „nutrūkti“. Arba jei pateikiate nuorodą , vertėjas gali įdėti savąjį į vietą arba tiesiog parašyti neteisingai. Arba bet kuri HTML žyma gali būti neuždaryta ir užfiksuosime labai nemalonią išdėstymo klaidą.

    90 % atvejų HTML žymos gali ir turėtų būti perkeltos už vertimo eilutės ribų. Pažvelkime į kelis pavyzdžius:

    // Taip aidas "

    ". __("Sveikas pasaulis!", "mano domenas") ."

    "; // Ne _e("

    Labas pasauli!

    ", "mano domenas"); // Taip echo str_replace("
    ", "", __("Matyti mano portfolio", "mano domenas"); // No _e("Žiūrėti mano aplanką", "mano domenas");

    # 3 Neskirstykite frazės į atskirus žodžius

    Programoje verčiant eilutes turi būti kuo aiškesnė, kas sakoma. Bet jei padalysite eilutę į dalis, atskiri žodžiai gali tapti neaiškūs:

    // Taip echo sprintf(__("Šiandien esu %d", "mano domenas"), $metai); // Nėra aido __("Aš esu ", "mano domenas") . $ metų. __("šiandien", "mano domenas");

    # 4 Nepalikite tarpų eilutės pabaigoje / pradžioje (jei įmanoma)

    Verčiant tarpai galuose dažnai nepastebimi ir gali būti nepastebimi, todėl po vertimo „užstringa“. Todėl geriau į kodą įtraukti tarpus.

    // Taip _e("Knygos pavadinimas:", "mano domenas") ." ". $knygos_vardas; // Taip _e("Knygos pavadinimas:", "mano domenas") ." $knygos_pavadinimas"; // Ne _e("Knygos pavadinimas: ", "mano domenas") . $knygos_vardas; Suimtas

    Su vertimu susiję terminai

    Kai kurie terminai, kuriuos reikia žinoti. Tai yra patys pagrindiniai (kai kurios funkcijos ir kabliukai „WordPress“ vadinami šiais terminais):

      Internacionalizavimas (i18n)- tai visas pagrindinių funkcijų ir klasių kompleksas, leidžiantis išversti „WordPress“ ir jo priedus į skirtingas kalbas.

      Lokalizacija (lokalizacija – l10n)– Tai vertimo į įvairias kalbas procesas.

    • Lokalė yra regiono kalbos ir tarmės pluoštas. Paprastai lokalė reiškia tiesiog kalbą, tarkime, rusų. Bet, pavyzdžiui, anglų kalba gali būti anglų (JAV) arba anglų (JK) – kalba ta pati, lokalės skiriasi... Lokalė apibrėžiama kaip LANGUAGE_CODE_COUNTRY_CODE (ru_RU) arba kalbos kodas ISO 639-3 (rus) standartas.
    , tik čia yra vertimo failų hierarchija...

    Bendrinamas vertimo aplankas, skirtas:

    • papildiniai /wp-content/languages/plugins/TRANSLATION_DOMAIN-LOCAL.mo .
    • temos /wp-content/languages/plugins/TRANSLATION_DOMAIN-LOCAL.mo .

    Pavyzdžiui, tokiuose bendrinamuose aplankuose atsisiunčiamas ir atnaujinamas papildinio, esančio „WordPress“ papildinių kataloge, vertimas. Tikriausiai matėte išverstų įskiepių, kuriuose nėra vertimo failų (būtent tokia tema). Kaip rašiau straipsnio pradžioje, įskiepius iš katalogo galima išversti per svetainę translate.wordpress.org.

    Pastaba: jei vertimo failas yra globaliame aplanke, tai nebūtina jo įtraukti į įskiepį per load_(plugin/theme)_textdomain() funkciją! „WordPress“ automatiškai jį sujungs pagal įskiepio antraštėje esantį parametrą „Teksto domenas:“.

    Vertimo įskiepis

    „Loco Translate“ yra puikus įskiepis, skirtas kurti vertimą (.mo failą). Šis papildinys visiškai pakeičia Poedit programą. Tai leidžia kurti bet kurios temos, papildinio ar atskiro MU papildinio vertimus. Papildinį galima suaktyvinti, išversti tai, ko reikia, ir išjungti, kad „nekliustum“.

    Visi tekstai, kuriuos reikia išversti (dialogai, meniu ir t.t.), išsaugomi PO faile. PO failas yra programos vertimo failas su plėtiniu .po ir specialia struktūra, kurioje yra: informacija apie kalbą, vertėjas, originalūs dialogai ir jų vertimai. Originalūs dialogai prasideda msgstr, po to msgstr "vertimo tekstas". Informacija apie kalbą ir vertėją yra PO failo pradžioje. Jei dialogo vertimo nėra, palikite msgstr tuščią. Eilutės, prasidedančios simboliu #, yra komentarai.

    Tuščio vertimo pavyzdys:

    #: src/PackageCommands.cs:57 src/PackageCommands.cs:3181 msgid "Ieškoti atitikties bet kuriai paieškos eilutei" msgstr "Ieškoti atitikties bet kuriai paieškos eilutei"

    Čekų vertimo pavyzdys:

    #: src/PackageCommands.cs:57 src/PackageCommands.cs:3181 msgid "Ieškoti atitikties bet kuriai paieškos eilutei" msgstr "Vyhledat výsledek odpovídající alespoň některému zzcřetěu zzcřet"

    Kas yra POT failai

    POT failas yra vertimo šablonas. Jo struktūra panaši į PO failo struktūrą, tačiau jame yra tik originalus tekstas anglų kalba ir nėra vertėjo ar kalbos informacijos. PO failai sukuriami iš POT failų.

    Jei PO failą sukūrėte rankiniu būdu teksto rengyklėje, turite pridėti informacijos apie savo kalbą ir išsaugoti failą su priesaga .po. Jei neteisingai sukursite PO failo pradžią, PO failas nepraeis sintaksės patikrinimo ir statistikoje bus violetinės spalvos ir nulis išverstų ir neaiškių eilučių.

    Failo rug.pot pradžia:

    #TIEKANT APRAŠYMO PAVADINIMO. # Autoriaus teisės (C) PAKETO AUTORIŲ TEISIŲ TURĖTOJAS METAI # Šis failas platinamas pagal tą pačią licenciją kaip ir paketas PAKETAS. # PIRMASIS AUTORIUS ,METAI. # #, fuzzy msgid "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To:\n" "POT-Creation-Date: 2006-05-02 20:04- 0400\n" "PO-Peržiūros data: YEAR-MO-DA HO:MI+ZONE\n" "Paskutinis vertėjas: FULL NAME \n" "Kalbos komanda: LANGUAGE \n" "MIME versija: 1.0\n" "Turinio tipas: tekstas/paprastas; charset=CHARSET\n" "Turinio perdavimo kodavimas: 8 bitai\n"

    rug.hu.po failo pradžia:

    # hu.po vertimas į # Peter Breuer , 2003. # Marcel Hilzinger , 2003. # Marcel Hilzinger , 2004. # Szabolcs Varga , 2004, 2005. # Kalmanas Kemenczy "" " n" "PĮ peržiūros data: 2006-06-08 17:26+0200\n" "Paskutinis vertėjas:\n" "Kalbos komanda: \n" "MIME versija: 1.0\n" "Turinio tipas: tekstas/paprastas; charset=UTF-8\n" "Turinio perdavimo kodavimas: 8 bitai\n" "X generatorius: KBabel 1.11.2\n" "Daugiskaitos formos: nplurals=1; daugiskaita=0;\n"

    KAIP sukurti PO failus

    Norint pradėti lokalizuoti tereikia teksto rengyklės, su kuria užpildysite tuščias msgstr eilutes su vertimu. Jums gali būti patogiau tam naudoti specialias komunalines paslaugas. Originalus angliškas tekstas PO failuose, prasidedantis msgid, negali būti pakeistas.

    Stygų formatavimas

    Beveik kiekviename PO faile galite rasti formatavimo eilutes. Daugumoje jų yra HTML žymos, kartais XML žymos arba kita formatavimo kalba. Visos šios eilutės turi būti vertime.

    \n nauja eilutė kai_tekstas miniatiūra kai_tekstas kursyvu tekstas

    Daugiskaitos formų vartojimas

    POT failo eilutė, kurioje yra žodžiai, vartojami tiek vienaskaita, tiek daugiskaita (daugiskaita), atsižvelgiant į kintamojo reikšmę:

    Msgid "%1 second" msgid_plural "%1 seconds" msgstr "" msgstr "" Pavyzdys, kur daugiskaita. identiški vienetams (local zh_CN(China)): msgid "%1 second" msgid_plural "%1 seconds" msgstr "%1 秒" Pavyzdys su viena daugiskaitos forma. (Graikiška lokalė): msgid "%1 second" msgid_plural "%1 seconds" msgstr "%1 δευτερόλεπτο" msgstr "%1 δευτερόλεπττερόλεπττα forms“ pavyzdys. (čekų lokalė): msgid "%1 second" msgid_plural "%1 seconds" msgstr "%1 secunda" msgstr "%1 secundy" msgstr "%1 secund"

    KBabel pirmiausia turite apibrėžti daugiskaitos formas projekto ypatybėse.

    Šiek tiek informacijos apie tai, kaip tai veikia čia, čia įskiepyti konversijos į rusų kalbą.

    Sintaksės tikrinimas

    Prieš siųsdami PO failus į SVN, patikrinkite jų sintaksę. Norėdami tai padaryti, naudokite msgfmt su parinktimi -c ir (arba) patikrinkite išverstos programos funkcionalumą.