[TUT] Custom dict on Kindle App - Nook Touch General

On the most recent versions of Kindle Android app is fairly simple to change the standard dictionaries with custom ones. One simply has to go to Android -> Data -> com.amazon.kindle -> files, find the filename associated with a certain language and give it to the custom dictionary.
For instance, I want to replace the German standard dictionary that I never use for a custom ENG-POR dictionary: I simply rename it to B003YL4LVQ_EBOK.prc (German dict filename), copy it to the com.amazon.kindle folder replacing the existing file, delete the bookmark file (B003YL4LVQ_EBOK.embp), restart device and it is done. Hence, when I'm reading a book, I just need to click on the book icon on the definition window and change to German to have access to my ENG-POR dictionary
On Kindle 3.2.0.35, the one that works on Nook Touch, it's a little different and requires more steps:
- it is not possible to change dictionaries inside the app, you're stuck to the standard one of each language;
- the dictionaries files are on folder Kindle (main root), with the rest of the e-books;
- besides changing the filename to B003ODIZL6_EBOK.prc, it' is also needed to change ASIN and other metadata. For this I use mobimeta editor
So, I wanted to replace the standard ENG dictionary for a custom ENG-POR that I've purchased on Amazon. I've changed it's filename to B003ODIZL6_EBOK.prc and edited with mobimetaeditor the following metadata criteria to match the standard one. To simplify, I'll list what I've edited:
1. Language:
Language: en (9)
Dictionary Input: en (1033)
Dictionary Output: en (1033)
2. EXTH Records (maybe it is not needed to change so many fields, but it worked for me this way):
100 (author): leave blank
101 (publisher): Oxford University Press
113 (ASIN): B003ODIZL6
503 (updated title): The New Oxford American Dictionary
504 (ASIN): B003ODIZL6
Save in the end (sometimes it is needed to press the button more than once).

I followed your steps, but it does not work out. But you directed my way, thank you!

Related

HELP Translating Apps Tutorial

I've seen that many apps comes with AppName.0409.mui installed in the same folder of the app, usually \Windows.
For who don't have an english OS, usually miss app dialog box string.
I've seen that if u want to have back dialog box string u have to make a copy of AppName.0409.mui and reneme it into AppName.xxxx.mui where xxxx is your contry code (for me, italian, 0410).
But how to have dialog box string in native language?
I've tried with a recent app extracted from touch dual (Action Screen) which have a mui file with only one string. I've used Resource Hack, changed the string, compiled and saved. But... nothing.
In second instance i've changed not only the string but also the language code, compiled, saved and...
So can someone who is skilled make a tutorial for changing app strings?
Sorry for my bad english and thanks in advance for reply.
P.S.: i've read this http://forum.xda-developers.com/showthread.php?t=311078 and also this http://forum.xda-developers.com/showthread.php?t=307968 but talking about rom, not apps...
I do it like this:
1. Copy the program's executable file to pc.
2. Open the exe with Resource Tuner. I delete all other folders exept Menu, Dialog and String(in these are all the strings for translation) and save the file.
3. Then I open it with resource hacker and push action -> save all recources
4. I open the generated rc file with notepad and replace all the:
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US(or maybe this is another language)
lines to:
LANGUAGE LANG_GREEK, 0x1 (this is for greek language)
and save the file.
5. After that I open the rc file again, but now with resource builder and I push tools -> Create resource-only dll and I save the file as name_of_file.exe.0408.mui(for greek).
6. Finally I open this file with resource hacker and I translate it
I used to do it in this way cause I have all these three progrs(resource hacker, resource tuner and resource builder)
Maybe there are other progs or ways but this works fine for me until now. If someone knows easier and faster methods I also want to know.
First, thanks for reply.
I was trying to make an easier thing... but maybe i can try this way for my scope.
I've installed HTC Action Screen, you can found it at: http://forum.xda-developers.com/showthread.php?t=336587
It's a cool launcher, nothing more. After installation i can find in \Windows folder two files:
HTCActionScreen.exe
HTCActionScreen.exe.0409.mui
Well in the mui there's only one string that is the top of the launcher screen, that i don't see. I've renamed 0409 into 0410 and now i see the string, the original one in english (some like that "Dial phone number or select a task below:").
I'd like to change in italian, so, i've used resource hacker ONLY for translate the string (as in your 6.) but... i don't see anything once again!!!
Any suggestion?
Have i to start from exe as in your reply?
Thanks again.
This is happens because you cannot change the LANGUAGE line with resource hacker. For this I save the resources in a rc file and adit it with notepad. I had similar problems with some muis that cannot translated before use the method that I described above. You only need resource builder to recompile the rc file to mui again. I don't now in what must change the Language line for Italian, but I think you can find out if you open an italian mui file.
So, i describe my step:
1) open HTCActionScreen.exe.0409.mui with Resource Hacker and and push action -> save all recources
2) open the .rc just created with notepad and changed LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US into LANGUAGE LANG_ITALIAN, SUBLANG_ITALIAN
3) open this .rc with resource builder and push tools -> Create resource-only dll and I save the file as HTCActionScreen.exe.0410.mui
4) open this file with resource hacker and translate it
it doesn't work
Where's my fault?
Maybe have i to sign the file?

