Klaidos žinutė

Deprecated function: The each() function is deprecated. This message will be suppressed on further calls - menu_set_active_trail() (eilutė 2405/home/stent/domains/perfitect.net/public_html/includes/menu.inc).

Daugiakalbiškumas Drupal 7

2017 11 21 / BenasSkaityti: 5 min

Dažnai svetainių informacija turi būti pateikiama keliomis kalbomis, tame nieko naujo ar nesuprantamo nėra. Jei svetainės karkasas parašytas rankomis nuo nulio, tai kita kalba - viską reikia suplanuoti iš anksto, nes kitaip prikabinti papildomą kalbą, o ypač, jei plėtra ta kryptimi apskritai nebuvo numatyta, yra didelis vargas. Tuo tarpu su turinio valdymo sistemomis tai galima padaryti pakankamai nesunkiai. Tiksliau, skirtingos TVS tai leidžia įvykdyti lengviau, arba sunkiau ir Drupal šioje vietoje niekuomet nežibėjo - su daugiakalbiškumu čia niekuomet nebuvo problemų, kai tiksliai žinojai, ką daryti, tačiau naujokui buvo giria giružė - pamenu, kai pirmą kartą reikėjo iš vienakalbio jau sukurto ir veikiančio pakankamai didelio puslapio padaryti trikalbį - košmaras. :) Na, bet laikas bėga ir su Drupal 7 tai jau pakankamai paprasta, čia greitai surašysiu punktus, ką po ko daryti, norint įdiegti papildomą kalbą.

Visų pirma reikia pradėti nuo to, kad yra dvi skirtingos naudotojo sąsajos - vidinė ir išorinė. Sudėtingose tarptautinių komandų prižiūrimose svetainėse dažnai reikia išversti ir vidinę (administracinę) aplinką, kadangi administratoriai nebūtinai ta pačia lengvai susikalba, tačiau mažesniuose projektuose tereikia tik keliakalbės išorinės, lankytojams matomos, aplinkos. Aptarsiu abu atvejus: kaip versti vidinę ir išorinę naudotojo UI, naudojantis vertimo bylomis ir moduliais, atsisiųstais iš drupal.org repozitoriaus.

Norint leisti lankytojams skaityti sveainės turinį kita kalba, reikia paeiliui atlikti visus šiuos veiksmus (penki skyreliai su punktais viduje):

  1. Įjungti reikiamus modulius.
  2. Atsisiųsti brnduolių ir modulių kalbos bylas.
  3. Prie svetainės pridėti papildomą kalbą.
  4. Sutvarkyti kalbos skyriaus nustatymus.
  5. Sutvarkyti subjektų vertimų nustatymus.

 

Pastaba: Šiuo būdu bus verčiama visa svetainė, įskaitant ir administratoriaus aplinką. Jei norite, kad administratoriaus aplinka būtų rodoma jūsų kalba, sudiekite modulį Administration Language.

--

(1) Įjungti reikamus modulius

  1. Administratoriaus meniu, eiti į Modules ir ten pažymėti šias opcijas:

    Pastaba: Jei kurio nors modulių jūsų Modulių puslapyje nėra, juos reikia atsisiųsti iš drupal.org.

  2. Išsaugoti nustatymus.

--

(2) Atsisiųsti branduolio ir modulių kalbos bylas

Tiek branduolio, tiek ir atskirų modulių kalboms kontroliuoti Drupalas naudoja specialias vertimo bylas su plėtiniu .po. Norint gauti vertimų bylas, atlikite šiuos veiksmus:

  1. Atverkite naują langą arba naršyklės sekciją, tada eikite į https://localize.drupal.org.
  2. Pasirinkite kalbą iš Pick a language meniu ir paspaudę atsidarykite parsisiuntimo puslapį.
  3. Pasirinkite atsisiuntimo nuorodą reikiamam Drupal vertimui ir parsisiųskite bylą į savo kompiuterį. Byla atrodys maždaug taip: drupal-7.0.lt.po.
  4. Skyriuje Further top projects, pasirinkite naujausius svetainėje naudojamų modulių vertimų versijas - siųskitės tuos, kurie jūsų svetainėje yra aktyvuoti.

--

