Android honosítás 3. rész – Honosítás és Update csomag
Elég sok idő telt el a masodik rész óta, remélhetőleg minden érdeklődő ki tudta próbálni az korábbi részekben leírt dolgokat. Tehát van néhány kibontott apk fájlunk, egy telefonunk, ami most magyarítani szeretnénk. Elöljáróban néhány szót a res mappa működéséről. A leggyakoribb könyvtárak, amiket itt találhatunk a következők.
drawable. Itt a programcsomag által használt grafikai elemek, és néhány xml fájl található, melyek a grafikus elemek elhelyezkedését/viselkedését befolyásolják.
layout. Az itt található xml fájlok szabják meg az alkalmazás ablakainak/képernyőinek/widgeteinek/stb. kinézetét, elrendezését.
values. Számunkra ez igen fontos, hiszen többek között a nyelvi fájlokat is tárolja ez a mappa, amibe később részletesebben is belenézünk.
xml. A program által használt leíró fájlok, amelyek különböző adatokat tartalmazhatnak és a program működését befolyásolják.
Észrevehettétek, hogy néhány mappából több változat is létezik, ami számunkra nagyon fontos. Különböző nyelveknek, telefon típusoknak külön mappát tudunk készíteni. Hogy is működik ez? Példának vegyük az 1.6-os Launcher.apk-t. Ebben a csomagban van egy drawable könyvtár, amiben a program képeit találjuk, valamint van egy drawable-land és egy drawable-port mappa. Attól függően, hogy a telefon álló vagy fekvő módban van, a szükséges elemeket a drawable-land és drawable-port mappákból fogja venni. Hasonlóan ehhez, a values mappában az alapértelmezett angol fájlokat találjuk, például a values-it az olasz nyelvi fájlokat hordozza. Ha létrehoznánk egy values-it-land mappát, akkor a fekvő módhoz tartozó olasz szövegeket innen töltené be. Ezen a logikán tovább haladva, hozzunk létre egy values-hu mappát, amivel hozzá is foghatunk a magyarításhoz. A values mappában több xml fájlban van, de nekünk nem lesz mindre szükségünk. Ha megtekintjük a values-it mappát, akkor könnyedén lemásolhatjuk, hogy vajon mely fájlokra van szükségünk a magyar lokalizáció létrehozásához. Másoljuk át a strings.xml-t a values mappából a values-hu mappába. A nyelvi fájlok az Androidtól megszokott xml formátumban vannak tárolva. Windows felhasználók, figyelem! A fájlokat UTF-8 kódolással kell menteni, különben nem fognak működni az ékezetes karakterek. Windows alatt ajánlom az ingyen letölthető notepad2 alkalmazást. Én Linux rendszeren a geditet használom. Nyissuk meg a values-hu mappából a strings.xml-t, és nézzük meg a szerkezetét.
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<string name="application_name">Home</string>
<string name="uid_name">Android Core Apps</string>
<string name="folder_name">Folder</string>
<string name="chooser_wallpaper">Select wallpaper from</string>
...
</resources>
A stringek felépítése egyszerű: <string name="string_neve">Szöveg</string>.
Ezek alapján fordítsuk le a fenti angol szöveget:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<string name="application_name">Főképernyő</string>
<string name="uid_name">Android Alkalmazások</string>
<string name="folder_name">Mappa</string>
<string name="chooser_wallpaper">Válasszon hátteret</string>
...
</resources>
Ennyi lenne. Nem kell patchelni a forráskódot, hogy elhelyezzük a magyarítást, nem kell beírogatni a magyar stringeket a kódba, egyszerűen átmásoljuk az angol fájlokat a -hu végű mappákba, és lefordítjuk őket. Van azért néhány dolog, amire figyelni kell.
A “\” karakter a backspace. Az Android rendszer érzékeny a különböző különleges karakterekre, mert sokat operátorként használ fel (“, ~, ‘, stb.) Ezek előtt a karakterek előtt “\” jelet szokás kitenni, így értesítve a rendszert, hogy a következő karakter egy írásjel lesz. Sok helyen fordul elő változó, ami valamilyen adattal, vagy szöveggel lesz felcserélve: Shortcut \”%s\” created… Itt látszik, hogy az idézőjelek backspace-vel vannak ellátva, a “%s” pedig egy változó, ahova a rendszer az ikon nevét fogja behelyettesíteni. Ilyenkor érdemes végiggondolni, hogy nyelvtanilag mennyire lenne helyes a mondat, ha a változót ott hagynánk ahol van, pl.: Ikon “Gmail” létrehozva. vagy inkább “Gmail” ikon létrehozva. Nagyon figyeljünk oda, hogy a string nevét ne írjuk át, ne töröljük ki a <> jeleket. Amennyiben kész a magyarítás, az előzőekben ismertetett módon fordítsuk újra, írjuk alá, és hozzuk létre az update csomagot.
Maga az update csomag egy .zip fájl, és hasonlóan kell kinéznie, mint a ROM-nak, amiből a csomag származik. Az update csomagnak van egy fontos könyvtára, a META-INF/com/google/android, ahol találunk egy update-script nevű fájlt. Ebben van meghatározva, hogy hogyan történjen az update. Ezt mindig az adott ROM update scriptjéből érdemes értelemszerűen kibogarászni, de a következő parancsok általában működnek.
show_progress 0.5 0
copy_dir PACKAGE:system SYSTEM:
show_progress 0.5 10
A fentiekből látszik, hogy az update folyamat a system könyvtárat fogja felülírni az általunk mellékelt fájlokkal. Ezek után másoljuk be az apk fájlunkat a helyére. (A pontos helyét nézzük meg az eredeti update csomagban, amiből kivettük.) Ez nálam a system/app/Launcher.apk. Majd a kedvenc archívumkezelőnkkel készítsük el a zip csomagot. Szinte készen vagyunk, már csak az aláírás szükséges. Sajnos az apk csomagoktól eltérő metódust kell alkalmaznunk, ebben segítséget találunk ezen a hivatkozáson.
Innentől kezdve már csak újra kell indítanunk a telefont Recovery módban, csinálni egy backupot, és flashelni a kapott fájlt.
Sok sikert kívánok a magyarításhoz, és bombázzatok a kérdéseitekkel!
Szerző: Apoth









