2008. május 19., hétfő

ddtp-fordítás részletesen

A ma esti irc míting témája volt a gnome-app-install által telepíthető csomagok leírásainak fordítása és a fontos leírások kiszedése egy táblázatba című móka. Nem sikerült teljesen elmagyarázni, hogy mi is a teendő, szóval egy példán keresztül lássuk, mit kéne automatizálni:

Tegyük fel, hogy a gnome-app-installban látható atomix és gnibbles nevű programok leírását akarom lefordítani, ami a main repó része. Ehhez az alábbiak kellenek, a launchpad fiókon kívül:

-az exportált ddtp-ubuntu sablon. Gyorsítunk: amit most exportáltam, az itt érhető el (még egy pár napig/hétig, fene tudja pontosan): http://launchpadlibrarian.net/14607672/main_ddtp-ubuntu-main-hu.po
-Connor keresőszkriptje, (szerk: idióta ubuntupastebin elrontja a sorvégét, ezért megy ide) amit az előző post óta módosítottam annyiban, hogy a rosetta által exportált nevű fájlt keresse.
-pici türelem ;)

Vesszük az exportált sablont és a szkriptet, ezeket azonos könyvtárba mentjük. Ki kell deríteni, hogy az atomix nevű program melyik csomagban lakik. Ehhez az alábbi kell:

cat /usr/share/app-install/desktop/atomix.desktop | grep X-AppInstall-Package | cut -d = -f 2
atomix

Na ebben nem látszik semmi ördöngősség, ez igazából azért kell, mert sok program esetén nem ugyanaz a .desktop fájl neve és a csomagjának neve, illetve emiatt sok program ugyanabból a csomagból jön:

cat /usr/share/app-install/desktop/gnibbles.desktop | grep X-AppInstall-Package | cut -d = -f 2
gnome-games

Szóval, kiderült hogy melyik csomag kell nekünk, amiben a keresett programok laknak. Most jöjjön egy kis vudu:

sed -i -e s/^#~.*//g main_ddtp-ubuntu-main-hu.po

Erre azért van szükség, mert az exportált fájlban elavult bejegyzések is vannak, amik megborítanák a számolást. Most jöhet a lényeg:

./ddtp-search.sh atomix
Csomag sorszama: 357
Offset: 356
Rovid leiras:
puzzle game for building molecules out of isolated atoms

Hosszu leiras:
Atomix is a game designed for GNOME in which you have to build molecules,
from simple inorganic to extremely complex organic ones, out of isolated
atoms.
.
The first levels can be misleadingly easy, but added complexity always
comes with the next level, so that several minutes (or even much more
than that) can be spent on getting out of one single level.

Ebből a csomag sorszáma (357) érdekes igazán, a leírások itt csak referenciaként szolgálnak.
Keressük fel a következő címet:

https://translations.launchpad.net/ddtp-ubuntu/ubuntu/+pots/ddtp-ubuntu-main/hu/357/+translate

ha minden igaz, akkor itt a fenti rövid leírást kell látnunk. A következő üzenet, amelyet a mostani lefordítása és elmentése után kapunk, a hosszú leírás, legalábbis az első szegmense. A hosszú leírások több darabból is állhatnak, így például az atomixé is már kettő, vagyis ha oda jutunk, le kell fordítani a 358-as és 359-es számú darabokat is. (Az automatizáláshoz praktikus lehet a " . " sorozat számának megszámolása a ddtp-search kimenetében)

Ugyanezt lássuk a játékokkal:

./ddtp-search.sh gnome-games
Csomag sorszama: 1723
games for the GNOME desktop

Nahát, működik :)

Ez egy-egy program esetén így működhet is, de most nem erre van szükség: a teendő a fenti automatikus végigjátszása minden .desktop fájlra a /usr/share/app-install/desktop/ könyvtárban, a kapott csomagnevekhez tartozó számok kikerestetése a ddtp-search programmal és a számok bepakolása egy ízléses táblázatba, a fenti séma szerint körülvéve őket launchpad-linkkel.
Kis segítség lehet nagyv kolléga python szkriptje, ami az első feladatot csinálja meg és itt érhető el: http://paste.ubuntu.com/13330/

Teendők Ibexig

Long time no blog, mondaná a művelt francia, aki tud angolul.
Sok minden történt, többek között kijött a Hardy, az általam vártnál valamivel jobb állapotban, némely szempontból meg rosszabban (pl a laptopom ethernet-kártyájának támogatása elromlott :(), de ez most annyira nem fontos. A lényeg, hogy köszönet mindenkinek aki részt vett az összerakásában, akár a legcsekélyebb mértékben is.

Lássuk akkor mit is kellene megoldani a következő, Ibex nevű kiadásig. A jó munka karbantartása (és a kubuntu doksi lefordítása) mellett két meglehetősen zavaró probléma megoldásához lenne szükség segítségre, honosítási szempontból és persze csak szerintem.

Az első bug az 146918-as számot viseli és arról szól, hogy az automatikusan induló programok listája (rendszer -> beállítások -> munkamenetek alatt) csak félig fordítható, és annak a fele is értelmetlen, "O RLY?" kategóriás leírással bír, ám a fejlesztőket ez nem nagyon zavarja. A feladat roppant egyszerű, fel kell iratkozni a bugra és értelmes leírásjavaslatokat tenni, a desktop.in és POTFILES.in fájlokra vonatkozó némi peccseléssel megbolondítva. Egyszerű, nem?

A második egy sokkal komplexebb probléma, több eleme van. Ezt úgy lehet összefoglalni, hogy le kéne fordítani az Alkalmazások -> Hozzáadás/eltávolítás alkalmazást. Ez is egyszerűnek hangzik, csak nem az. Aki már egyszer is elszakadt a parancssortól, rávághatná, hogy hé, az már le van fordítva, és részben igaza is lenne, hiszen a gui az tényleg jó. Csak ne lenne ott az a fránya programlista...

Alapvetően két dolgot kell lefordítani ennek működéséhez.

Az egyik, a programok leírása a ddtp-ubuntu csomagból. Ez biztosítja a csomagleírásokat, amik pl a synapticban is látszanak, itt pedig a jobb alsó ablaktáblában jelennek meg. A probléma ezekkel csak a mennyiségük, mert bár neki lehetne esni az összes lefordításának, azzal nem lennénk meg a következő LTS-ig sem. Ezért ki kell bogarászni azon csomagneveket, amik érdekesek és a hozzájuk tartozó rosetta-bejegyzést. Ha megvan a fontos csomagok listája, mehetünk is fordítani :).
Nem kell megijedni, a feladat egyszerűbb annál, mint amilyennek látszik. Az app-install a telepíthető programokról saját adatbázist tart, amely tartalmazza a programot tartalmazó csomag nevét, Connor mester pedig barkácsolt egy szkiptet, amivel az exportált ddtp.hu.po-ból ki lehet hámozni egy adott csomag leírásának sorszámát. Ezt a kettőt kell összehozni, az eredményt pedig egy html táblázatba bepakolni - így már nem is olyan szörnyű, ugye?

A másik, az maga a csomaglista, ami az ablak jobb felső részét foglalja el, ez egyelőre nem fordítható a rosettában. A róla szóló bugom nem kapott nagy figyelmet, ezen is kellene dolgozni, illetve ki kellene találni, hogy hogyan lehetne lokalizálhatóvá tenni az adott fájlokat, felhasználni a meglévő fordításokat, csinálni bemutató kódot, stb. Ez elég húzós meló, csak hardcore kockáknak való! :)