(3) Papildomos kalbos pridėjimas

  1. Administratoriaus meniu eikite į Configuration > Regional and language > Languages.
  2. Pasirinkite nuorodą pridėti kalbą (Add language). Atsiras pasirinktų kalbų sąrašas.
  3. Pasirinktų kalbų (Predefined languages) skyriuje pasirinkite papildomą kalbą iš sąrašo kalbos pavadinimas (Language name).
  4. Pasirinkite pridėti kalbą (Add language).

    Pastaba: Priklausomai nuo pasirinktos kalbos, gali būti kad pamatysite pranešimą apie tai, kad yra parsisiunčiamos vertimų bylos. Taip į svetainę įdiegiamos papildomos vertimų bylos (bet ne visoms kalboms yra).

    Kai kalba jau pridėta, Kalbos puslapyje parodomas patvirtinantis pranešimas.

  5. Svetainėje eikite į Configuration > Regional and language > Translate interface.
  6. Spauskite ant sekcijos Import ir ten suderinkite šiuos nustatymus:
    • Language file - išsirinkite .po bylą, kurią parsisiuntėte iš https://localize.drupal.org .
    • Import into - pasirinkite kalbą, kuriai skirta parsisiųstoij kalbos byla.
    • Text group - pasitikrinkite, ar pažymėtas Built-in interface.
    • Mode - patikrinkite, kad pažymėta Existing strings and the plural format are kept, only new strings are added.
  7. Pasirinkite Import. Šiam žingsiui gali prireikti kelių minučių.
  8. Kartoti bylos importavimą kiekvienam moduliui, jei jam parsisiuntėte .po vertimo bylą.

--

(4) Kalbos pasirinkimo nustatymų derinimas

  1. Administratoriaus meniu eikite į Configuration > Regional and language > Languages.
  2. Raskite norimą kalbą ir nustatykite ją kaip numatytąją visai svetainei - pasirinkite Default ir išsaugokite.
  3. Jei viską padarėte iki šio punkto taip, kaip nurodyta, jūsų naudotojo sąsaja jau turėtų rodyti naują kalbą. Nepaisant to ir toliau naudosiu angliškus meniu pavadinimus.
  4. Spauskite Detection and Selection skirsnį.
  5. Pasirinkite Enabled dėžutę norimiems kalbos nustatymo metodams ir sutampykite metodus pagal tvarką, pagal kurią svetainė turėtų į juos atsižvelgti. Reikia bent vienos opcijos, kitaip automatinis kalbos nustatymas neveiks.
  6. Paspauskite Save settings.

--

(5) Subjektų vertimo nustatymai

  1. Administratoriaus meniu eikite į Configuration > Regional and language > Entity translation ir pakeiskite šiuos dalykus:
    • Enable language fallback - rodo numatytą tekstą tiems subjektams, kurie realiu momentu įjungtoje kalboje vertimų neturi
    • Display shared labels - įjungia all languages pastabą subjektų formų įskiepiams
    • Enable translation workflow permissions - apriboja numatytosios subjekto kalbos redagavimą People > Permissions puslapyje
  2. Skyrelyje Translatable entity types pažymėkite dėžutes prie tų subjektų, kuriuos jūsų svetainė vers.
  3. Spauskite Save configuration.

--

Papildomi žingsniai

Papildomai nuo jūsų svetainės turinio ir nuo poreikių ir jei norite, kad norimas turinys būtų išverstas, galite dar atlikti šiuos papildomus žingsnius:

  1. Administratoriaus meniu eikite į Modules ir pažymėkite šiuos pasirinkimus (pagal poreikį):
    • Title (verčia subjektų antraštes)
    • Entity Translation Menu (verčia subjektų meniu sąrašus)
    • Internationalization (pateikia krūvą submodulių, leidžiančių versti sudėtingesnes svetainių struktūras)

    Pastaba: Jei kurio nors modulių jūsų Modulių puslapyje nėra, juos reikia atsisiųsti iš drupal.org.

  2. Spauskite Save configuration.
  3. Jei įjungėte Title modulį, atlikite šiuos žingsnius:
    • Norėdami išversti naujas subjektų antraštes, eikite į Configuration > Title settings ir vertikaliame skirsnyje Node pažymėkite Title dėžutę Automatic field replacement. Spauskite Save configuration.
    • Norėdami išversti jau esančias subjektų antraštes, eikite į Structure > Content types ir tada prie kiekiveno turinio tipo rinkitės manage fields nuorodą, spauskite replace nuorodą prie antraštės ir spauskite Save.
  4. Jei įjungėte Entity Translation Menu modulį, nustatykite vertimo režimą kiekvienam iš pasirinktų meniu.
  5. Jei įjungėte Internationalization modulį, galite versti daugumą skirtingų svetainės struktūrinių elementų: blokus, forumus, meniu, teksto formatus ir kintamuosius. Šis modulis daug sudėtingesnis už kitus, papildomai apie jo naudojimą galima paskaityti jam dedikuotame puslapyje Internationalization (i18n) module .

    Norint aktyvuoti vertimus, reikia eiti į modulių sekciją ir aktyvuoti vieną ar daugiau vertimo modulių. Struktūros vertimo nustatymai derinami Configuration > Multilingual settings.

    Pastaba: Kai kurie moduliai (pvz Message arba Rules) turi dedikuotus vertimo submodulius. Įjungę specifinį vertimo submodulį pamatysite naują skirsnį (Meniu, Taxonomy) arba kalbos perjungėją (Message, Rules) modulio redagavimo lygmenyje. Tuomet visi vertimo darbai vyks toje dedikuotoje sekcijoje.