Oct
6
2009

Language Porting or Creating ROMs in Different Languages for any Windows Phone Device

by Mr. Makk

Many people have been asking for this tutorial and here is comes. A simple process on how to create a Rom in different languages by porting the Language Packages into their respective Kitchens. Now any chef can have one ROM for in all Supported Languages he wants.

You can find all the language Packages provided by Da_G from HERE.

Now there are two Kitchen Structures that am friendly with, the standard old style kitchen and the new popular Visual Kitchen.

Lets have a quick view of the folder structures where the changes are supposed to be made:

1. Ervius Visual Kitchen –

\ OEM \ “DeviceName” \ “LangID” \ OEM_Lang_”LangID”

\ EXT \ “DeviceName” or COMMON \ ”Individual EXT Packages”

\ ROM \ “DeviceName” \ “BuildNo.” \ OEMXIPKernel

\ SYS \ “BuildNo.” \ DPI_”DPI”\ “LangID”

\ SYS \ “BuildNo.” \ DPI_”DPI”_resh_”ResH”_resv_”ResV”\ “LangID”

\ SYS \ “BuildNo.” \ SHARED \ “LangID”

2. Standard Old Style Kitchen

\ OEM \ OEM_Lang_”LangID”

\ OEM \ “Individual OEM Packages”

\ ROM \ XIP

\ SYS \ DPI_”DPI”

\ SYS\ DPI_”DPI”_resh_”ResH”_resv_”ResV”

\ SYS\ ”LangID”

As you can see the Old Style Kitchen does not have sub sections as in Visual Kitchen.
Where:

“DeviceName” = Name of the Device such as Hermes, Topaz, BlackStone,etc.

“LangID” = It is the 4 digit no. each assigned to each Language Pack. Sometimes a LangID “0409” may be written as “409” in the between the files ignoring the 1st zero, so its still the Same. Language Pack are Build Specific and change with every new Build.

“BuildNo.” = Its the Windows Phone OS Build number specified by MS.

“DPI” = Its the Dots Per Inch of the Device for eg- 96, 192, 128.

“RESH” & “RESV” = Its the Horizntal and Vertical Resolution of Device in Pixels in Portrait.

“Individual OEM or EXT Packages” = These are the new and old style Applications Packages. Cooks must be aware of them.

Porting OEMLang

The relevant folder here is

\ OEM \ “DeviceName” \ “LangID” \ OEM_Lang_”LangID” for Visual Kitchen and

\ OEM \ OEM_Lang_”LangID” for Old Style Kitchen.

Steps:

  1. Change the “LangID” to yours specific Language Package.
  2. Inside the folder there will be a file named, initflashfiles.dat, Translate all the folder names to your language. OR You can download translated files provided by Da_g at XDA HERE.

Porting OEM & EXT Packages

The relevant folder here is

\ EXT \ “DeviceName” or COMMON \ ”Individual EXT Packages” for Visual Kitchen and

\ OEM \ “Individual OEM Packages” for Old Style Kitchen

Steps:

  1. You will need to translate any other 3rd Party language-specific OEM or EXT packages in \OEM\ and \EXT\.
  2. If you don’t want to bother translating the 3rd party apps, you can simply rename their .mui files to match your “LangID”. The programs will work, but remain in their original language. You can translate these with a PE Resource editing program if you cannot find programs in your local language.

Porting ROM

The relevant folder here is

\ ROM \ “DeviceName” \ “BuildNo.” \ OEMXIPKernel for Visual Kitchen and

\ ROM \ XIP for Old Style Kitchen

Steps:

  1. Inside these folders you’ll have to edit boot.rgu. i.e. a Registry file, and the relevant keys to edit are:

[HKEY_LOCAL_MACHINE\MUI]

“SysLang”=dword:”LangID”

[HKEY_CURRENT_USER\MUI]

“CurLang”=dword:”LangID”

For Old Style Kitchens boot.hv is not compiled by default. So you will need to compile boot.rgu to boot.hv when done. Use the HV Tools.zip from HERE.

For Ervius Visual Kitchen, this is automatically compiled into boot.hv during cooking, and no further action is required.

Porting SYS

This is the simplest part as you just have to copy the provided packages that resemble the previous ones.

For Visual Kitchen the folders are such below

\ SYS \ “BuildNo.” \ DPI_”DPI”\ “LangID”

\ SYS \ “BuildNo.” \ DPI_”DPI”_resh_”ResH”_resv_”ResV”\ “LangID”

\ SYS \ “BuildNo.” \ SHARED \ “LangID”

Steps:

  1. Just change the “LangID” to the new one that you are porting.
  2. Now in every “LangID” folder replace the relevant folder with the new one.

For eg – , if you were currently had English Language on a 96 DPI, 240 by 320 device, with the following folder-

Base_Lang_0409_DPI_96_RESH_240_RESV_320

Porting to Italian, you just have to replace the above folder with this

Base_Lang_0410_DPI_96_RESH_240_RESV_320

For Old Style Kitchens the folders are below –

\ SYS \ DPI_”DPI”

\ SYS \ DPI_”DPI”_resh_”ResH”_resv_”ResV”

\ SYS \ “LangID”

Steps:

  1. In these you just have to just replace the language specific folders in the SYS folder only.

NOTE: Make sure you replace the language packs with the ones of same DPI and RESH/RESV.

References Thanks to Da_g @XDA.

  • malvins
    Hi,
    I try to convert in italian languages (0410) a ROM but "internal storage" doesn't convert in "Memorizzazione interna".
    Can U help me?

    Thanks
    Bye

Previous post:

Next post:


Copyright ©2009, TechParaiso.com, Technology Paradise. Based on Thesis Theme. Designed by TechParaiso.
Articles here should not be reproduced anywhere else without Permission.