„Élő” fordítási kiszolgáló
Jópár napnyi munkaóra után előállt honlapomon egy „élő” fordítási kiszolgáló, és a hozzá illeszkedő kliens. Vagyis, aki használni szeretné, annak a továbbiakban nem kell foglalkoznia a fordítások folyamatos frissítésével, hiszen elvégzi helyette mindezt egy modul, ráadásul automatikusan. Természetesen a rendszert nem lehet teljesen automatizálni, jópár emberi tényező is benne van a pakliban, így tehát jókora időbe is telhet, míg egy elkészült fordítás ezen a kliensen keresztül eljut a végfelhasználóhoz. De előbb-utóbb eljut. Részletek a kattintás után.
Hogyan működnek a fordítások most?
A magyar honosítási csapat hivatalos fordítási helye a http://localize.drupal.org webhelyen található. Itt egy Localization Server modul fut, melyről egy modul fordítását - egy regisztráció után - bárki szabadon letöltheti. Az elkészült fordítások a CVS-be is bekerülnek, ahonnan a modul következő változatának kiadásakor kerülnek a modul letölthető csomagjába. Ha azonban már telepítve van nálunk az a modul, akkor hiába van benne a „friss” (az előző változat) honosítása, az nem települ automatikusan a Drupalba.
Hogyan működnek a fordítások evvel a klienssel?
Az auto_reimport modult telepítve a fordítások folyamatosan kerülnek letöltésre erről a webhelyről. Sajnos a http://localize.drupal.org-ról közvetlenül nem lehetséges. Itt tehát van a dologban plusz egy emberi tényező, mivel onnan az elkészült honosításokat át kell ide hozni. Igyekszem abszolút szinkronban tartani a két adatbázist, de hát nem csak én adminisztrálok ott, így valószínűleg majd beszélgetünk erről a Drupal hétvégén. Most például jókora lemaradásban van ez a webhely ahhoz képest.
A kliens modul a cron-t használja, annak minden egyes futáskor lépked végig a bekapcsolt modulok között. Amennyiben a kérdéses modul .info állományában van változatszám, és nem fejlesztői (-dev) változatról van szó, akkor letölti a kiszolgálóról a legfrissebb fordítást a modul translations könyvtárába a fájlrendszerben létrejövő auto_reimport könyvtárba, és hogy még véletlenül se írjon felül semmit, speciális kiterjesztéssel látja el.
A továbbiakban egy konkrét, ám összetettebb példán tekintsük át a működést, legyen mondjuk a legfrissebb CCK modul. Ha ennek bármelyik almodulja be van kapcsolva, és éppen arra kerül a sor, akkor a cck/translations files/auto_reimport könyvtárba le fogja tölteni az aktuális változat honosítását, mégpedig cck.ar.hu.po cck.hu.po néven (A névben az „ar” az auto_reimport rövidítése.). Feltéve, hogy megvan egyáltalán. Ha nincs, akkor az eseménynaplóba bekerül, hogy szerette volna letölteni, de nem volt a kiszolgálón, valamint kapok róla egy emailt. Ha túl sok levél jönne, majd kivesszük ezt az opciót, illetve megy egy szűrő erre a címre, hisz az eseménynaplóban úgyis látom, hogy „fájl nem található” volt.
Jelen cikk írásakor például még nem készült el itt a cck-6.x-2.6 fordítása, pedig csak pár szöveg hiányzik belőle. Elsőként a FeedAPI fogja észrevenni a frissült hírcsatornát majd valamikor, és csinál belőle egy „kiadást”. Onnantól a következő pár cron ciklus majd automatikusan letölti a csomagot, beküldi a helyi Localization Server-be, majd le is teszteli, hogy fordított, vagy hiányos-e. Hiányos lesz, de mivel bekerült egy új csomag, a l10n_tools programcsomag l10n_download almodulja előbb-utóbb elkészíti a letölthető változatot.
Tehát az l.d.o-n elkészült fordítások valahogy, valamikor átjönnek ide, itt valamikor az l10n_download csinál belőle frissített honosítást, majd ez valamikor eljut a kliensmodult használó webhelyére. Az átfutás lehet gyors (manuális rásegítéssel), de akár egy-két hétbe is beletelhet, mivel az l10n_download ciklikusan frissíti a modulokat, 7 percenként 10-et. Jelenleg 199 projekt 2247 kiadása van a kiszolgálón, tehát egy kimondott kiadás frissítésére ki tudja mikor kerül sor. De sor kerül rá, ha nem előbb, hát utóbb. Jelenleg éppen hozom át a 199 modul aktuális fordítását a l.d.o-ról, de mire abból friss, letölthető csomag lesz...
És akkor? Hogy kerül be a kliens adatbázisába a frissen letöltött honosítás automatikusan? Az éjfél utáni első cron futáskor. Ekkor első lépésben letöltésre kerül a Drupal alapcsomag legfrissebb honosítása, ezt a modules/system/translations/drupal.ar.hu.po files/auto_reimport/drupal.hu.po néven kell keresni. Ezt követően minden „Beépített felület”-hez tartozó szöveg törlődik az adatbázisból, majd 2 ciklusban újraimportálódnak a honosítások. Az első körben az ar.hu.po-ra végződő files/auto_reimport könyvtárban lévő fájlokat importálja, hogy a friss fordítások kerüljenek be előbb, majd a második körben a hu.po-ra végződő „hagyományos” fordításokat.
Hát egyelőre ennyi, a szükséges kliens csatolva. Mindent elkövettem, hogy hiba ne legyen benne, de ettől függetlenül MINDENKI CSAK A SAJÁT FELELŐSSÉGÉRE HASZNÁLHATJA! Éles környezetben egyelőre NE HASZNÁLD! Ha hiányzik egy modul, amit használni szeretnél, akkor írd meg a kapcsolat űrlapon keresztül, és felveszem. Ötleteket, javaslatokat is szívesen veszek.
FRISSÍTÉS: A csatolmány eltávolítva, mert már nem működik ez a szolgáltatás.
zly