2010. június 3., 21:42
Akarjuk mondani, második rész óra.
Ha ez a harmadiknak készült. 
2010. június 4., 09:20
Sziasztok!
Nagyon profi leírás, sok sikert mindenkinek aki belefog, remélem lesznek olyan userek, akik megcsinálják Milestone-ra és később közzéteszik!
Üdv: G
2010. június 4., 12:08
“remélem lesznek olyan userek, akik megcsinálják Milestone-ra és később közzéteszik!”
Nem ez nem erről szól. Csináld meg magadnak
2010. június 4., 12:19
Cak én nem látom az első hsz-t?
2010. június 6., 10:36
Sziasztok!
Esetleg lehetne kérni hogy lépésről, lépésre leírja valaki hogy hogyan is kell a 2.1-es androidot felrakni a telefonra?
Onnantól kezdve,hogy fél éve megvettem a telefont (független), és azóta nem piszkáltam, csak használtam…
Köszönöm!
2010. június 6., 15:53
Milyen telefon, milyen romot szeretnél?
2010. június 6., 16:48
Olyan romot szeretnék,ami már 2.1es gyors,és stabil. Illetve esetleg olyan ami nem 2-3 smsben küldi az ékezetes üzeneteket.
Előre is köszönöm!
2010. június 6., 16:49
Aha, és milyen telefon?
2010. június 6., 16:54
HTC Hero
2010. június 6., 20:42
Én G1-es vagyok, de szerintem itt nézz szét: http://forum.xda-developers.com/forumdisplay.php?f=512
2010. június 7., 09:26
@András: hát sajnos ilyen nem lesz soha. Már ami az sms küldést illeti. A varázsszó: unicode.
2010. június 7., 13:01
Igen, sajna ez így van.
2010. június 7., 17:45
Sziasztok! Bocsi hogy ide írok..de itt van a legfrissebb bejegyzés
!
,és hát már egy ideje nézegetem a HTC Desire-t! Csak attól félek h nem fogotm tudni kihasználni a tudását, és a végén oda lyukadok ki h feleslegesen vettem meg! Nos,hát amire használnám az netezés…e-mailezés, office cuccok(word excel ppt) nézegetése, zenehallgatás,stb. Viszont az az igazság h netezni és e-mailezni csak wifin keresztül szeretnék rajta…mivel nem rendelkezem mobilnettel,viszont szinte állandóan elérhető wifi hálózat közelben vagyok..otthon..egyetemen..szerintetek megérné nekem ezt a telefont megvenni? A másik kérdésem..h az adatforgalmat..azt ténylegesen ki lehet kapcsolni a Desire-ben, és nem kell attól tartanom h ha akarom ha nem felkapcsolódik a mobilnetre..amivel jó nagy méretű számlát okozna nekem
)? Mobil adatforgalmat egyáltalán nem szeretnék használni, csakis wifi-t!
Tanácsot akarok kérni tőletek!
Most szeretnék venni telefont..egy okostelefont
Tudom elég kezdő kérdések..de háát az is vagyok..:$!
A segitséget előre is köszönöm!
2010. június 7., 17:51
Ha attól félsz, hogy nem tudod kihasználni a tudását, azt ajánlom, keress olcsóbb készüléket. Ugyan nekem nem jön be, de nézegesd a Pulse-t nem HTC, és nem high end telefon, viszont a 2.1-es szoftverrel remekül működik, ráadásul a T-Mobile most jól levitte az árát: 2 éves hűséggel részletre valami 3000-3500, nem tudom pontosan.
Az adatforgalmat a megfelelő programmal ki lehet kapcsolni, illetve wifire lehet korlátozni. Természetesen ha figyelmetlen vagy, jó nagy számlát tudsz csinálni, ezért érdemes hálózati adatforgalom figyelő, és ki/be kapcsoló programot telepíteni a marketből.
2010. június 7., 18:15
Értem,értem! Szóval akkor a mobil adatforgalmat simán a settingsbe nem is lehet kilőni? Az árával nincs problémám, és a kihasználhatóság..háát..igazából egy gyors,megbízható és széleskörben “formázható” telefont szeretnék venni…és ugy vagyok vele..h inkább tudjon kicsivel többet..mint amire nekem most per pill szükségem van, minthogy vegyek egy kevesebb tudású telefont,ami lehet h nem most, de 2 hónap mulva már vmijen számomra tudásbeli hiányossága miatt gátoljon..
:/
Már csak egyedül ez az adatforgalom dolog nem tiszta számomra…
2010. június 7., 18:20
Ki lehet kapcsoni
Bátran vedd meg
2010. június 8., 10:11
És szerintem a szolgáltatónál is lehet kérni, hogy neked nem kell semmilyen adatforgalom, korlátozzanak ők is. Mellesleg kb. 2000 forint körüli összegért (a T-nél biztosan) kapsz 500 mega mobilnetet, vagy pl. 5000 forintos havidíjért ott a Médiamánia S, amiben benne foglaltatik az 500 mega net, plusz 50 “ingyen’” SMS, és lebeszélhető teljes egészében. Esetleg érdemes megnézegetned a díjcsomagokat is. Telenorban sajna nem vagyok otthon, ahogy Vodában sem.
2010. június 8., 12:44
Apoth: Ehhez sajnos kicsi az angoltudásom. Értem én amit olvasok, de egy ilyen fordítás tuti kifogna rajtam. :S
2010. június 8., 12:46
Igazából már nem is nagyon kell fordítani, inkább javítani az elírásokat. Az Android (és persze a google addonjai) 99%-ban le vannak fordítva/át vannak véve a stringek más romokból.
2010. június 10., 20:33
Igen, ezen hogy a szolgáltatónál le lehet e tiltatni az adatforgalmat,ezen én is gondolkodtam,utána érdeklődök…de, azis megoldás lenne ha egyszerüen a mobil adatforgalom beáálitásokat kitörölném a telefonból,vagy rossz megoldás?
2010. június 26., 10:19
Sziasztok!
HTC Tattoo-ra szeretnék magyarosítást.
Ha valakinek megvan már de esetleg még javítani kellene vagy tesztelni akkor nagyon szívesen vagy beszállnék.
2010. június 27., 18:35
xsipi78: morelocale a marketből, de nem lesz teljesen magyar. Azt a pár szót pedig meg lehet tanulni angolul…
2010. szeptember 17., 22:31
köszönöm
2010. október 4., 21:07
Hali! Htc desire hd magyarítás lehetséges?
2010. október 5., 10:00
Helló!
HTC Desire HD-ben benne van a magyarítás.
2010. október 5., 10:01
Különben meg minden lehetséges
2010. október 20., 18:06
Üdv. all. Egy htc desire-re akarnék magyar nyelvet varázsolni. Nem vagyok egy béna gyerek, de androidba még nem nyúltam bele. Tud nekem adni valaki egy fonalat amin elindulhatnék? Előre is nagyon szépen megköszönném. Hy
2011. január 25., 18:47
Sziasztok! Remélem nézi még valaki ezt a fórumot… Nekem Samsung Montém van (ami nem androidos), és láttam külföldi oldalakon, hogy van hozzá valami Android patch. Itt tud valaki valamit erről, hogy mégis azt hogy kellene, mert nem vagyok jó angolból és nem értem…
Előre is köszönöm! Üdv.
2011. február 22., 16:00
Motorola Defy-t vki nem magyarosítaná le?
2011. szeptember 18., 17:10
Sziasztok!
igazából ír és ad lehetőséget lokalizálásra,de ettől nem lett magyar a kicsike.
Szeretnék kérdezni: 0 tapasztalat és 0 tudás android területen,csak win mobillal harcoltam idáig,az már megy.
Vettem egy e-pad -et, kínai, asszem 2.3-as android van rajta,ha van ilyen..
Hogy klll ezeken romot kell cserélni vagy nyelvi csomag megy rá? Kérlek segítsetek,ha lehet konkrét,lépésről lépésre, ha tud valaki.
Előre is köszönöm, tisztelettel: Kun gy.
2011. december 18., 12:18
Sziasztok!
Egy Redbull RBM2 Cyanogen mod 7.1 romot szeretnék fordítani. A kérdésem az lenne hogy melyik mappában érem el a nyelvi fájlokat? Az egész menürendszert szeretném fordítani. Vagy esetleg van ehhez a romhoz magyar nyelvi frissítés?
Tisztelettel
Turcsán Miklós
2011. december 18., 19:00
Sziasztok!
Nekem van egy WM 8650-es gépem, amin uberoid van. valahogy lehet honosítani, de nem találom a nyelvi fájlokat. Ha valaki tud segíteni…
Előre is köszönöm!
2011. december 30., 15:34
a “\” karakter nem a backspace, hanem backslash
A backspace a visszatörlés gomb az enter felett^^