A KDevelop Programozói Kézikönyv: Nemzetköziesítés

Következő Előző Tartalom

## 11. Nemzetköziesítés

## 11.1 Mi az a i18n ?

Az i18n egy nemzetköziesítési rendszer, amit egy alkalmazás, vagy projekt nemzetköziesített változatához szoktak ajánlani. Az alkalmazásokkal ugyanis az a baj, hogy csak azt a nyelvet támogatják, amelyiken megírták őket; ez észrevehető a cimkéken, a menükben és több helyen is a program használata közben. A nemzetköziesítés célja, hogy alkalmazásokat és könyvtár-funkciókat biztosítson a felhasználók anyanyelvén; így az eredeti nyelv nem gátolja többé a felhasználót az alkalmazás kihasználásában, és kényelmesebbé is teszi azt.

## 11.2 Hogyan támogatja a KDE a nemzetköziesítést

A KDE-nek, mint az egyik legkorszerűbb asztali környezetnek, számos célja közül az egyik legfontosabb az, hogy a felhasználóknak alkalmazásokat biztosítson anyanyelvükön. Valamint, hogy egyszerűbbé tegye a fejlesztők számára azt, hogy alkalmazásaikat bármelyik támogatott nyelven terjeszteni tudják.

Technikailag ez már megvalósult az KDE File System Standard-al, amely lokális támogatást nyújt a nyelveknek a dokumentációs terminológiában, és elősegíti az alkalmazások nemzetköziesítését a `KLocale` KDE-mag könyvtár használatával. Ez az osztály felel minden nyelvi megjelenésért, amely beállításra kerül a KDE Control Centerben.

A fejlesztőnek mindössze két dolgot kell ismernie ahhoz, hogy alkalmazása kihasználja ezt a tulajdonságot:

1. Vegye bele a forráskódba a `cdx`kapp.h// -ot, ha valahol látható szöveg van az alkalmazásában, pl. a forrás állományokban szerepel a QLabels.
2. amennyiben látható szöveget állít be, akkor azt csatolja a `kapp.h` által biztosított `i18n()` makróval, hogy a fordítás lehetővé váljon
3. amennyiben helyszíni objektumhoz kell hozzáférnie, használja a `kapp.h` által biztosított `klocale` makrót.

Tulajdonképpen ez minden, amire a kód írása közben figyelnie kell. Tartsa még szem előtt azt is, hogy a `KConfig` által használt configurációs szövegrészeket nem kell nemzetköziesítenie, mert egyrészről ez nem lényeges, másrészről pedig ezek nem olvasnak be értékeket.

## 11.3 Nyelv hozzáadása a projekthez

A KDevelop megkönnyíti a fejlesztők életét azzal, hogy anyanyelvi támogatást nyújt alkalmazásaikhoz. Amikor új KDE projektet hoz létre, akkor a projekt főkönyvtárába bekerül egy `po` nevű könyvtár. A programgenerálás befejeztével ide kerül az ön által létrehozott <application>.pot állomány. A .pot állomány ekkora már minden olyan szövegrészt tartalmaz, amelyet az i18n() makróval állítottak be, így önnek már csak a saját kódját kell beírnia a makró használatával. Időről időre, végre kell hajtania egy "Projekt"->"Üzenetek készítése és beágyazása"-t, ami magától frissíti .pot állományt a megfelelő makrók segítségével.

Egy nyelv, projekthez való hozzáadásához válassza a "Projekt"->"Fordítási állomány hozzáadása"-t, ami megnyitja a nyelvválasztás dialógust. Válassza ki a kívánt nyelvet és nyomjon OK-t. Ezzel a megfelelő <lang>.po állomány bekerül a `po` könyvtárba. Ezután kezdje el lefordítani a .po állományt úgy, hogy kiválasztja azt a po könyvtárból a Real File Viewer-ben, vagy az LFV-ből a "Fordítások" útvonalon. Ha telepítette a KTranslator -t, akkor az megnyitja az állományt a "Kellékek" ablakban, egyébként pedig szövegállományként a fejléc/forrás ablakban lesz szerkeszthető. A KTranslator folyamatosan kutatja a már létező fordításokat az ön helyi KDE installációjában, így nagymértékben megkönnyíti a munkát, mert a meglevő fordítások így felhasználhatók.

