2008. június 25., szerda

Egyesített csomagleírás-fordító projekt

A múltkor András felvetette, hogy teljesen felesleges ugyanazoknak a csomagoknak sokféle leírást írni és fordítani, de főleg fordítani mivel erre kevesen vagyunk :). Aztán elgondolkoztam ezen, hogy lenne jó megoldani. Van ugye jelenleg 3 (? a Debiannal mi van?) olyan disztrib, amelyik tud/szokott/akar (utóbbi vagyunk mi ;)) ezzel foglalkozni, a suse és a fedora már ért is el eredményeket, de sokkal hatékonyabb lenne ha összedolgoznánk. Az ugye tény, hogy a disztribek nagyrészt ugyanazokból a forráscsomagokból építkeznek, és kevéssé meglepő módon a csomagok leírásai sem térnek el nagyon, így egy felhasználó akármelyikből kb ugyanannyi információhoz juthat. Lenne tehát értelme azt mondani, hogy vesszük egy adott disztrib meglévő fordításait, és mindenhova máshova azt másoljuk, a felhasználónak nem tűnne fel úgyse.

Az ötlet a következő: a meglévő csomagleírások mennyisége alapján azt mondjuk, hogy a suse fordításait vesszük át, aztán ahol ez hiányos ott a fedoráét, majd az ubuntuét. A hiányzó sztringek persze mindből bekerülnek, aztán aki ráér nekiáll, és nem számoljuk hogy jaj most a redhatnak fordítunk :). Lényeg, hogy egy adatbázisba betoljuk a fordítandó és fordított cuccot az egyes disztrókból, majd kiszedjük a lefordítottnak nyilvánított sztringeket, de a fordítás már egységes lesz, függetlenül az eredeti szóhasználattól stb.

Megvalósítás: na ez a nehéz rész. Kell egy adatbázis, amiben tároljuk a csomagok leírásait, meg valamilyen egyedi azonosítóját, ami elsődleges kulcs lesz. A legnagyobb probléma a csomagnevek egymásnak megfeleltetése lesz, mert ehhez nincs sok segítség a po fájlokban. Azaz, az Ubuntus verzióban konkrétan nincs (trükközéssel állítható elő csak), a Fedorás a bináris csomagok fájlneveit és a csomagnevet is tartalmazza, és a Suse csak a csomagnevet. Plusz, az Ubuntu bekezdésenként külön üzenetbe szedi a hosszú leírásaokat, niiiiice :). Ezzel lesz tehát a legtöbb baj.

A lényeg azonban, hogy ha a forráscsomagokhoz (targéza) társítanánk a leírásokat, akkor a csomagdarabolások miatt lenne nehéz párosítani, ha a bináris csomagokhoz társítanánk, akkor meg az átnevezések miatt. Így valami öszvér megoldást kellene keresni. Az ötlet a következő:
-Vegyük a suses csomagleírásokat, mert mennyiségre azt hiszem abból van a legtöbb, és induljunk ki ezekből, azaz ezeket másoljuk máshova.
-Vegyük fel az adatbázisunkba a csomagneveket, illetve az ezekhez tartozó rövid/hosszú leírásokat, fordítással együtt.
-Vegyük fel a Fedorás és Ubuntus fájlokat, a fordítások mellé tegyük oda a csomagneveket, majd próbáljunk hasonló nevű csomagokat keresni a Suses táblában. Házi feladat értelmes algoritmust találni :). Ha találunk akkor örülünk, ha nem, akkor vagy az algoritmus a buta és van ugyanolyan forrásból épülő, azonos szerepű csomag Suse alatt, akkor manuálisan létrehozunk egy társítást, vagy tényleg nincs még olyan csomag, akkor felvesszük a Suse-táblába, amit ezentúl Egységes fordítások táblának nevezünk :).
-A közös rész ez lesz, ezt fogja minden disztribúció fordítócsapata fordítani, illetve a saját dolgai közül hozzápárosítani a szerinte megfelelőt.
Természetesen ebben nyilván kell tartani azt is, hogy melyik disztribúcióban szerepel az adott leírás, azaz melyik fájlba érdemes exportálni.

Nézzünk egy konkrét példát, mert ez a fenti még nekem se világos teljesen :).
Van az alacarte nevű kis menüszerkesztő programka. Ehhez tartozik a Suse po-fájljában a következő:
#: alacarte (63049) summary
msgid "Menu editor for GNOME"
msgstr "GNOME menüszerkesztő"

