Daugiakalbystė ir Joomla 1.7

PDFSpausdintiEl. paštas

Pirmadienis, 21 Lapkritis 2011 23:19 Parašė Martis Peržiūrų: 5795

( 10 Balsai )
Daugiakalbystė ir Joomla 1.7 - 5.0 out of 5, based on 10 votes

Šis straipsnis skirtas Joomla 1.7

flagsJoomla 1.5 neturėjo daugiakalbystės (svetainės turinio atvaizdavimas keliomis kalbomis) funkcijos. Tam reikėjo naudoti komponentą Joom!Fish. Joomlai 1.7 irgi yra sukurtas komponentas FaLang, kuris atlieka tokią pačią funkciją kaip ir Joom!Fish. Tačiau, naudojant Joomla 1.7, priversti svetainę kalbėti keliomis kalbomis, nebūtina naudoti trečių šalių komponentų – tam pilnai pakaks pačioje Joomloje įdiegtų funkcijų. Ši funkcija atsirado Joomla 1.6 versijoje, ir su kiekviena nauja versija yra vis tobulinama. Taigi, norint pilnai išnaudoti visas daugiakalbystės funkcijas, reikia atnaujinti Joomla iki paskutinės 1.7.3 versijos.

Išsamias instrukcijas (anglų kalba) kaip nustatyti daugiakalbystę Joomloje, galima rasti oficialiame Joomla dokumentacijos puslapyje arba OSTtraining svetainėje, kurioje gausu pamokų įvairiomis Joomla temomis. Todėl ir žemiau esanti instrukcija parašyta remiantis aukščiau minėtais tinklalapiais.

1. Kalbų paketų įdiegimas

Pirmas žingsnis, kurį reikia padaryti - įdiegti reikalingus kalbų paketus. Tarkim, reikia kad svetainės turinys būtų atvaizduojamas trimis kalbomis – lietuvių, anglų ir rusų. Anglų kalbos paketas pagal nutylėjimą įeina į Joomla sudėtį, todėl tereikia įdiegti lietuvių ir rusų kalbos paketus. Lietuvių kalbą nusistatome pagrindine administracijos ir svetainės kalba:

1.idiegtos_kalbos

2. Turinio kalbų sukūrimas

Sekantis žingsnis – turinio kalbų sukūrimas. Skirtuke Išplėtimai->Kalbų tvarkyklė->Turinys sukuriame trūkstamas lietuvių ir rusų kalbas (anglų kalba nustatyta pagal nutylėjimą).

2.1.lietuviu_kalba

  1. URL kalbos kodas ir paveikslėlio priesaga turi atitikti turinio kalbos kodą (lietuvių kalbai – lt, rusų – ru, prancūzų – fr ir t.t)
  2. Kalbos žymė turi turi susidėti iš trijų dalių: kalbos kodo mažosiomis raidėmis, brūkšnelio ir kalbos kodo didžiosiomis raidėmis (be tarpų). Pavyzdžiui, lietuvių kalbai lt-LT, rusų ru-RU, prancūzų fr-FR ir t.t.
  3. Nauja funkcija, atsiradusi Joomla 1.7.3 versijoje. Čia galima įrašyti svetainės pavadinimą konkrečiai kalbai. Neįvedus nieko, bus rodomas globaliose nuostatose nustatytas svetainės pavadinimas.

Tokiu pačiu principu nustatome ir rusų kalbą:

2.2.rusu_kalba

Atlikus visus nustatymus, gausime tokį vaizdą:

2.3.visos_kalbos

3. Pervadiname ir išjungiame pagrindinį meniu modulį

Kadangi Joomloj gali būti tik vienas meniu punktas nustatytas kaip pagrindinis, todėl, jei Joomla buvo įdiegta „švariai“, pervadiname (nebūtinas veiksmas, vykdomas tik dėl aiškumo) meniu punktą, nustatytą kaip pagrindinį (Meniu->Meniu tvarkyklė). Jei svetainė yra papildyta turiniu, tai galima sukurti naują atskirą meniu bei meniu punktą, kuris turi būti priskirtas visoms kalboms ir jį padaryti kaip pagrindinį. Dabar telieka išjungti modulį, kuris susietas su šiuo meniu:

3.Pagrindino_isjungimas

4. Kategorijų sukūrimas

Kiekvienai turinio kalbai reikia sukurti bent po vieną kategoriją bei priskirti ją atitinkamai kalbai. Tų kategorijų kiekis gali būti neribojamas, bet būtinai turi būti nors viena kategorija vienai turinio kalbai. Šiuo atveju sukuriame tris kategorija bei po dvi pokategores visoms trims turinio kalboms, o kategoriją, sukurtą pagal nutylėjimą, paliksime visoms kalboms.