A kézzel történő szerkesztéshez néhány példa:

> `

>     #: kscribble.cpp:619
>     msgid "Opens an existing document"
>     msgstr ""

> `

A fentiek azt mutatják, hogy a szövegrészlet a `kscribble.cpp` állomány 619. sorából lett kinyerve. A `msgid` és a `msgstr` függelékek, amelyek információt hordoznak a fordításhoz; a `msgstr` fogja a lefordított szövegrészt tartalmazni. Figyelnie kell még a ESCAPE szekvenciákra, mint a \n vagy \t, melyeknek szintén bele kell kerülnie a fordításba. Egy német fordítás tehát így nézne ki:

> `

>     #: kscribble.cpp:619
>     msgid "Opens an existing document"
>     msgstr "Öffnet ein existierendes Dokument"

> `

Ez minden, amire a fordításnál figyelnie kell; miután elkészült, mentse el az állományt. A make, po könyvtárban történő furttatásakor, az üzenetállományok feldolgozásra kerülnek, és hiba jelentkezhet, amennyiben a szövegrészeket nem fordította elég következetesen; pl. ESCAPE szekvenciák hiányoznak. Ha ez történik, akkor javítsa ki a hibát és győződjön meg arról, hogy a make hiba nélkül fut.

Ezen kívül legyen óvatos a szövegrészeken belül található '&' jel fordításával. Az '&' jel utáni betűk az ALT-al együtt használva gyorsbillentyűk s, amelyek segítik a menüsorhoz való hozzáférést, vagy az előreugró elemek megjelenését, hogy a keyboard focus gyorsabban válthasson át a kiválasztott elemre. Ha ugyanaz a gyosbillentyű ugyanazon a keyboard focus területen tűnik fel (ami egyszer lehet a főelem, másszor egy dialógus), akkor az első elem után a többit már nem érhetjük el ugyanazzal a gyosbillentyűvel . Így még az is a fordítón múlik, hogy hogyan lesz használható az alkalmazás a fordított nyelven. Arra sincsen semmiféle biztosíték, hogy az eredeti betű megtalálható a fordításban, így a fordítónak nagyon óvatosan kell ezt a problémát kezelnie, és a lefordított alkalmazás tesztelésével kell meggyőződnie arról, hogy hibák bioztosan ne forduljanak elő.

## 11.4 Kapcsolat a fordító csoportokkal

A KDE Csoport számos olyan kapcsolatot biztosít a fejlesztőknek, amelyek a KDE projekten belül végeznek fordításokat. Ezek nyelvek szerint vannak csoportokba szervezve. A jelenlegi listát és információt arról, hogy kik végzik a fordításokat a http://www.kde.org címen találja meg.

Az alábbi lista az 1999. március 6-án aktuális kapcsolatfelvételi címeket tartalmazza. Amennyiben csatlakozni szeretne valamelyik csoporthoz, írjon közvetlenül annak koordinátorához levelet.

A KDE fordítását Juraj Bednar mailto:bednar@rak.isternet.sk és Matthias Elter me@kde.org koordinálja.

Jelentkezhet a KDE nemzetköziesítési levelezési listájára, ha a kde-i18n-doc@kde.org -ra, ha küld egy levelelet a kde-i18n-doc-request@kde.org címre, a tárgyhoz beírva a "subscribe" szót.

Mielőtt nekikezdene a fordításnak, lépjen kapcsolatba a megfelelő fordító csoporttal annak érdekében, hogy kétszeri munkavégzés elkerülhető legyen.

br Breton translation team:

  team coordinators: Jań-Mai DRAPIER jdrapier@club-internet.fr website: http://perso.club-internet.fr/jdrapier

ca Catalan translation team:

  team coordinators: Sebastiŕ Pla sastia@redestb.es

