Adding supported languages






Introduction

 
So you have got yourself a nice piece of mobile hardware, and you even feel quite happy with all the user experience and usability of your Symbian s60V5. But! and that's one big but, you can live with the current localization. So what can you do?
You've got two options
  1. If your mobile phone has a supported firmware than just flash it and life's good again.
  2. The isn't such a firmware and your local language doesn't have any support for your Symbian S60V5 based mobile.
OK, Assuming if option one was valid for you you wouldn't go on reading, right? So I take it that you can't find any localization for yourdevice and therfore keep on reading.

 

Getting started

 
There are quite few guides that try to do just that, give a guide on "How-to add language". So what's the diffrence you're asking? Simple. No I meam it. letterally. I'll try to keep it simple and bright as possible.
 

What do we need?

 
Sp what do we need if we want to add a language to our Symbian S60V5? I'll divid my reply into two sections. One for the Nokia owners and one for the Samsung owner. No I haven't forgoten the Sony-Ericsson owners and I will add this section when I will have the complete data.
 

Nokia owners

 
You will need the followings before you start working on your localizations:
  1. Get yourself the NokiaEditor By PNHT (Credit for the application)
  2. Get yourself the NaviFirm by Not A Big Truck Productions (Credit for the application)
  3. Get the XVI32 binary editor by Christian Maas
  4. Get the Nokia SDK which contains all the supported languages or simply get the languages pack somewhere else. You can download the SDK from here. It requiers a free registration. Simply choose the Nokia SDK 5th Edition (622Mb) file and download it.
  5. Get yourself a  private\10009d8f\ecom-2-0.spi file that has your localized T9 language support. If you can't have this file then that means you won't be able to have T9 support for your localized language but all the rest should work just fine.
  6. After you have downloaded the SDK and installed it (follow the PDF manual inside the zip file) you are all set to go (P.S you don't really need the SDK to fully function we only need the language files).
  • Now that you have the utilities you will need along the process all you need is... the language files for your localization. The best way to get it is simply from the source. So lets use the NaviFirm to get the latest Firmware we're going to use. For my demo I chose the Hebrew language.
  • We need to go through the directories and add all the corresponding files requiered for the language we want to add. Keep in mind that some of the installed applications does not have your localized language support so tough luck but move on.
  • Now you must be asking yourself.. "why did I had to download these utilities (NaviFirm, NokiaEditor)? You did that just for this very moment.
    1. The first utility we will use is the NaviFirm in order to get the latest firmware available for our localization area. Simply run the utility and follow the easy steps
                    Figure 1: NaviFirm
                    
 
 
  As you can see in Figure1, simply choose the Device you own, the firmware version, the Firmware revision, pick ALL and then "Download from FiRe"
  • Now that we have the latest firmware files, lets use the NokiaEditor to exctract the content of it. Download the NokiaEditor Beta7.rar and un-rar it. Then run the NokiaEditorb7.exe file and extract the firmware content.
          Figure2: The NokiaEditor
          
 
 
The firmware content will be extracted to the same directory where you run the editor.
NOTE: make sure to keep the NokiaEditor window open so we can later on re-create the firmware files.
 

Samsung owners

  • The necessary utilities we will need for localizing our Symbian S60V5 mobile phone are:
    1. Download the RofsRomUtility from here (huge Credit goes to CodeNeos from www.samsungi8910omnia.com for this amazing piece of software).
    2. Download latest base firmware we will use as base firmware for our localized CFW (Custom Firmware) from RapidGSM (Thanks to RapiGSM for hosting these file for us).
    3. Get the XVI32 binary editor by Christian Maas (Credit to Christian Maas for his software)
    4. Get the Nokia SDK which contains all the supported languages or simply get the languages pack somewhere else. You can download the SDK from here. It requiers a free registration. Simply choose the Nokia SDK 5th Edition (622Mb) file and download it.
    5. Get yourself a  private\10009d8f\ecom-2-0.spi file that has your localized T9 language support. You need to replace the last T9 language in the file.If you can't have this file then that means you won't be able to have T9 support for your localized language but all the rest should work just fine.
    6. After you have downloaded the SDK and installed it (follow the PDF manual inside the zip file) you are all set to go (P.S you don't really need the SDK to fully function we only need the language files).
    7. Now that have downloaded the selected Samsung firmware we need to extract it's content. When you download the firmware you will get two files which are executable archives. Extract them by double clicking on the first archive marked part1. It will automatically continue to part2. When you're done you should see a directory structure similar to this one:
    8. Figure 3: Samsung firmware after exctraction
    9.                              
    10. Under the directory rofs2 you should find a file rofs2.img which is the ROM file that contains most of the localization files.
    11. Open up the RofsRomUtility utility and open the rofs2.img file under PDA_CSCI8910XXXXXX\rofs2 directory.           figure 4: RofsRomUtility    

    12. Go to File and choose Extract All, to extract the content of this file. Choose of course the desired directory location in which you will save your files.
    13. NOTE: make sure to keep the RofsRomUtility windows open so we can drag/drop the language files into it later on. We will also need it to re-pack the firmware files after we're done adding/editing files to it.     

Creating the localized firmware

 
  • In general every language is represented with a language code unique for this language. What are the acceptable language code you're asking? check it here. Since I chose Hebrew for our demonstration, the language code will be 057. The language files of the Symbian S60 have the extention r0XX where XX is of course the language code. Ok, so now we know how language files marked and can got on.
  • What's the next step? Identifying the the directories that contains the language files. Basiclly there are three major directories that holds the language files.
    1. \resource\fep
    2. \resource\multitap
    3. \resource\qwerty
  • Now that we have all the necessary file we need in order to create the localized firmware, lets start the actual work shall we? 
  • One last note before we begin, It is advisable to drag/drop the language files directly into the RofsRomUtility windows in order to make sure we will be able to re-pack the correct files later on.
    1. Copy the resource files located in rofs2 in \resource\fep from the language ROM to the corresponding location in the working ROM. If there's already a version of a resource file there, don't replace it (this will be the case for the *.r01 English resource files).
    2. Copy the *.RSC files from rofs2 \resource\multitap from the language ROM to the corresponding location in the working ROM (again, don't replace something already there).
    3. Copy the *.RSC files from rofs2 \resource\qwerty from the language ROM to the corresponding location in the working ROM (again, don't replace something already there).
    4. Copy the peninputhwrwindowconfiginfo_r*.RSC files from rofs2 \resource\plugins from the language ROM to the corresponding location in the working ROM (again, don't replace something already there). Here, the language codes are right before the .RSC extention.
    5. Copy the peninputvkbwindowconfiginfo_r*.RSC files from rofs2 \resource\plugins from the language ROM to the corresponding location in the working ROM (again, don't replace something already there).
    6. Copy the T9*.dll files from rofs2 \sys\bin from the language ROM to the corresponding location in the working ROM (again, don't replace something already there). I will explain what is this T9 thing in this article.
    7. Copy the Elocl.* files from rofs2 \sys\bin from the language ROM to the corresponding location in the working ROM (again, don't replace something already there).
  •  Since we want to localize the whole OS, we will have to do the same thing to the menu as well.
    1. I will copy all the files that has the hXX (in our case h57) to the coresponding location in the firmware we excracted.
    2. I will copy all the files with the o00XX extention to the corresponding location under the firmware we exctracted.


Getting T9 localized language support

  •  The next stage is a bit complicated but definitelly not imposible. At this stage we will have to localize the T9 dictionary and the file we are editing is a binary file and that's why we need the XVI32 editor. So for this stage stay focus and work SLOWLY!

Editing the  private\10009d8f\ecom-2-0.spi file

  1. First open the XV HEX editor and choose the file containing the T9 language localization file. We will refer this XV window as the Blue one.
  2. Open the XV HEX editor and choose the want to change and that is the same file from the firmware we exctracted earlier on. We will refer this XV window as the Red one.
  3. Now  go to the Blue XV editor windows you just opened and click on: . Then Untick "Case sensitive" -> tick "Begin" and "Text string" and type: T9XXX (replace XXX with your Language).
  4. At this point we will mark a HEX block that we will later on copy to our rom file.
  5. Click figure 5 below for the colored details on what we're going to do next.         

  6. Ok, now that you have your Blue hex editor open lets look for the first semicolon before! the language you want to add. In our example it is the T9Hebrew field. The first semicolon is marked clearly with Green rectangle both on the "text" side (right side marked ;) and at the HEX side (left side, marked 3B ) as well.
  7. Now go BACKWARD 4 steps to the first non-zero character. This character is marked with Blue rectangle.
  8. Lets mark this block beginning for copy. Go to the Edit menu, chose "Mark block" or simply use "Ctrl+B" to have the same effect.
  9. Lets find out now the end of the block we want to copy. Repeat the process of search using the . Then Untick "Case sensitive" method. This time look for the avkonfepkJ string.
  10. Once more, go BACKWARD 4 steps to the first non-zero character, go to the Edit menu and chose "Mark block" or simply use "Ctrl+B". Click Figure6 below for a more detailed view on how your editor should look like at this step                                                                                                              

  11. In Figure 6 we can see the string avkonfepkJ in blue rectangular while the first non-zero character is marked in a Blue full sqaure with the HEX value 36.
  12. Go to the Red XV Hex editor  you just opened and click on the on: . Then Untick "Case sensitive" -> tick "Begin" and "Text string" and type: T9XXX (replace XXX with your Language). 
  13. We're half way there. Time to edit the destination file we wan't to add the T9 language into. Open the XVI HEX editor and choose the destination file. We will have to repeat some of the steps we already been through.
  14. Open the 'Red' XVI32 window. Search for T9XXXX languagestring you want to replace. In our demostration I will replace the last language which is the T9Spanish language (hope no spanish guy will get insulted by that).
  15. Select the first zero character before the 6 (hex 36) and go to "Edit" -> "Block mark". 
  16. The next step is to look for the avkonfepkJ string as we did before and once more go to the Edit menu and choose "Block mark".
  17. Now comes the tricky part. After we got the block marked at the Red editor (The editor holding the destination file we want to make), we go again to the "Edit" menu and this time we choose "Block Delete". Make sure to keep the current position of the cursor which is very important (i.e DON"T TOUCH IT FOR NOW)
  18. Now go to the Blue editor window which contain the original language file you want to copy from. Open the "Edit" menu and choose "Clipboard > Copy" to copy the block we just marked (marked in red).
  19. The next step is to do the implant itself. Go to the Red editor window where you have the destination file, and go to the "Edit" menu. Then choose "Clipboard > paste".
  20. That's it. It's done. just save the ready destination file with a different name and you're T9 language localization is ready for use.
  21. Now that are done with editing binary files, we need to copy the T9xxx.dll file to it's corresponding location. (Replace the XXX with your localized language code)
 

Re-Packing the ROM files

After we have done adding the language files for the corresponding places and edited the T9 dictionary file, we need to start packing all nice and tidy in a firmware rom structure. How we do that? We will use the same tools we have been using to extract the firmware.

Re-packing Nokia Firmware files

  1. Re-packing the firmware altered files is rather straight forward. Simply go to the NokiaEditor menu, choose "Repack". That's it. You will have the same V2 file ready to be used.
  2. After you've got the new localized V2 file, replace the original V2 file you have with the newly altered V2 file you have just created.
  3. Re-Flash your device and you should have the language localization you were looking for.

Re-packing Samsung Firmware files

  1. Re-packing the altered firmware should be straight forward at least as it was for Nokia users. See figure 7 for details    

  2. Go to the File menu and pick rebuild Image, That's it your rofs2.img file should be ready. replace the original V2 file you have with the newly altered V2 file you have just created.
  3. Re-Flash your device and you should have the language localization you were looking for.

Remarks

  • Although I tried to make this guide as simple and clean as possible, there might be some inaccurate details in it. So before doing anything based upon this guide, make sure to read it a few times and even play safe and make a hard copy of it.
  • Re-Flashing your device can be dangerous! very! very very! it can even result in bricking your device. If you do not fully capable of doing this procedure, don't use it! No, I really mean it, DON'T!
  • I will not take any responsibility on any bricked devices caused by this procedure. if you still decide to go trough this procedure you're doing it on your own risk.
  • One last thing, going trough this procedure will most likely revoke your operator's warranty.

bibliography

Some minor parts of this guide were gathered from the following sources
1. www.WiKipedia.com
2. DcR-Ln guide from the daily mobile forum.
3. DJsaad1 guide from www.samsungi8910omnia.com
4. mWarner guide from www.samsungi8910omnia.com






 

 
 

 

 

  

 

 
Comments