4.kategorijos

Atlikus tokius veiksmus kelis kartus, gausime tokį vaizdą:

4.visos_kategorijos

5. Straipsnių sukūrimas

Sukūrus kategorijas, reikia užpildyti svetainę turiniu, todėl sukuriame kelis straipsnius skirtingomis kalbomis, bei priskiriame juos atitinkamoms kategorijoms bei kalboms (straipsnį lietuvių kalba priskiriame lietuvių kalbos kategorijai bei kalbai, rusų – rusų kalbos kategorijai bei kalbai ir t.t).

5.straipsnis

Tokius pačius veiksmus pakartojame kelis kartus ir gauname tokį maždaug vaizdą:

5.visi_straipsniai

6. Meniu bei meniu punktų sukūrimas kiekvienai kalbai

Sukūrus kategorijas, bei straipsnius, reikia sukurti meniu kiekvienai turinio kalbai bei meniu punktus, susietus su kiekviena turinio kalba. Sukuriame meniu (Meniu->Meniu tvarkyklė):

7.meniu_lt     7.meniu_en     7.meniu_ru

Sekantis žingsnis – meniu punktų sukūrimas. Kuriant meniu punktus, reikia atkreipti dėmesį, kad tik vienas meniu punktas gali būti nustatytas pagrindiniu vienai turinio kalbai. Taip pat meniu punktas turi būti priskirtas konkrečiai kalbai:

8.Meniu_punktas_lt

Analogiškus veiksmus atliekame ir su kitais meniu punktais, susietais su kitomis kalbomis. Kad būtų aiškiau, sukuriame ir po antrą meniu punktą kiekvienai kalbai, tik šį kartą parinktį numatytasis puslapis nustatome į ne. Ta pati sąlyga galioja ir kitiems meniu punktams:

8.Meniu_punktas_lt2

Atlikus visus veiksmus kelis kartus, gausime tokį rezultatą:

8.Meniu

Jei visi veiksmai bus atlikti teisingai ir kiekvienai kalbai bus nustatytas tik vienas pagrindinis meniu punktas, tada prie meniu punktų turi atsirasti vėliavėlės, atitinkančios kalbą, bei prie turinio kalbos punkto pradžia užrašas ne turi pasikeisti į taip:

8.turinio_kalbos

Jei grįžtume prie antro žingsnio, tai galima pastebėti, kad ten ši parinktis yra nustatyta į ne.

7. Modulių sukūrimas

Sekantis žingsnis – modulių sukūrimas kiekvienam meniu. Principas išlieka toks pats kaip ir kategorijų, straipsnių ar meniu punktų kūrime: kiekvienam skirtingos kalbos moduliui nustatome tai kalbai sukurtą meniu bei aišku pasirenkame tą kalbą, kuriai ir sukurtas meniu:

9.Modulis_ru

Pavyzdžio atveju gauname tris meniu punktus:

9.Moduliai

8. Šablono priskyrimas

Jei svetainės turinys atvaizduojamas keliomis kalbomis, todėl tokiu atveju reikalingi ir logotipai ar kitokios šablono dalys, kurios turėtų būti atvaizduojamos skirtingai nuo pasirinktos kalbos. Priskyrimai atliekami lygiai tokiu pačiu principu kaip ir modulių kūrimas: kiekvienai atskirai kalbai nustatome šabloną, bei nurodome kokiai jis kalbai bus priskirtas:

10.sablonas

Šablonai gali būti ir vienodi, ir visiškai skirtingi. Dabar tarkim naudosim du skirtingus šablonus:

10.sablonai

Reikia nepamiršti, kad vienas šablonas turi būti nustatytas pagrindiniu visoms kalboms (paveikslėlyje pažymėtas žvaigždute) .

9. Kalbų perjungimo modulio (-ių) sukūrimas

Šiuo atveju galimi du variantai: arba sukurti vieną kalbų perjungimo modulį visoms kalboms, arba kiekvienai kalbai po atskirą modulį. Abiejų variantų funkcionalumas beveik lygiai toks pats, tik antras variantas labiau tinkamas tada, kai norima svetainės lankytojams parodyti kokią kalbą jie pasirinko.

1. Variantas. Sukuriame kalbų perjungimo modulį (Išplėtimai->Modulių tvarkyklė->Naujas->Kalbų perjungėjas) ir priskiriame jį visoms kalboms:

11.perjungimas_visoms

2. Variantas. Šis atvejis reikalauja sukurti jau kelis kalbų perjungimo modulius ir priskirti juos atitinkamoms kalboms. Taip pat kiekvieną tokį modulį reikia nustatyti taip, kad jis būtų rodomas tik pasirinkus atitinkamą kalbą. Nustatome taip modulį rusų kalbai:

11.perjungimas_ru1

Ir priskiriame, kad jis būtų rodomas tik tada, kai rodomas meniu rusų kalba:

11.perjungimas_ru2

Atitinkamus veiksmus atliekame ir lietuvių kalbai:

11.perjungimas_lt1

11.perjungimas_lt2

Jei po šio žingsnio pažvelgtumėme į svetainę, tai pamatytumėme, kad rodomi visi sukurti moduliai:

11.visi

O kad atskirai kalbai būtų rodomas jai sukurtas modulis, tereikia įgalinti įskiepį kalbų filtras.

 10. Įskiepis kalbų filtras

Taigi, einame į Išplėtimai->Įskiepių tvarkyklė ir susirandame įskiepį kalbų filtras:

12.kalbu_filtras

Įskiepis turi keturis nustatymus, kurių reikšmes galima sužinoti užvedus pelės žymeklį ant kiekvienos parinkties. Tačiau rekomenduoju parinktį meniu ryšiai nustatyti į taip, nes šis nustatymas bus reikalingas norint susieti vienodus straipsnius skirtingomis kalbomis (11 žingsnis). Įgalinus šį įskiepį ir pažvelgus į svetainę, viskas dabar atvaizduojama teisingai, kiekvienas kalbos meniu rodomas tik pasirinkus jo kalbą:

12.anglu

12.lietuviu

12.rusu

11. Ryšiai

Viskas nustatyta, viskas veikia, bet tarkim skaitom kokį nors straipsnį viena kalba ir jei pakeičiame kalbą į kitą, tai automatiškai puslapis bus nukreiptas į pradinį kalbos puslapį. Bet tarkim yra trys vienodi straipsniai skirtingomis kalbomis ir reikia, kad pasirinkus kitą kalbą, būtų rodomas tas straipsnis atitinkama kalba. Kad tai įgyvendinti, reikalinga, kad įskiepio kalbų filtras parinktis meniu ryšiai būtų nustatyta į taip. Tada einame į meniu tvarkyklę ir bet kurios kalbos meniu punkte nustatome ryšius kitoms kalboms (užtenka nustatyti tik viename meniu):

13.rysiai

Kai ryšiai bus nustatyti, susijusius meniu punktus galima bus pamatyti meniu tvarkyklėje:

13.rysiai2

12. Administracijos daugiakalbystės būsenos modulis

Šis modulis atsirado tik Joomla 1.7.1 versijoje ir yra skirtas tik peržiūrėti daugiakalbystės būseną. O nuo versijos 1.7.3 šis modulis gali parodyti ir kai kurias klaidas, atsirandančias, jei kas nors būna nustatyta neteisingai. Einame į Išplėtimai->Modulių tvarkyklė ir pasirenkame, kad būtų rodomi administracijos moduliai. Įgaliname daugiakalbystės būsenos ir administracijos viršuje atsiras naujas punktas daugiakalbystės būsena:

14.daugia_busena

Taigi, atlikus 12 paprastų žingsnių, galima priversti svetainę „kalbėti“ keliomis kalbomis. Beje, verta paminėti, kad 9 žingsnyje, kai daromi keli kalbų perjungimo moduliai, yra nepatogu naudotis standartinėmis Joomla funkcijomis, nes kiekvieną kartą, sukuriant naujus meniu punktus reikės rankiniu būdu pridėdinėti tuos punktus kiekvienam moduliui (kad kalbų perjungimo modulis būtų rodomas tada, kai pasirinkti tie punktai). Tokiu atveju geriau naudoti tikrai gerą komponentą Advanced Module Manager. Naudojantis juo, tereikės modulį priskirti atitinkamai kalbai, ir pridėjus naujus meniu punktus, jis bus automatiškai visada rodomas. Be šios funkcijos (ir daugelio kitų), šis modulis leidžia prie kiekvieno modulio rodyti spalvą (svetainės atvaizdavimui tai jokios įtakos neturi), kas yra labai patogu, kai yra priskirta daug modulių atskiroms kalboms (tiesiog parenkame skirtingas spalvas skirtingoms kalboms).

