Hirdetés

Android magyarítás guide

"Fordítsuk le a rendszert, közelebb jutunk egy saját ROM-hoz!" - így kezdődött minden...

Az apk fájlok

Az Android alatt látható szövegek az apk fájlokban rejtőznek. Ilyen fájlok két helyen vannak:

system/framework/
system/app

Közönséges zip fájlok. Csakhogy hiába nézünk bele, ettől még nem fogjuk megtalálni a benne lévő szövegeket.

Lássuk, mit is találunk helyette:

A fordítás szempontjából fontos mappák:

Hirdetés

META_INF: a fájl digitális aláírása
res: nem becsomagolt erőforrások, bináris xml-ek és képek
classes.dex: a binárisra fordított programkód
resources.arsc: lefordított erőforrások, itt vannak a szövegek is, számunkra elérhetetlen kódban...

Vissza kell őket fejtenünk a beszédes nevű apktoollal, amit itt találhatunk: Apktool

Két része van: maga a jar fájl és a scriptek a megfelelő rendszerek alá. Szükség van még hozzá JAVA támogatásra is, hogy futtatni lehessen. Az előkészítést (egy mappába kell másolni mindent...) követően, tegyük a következőket:

A framework mappából az ÖSSZES apk-t másoljuk a mappánkba!

Adjuk ki a következő parancsokat:

apktool if apkfajlokneve.apk

Természetesen sorban, egyesével pl.:

apktool if s2-framework-res.apk
apktool if aokp-framework-res.apk


Települnek a kódlapok, szépen, egyesével.

Miután ezzel megvagyunk, fejtsük vissza a fájlokat:

apktool d -s aokp-framework-res.apk

A d kapcsoló a decompile rövidítése, az -s pedig azt szabályozza, hogy a forráskódokat nem kell visszafejteni, tehát a classes.dex egyben marad.

Ha a kibontás sikeres és nem kaptunk hibát, akkor most az apk fájlunknak megfelelő nevű mappában megtaláljuk a res/ mappákat. Itt vannak a szövegek, illetve a mappa neve jelzi a tartalmakat. Szövegeket találhatunk a values, a raw és az xml mappákban is.

Minden mappának van prefixuma, ami azt jelöli milyen területkódhoz tartozik, kivéve az alap mappákat. Pl. a /res/values a szöveges alap mappa, a values-fr a francia, a values-ru az orosz és így tovább. Nekünk a magyar kell elsősorban, tehát a values-hu.

Kivételt képez a framework-res fájl, ugyanis itt kötelező legalább 3 db mappa egy nyelvhez, másképp a Settings (Beállítások) alatt nem szokott megjelenni a listában a kívánt nyelv!

Ezek sorban a:

/res/raw-hu
/values-hu
/values-hu-rHU

Ebből is kiemelten fontos a /values-hu-rHU, mert ebben van egy kulcs xml (arrays.xml), amit a listakezelő figyel. Az xml tartalma a magyar nyelvhez a következő:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer-array name="maps_starting_lat_lng">
<item>47162494</item>
<item>19503304</item>
</integer-array>
<integer-array name="maps_starting_zoom">
<item>4</item>
</integer-array>
</resources>

Ha a framework fájlok fordítása készen lett, akkor építsük vissza őket!

apktool b s2-framework-res

Ügyeljünk, hogy a b (build) kapcsoló után NE adjunk meg kiterjesztést, mert hibát fogunk kapni!

Ha minden jól ment, akkor állhatunk neki a system mappának! Ott nem kell már kódlapot telepíteni, csak a fájlokat visszafejteni, majd a megfelelő fordítások elkészülte után vissza és már majdnem készen vagyunk, csak...

A cikk még nem ért véget, kérlek, lapozz!

Azóta történt

Előzmények