Opiszę tutaj jak łatwo można tłumaczyć aplikacje na nasze urządzenie mając takie same aplikacje po polsku z innego urządzenia lub plik źródłowe z czystego androida (AOSP).
UWAGA:
W ścieżkach do narzędzi nie może być spacji bo będą wyskakiwać błędy np.:
"C:/Nowy Folder" jest złą ścieżką, dobra: "C:/Nowy_Folder"
Potrzebne narzędzia:
Java 7 Update 40 lub nowsze:
Bezpłatne pobieranie oprogramowania Java
Universal Deodexer V4:
[HUGE HUGE UPDATE][sOFTWARE-GUI][WINDOWS]Universal Deodexer V4[ALL DEVICES!!] - xda-developers
ApkTranslationWizard beta 4:
ApkTranslationWizard - Browse /releases/1.0-Beta4 at SourceForge.net (ATW-beta4-Win32.7z)
xdaAutoTool V4.0.3:
[TOOL] V4.0.3-xdaAutoTool RELEASE-Windows | V3.0.2-autoAPKTool | V1.0.3-autoDeoTool - xda-developers
Apktool v1.5.2:
[uTIL][Feb 02 2013] Apktool v1.5.2 - a tool for reverse engineering apk files - xda-developers
aapt z android sdk build tools:
http://www.mediafire.com/download/qa1b2hfl77ncfig/aapt.zip
Zawartość folderu /system/framework/ z twojego urządzenia!
Cała paczka narzędzi: http://www.mediafire.com/download/wnfyq2ys396eggv/Tools+-+Translate+Android+APK.zip
Mirror: http://d-h.st/JgN
(wszystko co potrzebne oprócz Javy i zawartości foldery /system/framework z twojego urządzenia)
Instrukcja:
Przygotuj wszystkie narzędzia.
Zainstaluj Java 7
Skopiuj zawartość folderu /system/framework/ z twojego urządzenia do \Universal Deodexer V4\framework\.
Do folderu \xdaAutoTool_V4.0.3\_INPUT_APK\ skopiuj plik framework-res.apk oraz inne z końcówkami -res.apk z folderu /system/framework/ z twojego urządzenia.
Apktool v1.5: zmień nazwę pliku "apktool.jar" na "apktool_1.5.2.jar" i skopiuj go do \xdaAutoTool_V4.0.3\bin\. Podmień również plik aapt.exe w tym samym folderze.
Dodaj dwie linijki na początku pliku \xdaAutoTool_V4.0.3\Res\AAA_register_ocx.bat (prawy > edytuj):
@setlocal enableextensions
@cd /d "%~dp0"
Następnie kliknij prawym na AAA_register_ocx.bat i Uruchom jako administrator! Wymagane biblioteki zostaną zarejestrowane.
Uruchom xdaAutoTool.exe: wybierz z listy apktool_1.5.2.jar oraz zainstaluj frameworki przyciskami: Install framework-res oraz Install another:
(install another i wybieramy pliki z końcówką -res.apk, o ile istnieją, np.: mediatek-res.apk)
[*]UWAGA: jeśli twoja aplikacja nie posiada pliku .odex to możesz pominąć ten krok.
Skopiuj aplikację którą chcesz tłumaczyć (pliki .apk oraz .odex) do folderu \Universal Deodexer V4\apks\. Uruchom "Universal Deodexer V4.jar", wybierz wersję systemu Android, z którego pochodzi aplikacja i kliknij 'Deodex All APKs'.
[*]Skopiuj aplikację z folderu \Universal Deodexer V4\deodexed\ do \xdaAutoTool_V4.0.3\_INPUT_APK. Uruchom xdaAutoTool.exe. Kliknij dwukrotnie na ścieżkę z ikonką domku pod napisem _INPUT_APK. Po prawej na liście aplikacji wybierz swoją, kliknij prawym i z listy wybierz Single decompile i potwierdź Tak (jeśli wyskoczą jakieś błędy to nie przygotowałeś narzędzi np. brak najnowszego apktool lub niezaisntalowane framwerowki).
[*]Skopiuj wypakowany folder aplikacji z \xdaAutoTool_V4.0.3\_INPUT_APK\nazwa_aplikacji\ do \ATW-beta4-Win32\projects\nazwa_aplikacji\.
Porada: najlepiej tłumaczyć i mieć w tym folderze tylko jedną aplikację bo filtr po nazwie aplikacji nie działa
Uruchom "ApkTranslationWizard.exe" i od razu przejdź do zakładki Translations. Zrób wszystko według poniższej kolejności:
Wybierz język z En to Pl
Kliknij Load dict (jeśli posiadasz skądś gotowy słownik to skopiuj go do głównego folderu)
Kliknij Read XML to zostaną odczytane pola do tłumaczenia po angielsku
Skopiuj pliki językowe* do folderu /projects/nazwa_aplikacji/res/values-pl/
Jeśli skopiowałeś pliki językowe to kliknij Learn from XML (po prawej na górze), wszystkie zgodne polskie tłumaczenia zostaną wczytane.
Zapisz słownik klikając Save Dict i potwierdź wszystko "Tak" (wszystkie zmienione słówka zostaną zmienione a nowe dodane)
Kliknij Write XML aby zapisać tłumaczenie w pliku
Przycisk Translate wczytuje tłumaczenie ze słownika, dlatego warto zapisywać wszystko w słowniku.
*pliki językowe można zdobyć dekompilująć aplikacje w xdaAutoTool (krok nr 3). Aplikacje powinny być z tej samej wersji Androida ale mogą być z innego urządzenia, które ma język polski lub z oficjalnych źródeł AOSP. Po prostu kopiujemy folder /res/values-pl/ do /ATW-beta4-Win32/projects/nazwa_aplikacji/res/values-pl/ tak jak w 4 kroku wyżej, potem trzeba to wczytać.
Gotowe pliki językowe można też znaleźć w już tłumaczonych systemach np.: http://androidtranslator.etomaszow.eu/FullRusReborn/ i skopiować plik ze zmienioną nazwą na strings.xml do folderu /res/values-pl/ dla danej aplikacji a następnie kliknąć Learn from XML.
[*]Po przetłumaczeniu kopiujemy folder /projects/nazwa_aplikacji/res/values-pl/ do \xdaAutoTool_V4.0.3\_INPUT_APK\nazwa_aplikacji\res\
Przechodzimy do otwartego xdaAutoTool, klikamy prawym na aplikację i wybieramy Single recompile. Po poprawnej kompilacji klikamy znowu prawym i wybieramy Single Build Usable.
[*]Kopiujemy aplikację z folderu \xdaAutoTool_V4.0.3\_OUTPUT_APK_DIST_ZIPALIGN\nazwa_aplikacji.apk na urządzenie.
Przed podmianą aplikacji (np. systemowej w /system/apps/) usuwamy jej plik .odex np. jeśli aplikacja nazywa się Browser to usuwamy plik Browser.odex na urządzeniu. Dopiero teraz podmieniamy aplikację, kopiujemy w miejsce docelowe i zastępujemy istniejącą
[*]Ostatnim krokiem może być utworzenie pliku odex ale nie jest konieczne.
Wskazówka: jedynym skryptem do odexowania aplikacji jaki u mnie zadziałał był
[sCRIPT TO ODEX] Universal Odex Script Version 6.2 (07-08-2013). Żadne inne sposoby przez adb nie chciały działać. Po każdej komendzie dexo będzie trzeba zainstalować od nowa terminal emulator.