cs Czech translation team:

  team coordinators: Miroslav Flídr flidr@kky.zcu.cz

da Danish translation team:

  team coordinators: Erik Kjćr Pedersen erik@binghamton.edu

de German translation team:

  team coordinators: Thomas Diehl th.diehl@gmx.net website: http://www.dtp-service.com/kde/de/ mailing list: send a mail with 'subscribe' in the subject line to: kde-i18n-de-request@kde.org Webforum for discussions and user feedback: http://www.dtp-service.com/discus_d

el Greek translation team:

  team coordinators: Theodore J. Soldatos theodore@eexi.gr

eo Esperanto translation team:

  team coordinators: Wolfram Diestel diestel@rzaix340.rz-uni-leipzig.de

es Spanish translation team:

  team coordinators: Boris Wesslowski, Alonso Lara Boris@Wesslowski.com website: http://members.xoom.com/keko5/ mailing list: send a mail with 'subscribe' in the subject line to kde-es@kde.org

et Estonian translation team:

  team coordinators: Hasso C. Tepper hasso@ewsound.estnet.ee

fi Finnish translation team:

  team coordinators: Kim Enkovaara kim.enkovaara@iki.fi

fr French translation team:

  team coordinators: Francois-Xavier Duranceau Francois-Xavier.Duranceau@loria.fr website: http://www.loria.fr/~durancea/kde/wip-apps.html mailing list: send an empty mail to: kde-traduc-fr-subscribe@egroups.com

he Hebrew translation team:

  team coordinators: Erez Nir erez-n@actcom.co.il

hr Croatian translation team:

  team coordinators: Vladimir Vuksan vuksan@veus.hr

hu Hungarian translation team:

  team coordinators: Marcell Lengyel miketkf@yahoo.com website: http://sophia.jpte.hu/~kde

is Icelandic translation team:

  team coordinators: Logi Ragnarsson, logir@imf.au.dk Thorarinn R. Einarsson, thori@mindspring.com Bjarni R. Einarsson, bre@netverjar.is Hrafnkell Eiriksson, hkelle@rhi.hi.is Gudmundur Erlingsson, gudmuner@lexis.hi.is Richard Allen ra@hp.is

it Italian translation team:

  team coordinators: Andrea Rizzi rizzi@kde.org

ko Korean translation team:

  team coordinators: LinuxKorea Co. kde@linuxkorea.co.kr

mk Macedonian translation team:

  team coordinators: Sasha Konecni sasha@msi-uk.com

nl Dutch translation team:

  team coordinators: flidr@CyberGate.zcu.cz flidr@CyberGate.zcu.cz

no Norwegian translation team:

  team coordinators: Hans Petter Bieker zerium@webindex.no

pl Polish translation team:

  team coordinators: Piotr Roszatycki dexter@fnet.pl

pt Portuguese translation team:

  team coordinators: Pedro Morais pmmm@camoes.rnl.ist.utl.pt

pt_BR Brazil Portuguese translation team:

  team coordinators: Elvis Pfützenreuter epx@netville.com.br

ro Romanian translation team:

  team coordinators: Paul Ionescu ipaul@romsys.ro

ru Russian translation team:

  team coordinators: Denis Y. Pershin dyp@inetlab.com

sk Slovak translation team:

  team coordinators: Juraj Bednar bednar@isternet.sk mailling list: send a mail with 'subscribe' in the subject line to: sk-i18n@rak.isternet.sk

sl Slovenian translation team:

  team coordinators: blazzupancic@hotmail.com blazzupancic@hotmail.com

sv Swedish translation team:

  team coordinators: Anders Widell d95-awi@nada.kth.se

tr Turkish translation team:

  team coordinators: Gorkem Cetin gorkem@linux.org.tr

zh_GB2312 Simplified Chinese translation team:

  team coordinators: Wang Jian larkw@263.net

zh_TW_Big5 Chinese BIG5 translation team:

  team coordinators: Chou Yeh-Jyi ycchou@ccca.nctu.edu.tw

Következő Előző Tartalom