#: alacarte (63050) description
msgid "Alacarte is a simple freedesktop.org compliant menu editor for GNOME
that lets you change your menus, simply and quickly. Just click and type to
edit, add, and delete any menu entry."
msgstr ""
"Az Alacarte egy, a freedesktop.org előírásainak megfelelő egyszerű\n"
"menüszerkesztő a GNOME-hoz, amely lehetőséget ad a menük gyors,\n"
"egyszerű módosítására. Csak kattintson és gépeljen bármely menüelem\n"
"szerkesztéséhez, hozzáadásához, eltávolításához."
Remek akkor ezt felírjuk az Egységes fordítások táblába:
név: alacarte|rövid leírás: msgid "...", msgstr "..."| hosszú leírás: msgid "...", msgstr "..."| használja: suse
Nézzük a Fedorát:
#. alacarte{DESCRIPTION}
#: alacarte-0.10.0-1.fc6.noarch.rpm alacarte-0.11.3-4.fc8.noarch.rpm
msgid ""
"Alacarte is a menu editor for GNOME that lets you get things done,\n"
"simply and quickly.\n"
"\n"
"Just click and type to edit, add, and delete any menu entry."
msgstr ""
#. alacarte{SUMMARY}
#: alacarte-0.10.0-1.fc6.noarch.rpm alacarte-0.11.3-4.fc8.noarch.rpm
msgid "Simple menu editor for GNOME"
msgstr "Egyszerű menü szerkesztő GNOME-hoz

Fel is írjuk a Fedora táblába:
név: alacarte (a csomagnévvel nem foglalkozunk)| rövid leírás: msgid "...", msgstr "..."| hosszú leírás:
msgid "...", msgstr "..."

Ezután megnézzük, hogy az Egységes fordítások táblában van-e valami hasonló? Nos van, és ennek felettébb örülünk.
Felírjuk az Egységes fordítások táblába, hogy: "...használja: suse, fedora."

Hasonlóképpen járunk el Ubuntu meg amit akarunk esetén is, módosítjuk a bejegyzést, ha van találat, ha meg nincs akkor felvesszük új bejegyzésként.
Némiképp bonyolítja a helyzetet, hogy az Ubuntu nem ad meg csomagneveket, de ezt túléljük :).
Illetve, a leírásdarabolás problémája is ott van, ezzel nem tudom mit lehet kezdeni. Lehet, hogy
automatán kellene darabolni a fordításokat exportkor? Esetleg tökönrúgni a fejlesztőket?

Ezután jönnek a fordítók és egy okos webes felületen vagy keresnek hasonló nevű csomagokat, vagy fogják és lefordítják a leírást.

Az igazán érdekes rész az export, amikor is megmutatkozik ennek az egész hajcihőnek a haszna:
Jön az egyszeri Ubuntus fordító, és kér egy po-fájlt. Ekkor az adatbázis leválogatja neki azokat, ahol a használja mezőben szerepel az Ubuntu, az adott csomag eredeti leírását kiszedi az ubuntus táblából, majd hozzácsapja a Suseból származó fordítást, azaz valahogy így fog kinézni:

msgid "easy GNOME menu editing tool"
msgstr "GNOME menüszerkesztő"

msgid "Alacarte is an easy-to-use menu editor for GNOME that can add and edit
new entries and menus. It works with the freedesktop.org menu
specification and should work with any desktop environment that uses"
the spec."
msgstr ""
"Az Alacarte egy, a freedesktop.org előírásainak megfelelő egyszerű\n"
"menüszerkesztő a GNOME-hoz, amely lehetőséget ad a menük gyors,\n"
"egyszerű módosítására. Csak kattintson és gépeljen bármely menüelem\n"
"szerkesztéséhez, hozzáadásához, eltávolításához."

Ezután a kapott fájl mehet az adott disztribúció svn-jébe vagy amije épp van.
Egyszerűnek hangzik, nem? Kinek van kedve megvalósítani? :)

2008. június 23., hétfő

Üzemi tárhely

Na ezt is megértük, végre van hova rakni az eldobható szkriptecskéinket :). Néhány apró tudnivaló, amit a kolléga nem mondott el:
-ki használhatja? elméletileg a fordítócsapat tagjai. akik feltöltötték az ssh kulcsukat, felpakolászhatják az éppen barkácsolt vackaikat
-kinek szól? mindenkinek aki segíteni akar a fordításban és hasznát venné néhány segédeszköznek :).
-mik vannak most ott? elsőként a ddtp-lista-generáló szkript került fel, aztán ennek popcon-kompatibilis kiterjesztése. Van még egy újraírt gmirr szkript is, ami gyönyörűen leszed minden gnome-fordítást és szépen elrendezi azokat, ez megint csak Sianis keze munkája :). Továbbá a nem hivatalos d-i forkunk is ott van, ami a jövőben jöhet jól.

2008. június 18., szerda

DDTP és a universe

