Hogyan fordítsunk játékprogramokat? V.
Itt az újabb rész, ha sikerül, akkor néhány képpel illusztrálva.
(Előre elnézést a kinézetért, de Panyinak még nem sikerült nekem is megfelelően kezelhető wyswyg-szerkesztőt készíteni.)Köszöntök mindenkit, elérkeztünk sorozatunk ötödik részéhez, ahol is elkezdjük sorra venni, hogyan tudjuk kinyerni és szerkeszteni a szövegeket. Ezen kívül szó lesz a későbbi részekben mindarról, amit a tartalomjegyzékben olvashattok. Mostanra már úgy gondolom elég jól kifejtettük a fordítás folyamatának emberi oldalát, innentől a technikai részekre, részletekre terelődik a hangsúly.
Szükségünk lesz magára a programra, játékra, amit le szeretnénk fordítani, vagy legalább azokra a fájlokra, amik tartalmazzák a szövegeket. Ezen kívül kezelnünk kell ezeket, különböző műveleteket végrehajtva, valamint ki is kell alakítani egy környeztet, ahol kiigazodunk, akár csak az íróasztalunkon.
A játékot készítők sok esetben nem szeretik, ha mások is belenyúlhatnak a játékukba, nem ritkán ez nem is törvényes, a magyar, és a külföldi jogrendszert egyaránt figyelembe véve.
3.1, szövegek kinyerése
A szöveg kinyerésének három módja van, lejjebb sorra is vesszük ezeket. Ibrik honlapjáról már több segítséget is kaptunk, és mivel remekül leírja a lényeget, úgy gondoltam, én csak kiegészítem még néhány további példával, és gondolattal.
3.1.1, egyszerűen szerkeszthető
,,A legegyszerűbb eset, amikor egy olyan fájlban vannak tárolva a szövegek, amely(ek)et egyszerűen lehet szerkeszteni egy alap szövegszerkesztővel (pl. Notepad).
Ebben az esetben úgy lehet megtalálni a legegyszerűbben a szövegeket tartalmazó fájlt, hogy elindítjuk magát a játékot, és feljegyzünk magunknak pár jól azonosítható szöveget pl. a menüből (NEW GAME, OPTIONS, stb.), - ha vannak - az elvégzendő küldetések/feladatok szövegeiből (LOCATE AND DESTROY..., SNEAK IN..., INVESTIGATE..., stb.), és nem árt az összekötő videók és a játék közben elhangzó párbeszédek szövegeiből is csemegézni - természetesen csak akkor, ha ezek feliratozva vannak.
Nagyon hasznos eszköz a Total Commander. Indítsuk el és valamelyik oldali panelban lépjünk bele a játék telepített mappájába.
Alt+F7-el indítsuk el a TC beépített keresőjét, pipáljuk be a "Szöveg"-et, mellé gépeljük be a keresendő szövegrészletet, majd "Keresés indítása".
Ha esetleg a keresés nem jár eredménnyel, nem árt a keresést megismételni "Unicode" vagy "UTF8" beállítással. Ha így már van eredmény, akkor pl. szövegfájl esetén a kódolást is kiderítettük, amely hatással lehet a magyar ékezetes magánhangzók helyzetére.
Az eredmény - a fájl neve - bármi lehet (hozzátéve, hogy itt még mindig egyszerű szövegszerkesztővel módosítható fájlokról van szó), rengetegféle kiterjesztéssel: TXT, LANG, INI, INT, ENG, SCR, stb... Csak meg kell nyitni valamelyik kedvenc szerkesztővel (Notepad, UltraEdit, stb.)
Fontos
A szerkesztéshez kapcsolódva több dologra is felhívnám a figyelmet:
- Kódolás: Ez a magyar ékezetes magánhangzók szempontjából fontos a számunkra. Sokszor előfordul - az angol ABC "szegénysége" és az ezt tartalmazó karakterfájl miatt -, hogy ezek a karakterek hiányosan, máshogy (pl. a hosszú "ő" és "ű" helyett "kalapos" karakterek) vagy egyáltalán nem jelennek meg.
- Szövegek tárolási módja a fájlban: A legegyszerűbb eset, amikor tényleg csak a fordítandó szövegek vannak soronként a szövegfájlban. Itt nincs gond - kivéve, ha nehezen azonosítható paraméterekkel keverve vannak eltárolva. A másik eset, amikor egy-egy sorban megtalálható a paraméter (a string azonosítója) és maga a fordítandó szöveg (a string értéke), amely utóbbi vagy mindkettő sokszor idézőjelek közé van téve. A fordításnál (szerkesztésnél) nagyon figyelni kell, hogy a string azonosítóba és az idézőjelekbe ne töröljünk bele, vagy ne módosítsuk azokat. Igen bosszantó hibákat okozhat a játék futtatásakor, és utólag igen nehéz megtalálni a hiba okát a sokszáz vagy sokezer bejegyzés között.
Példák:

