Qt fordítás kezdőknek

Naszóval, ez a cikk itten arról fog szólni, hogy hogyan fordítsunk magunknak forrásból Qt-t úgy, hogy az ne piszkítsa össze a rendszerünket.

Hogy ez miért is jó?

  • A rendszerünk régi Qt-t szállít, mi pedig egy újhoz szeretnénk fejleszteni
  • A Qt nyelvi fájlokba akarunk beletúrni

Az első lépés a megfelelő git repo leklónozása. Ez általában a git://gitorious.org/qt/qt.git, de használhatunk más klónokat is:

1
2
[email protected] workspace $ git clone git://gitorious.org/qt/qt.git && cd qt
[email protected] qt (master) $

Egy pár szót a promptról: az első két szekció mindenkinek ismert kell hogy legyen, ugye felhasználóné[email protected]épnév illetve az aktuális mappa neve. A zárójeles rész trükkösebb, ide az aktuális git branch neve kerül, hogy egyértelmű legyen, hol dolgozunk. Általában az alapértelmezett branch a master nevű, klónozás után tehát ide jutunk.

Ezután ki kell választani a megfelelő branchet (a master szinte percről-percre változik, azzal nem érdemes foglalkozni). A lehetőségek tárházát a “git branch -r” parancs mutatja meg, választani a “git checkout -b branch origin/branch” paranccsal tudunk. Én most a 4.7-es branchet fogom előszedni:

1
2
[email protected] qt (master) $ git checkout -b 4.7 origin/4.7
[email protected] qt (4.7) $

Ezután kezdődhet az érdemi fordítás. A fordítás ugyan nem autoconf/automake alapú, a kezdeti lépést mégis a configure script megfelelő paraméterekkel történő futtatása jelenti:

1
2
[email protected] qt (4.7) $ ./configure -developer-build -opensource -confirm-license -nomake demos -nomake examples 
[email protected] qt (4.7) $

A scriptnek van –help kapcsolója, mely ismerteti az összes használható kapcsolót, én az itt használt négyet emelném ki:

  • -developer-build: Arra utasítja a fordítási rendszert, hogy ne a szokásos /usr/lib/ jellegű útvonalon keresse a libeket, hanem az aktuális könyvtárban
  • -opensource: A nyílt forrású verziót fordítjuk
  • -confirm-license: Egy kis könnyebbség, nem kell interaktívan elfogadni a licencet. Scriptelésnél hasznos.
  • -nomake: A paraméterként megadott könyvtárban levő cuccokat nem fogja lefordítani. Nagyjából a fenti két könyvtár esetében van értelme használni, a többinél funkciovesztést kapunk ha használjuk (az src könyvtár kizárásával meg nem kapunk semmit :-) ).

Ezután egy kis molyolás következik, lefordul a qmake eszköz, mely a Qt projektek fordításáért felelős, majd ha már ott van, le is futtatódik az összes qt-s cuccon, legenerálva a szükséges Makefile-okat.

Ezután a jól ismert make parancs következik, mely leforgatja a Qt forrást.

Ha a nyelvi fájlok frissítésén törjük a fejünket, akkor ezen a ponton van még egy teendőnk: ha eldöntöttük mely nyelvi fájlokkal akarunk dolgozni (a példában ez a ‘hu’ lesz), akkor az alábbi parancsra van szükségünk:

1
2
[email protected] qt (4.7) $ make ts-hu
[email protected] qt (4.7) $

Értelemszerűen, ha a spanyol fájlokkal akarunk dolgozni, akkor a paraméter ts-es lesz. Fontos tudni, hogy ez csak a már regisztrált nyelvekre van meg, új nyelvnél előbb létre kell hozni a megfelelő TS fájlokat, lemásolva egy már létező fájlt.

Ezután neki lehet esni a frissített fájloknak a Linguist nevű programmal, mely a bin/ könyvtárban található.

Tipp: ha csak 1-1 projekthez tartozó fájlt akarunk frissíteni, azt így tehetjük meg:

1
2
[email protected] qt (4.7) $ make ts-designer-hu
 [email protected] qt (4.7) $

A fenti parancsa  translations/designer_hu.ts fájlt frissíti be.

Nagyon fontos: Ha belenyúlunk egy ts fájlba, és nem vagyunk az adott nyelv fordítói csapatának tagja, feltétlenül vegyük fel a fordító(kk)al a kapcsolatot! Ha nem válaszolnak, vagy nincs támpontunk hozzá hogy hol keressük őket; Oswald Buddenhagen vezeti a Qt fordítását, őt mindig meg lehet találni az irc.freenode.net IRC szerveren, általában ossi nick alatt.

Comments