Sėkmės eksperimentuojant Šypsena
Paskelbta: 2012-03-02 18:10 nuo ausriukas #7266
sveiki, norėjau pasiteirauti vieno dalyko. Visus šiuos veiksmus atlikau ant skirtingų šablonų (dariau, kad būtų puslapis dviem kalbomis). Vienas šablonas (tas pats, kurį jūs naudojote pavyzdyje) atvaizduoja kalbų perjungėjo modulyje visas turinio kalbas, tačiau kitas (pritaikytas joomlai 2.5.1) atvaizduoja tik anglų kalbą. Pradinio puslapio kita kalba visai net nesukuria, nors yra ir meniu, turinys, moduliai, specialiai nustatyti kitai kalbai. Kame gali būti problemos?
Paskelbta: 2012-03-06 16:49 nuo Martis33 #7320
O ar nustatei, kad moduliai ar meniu būtu rodomi su kitu šablonu?
Paskelbta: 2012-03-29 11:16 nuo Beata #7741
Dėl šablonų priskyrimo kalboms. Ar būtina juos priskirti?
Pas mane vienas šablonas naudojamas tik pirmam puslapiui, nes galva didelė, kitas šablonas (pasidariau kopiją su maža galva, nes kūrėjai nepadarė tokios galimybės) naudojamas visiems kitiems failams.
Meniu priskyriu šablonų naudojimus. Kas bus jei čia aš priskirsiu vieną šabloną visoms kalboms, o kitą tik lietuvių kalbai, kaip tada su anglų kalba? Kitą nepriskyriu jokiai kalbai
Paskelbta: 2012-11-26 01:42 nuo senisaa #9339
Bet kokiu atveju patogiau daryti atskirus tinklapius. Tada islieka tik vienas nepatogumas prisijungti, kad ideti nauja straipsni...
Paskelbta: 2012-11-26 20:00 nuo Martis33 #9343
Du puslapiai - dvigubas darbas. Jau lengviau du straipsnius parašyt: vieną viena kalba, kitą kita
Paskelbta: 2013-11-29 15:56 nuo Sm00dE #10907
Turiu problema viską padariau kaip parašyta, viskas lyg ir veikai tvarkingai, tačiau pagrindinė kalba /lt neveikia ir meta, kad blogas adresas nurodytas. Yra minčių?
Paskelbta: 2013-11-29 22:34 nuo Megejas #10908
Labas,

Mintis labai paprastai patikrink viska nuosekliai kažkur padaryta klaida, nes padarius viską taip kaip reikia viskas veikia ir jokių problemų nekyla
Paskelbta: 2015-01-21 19:16 nuo sharasx #11868
O ar modulius kiekvienai kalbai irgi reikia kurti? Ar užtenka kad modulyje butu pazymeta visomis kalbomis?
Paskelbta: 2015-01-21 19:34 nuo Megejas #11869
labas,

O pats kaip manai jei bus priskirtas visoms kalboms tai perjungus konkrečia kalbą kokia kaba užrašai bus modulyje?
Paskelbta: 2015-01-21 19:40 nuo sharasx #11870
todel ir klausiu, kad nezinau.
Paskelbta: 2015-02-15 10:30 nuo Beata #11904
Neseniai perdariau dvi Joomla 3 svetaines. Vadovavausi angliška pamoka daugiakalbystei. Pirmąją šiaip taip susitvarkiau su kalbomis (noriu pasakyti, kad su Joomfish viskas buvo lengviau). Su antrąja labai ilgai vargau: padarius kiekvienos kalbos meniu vieną titulinį bendrą default, bet neskelbiamą, kitą lietuvių kalbai, trikalbėje svetainėje lietuv. ir angl. versijoje išlįsdavo abu Tituliniai (nors niekur jie nebuvo nurodomi), o lenkiškoje viskas buvo gerai. Perskaičiau Jūsų pamoką, kažkas pasikeitė - bendrieji tituliniai tapo ne default, bet buvo rodomi. Sugalvojau juos ištrinti ir viskas susitvarkė.
Dabar palyginau su pirmąją svetaine, viskas buvo padaryta taip pat ir viskas veikė. Iki šiol nesuprantu kas buvo negerai antrojoje.

Aptarkite šį straipsnį forume
Norėdami dalyvauti diskusijoje turite prisijungti arba užsiregistruoti .

Joomla123.lt is not affiliated with or endorsed by Open Source Matters or the Joomla! Project.
The Joomla!® name is used under a limited license from Open Source Matters in the United States and other countries.