A legelső példában csak maguk a fordítandó szövegek vannak a szövegfájlban, nincsenek string azonosítók. Azokon kívül még lehetnek magyarázó szövegek, megjegyzések, szekciójelző címek is, amelyek nem jelennek meg a játékban. Mint látható, itt < és > jelek között. Használatosak még a pontosvessző, kapcsos, szögletes zárójelek, stb.
Itt egyértelmű, hogy az egyenlőségjelek jobb oldalán van a fordítandó szöveg:

A következőben
idézőjeleket használtak. A baloldali idézőjelbe tett "érték" az
eredeti angol szöveg, a jobboldali pedig az adott nyelvre fordított változata
lesz (azt kell átírni):
Az előző példa egy változata, amikor az eredeti (angol) szöveg egy string azonosítóval van helyettesítve (természetesen itt is a jobboldali "értéket" kell módosítani):''

/ibrik - http://ibrik.atw.hu/
Remekül össze van szedve, csupán néhány aprósággal szeretném kiegészíteni:
- van, hogy a játék cd/dvd lemezről indul, és összehasonlítja a merevlemezre feltelepített fájlokat a lemezen lévőkkel, például Three Kingdoms: Fate of the Dragon. Erre több megoldás is létezhet: iso képfájlban lemásolni a lemezt, a módosított fájlok mehetnek bele, így már egyezni fognak, netán crack fájlt alkalmazva elkerülhetjük ezt a fajta mechanizmust (a lemeznek is jót tesz, ha csak telepítésnél használjuk), illetve ha programozók vagyunk, mi magunk is kiiktathatjuk ezt a fajta védelmet. Természetesen a crack felesleges és illegális használatára nem buzdítok senkit! Ami tényleg jó játék, és játszol is vele, vedd meg eredetiben!
- vannak játékok, amik hexadecimális módban szerkeszthetőek, viszont létezik hozzá program, amivel máris megszűnnek a korlátok. Pl..: Knights and Merchants, lásd később.
- próbálkozni kell, többféle szövegszerkesztővel, hátha valamelyikkel sikerül. Értelemszerűen ha adatbázisban vannak a szövegek, átírjuk pl. a menüt, majd a játék megjeleníti, akkor nem is kell tovább keresgélnünk, fordíthatjuk.
- egyértelműen kell azonosítani a szövegfájlok helyét! Ha több, azonos fájl van, lehetséges hogy ellenőrzi, egyeznek-e! Netán magában a .exe fájlban van a szöveg, amivel ellenőrzi, erre később térek ki.
3.1.2, hexadecimális kihívás (karaktercsata)
,,Ezt a módszert egyetlen szóval tudnám jellemezni: rémálom...
Sajnos léteznek olyan szövegfájlok, amelyeket nem lehet szerkeszteni egyetlen ismert szövegszerkesztővel sem, vagyis nem létezik hozzájuk olyan szerkesztő, amely meg tudná nyitni a fájlt és pl. bejegyzésenként módosítaná a feliratokat.
Ezeket a fájlokat kizárólag valamilyen HEX-editorral lehet módosítani, aminek az a legnagyobb hátránya, hogy csak karakter-limitesen lehet átírni a szövegeket. Vagyis az angol szöveg magyar fordítása nem lehet hosszabb, mint az eredeti angol. Mondjuk egyes mondatoknál még jól lehet variálni az egyes szavak szinonímáival, rövidítéseivel vagy a mondat rövidebb/tömörebb átfogalmazásával, de az egyszavas bejegyzéseknél már vakarhatjuk a fejünket a magyar nyelv szavainak terjedelmesebb volta miatt.
Emellett másik hátrány, hogy igen nehéz így elkerülni a "magyartalanságokat" és a nyelvi hibákat a fordításban - erről még bővebben írok a Fordítás részben.
Én a magam részéről mindig kerülöm (kerültem) az ilyen megoldású játékok magyarítását.''
/ibrik - http://ibrik.atw.hu/
Lássunk rá példát, a már említett Knights and Merchants jó is lesz.
Így néz ki, ha szövegszerkesztő programmal szeretnénk megnyitni a Text.lib, és Setup.lib fájlokat:

Nem
kell megijedni, nézzük szépen sorban. Az eleje úgy ahogy van hülyeség, nem
érdekel minket. Aztán, valahol a fájl közepén találunk értelmes dolgokat is.
Kijelöltem a Kilépés szót, ez egy hét betűt tartalmazó kifejezés. A bal oldalon
a karakterek hexadecimális kódja látható, kékkel, ott is kijelölt nekem hét
karaktert (14-et, de kikövetkeztethető, hogy egy karakter két helyet foglal
hexaban). 8 darab négyes csoport látható, mindegyik két betűt tartalmaz, így 16
karakter lehet egy hexa sorban (nem meglepő abból kiindulva, hogy 16-os
számrendszer...).
Ha nagyon akarjuk, meg is fejthetjük a kódot, hisz teljesen világos, a 20 jelöli a szóközt FA az ,,ú'' betű, és 73 az ,,s'' betű. Kijelölve még egyszerűbb leolvasni minek mi a kódja.
Ennél a fordításnál ,,pusztán'' arra kell figyelni, hogy egy sorral sem csúszhatunk! Nézzük meg fordítva, próbáljuk angolra lefordítani, pl. a ,,áték.Opciók.Kész'' sort. Mivel tört sorral kezdünk és végzünk, így arra is kell ügyelni, hogy az előző, ill következő sorok vége stimmeljen. A pont karakter választja el a játék egy-egy adott kifejezését (ez lehet akár több szó is, de egy ,,sorban'' szerepel a játékban, mondjuk így), viszont a bal oszlopban, szürkével láthatunk 0x0... kezdetű sorokat. Ezzel hivatkozik a program, így tudja, hogy pl. az Opciók rész melyik sorba fog kerülni. Ha tudjuk hol s hogyan hivatkozik ezekre a sorokra, akár ezeket is átírhatjuk ha tudjuk, így eltérhetünk a szűkös 16 karakter / sor korláttól, de valószínűleg nem fogjuk tudni. Fontos megjegyezni, hogy a pont és a szóköz karaktereket is beleszámítja a program a 16 karakterbe!
Akkor nézzük is meg, íme a középső sor, és a két szomszédja:
ltése.Hálózati_j
áték.Opciók.Kész
ítők.Kilépés_a_p
Valahogy így nézne ki angolul:
ltése.Multiplaye
r.Options.Creato
rs.Kilépés_a_p12
Egy egyest és egy kettest tettem a ,,p'' betű után, mivel két karaktert még felhasználhatunk a rendelkezésre állókon kívül. Így a ,,Kilépés_a_p12'' rész helyet írhatjuk, hogy ,,Exit_to_the_d'', következő sorban meg a végét: ,,esktop.''.
Úgy gondolom, érthető, miért nem szeretik ezt a fajta szerkesztési módot. De maradjunk a játéknál, hisz a megoldás a LIB Decoder című program személyében érkezik:

A
programozóknak sikerült megoldani, így már nem vagyunk a 16-os számrendszerhez
kötve. A program fejlécében látható, hol találjuk a szövegfájlokat. Nem
összekeverendő a \data\gfx\TEXT0.DAT fájlokkal (0, 1, 2,3, sorszámúak,
tehát összesen négy text kezdetű fájl van ebben a mappában)!
Úgy érzem, erre a hétre négy oldal elég, igaz sok a kép. Jövő héten folytatjuk a harmadik lehetőséggel, mikor is nem juthatunk hozzá egyszerűen a szövegekhez, hanem ki kell őket tömöríteni. Ha valami kimaradt, kérem jelezzétek, aztán ha csak apróságok, akkor a pdf-be majd beleszerkesztem, viszont ha szükséges, és elég szöveg jön össze, a következő héten ezzel folyatjuk, és a 3.1.3-mas fejezet majd csak ezek után jön.
/TGWH/
2013-01-20 05:40
2012-08-23 21:04
és végig ilyen!
Ezt hogy lehet magyarosítani?
2012-05-08 23:52
azt tudjátok esetleg, hogy honnan szerezhetek segítséget, leírást (esetleg programot) .qm fájlhoz?
a logikája megvan: először a megjelenítendő szöveg, minden két megjelenítendő karakter között van egy null karakter (amit ti pontnak neveztetek, de a winhex pl. üres karakterként jeleníti meg), aztán meg az elem neve. de amiről szó volt, hogy helyhez kötött a szöveg, az nem tudom, hogy van akkor pontosan
2012-04-17 15:58
2012-04-17 14:20
2012-04-14 23:22
2012-04-14 21:43
A következő részt meg talán holnap elkezdem írni.
Az sem fog majd megártani, ha jönnek a kiegészítések, amikhez nem kell annyi munka, csak összevágom és mehet Rave-nek
Amúgy tényleg nem bonyolult, csak vannak játékok, amihez picit trükközni kell.
2012-04-13 19:04
2012-04-05 08:36
2012-04-05 00:27
2012-04-04 19:03
2012-04-04 13:28
2012-04-03 20:51
2012-04-03 19:58
Nem is ezt firtatom, hanem azt, hogy 16 blokkokban, soronként kellene gondolkodnunk, ha hexában szerkesztünk, ami teljesen téves elképzelés.
2012-04-03 18:33
Mindegy is, aki ír róla és kibővíti, az bekerül a pdf fájlba, aztán onnantól talán már normális formája lesz
2012-04-03 08:30
A hex értelmezése teljesen téves. Jobb szerkesztőkben bármekkora szélességet, természetesen páros értékkel, meg lehet adni egy adatfájl hexás megjelenítéséhez. És akkor egy sor nem 16bájt. Úgy kell felfogni, mint a Word-öt; a sor végén új sort kezd. Nem kell túlbonyolítani.
A képen szereplő szövegek, pedig ponttól-pontig (0x00h) tartanak.
Tehát lényegtelen egy sorban mi van, de tényleg figyelni kell az előző sorra, de arra pl Word-ben is figyelünk.
Nem minden hexa szerkesztő használja indulásnál a 4-es csoportba rendezést, de átlátáshoz tényleg ez javasolt.