xt9 custom dictionary

Hi, I've searched the forums but couldn't find a clear answer to this one.
I want to make a hard reset but want to keep my custom dictionary that t9 has learnt. Which file and where is it?
Anyone, please?
you can enable dictionary in your language.. take look here
http://forum.xda-developers.com/showthread.php?t=595500
Thanks for your reply, but it's not ehat i'm looking for.
I want to keep my language as it is.
When you type in new words xt9 "learns" them and puts them in a custom dictionary.
What I want to know is which file is this custom dictionary?
H iLeo,
If you navigate to the \Windows directory on the HD2 you'll see a program named et9MyWords.exe. With that you'll be able to edit, delete or add words to the custom dictionary.
HTH
Omneity, I don't want to edit, delete or add words to that dictionary. I want to know which file it is where it keeps all those words, so that i can save the file and restore it after a hard reset.
Lio said:
Omneity, I don't want to edit, delete or add words to that dictionary. I want to know which file it is where it keeps all those words, so that i can save the file and restore it after a hard reset.
Click to expand...
Click to collapse
so you need to save that file than replace it afted hard reset... i guess
I don't think so. That is the application. The data is saved somewhere else .
kengkaj.s said:
I don't think so. That is the application. The data is saved somewhere else .
Click to expand...
Click to collapse
aah yes, you are right...
kengkaj.s said:
I don't think so. That is the application. The data is saved somewhere else .
Click to expand...
Click to collapse
Well done for a helpful post.
To backup your T9 added words, copy the following files from the main memory:
\Windows\eT9Cdb.Cdb
\Windows\eT9Rudb.Rdb
\Windows\eT9AsDb.Adb
tried it but it didn't work for me... than i tried copying every et9*.* file , but that also didn't do the trick...
any ideas
I have (in windows folder) a folder called ET9IMEDB.
I just backed up this whole folder and restored it after a hard reset and it kept all my custom dictionary.
Lio said:
I have (in windows folder) a folder called ET9IMEDB.
I just backed up this whole folder and restored it after a hard reset and it kept all my custom dictionary.
Click to expand...
Click to collapse
thanks, will try and report back.
I would be very interested in knowing how I can "bulk-add" names, places and other nouns to my XT9 on my HTC HD2.
I have all these in a txt document.
Regards
ADC
Lio said:
I have (in windows folder) a folder called ET9IMEDB.
I just backed up this whole folder and restored it after a hard reset and it kept all my custom dictionary.
Click to expand...
Click to collapse
Those are indeed the files, but I have been unable to perform a clean restore in a safe manner. The problem is that the T9 service locks the files in that folder so that you can't simply overwrite them.
When using Resco Explorer, it "correctly" detects this and renames the old files (with some bogus extension), before copying in my backed up files with the proper names. Next, at some point during the shutdown process, the T9 service overwrites my restored files with the custom dictionary in memory, so I'm back to square one.
The only working method I have is to yank out the battery (or press the red reset button) right after copying in my backed up files. After the next boot, my dictionary is how I want it. Nedless to say, this is hardly an ideal solution. (Edit: The last time I did this, I had to reinstall Opera 10b3 - can't say for sure this was the reason, but be careful.)
Is there a way to kill the T9 process, so the dictionary files are no longer locked?
An alternate way to maintain a custom dictionary
After scanning the HKLM\Software\Tegic\eT9 key, and confirming my findings here, I can offer an alternative method of backup up and restoring your favorite words.
The file \Windows\HTCMDB.txt contains a host of commonly used words, names and phrases which don't seem to fit in a "formal" dictionary (like slang, company and product names, common people names). It's a regular text file, and can be easily edited, replaced or backed up/restored (with e.g. SASHIMI). It may be in use by a service, so use a capable file explorer to replace it or rename the original file, just to play safe. Soft reset, and your changes should be available.
Further, if there are "built-in" words being offered for T9 completion that annoy you, chances are that they are contained in this file - you can easily remove them.
The downside to this method (compared to backing up \Windows\ET9IMEDB\*) is, of course, that custom words you add during normal typing, will not be added to this file (see my previous post). This means you will need to update HTCMDB.txt (or your backup) manually.
A positive effect is that you will also get rid of added misspellings when you flash.
By the way, the eT9 service locates the file through the HKLM\Software\Tegic\eT9\Ime\MdbFile registry value, so if you want to play even nicer, you can modify this value to a different file name (residing in \Windows), and you won't have to edit the original HTCMDB.txt.
I'd still prefer a safe way to restore \Windows\ET9IMEDB\* and these files with eT9MyWords.exe, but HTCMDB.txt seems like the second best method, as it's safe.
ugumba said:
After scanning the HKLM\Software\Tegic\eT9 key, and confirming my findings here, I can offer an alternative method of backup up and restoring your favorite words.
The file \Windows\HTCMDB.txt contains a host of commonly used words, names and phrases which don't seem to fit in a "formal" dictionary (like slang, company and product names, common people names). It's a regular text file, and can be easily edited, replaced or backed up/restored (with e.g. SASHIMI). It may be in use by a service, so use a capable file explorer to replace it or rename the original file, just to play safe. Soft reset, and your changes should be available.
Further, if there are "built-in" words being offered for T9 completion that annoy you, chances are that they are contained in this file - you can easily remove them.
The downside to this method (compared to backing up \Windows\ET9IMEDB\*) is, of course, that custom words you add during normal typing, will not be added to this file (see my previous post). This means you will need to update HTCMDB.txt (or your backup) manually.
A positive effect is that you will also get rid of added misspellings when you flash.
By the way, the eT9 service locates the file through the HKLM\Software\Tegic\eT9\Ime\MdbFile registry value, so if you want to play even nicer, you can modify this value to a different file name (residing in \Windows), and you won't have to edit the original HTCMDB.txt.
I'd still prefer a safe way to restore \Windows\ET9IMEDB\* and these files with eT9MyWords.exe, but HTCMDB.txt seems like the second best method, as it's safe.
Click to expand...
Click to collapse
I don't know about you guys, but I don't have any of the files you've all mentioned above in my HD2, with one exception, the HTCMDB file. However, I tried to add words to that HTC file and overwrote the original file, reset, but they are not there anymore.
Now I'm even more confused than ever, because I, too, would like to backup my custom dictionary, and do group additions from a custom dictionary file I have from my desktop PC MS Word program.
Another idea ...
Further to my previous reply, I have another idea, but I don't know if it's possible.
When I open that custom dictionary text file I have from my PC MS Word program, and then click on Menu/Tools/Spelling, I can add each word, one-by-one to the custom dictionary on my HD2; however, the list is huge.
Is there any way to modify the registry to add an additional option of "ADD ALL" instead of just "ADD?" It would allow anyone to open any custom dictionary file and quickly add them to our HD2s.
Peter
DISCOVERY!
PeterHTC said:
Further to my previous reply, I have another idea, but I don't know if it's possible.
When I open that custom dictionary text file I have from my PC MS Word program, and then click on Menu/Tools/Spelling, I can add each word, one-by-one to the custom dictionary on my HD2; however, the list is huge.
Is there any way to modify the registry to add an additional option of "ADD ALL" instead of just "ADD?" It would allow anyone to open any custom dictionary file and quickly add them to our HD2s.
Peter
Click to expand...
Click to collapse
Strangely enough, I found the custom dictionary on my phone, and it's appropriately called "custom."
I opened a document, added a crazy word such as alalkdfa;lsdkfj, did a spell check, added the word, and then closed the document. I then went to my "custom" file in the main Windows folder, copied it to my PC, opened it, and voila, that crazy word is there, along with all my other added words.
Problem solved ... well, for me, at least.
I think we can safely conclude that the custom dictionary is handled very differently from one device to the next. (My HD2 has no "custom" file.)
Just for the record, PeterHTC, which device do you have?

HowTo: Modify Swype (new dictionaries; new keyboard layouts)

Hi,
a few people asked me to post a how-to for swype.
First of all: i am a noob, my first contact with android was just a few weeks ago and i saw my first apk from the "inside" a couple of days ago. So there is for sure a much easier way (push the files directly to the phone) and a better way. Anyway, this works for me 100% and maybe this guide helps a bit.
Second: Sorry for my english, i hope it is understandable
Here we go:
What you need first:
- the newest Swype beta (currently it is Ver. 1.25.16.5612.t100 i think, which is only available with english and spanish language). -> swype-new
- an old beta with the desired language or keyboard style (f.e. german dict, french dict..). -> swype-old
The bigger the swype file, the more likely it has your desired languag, a 2,2mb file has mostly only English and Espagnol
- Winzip (http://www.winzip.com/prod_down.htm)
- Java SDK for signing the new apk (f.e. http://www.chip.de/downloads/Java-SDK_12992754.html)
- this guide for signing an apk (http://www.anddev.org/viewtopic.php?p=11105) -> some "\" are missing in this guide, you'll see it..
1. Download Winzip, Java SDK and install it
2. Download the current and the old swype beta versions
3. rename both .apk files to .zip
4. open both zip files with winzip
5. go to the folder assets/files @ swype-old and search for your desired dicitionary, for example "German.zdb.le". Open swype-new and go to the same directory, delete for example the Spanish.zdb.le file. Now copy the German.zdb.le from swype-old the swype-new and rename it to Spanish.zdb.le.
6. got to assets/keyboards @ swype-old. Copy your keyboard layout (AZERTY, QWERTZ, Russian) to swype-new. If you don't know exactly which files you need, just copy all missing files from the old to the new one. There should be a bunch of files called for example Qwertz_PT_* and Qwertz_LS_*
7. Delete the META-INF folder from the swype-new version.
8. rename the swype-new.zip to swype-new.apk
9. Open a command prompt (cmd) and follow this guide:
http://www.anddev.org/viewtopic.php?p=11105
Obviously >DrogrammedevJavajdk1.6.0_07binkeytool -genkey -alias anddev.keystore -keyalg RSA -validity 20000 -keystore keys/anddev.keystore
should look like this:
D:\Programme\dev\Javajdk1.6.0_07\bin\keytool -genkey -alias anddev.keystore -keyalg RSA -validity 20000 -keystore keys/anddev.keystore
you need "keytool -genkey -alias anddev.keystore -keyalg RSA -validity 20000 -keystore keys/anddev.keystore" for the key and
"jarsigner -verbose -keystore keys/anddev.keystore -signedjar AndOpenStreetMap_signed.apk AndOpenStreetMap.apk anddev.keystore" for the signing process.
The apk should be signed now.
10. copy the swype-new-signed.apk to your sd
11. uninstall all previous swype versions and reboot.
12. install swype
13. activate swype via settings -> keyboard -> check swype
14. go into an EMPTY input field and do a long press -> input method -> swype
15. just to be 100% sure.. reboot
16. switch to Espagnol language (which has been replaced) by pressing the Q button
17. done
If you can not switch the language or if you have multitouch-problems, a reboot will fix this for sure (or 99.9% ..)
You can also edit your desired keyboard to the look you like, just open the corresponding *png and do what you want. The glow.png contains the color for the "highlight" when you press a button.
Do it at your own risk, this is really easy. As said: there are much easier ways to do this, but this works for me. There are some autosigning scripts for apk out there but for some reason they did not work for me (mainly cause i have no clue what i am doing here).
Here are some (veery simple examples):
edit: if anyone knows how to change the tracer color from blue to ??? please let me know, and how to edit the language dialog so we do not have to chose Espagnol to get the desire language
edit2: Tracer color: open the libSwypeCore.so with a hex editor, search for DDA25BFF, take your desired ARGB code and enter it there but reverse the pairs! so if you like FF00A5BF you have to enter BFA500FF.
I am interested in just changing the color of the Keyboard but your instructions here are not for a nob like moi.
HOW to Sign is really hard to understand, please a step by step maybe in english would be appreciated.
THX!
I have made an Italian dictionary Swype apk if you are interested contact me in pm.
Any1 know where i can get and copy of swype with Danish dictionery?
can you post the apks of the ones you modified already, I love the brown color, and the white too!
le3ky said:
can you post the apks of the ones you modified already, I love the brown color, and the white too!
Click to expand...
Click to collapse
yeah could u post sum edited apks please?
i can't even find swype in the app store ? was it removed ?
554321 said:
i can't even find swype in the app store ? was it removed ?
Click to expand...
Click to collapse
Swype still hasn't "officially" been released. We are using leaked versions from devices that ship with Swype.
please pm me, no links will be postet
@ signing guide:
this guide is in english, what is the problem?
http://www.anddev.org/viewtopic.php?p=11105
-download the java sdk
- create a folder c:\workspace
- create a folder c:\workspace\keytools
- create a folder c:\workspace\keytools\keys
- open a command (cmd) and change to folder workspace\keytools
- type in the following: C:\Program Files\Java\jdk1.6.0_20\bin\keytool -genkey -alias anddev.keystore -keyalg RSA -validity 20000 -keystore keys/anddev.keystore
- answer the questions
- copy your .apk to c:\workspace\keytools
- change again to workspace\keytools
- type in: c:\Program Filex\Java\jdk1.6.0_20\bin\jarsigner -verbose -keystore keys/anddev.keystore -signedjar yourapk_signed.apk yourapk.apk anddev.keystore
yourapk.apk = the filename
watercool said:
please pm me, no links will be postet
@ signing guide:
this guide is in english, what is the problem?
http://www.anddev.org/viewtopic.php?p=11105
-download the java sdk
- create a folder c:\workspace
- create a folder c:\workspace\keytools
- create a folder c:\workspace\keytools\keys
- open a command (cmd) and change to folder workspace\keytools
- type in the following: C:\Program Files\Java\jdk1.6.0_20\bin\keytool -genkey -alias anddev.keystore -keyalg RSA -validity 20000 -keystore keys/anddev.keystore
- answer the questions
- copy your .apk to c:\workspace\keytools
- change again to workspace\keytools
- type in: c:\Program Filex\Java\jdk1.6.0_20\bin\jarsigner -verbose -keystore keys/anddev.keystore -signedjar yourapk_signed.apk yourapk.apk anddev.keystore
yourapk.apk = the filename
Click to expand...
Click to collapse
wow... that is way more complicated than how I sign files. There are several easy tutorials on this process, and a program called autosign. search it and you will see several postings about it...
i know but autosign does not work for me, no idea why. Please read the first post, i have already said that there are much easier ways but this is the only way which works for me.
so if you do not like it, just leave this thread please.
This doesn't seem to wortk in the latest releases.
I tried upzipping without altering it, then remove metainf and resigning...but at runtime I get errors. Installing went ok though.
Any ideas?
Thanks
Could Anyone please comment if they succeeded or not?
thx
Drane said:
Could Anyone please comment if they succeeded or not?
thx
Click to expand...
Click to collapse
Didn't work for me. I used this method: http://forum.xda-developers.com/showthread.php?t=473580
But it still gives trouble after replacing the dictionary.
How did you find the location of the tracer line? I was looking through source code files, never would have figured that out! Thanks!
I've successfully changed the tracer color and resigned the apk, but after I install swype, I get the blue box around the keyboard problem and am unable to swype. Tapping works though.
A greek dictionary would be really appreciated
I tried this with the Sept. beta, signing and installing went fine. But it force-closes. I even tried to just re-sign the original IME from Swype with no other changes, and it still force closes. The keyboard appears for a brief few seconds before FCing.
Dang it.
also trying to mess with the new beta, color is changed or handeled different, the sting you state in your original post isnt found....
Any one figure out what it was changed to ?
scratch that, its there. It colors it a few shades darker than what you want, anyone changing it choose a color a few shades lighter, and odds are it will come close to what you need.

[Q] Swype-adding language/dictionary

Hello, noob here asking about how you add additional language into swype.
First thing first:
running stock mytouch ROM.
Rooted
I have the foreign language library files (dunno the origin of the files, pretty sure it's not from mytouch type)
Things tried:
Backup the swype, then uninstall. Then i edit the .apk to include the foreign language files, including editing the language.lst to include the language's name. Then copy the modified .apk to phone, tried to install...and FAILED big time. Go back to installing the original .apk, since i'm too terrified to try method (plus i dunno other method )
Any suggestion? Thank you very much....
so much views and no reply.... ;
anyway, i found a crude workarounds without any modification to the swype...by adding the words manually .....i just found out that swype stores text if you input it the usual way, or highlighted texts (silly me huh should've read around more)
option 1: open a text file consisting of the language's vocabulary, highlight them all then click the swype button (the one on the bottom left), that should add all of the words to the current language's dictionary.
option 2: use an app in the market named "sms to swype". This app will build a vocab database from all our text messages, then as above, just click the swype button to add the words to the current dictionary.
Once again, these are crude ones, and therefore you will have a mix of 2 languages in one dictionary. This can be a blessing or boon to different people.....for me, since i use both language interchangeably (is this the right word? or spelling, for that matter ) it is better than using just one language dictionary.

[GUIDE] Rom Translation Tutorial, Translate Roms and Apps on your own!

THIS GUIDE IS FOR PEOPLE THAT KNOW WHAT ARE DOING! DO NOT TELL ME THAT I BRICKED YOUR PHONE OR STUFF LIKE THAT, YOU ARE RESPONSIBLE OF WHAT HAPPENS TO YOUR PHONE, BE CAREFUL!
I wrote this guide studying the system of Motorola Droid 3, but it is good for nearly every phone, (or single application!!), maybe with advent of android 4.X this is becoming useless, because usually every rom has already all languages into it, but you could use this even for correcting translations, or translate yourself some application
If you want the Italian versions of Minimoto 1.7 and MavROM 4.5 go to this thread: http://forum.xda-developers.com/showthread.php?p=47857497#post47857497
Every Droid 3 owner out of the English/Spanish area knows that every D3 ROM comes out with only two languages preloaded in it, right? well...if you know well english (or spanish!) maybe i have something for you!
Ok, i hope this guide could be helpful to everyone like me that wanted to find a non-english, non-spanish Gingerbread ROM for Droid 3.
After some studies, and a lot of searching too, i've found the best (i think) way to translate roms. Oh and this guide is good for every android phone out there! Let's start!
Part 1 - Download all the stuff! (plays Monkey Island music )
Our needs are very few, what you need with this is a lot of patience, and knowing some english could help.
- A rooted Droid 3 (or any other phone)
- The ROM you want to translate
- WinRAR / 7-Zip
- Notepad / Notepad++ (Highly recommended!!!) http://notepad-plus-plus.org/
- Java Development Kit www.java.com
- APK Manager/APK Multi-Tool, since now i will call them APKM and APKMT ( i used APK Manager, but multi-tool should be fine anyway) http://apkmultitool.com/?q=node/5
- Google Translator Toolkit http://translate.google.com/toolkit/
- Safestrap (optional, but very, very recommended)
- MoreLocale2 or another language changing program
Note 1: If APK Manager/Multi-Tool bother you with something about java not found do this: http://wiki.answers.com/Q/How_do_you_stop_the_error_%27java%27_is_not_recognized_as_an_internal_or_external_command_operable_program_or_batch_file
Note 2: In APKMT, the commands are a little different from APKM, e.g. in APKM the "set project" command is listed as 22 and in APKMT is listed as 24....the functions we'll use are the same, just read the description if you're not sure and you'll be fine
Ok, let's take the stuff out of the box!
Part 2 - The extraction point
Open the .zip containing your ROM's files with WinRAR / 7-Zip and extract the folder "system" somewhere (i recommend to create a folder for your translation project) once the process is done, we can basically do two things: Decompile the apps or decompile the frameworks, the process is the same, but you have to go really really REALLY careful with framework apks, or once you flashed the ROM what you've got is a translated BOOTLOOP. So be careful. With apps you can mostly screw a functionality up, like SMS or Phone, but nothing too messy.
Anyway you can solve the problem with a new flash with the corrected ROM, or the original, untranslated ROM.
Ok let's start with the frameworks: we've usually got 3 differents frameworks and those are
framework-res.apk
blur-res.apk
moto-res.apk
Those apks contain mainly everything written all around the phone, like pop-up messages, status bar, app permissions and a lot of other stuff.
We'll use framework-res.apk.
If there isn't, create a folder in the same folder where you have installed APKM/APKMT, called "place-apk-here-for-modding" without quotes, then copy inside it the framework-res.apk.
Now you have to open the Script.bat file, and once you get into the main window, digit 22 (APKM) or 24 (APKMT) and press enter to select the current project, now digit the number corresponding to the desired apk (it should be 1 if you have only framework-res.apk) and press enter. now digit 9 (APKM/APKMT) and enter and you'll decompile the apk. Now you should have a folder, inside the "projects" folder of APKM/APKMT named just as the decompiled apk. Inside it, you'll find a folder called "res" open it and you'll be right into the core of the translation:
Note: if you get an error after decompiling, try with option 10 (APKM/APKMT), and drag and drop the necessary framework over the prompt when APKM/APKMT ask, press a key, and if you get another error try with another framework (D3 has 3 of them) until you get the job done. If nothing works, probably there's a problem with the apk you want to decompile.
Note 2: You could need to have frameworks installed into folder C:\Users\YourPCUSername\apktool\framework. You can do this either with apktool via cmd or manually copying the 3 frameworks into this folder (create it if needed) and renaming them this way:
- framework-res.apk => 1.apk
- moto-res.apk => 2.apk
- blur-res.apk => 3.apk
Then you should be able to decompile 99% of apks with option 9.
You'll find a bunch of folder, but we are interested in the "values" ones, if you have to translate the app, you'll see something like this:
- values
- values-es
- values-es-rUS
the first folder contains the english files, the second contains the spanish files, and the third contains some other files for spanish variants.
Open the "values" folder and inside it there are some .xml files, we will always use only 3 of those at most:
- strings.xml (the file containing mainly all the text strings of the apk, if you find this, then you have to translate it, if not, just pass over this apk, it doesn't contain text)
- arrays.xml (the file that contains some text data for drop lists, you'll not find this often, but if you find it, translate it)
- plurals.xml (the file that contains plural words, this is very rare to find, but if you want to make good translations, then, translate!!)
Now get back to "res" and create a folder called "values-xx" where xx is your language code, for example i made a values-it folder, but you'll write values-fr, values-de, values-idunno etc.
You'll put here, all the XMLs we're gonna translate now!
Part 3 - Bring out the dictionary!
The game is getting harder, now you have to use your better weapon: Google Translation Toolkit. But first, let's look into XML!
Open the "strings.xml" file with Notepad++, and look at the records structure:
<string name="aerr_application">The application %1$s (process %2$s) has stopped unexpectedly. Please try again.</string>
You have to change ONLY and i repeat ONLY the text between "<string name="aerr_application">" and "</string>"!
Now some rules:
- See that "%1$s" weirdness? that is a jolly word that Android replace with a variable data, in other words DO NOT TOUCH IT! just imagine that you'll see there something like "The application *Temple Run* (process XYZ) has stopped etc. etc.
- If you have to put an apostrophe or some other weird character, always put quotes at the beginning and at the end of the string just like in the translated string down there, it's good to always put them, And GTT (Google Translator Toolkit) does that.
- If the string you have to translate looks like code stuff, probably you should leave it untranslated, something like:
<item>@string/resolutionSummaryWideScreenTV</item>
<item>MOTOCAMSETTING_REVIEW_TIME_4_SEC</item>
see? DON'T TOUCH IT! BAD TRANSLATOR! BAD!
This is the resulting, translated string:
<string name="aerr_application">"L'applicazione %1$s (processo %2$s ) si รจ fermato in modo imprevisto. Si prega di riprovare."</string>
Ok, now we can translate without detonating the phone, but framework-res has something like 1300 rows of text!
WHOA! let's use GTT!! http://translate.google.com/toolkit/
Once you are on the main screen of the tool, click on the red "Upload" button on the upper left, then in the page you found after, click on "Browse..." and select your file inside your PC.
Set all the stuff down there, like the name, the language and everything else, and click "Upload for translation"...here comes the magic...
The XML is translated! sort of...
You now have to look if GTT has done the work well...let's look into this page:
- You can see that now the entries are divided in boxes, you can click onto the left panes' boxes and edit the content.
- Play a little with the interface, you have to get familiar with it if you want to translate a ROM!
- Look to spaces and returns, GTT mess them, and you should correct the format.
- Text is coloured: i'll tell you what those fancy colours ACTUALLY mean
- Orange: this means you've edited the text into the box
- Red: text coloured in red came right out of Google Translate, and 70% of times, it will be gibberish, so look carefully into it, this will be the work where you'll spend more time.
- Blue: this is a sneaky bastard, it says that he found a "100% matching" translation in his database, but it has a 30% chance to be total nonsense, be careful with it.
- Green: this colour is fine, you probably have translated this in past, or someone did it for you, anyway, it will be 99% correct, if the past translation was correct.
- Brown: this happens rarely, usually where it founds a colon (the symbol ":" ok?? :angel: ) and for some reason, it goes random, usually you need a very little effort to correct it.
- Purple: THIS is a funny one. when purple comes out (usually with a wildcard character like "%1$s") the translator often goes TOTALLY random and write some idiocy. rewrite the text from scratch.
Once you've managed to translate everything, and if you're sure to have completed everything, click (if you want) on "Complete" in the upper right corner of the page, and then we need to download our work, to do that, click on "File" (upper left) and then "Download". Save the .xml file in your values-xx folder, and check one last time with Notepad++ the number of lines, the spaces and the format in general, at this point we're ready for the final part!
Part 4 - Repack everything!
Now the situation is this: you have the "project" folder containing all the decompiled apks folders, with the "values-xx" directory in it, we now have to recompile everything and put apks into the ROM. Let's see how:
- Open APKM/APKMT and select the project you want to recompile
- digit 11(APKM/APKMT)
- Look if you got errors, if yes, look into the log 20(APKM) or 23(APKMT) and see what the problem is, if you look carefully you will identify where is your error log, probably it's a messed tag, or something easy to resolve, correct the issue, and go ahead, restarting from digiting 11 (Compile)
- Press Y and enter
- Press Y and enter (yes, 2 times)
- Now wait for APKM/APKMT to stop spitting lines out and it'll tell you something. Read it, but the substance is: go in the APKM/APKMT folder, look for a "keep" directory, delete the "resource.arsc" file, get back on the APKM/APKMT prompt window, and press a key.
- Once everything is completed, you now have a file called unsignedframework-res.apk (or unsigned*nameoftheapkyouhavecompiled*.apk)
- The next, is the point i still didn't get, but it works...maybe XDA guys can explain better this...anyway, we now have to sign apks...i saw that this shouldn't be necessary, but otherwise i've got a lot of errors and force closes and stuff like that...soooo, at least for D3, sign it!
- We have 2 choice for signing...if you have only a few apks to decompile, you can just select the project and digit 12(APKM) or 13(APKMT) and sign it but if you have translated a whole ROM and you want to sign all the apks at once, create, if not exists, a folder called "place-apk-here-for-signing" and put all the unsigned apks there...you now have to digit 16(APKM) or 18(APKMT) and the apks will all be signed automatically.
- Rename the apks removing the "signed" part from the name.
We're now ready to pack the ROM: i usually create a "system" folder somewhere else that i will put directly into the ROM's zip, but you can do it by hand (boring). I'll show you my method for now:
- create a "system" directory
- inside it, create a "framework" and an "app" folder
- put into the framework one, all the frameworks (easy, huh?) and into the app directory, put all the other apks.
- open the ROM zip and drag and drop the system folder into the ROM in order to overwrite the existing one.
Our freshly translated ROM is ready to be flashed and brick or burn your phone! (ok, no, this is not true...maybe...)
Anyway, download the zip on your phone and flash it with the recovery you want.
I RECOMMEND TO DO THE FIRST TEST ON A SAFESTRAP, AND ONLY IF YOU'RE SURE THE ROM IS SAFE, INSTALL IT ONTO YOUR MAIN SLOT! I'VE WARNED YOU!
Part 5 - Polish your creation!
When the ROM is installed, and if it boot correctly, First install MoreLocale2 or other similar apps, and add, your language, with the correct ISO codes and look around to see if something is untranslated...if yes, go back, to APKM/APKMT and find the apk you need to modify, translate, repack, flash the ROM and again until you've got a perfectly translated ROM!
The tutorial is ended, i hope you liked it, and if you want to correct, critic, ask, or anything, just tell me!
Tips: If you want to avoid the MoreLocale stuff, you can edit the build.prop, into the folder "system" of the ROM you'll find this file, open it with Notepad++ and look for these lines:
ro.product.locale.language=xx
ro.product.locale.region=YY
You have to put here your ISO language code, but i noticed that on D3 it doesn't always works...so, try but i don't guarantee success.
If i remember something, i'll integrate the post
Coming Soon:
Screenshots!
Corrections!
Test reply (i can't see the thread in the forum) It's fine now

Categories

Resources