A legtöbb megkeresést a magyar lokalizáció ügyében kapom, még mindig, pedig egyszer már foglalkoztam vele, így újra elővettem a témát.
A Magento egyik erőssége (annak ellenére, hogy nem tökéletes, de közelít hozzá) a lokalizációs támogatás.
A lokalizációs eszközökkel a vásárlók elé az anyanyelvükön megszólaló webáruház kerülhet így növelve a bizalmat.
A Magento többszintű fordítási lehetőset kínál (nézzük most magyar nyelvre):
1. Adminból elérhető beépített fordító (core_translate adatbázis tábla)
2. Saját sablonra épülő fordítás (app/design/frontend/package/theme/locale/hu_HU/translate.csv)
3. A webáruházra vonatkozó globális fordító file-ok (app/locale/hu_HU könyvtár alatti .csv-k)
4. Egyedi fejlesztésű modulok saját fordításai (app/design/frontend/package/theme/locale/hu_HU/translate.csv)
A prioritás pedig a következő:
1. Adatbázis 2. Saját téma 3. Globális 4. Modul
Tehát, pl admin fordításnál, ha az alábbiak megtalálhatóak a rendszerben, akkor a végeredmény a 'Fejlesztő4k' lesz:
1. core_translate: Mage_Adminhtml::Developer Fejlesztő4k
2. app/design/adminhtml/default/default/locale/hu_HU/translate.csv: "Developer","Fejlesztőőő"
3. app/locale/hu_HU/Mage_Adminhtml.csv: "Developer","Fejlesztő"
S mire jó ez az egész?
Vegyük azt az esetet, hogy szeretnénk a vásárlóinkat magázó és tegező módban is megszólítani. Ilyen extrém esetre is alapból megoldást kínál a Magento, hiszen a globális fordítás magázó módban használva, külön témát pedig a tegező módra használunk. Az pedig már csak a fantázia kérdése, hogy egy kiválasztó gombot teszünk az oldalra, vagy akár életkor szerint váltunk a megszólítás módja között, illetve használhatunk olyan fordítást is, amely ezt a problémát kiküszöböli.
Pl: Tegye a terméket a kosárba, Tedd a terméket a kosárba, A termék kosárba helyezése
A belső fordító:
A belső fordító az adminban a System/Configuration/Advanced/Developer menüpont alatt a Translate Inline részben található. Használata közben nem árt a cache kikapcsolása, illetve ki- és belépés az adminban.
A belső fordító használata indokolt lehet olyan esetben, amikor pl az adminisztrátor egy-egy részhez megjegyzést kíván fűzni vagy egy elgépelés hibával találkozik a webáruház tulajdonos a frontend részen és
azonnal javítani akarja, de nagyobb átalakításokra szerintem nem alkalmas.
A fordító file-ok:
Ezek a file-ok sima szöveges formátumú .csv kiterjesztésű állományok.
"Developer","Fejlesztő"
Első helyen mindig az eredeti nyelv(angol) áll, majd vesszővel elválasztva a helyi nyelv értéke. Erősen javasolt odafigyelni a "" jelek pontos használatára, mert produkált már a történelemben érdekes működést az elfelejtett " jel.
Ha a szövegben idézőjelet kell használni, akkor azt duplázni kell:
"Enable ""Remember Me""","""Emlékezz rám"" engedélyezése"
HTML valamint helyettesítő elemek is gond nélkül alkalmazhatóak (a %s helyére az elérési út kerül):
"click <a href=""%s"">here</a>","kattintson <a href=""%s"">ide</a>."
Hogyan használjunk a sablonokban a fordítást?
Elemi hiba, amikor webáruház készítésénél az egyedi átalakítások során elmaradnak a fordítások és a forrásba belekerül a szöveg.
Pl: <h3>Mi ez?</h3>
Addig nincs is ezzel a megvalósítással probléma, amíg a webáruház tulajdonosa úgy nem gondolja, hogy ő szeretné angol nyelven is üzemeltetni a webáruházat, mert akkor jöhet az órákat vagy napokat felemésztő átalakítás.
A helyes megoldás az lett volna, ha már eleve angol nyelven kerül a szöveg a sablonba, a fordító felhasználásával.
A példánál maradva: <h3><?php echo $this->__('What is this?') ?></h3>
"What is this?","Mi ez?"
Miért van 50+ fordító file?
A Magento fejlesztők próbálták a szövegeket is szétbontani, hogy minél egyszerűbb legyen megtalálni őket, illetve ami a fontosabb az alap modulokhoz csatolták őket.
Tehát, ha ilyen sort látunk:
<?php echo Mage::helper('sales')->__('Qty to Invoice') ?>
akkor ennek a fordítását biztosan a Mage_Sales.csv-ben találjuk meg.
Mi a teendő, hogy hordozható maradjon az oldal?
Néhány egyszerű szabály betartásával megőrizhető a Magento hordozhatósága:
- a sablonokban használjuk a fordítót
- az egyedi fordításainkat ne a belső fordítóból oldjuk meg
S mi a helyzet a Magento 2.0-val?
Nos, az előzetes tervek szerint egy átalakítás szinte biztos: a központosított könyvtárt (app/locale) a moduláris szerkezet oltárán feláldozzák és modulonként lesz megtalálható.
Pl.: a Mage_Adminhtml.csv az app/code/Mage/Adminhtml/locale/hu_HU könyvtárba kerül.
A téma specifikus translate.csv pedig az app/design/frontend/default/default/locale/hu_HU alá.
De ez még igen messze van.
Mi a teendő, ha azt szeretnénk, ha a webáruházunk magyar legyen?
1. Lefordítjuk mi magunk
2. Kutatunk ingyenesen letölthető verziót a Magento oldaláról (a hivatalos 1.3-as verzióhoz készült még), itt megtalálható
3. forumon feltúrható régebbi fordítás ezen a linken
4. Megkeresünk Magentoval foglalkozó céget és/vagy szabadúszót és megvásároljuk a fordításukat. (egy ilyen konkrét terméket találtam: Magyar fordítás)