Az előző bejegyzésben nem nagyon foglalkoztam a universe komponenssel, és nem véletlenül. Ennek ugye megvan az a tulajdonsága, hogy minden vacak van benne, ami a mennyiségét eléggé növeli. A kevéssé használt apróságok leírásának meg neki lehet ugrani, csak értelme nincs. Azonban van rengeteg csomag, amivel érdemes lenne szórakozni, ha ki tudnánk őket válogatni. Nos, erre is jó a popcon, ami az app-installban a népszerűség oszlop alatti csillagok számát határozza meg. Ha eszerint rendezzük a meglévő listáinkat (szépen automatizálva), akkor valami ilyesmit kapunk. Ha a többivel kész leszünk, ennek fogunk neki állni :).

Apropó, nem kéne nekünk valami üzemi ubuntuhus perszonáltárhely, vagy legalább egy bazárbrancs, az ilyen apróságok tárolására?

2008. június 11., szerda

DDTP sablonok fordítása

Korábban volt már róla szó, hogy le kéne fordítani a fontosabb csomagok leírását, amik a gnome-app-installban tolulnak az egyszeri felhasználó elé. Az első lépést megtettük, rendelkezésre áll a kérdéses csomagleírások listája, rosetta-linkekkel. A szkriptek végül is Connor, Friczy és Sianis munkája eredményeként nyerték el mostani formájukat, az eredmény pedig a következő:
main (226), restricted (4), multiverse (68). A universe tároló kb 1500 csomagját most egészségügyi okból nem linkelném ide, de az is ott lesz :). A szkriptről tudni kell, hogy csak 99,5 %-ban pontos, néhány csomagnál előfordul, hogy egy-egy hosszúleírásrész eltűnt vagy néhány üzenettel hátrább került, amiről tudom hogy ilyen, az a devhelp, ekiga, eog, evolution, evince, gedit, kbabel, rhythmbox, tuxpaint. A rövid leírás mindig pontos, ezeknél a csomagoknál fordításkor két-háromszor a next-re kell kattintani a megfelelő üzenet megtalálásához.

A feladat következő része pedig természetesen ezen leírások zömének lefordítása lesz, amire egy fordítóhétvége keretei tűnnek alkalmasnak. Mikor lenne ez alkalmas? Első körben a lehetőségek: június 29-30, július 5-6 vagy 12-13 vagy amit akartok :).

Addig is nyitottam egy lapot a hardy todo lista nevű google docban, a már lefordított és praktikusan ötös csoportokban elvállalandó csomagok nyilvántartására (lehet kezdeni, csak tessék :)). Előfordul, hogy néhány leírás már le van fordítva, ez azonban nem tántoríthat el minket a sztringek átnézésétől és esetleges javításától :).

A legutolsó kérdés pedig az lenne, hogy vajon mikor szokták frissíteni ezeket a leírásokat, mert jónéhány csomagé nincs meg a po-fájlokban, holott a csomagkezelőben benne vannak, sőt néha még a po-ban is, csak nem abban (itt: main), amelyikbe az app-install-data hazudja.

2008. június 10., kedd

A Gnome Munkaasztal nincs többé

Azaz hogy nem lesz :)
Azt beszélgettük maat-tal, hogy igaza van Kaminak, amikor azt írja, hogy az Asztal és Munkaasztal használata következetlen, illetve az utóbbi némiképp kilóg és megegyeztünk abban is, hogy:

(10:50:23) Kelemen Gábor: szóval egységesíteni kéne ezt a gnome-brandet, miszerint ha a látható asztalra hivatkozunk, akkor Asztal, ha az egész gnome-ra, akkor gnome asztali környezet
(10:50:30) Kelemen Gábor: és semmi munkaasztal
(10:50:36) hunmaat: aha
(10:50:39) hunmaat: már ketten tudunk róla.
Na de ez utóbbin változtatni kéne, tehát a 2.24-es Gnome-ban meg fog szűnni a Munkaasztal használata, lesz Asztal, amit látunk és egy mappa, meg lesz a Gnome asztali környezet, mint az egész rendszer, és más nem, de ha mégis az hiba és tessék jelenteni.

Remélhetőleg ez az átállás is nagyrészt észrevétlen fog maradni, mint legutóbb a "-idézőjelek eltüntetése. Azon törpölök még, hogy megérné-e a menüpontok végén lévő ... lecserélése "hárompont" (… U+2026 HORIZONTAL ELLIPSIS, ha nem tévedek - maat?) karakterre? Erről már Gnome szinten is esett szó, lehet hogy magyarul is szebb lenne?

A nap képe


A képen egy apró(?) hibát rejtettünk el. A helyes megfejtők között openscope-ereklyéket sorsolunk ki :)