How to install an additional language on LG Optimus7 ? - Windows Phone 7 Q&A, Help & Troubleshooting

Am submitting changes to the registry, and the phone will not remember them. How to make these changes?

Is it really true noone has been able to translate the known language changing registry method so that it can be applied using MFG-editor?
So this is the registry method used in other phones:
1. Enter HKEY_LOCAL_MACHINE\MUI\Available and add a new string.
2. Enter your locale, for example 040b -> Name: 040b
3. Enter the language name -> Value: Finnish
Now, how to do the same in MFG because there are no name or value fields? What goes into Input key and Input data -fields?

Related

TUTORIAL: Windows Mobile Smartphone Internationalization Issues

In this tutorial, I explain how you can add new word completion (XT9) dictionaries to your Windows Mobile Smartphone and how you can redefine their built-in keyboard layout to match the official keyboards used in different languages (QWERTZ in German, AZERTY in French etc.). Based on my tutorial, you will be able to define any keyboard layout – not just the official ones.
One of the drivers that made me write this was the complete lack of any kind of a tutorial or even usable forum posts on these questions (make a Google search for any of the Registry subkey names!). The available ones (see for example THIS) are pretty much useless. That is, this article, as with most of my other articles, is the first REAL article / tutorial / description of all these issues never ever published by anyone before.
Note that this article only refers to touchscreen-less MS Smartphone (Windows Mobile Standard) devices, NOT Pocket PC’s. Should you want to know how you can redefine the default word completion directory used by Pocket PC’s, check out for example THIS article of mine. In addition, should you want to know how to redefine the built-in thumbboard layout, just read the “Change slide-out keyboard layout” section of the related XDA-Dev Wiki page.
1. Adding new XT9 dictionaries
My biggest problem with my TC Vox (s710) was the lack of a Finnish dictionary, as I do most of my chatting in either English or Finnish. The English dictionary works just great and really greatly increases the text entering speed; this is why I’ve tried very hard to find a Finnish dictionary. This forced me to discover how the XT9 dictionaries work and how additional dictionaries can be registered.
First, some good news. Unlike with the Pocket PC platform, you can easily switch between the XT9 dictionaries by just long-pressing the * dial button (or, on the keyboard, the Sym + Space keys) and just selecting the new dictionary. With the Pocket PC, you couldn’t do this very easily – you would need to quickly change the two Registry values HKCU\ControlPanel\ Sip\DictFile and HKCU\ControlPanel\ Sip\ProbFile. (Of course, using a scripting language / environment like the excellent nScriptm either executable from Start / Programs, you can quickly create a program that switches between the two (or more) dictionaries quickly. You can even assign this file to a hardware button. See my past nScriptm-related articles on how this can be done.)
First, an elaboration on how this all works. Note that you will NOT need this in most cases, unless you want to add your DLL’s not existing in the two CAB’s provided in the next section; in this case, you can safely skip this section and move to the next, 1.2.
1.1 In the Registry
First, some advanced stuff. Let me clarify how the Registry keeps track of the different dictionaries.
1.1.1 eT9\AvailableLanguages
First, let’s have a look at HKEY_LOCAL_MACHINE\ Software\Tegic\eT9\ AvailableLanguages. This lists the supported languages. That is, if a given language is enabled in here, then, it will be selectable in the dictionary selector menu (regardless of whether its dictionary DLL really exists or not).
The language codes here come right from the official ISO country codes (listed for example HERE, in the LCIDHex column), with the exception of 04 being changed to 01.
That is, while the official language code of English is 0409, you must use 0109 to refer to English in here. The same stands for all other languages: for example, French is 040C; therefore, it must be referred to as 010C in here.
Note that the order of the numbers of the different languages is also important. For example, if you want to make sure French is the first, just move 010C to the first place of the list in this Registry value; then, the latter will be something like this:
010C,0109,0107,0110,010A,0113,0105,0108,0118,0115,0116,011B,011F,010E,011D,0114,010B,0106
(This registry import script is also available HERE, should you want to play with it.)
Doing this will result in French being offered as the first in the list:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
You will need this information particularly useful when you want to move a language otherwise not in the first section (for example, not accessible with a phonepad shortcut key). For example, this THIS screenshot, you can see Finnish is at the end of the list - you both need a lot of scrolling (even if you press Up at first) to be able to access it and you can’t use a keypad shortcut to activate it either. To fix the problem, you only need to find the language code for Finnish (040B ), change the first 04 to 01 and just move the resulting 010B to the beginning of the list as can, for example, be seen in the following screenshot:
(registry import file available HERE; in it, the list is as follows: "010B,010C,0109,0107,0110,010A,0113,0105,0108,0118,0115,0116,011B,011F,010E,011D,0114,0106")
See how easy is to bring the languages you REALLY need to the beginning of the language list?
Note that, as with all the other Registry hacks in this article, contrary what some people state (for example HERE), the changes will be visible as soon as you modify the Registry. You do NOT need to restart your handheld.
Now, let’s move on to providing the real dictionaries for the system.
1.1.2 eT9\IME\KdbDlls
As one can easily guess, dictionaries take up a lot of memory (in general, between 100 and 400 kbytes); therefore, more scare languages don’t come with all Smartphones to conserve ROM memory. (For example, a Smartphone sold in the U.K. doesn’t necessarily need the Swedish or the Finnish dictionary built-in; therefore, they’re left out.)
This means, in addition to listing the language in eT9\AvailableLanguages (see section 1.1), you must also provide the given DLL for the system.
To do this, the given DLL, firs, must be got from somewhere (for example, extracted form a ROM of a localized (non-general) Smartphone having it) and, after being copied to the \Windows directory of your handheld, must be listed under the HKEY_LOCAL_MACHINE\ Software\Tegic\eT9\ IME\KdbDlls subkey.
The values in here are pretty straightforward: their names end up at the lower byte of the country code and their values contain the name of the DLL. For example, with English (language code in hex: 0409; therefore, lower byte: 09) will be represented like this:
"00010609"="eT9.Dis.9Keys.English.kbd.dll"
The upper three bytes will always be 000106 with eT9.Dis.9Keys DLL’s and 000107 with the much rarer (for example, Greek) eT9.HQD.Libra DLL’s.
1.2 Ready-made dictionaries
Should you want to avoid direct Registry editing, all you need to do is importing the CAB file containing the language dictionary you need. For example, if you need one or more of the English, French, German, Italian, Spanish, Dutch, Czech, Greek, Romanian , Polish, Portuguese, Slovak, Turkish, Hungarian set, you can just download and install the CAB file provided HERE (for the HTC Vox / s710) or HERE (HTC Excalibur / s620).
Should you, on the other hand, need Scandinavian languages (yes, including Finnish, Mr. Rutkowski ), you’ll need THIS file, originally compiled by XDA-Developers forum member mriz. (I provide a link to the version hosted by me because mriz hosts his version on Rapidshare, which is known to take down its downloads after a while.)
A screenshot of the language list is HERE; an in-action screenshot with the Finnish dictionary.
1.2.1 A caveat: very important!
When you install ANY language pack, HKEY_LOCAL_MACHINE\ Software\Tegic\eT9\ AvailableLanguages (see section 1.1) will be overridden and the old dictionaries NOT present in the just-installed one will just disappear! Therefore, you MUST for example save the original contents of this entry and, after installing ANY language pack, just concatenate these numbers to the new ones.
For example, if you install the Scandinavian pack on a handheld that previously had the MoDaCo multilingual pack, eT9\AvailableLanguages will contain only the following after the import (that is, four languages; not even English):
011D,0114,010B,0106
instead of the combination of both packs, listing all the languages in both of them; that is,
0109,010C,0107,0110,010A,0113,0105,0108,0118,0115,0116,011B,011F,010E,011D,0114,010B,0106
(I’ve used italic to denote the languages installed by the previously and, by bold, the Scandinavian pack.)
Therefore, you’ll need to re-add the, now, invisible languages to eT9\AvailableLanguages. Should you be aware of this (by manually editing the Registry), just use for example THIS registry import script.
1.2.2 Compatibility
These files worked just great on my HTC Vox. They, however, didn’t work at all on my WM5 AKU3 HTC Oxygen (s310).
2. Redefining the layout of the built-in hardware keyboard (thumbboard)
Unlike on the Pocket PC, where you could quickly swap the keyboard layout by just editing (as is described in the “Change slide-out keyboard layout” section of the related XDA-Dev Wiki page)
With this platform, the situation is a bit more complicated: you must supply the full keyboard mapping file and, in addition, you must also register it in the Registry.
2.1 Keyboard layout files
The recommended (but not compulsory) naming convention for a keyboard mapping file is the following:
eT9.Vox.XXXX.kmap.txt
where XXXX is the official language code (see the already-linked MSDN page for them) and you can change “Vox” to “Excalibur” on the HTC Excalibur (or anythign similar on other, keyboard-enabled devices). Note that, the Smartphone platform (as opposed to Pocket PC) lacking related file name conventions (you must explicitly refer to the keyboard mapping file in the Registry), it can be named anything. I only use this name to be compliant with the naming conventions used by the Vox version of the MoDaCo dictionary installer.
The contents of these files may seem a bit complicated at first but you will soon be able to navigate around. For example, let’s have a look at the following (Greek) configuration file:
As one can see, there are five fields (referred to as {VK VK' CH1 CH2 KeyIndex} by the code samples) in each record defining a button. The first of them just lists what is physically printed on the key and doesn’t need to be touched – it’s only for human consumption, to give you a helping hand when editing the keyboard map file. The second is more important: it’s what you will want to modify when defining a different letter to be input when you press a button. The third and fourth fields define the symbols produced by Fn + key and the symbols entered in 123 mode (the latter two is the same). Finally, you don’t need to touch the last field either.
Note that you can entirely leave the last field (KeyIndex) off (as is in the German layout I provide below). Then, only the first field in the record will be used to determine which key you’re talking about. An example of this (with the German layout):
{Q Q @ @}
{W W ! !}
{E E 0 0}
{R R 1 1}
{T T 2 2}
{Y Z 3 3}
{U U + +}
{I I / /}
{O O ( (}
{P P ) )}
{A A ? ?}
{S S * *}
{D D 4 4}
{F F 5 5}
{G G 6 6}
{H H - -}
{J J _ _}
{K K : :}
{L L ; ;}
{Z Y 0x09 Z}
{X X # #}
{C C 7 7}
{V V 8 8}
{B B 9 9}
{N N 0xFA N} // 0xFA = Launch symbol window
{M M 0xFB M} // 0xFB = Launch SMS
{0xBE . , ,} // 0xBE = VK_PERIOD
{0x26 0x26 0x21 0x26} // 0xF1 = up arrow, 0x21 = page up
{0x28 0x28 0x22 0x28} // 0xF2 = down arrow, 0x22 = page down
{0x25 0x25 0xFD 0x25} // 0xF3 = left arrow, 0xFD = launch pIE
{0x27 0x27 0xDE 0x27} // 0xF4 = right arrow, 0xDE = '
Let’s take a closer look at the Z and the Y records above: that is, the two records you need to modify to get the German layout out of the English one (on limited keyboards not having a number row and non-alphabetic keys):
{Z Y 0x09 Z}
…
{Y Z 3 3}
As you can see, if you need to instruct the handheld to enter a ‘Y’ character when you press the “Z” button, you need to modify the “Z” record.
(Note that this map file is HERE and the accompanying Registry import file – see the next, 2.2 section – HERE)
2.2 Registering keyboard layout files in the Registry
Only providing keyboard layout files (see section 2.1) is insufficient. You must also register these files in the Registry so that the system knows you use a, from English, different keyboard layout.
To do this, you must register they layout file under both HKEY_LOCAL_MACHINE\Software\ Tegic\eT9\IME\ KeyboardLayouDlls and HKEY_LOCAL_MACHINE\Software\ Tegic\eT9\IME\ LanguageKeyboardIDMapping.
With the former, you must create a new value named 000007XX, where XX is the lower byte of the language code (for example, 07 for (the 0407 hexa) German), with the value containing the map file (for example, for a German map, "eT9.Vox.0407.kmap.txt").
With the latter, you must map the language and the keyboard layout together. To do this, you must create a value named after the language ID (with the changes outlined in Section 1.1.1; that is, changing 4 to 1 in the upper byte). Its value must be the lower (16-bit) word of the KeyboardLayouDlls registration – as a String (incidentally, as with, for example, the Pocket PC keyboard language string under HKCU\ControlPanel\ Keybd\Locale).
That is, with the German example, the two new values you must create are the following:
[HKEY_LOCAL_MACHINE\Software\Tegic\eT9\IME\KeyboardLayouDlls]
"00000707"="eT9.Vox.0407.kmap.txt"
[HKEY_LOCAL_MACHINE\Software\Tegic\eT9\IME\LanguageKeyboardIDMapping]
"0107"="0707"
Again, the value of the second value refers back to the first.
Note that, unfortunately, defining a keyboard mapping file to fix the well-known, annoying HTC Vox bug affecting many games / emulators (for example, ScummVM) won’t work. Yes, I’ve tested this (HERE is the file completely switching off numbers in Fn mode) and it didn’t work – pressing the E, R, T, Y, D, F, G, C, V and B keys on the keyboard still resulted in the numbers 0, 1,… 9 being input.
2.3 What about AEKMap?
The well-known AEKMap has gone a LONG way since its first versions (then, only usable with external USB keyboard). This, unfortunately, also means it has gone commercial – at least as far as accessing its advanced features are concerned. The current version is pretty powerful and also supports Smartphones. Unfortunately, very few ready-made Smartphone-related config / layout files are available now, which means you will end up having to write one yourself if you want to use a non-English mapping.
As I find the non-AEKMap way is more system-friendly, I’d, myself, prefer defining your keyboard layout using it, the traditional way. However, you will still want to give AEKMap a try to see whether you can use its advanced capabilities.
3. Tips for ThinkOutstide StowAway keyboard support
Unfortunately, currently, the StowAway keyboards by Mobility Electronics, Inc. (ex- ThinkOutstide) are, officially, not supported by the manufacturer on several Smartphone models. However, this is in no way a problem: if you have a HTC Vox, just download the driver meant for Excalibur (accessible HERE), it’ll work just great. The same may stand for other, officially, not supported models - just give a try to drivers meant for other smartphones (preferably running the same operating system version).
This also means you can safely redefine the keyboard layout by both ThinkOutstide’s official tool (which must be requested by mail as can be read HERE) and, most probably, AEKMap.
UPDATE (09/27/2007): there are other language packs HERE.
(end of update)
The just-posted link ( http://melgurth.ovh.org/index.php?page=downloads ) also has a downloadable T9 word editor.
The language packs nearly-destroyed my bootloader. I don't recommend installing them without any "safe-mode" utility.
could you please write a tutorial how to compiled a t9 dictionary so if the language not aviable people can do it themshelp
I want to make my language in t9 dictionary but i dont know how and what to do , can you tell me which program to use and how to make it , any advice is welcome
Anyone have the T9JapaneseLdb.dll file?
I need to input japanese in my smartphone.
T9 Vietnamese
Anyone have the T9VietnameseLdb.dll file?
I need to input Vietnamese in my PPC.Help me please!
hanoiwap said:
Anyone have the T9VietnameseLdb.dll file?
I need to input Vietnamese in my PPC.Help me please!
Click to expand...
Click to collapse
I'm too. Please help me. Thanks
need to imput Korean
Hi~!
Anyone have the T9KoreanLdb.dll file?
I need to input Korean in my smartphone please!

Windows Mobile Smartphone Internationalization Issues

In this tutorial, I explain how you can add new word completion (XT9) dictionaries to your Windows Mobile Smartphone and how you can redefine their built-in keyboard layout to match the official keyboards used in different languages (QWERTZ in German, AZERTY in French etc.). Based on my tutorial, you will be able to define any keyboard layout – not just the official ones.
One of the drivers that made me write this was the complete lack of any kind of a tutorial or even usable forum posts on these questions (make a Google search for any of the Registry subkey names!). The available ones (see for example THIS) are pretty much useless. That is, this article, as with most of my other articles, is the first REAL article / tutorial / description of all these issues never ever published by anyone before.
Note that this article only refers to touchscreen-less MS Smartphone (Windows Mobile Standard) devices, NOT Pocket PC’s. Should you want to know how you can redefine the default word completion directory used by Pocket PC’s, check out for example THIS article of mine. In addition, should you want to know how to redefine the built-in thumbboard layout, just read the “Change slide-out keyboard layout” section of the related XDA-Dev Wiki page.
1. Adding new XT9 dictionaries
My biggest problem with my TC Vox (s710) was the lack of a Finnish dictionary, as I do most of my chatting in either English or Finnish. The English dictionary works just great and really greatly increases the text entering speed; this is why I’ve tried very hard to find a Finnish dictionary. This forced me to discover how the XT9 dictionaries work and how additional dictionaries can be registered.
First, some good news. Unlike with the Pocket PC platform, you can easily switch between the XT9 dictionaries by just long-pressing the * dial button (or, on the keyboard, the Sym + Space keys) and just selecting the new dictionary. With the Pocket PC, you couldn’t do this very easily – you would need to quickly change the two Registry values HKCU\ControlPanel\ Sip\DictFile and HKCU\ControlPanel\ Sip\ProbFile. (Of course, using a scripting language / environment like the excellent nScriptm either executable from Start / Programs, you can quickly create a program that switches between the two (or more) dictionaries quickly. You can even assign this file to a hardware button. See my past nScriptm-related articles on how this can be done.)
First, an elaboration on how this all works. Note that you will NOT need this in most cases, unless you want to add your DLL’s not existing in the two CAB’s provided in the next section; in this case, you can safely skip this section and move to the next, 1.2.
1.1 In the Registry
First, some advanced stuff. Let me clarify how the Registry keeps track of the different dictionaries.
1.1.1 eT9\AvailableLanguages
First, let’s have a look at HKEY_LOCAL_MACHINE\ Software\Tegic\eT9\ AvailableLanguages. This lists the supported languages. That is, if a given language is enabled in here, then, it will be selectable in the dictionary selector menu (regardless of whether its dictionary DLL really exists or not).
The language codes here come right from the official ISO country codes (listed for example HERE, in the LCIDHex column), with the exception of 04 being changed to 01.
That is, while the official language code of English is 0409, you must use 0109 to refer to English in here. The same stands for all other languages: for example, French is 040C; therefore, it must be referred to as 010C in here.
Note that the order of the numbers of the different languages is also important. For example, if you want to make sure French is the first, just move 010C to the first place of the list in this Registry value; then, the latter will be something like this:
010C,0109,0107,0110,010A,0113,0105,0108,0118,0115,0116,011B,011F,010E,011D,0114,010B,0106
(This registry import script is also available HERE, should you want to play with it.)
Doing this will result in French being offered as the first in the list:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
You will need this information particularly useful when you want to move a language otherwise not in the first section (for example, not accessible with a phonepad shortcut key). For example, this THIS screenshot, you can see Finnish is at the end of the list - you both need a lot of scrolling (even if you press Up at first) to be able to access it and you can’t use a keypad shortcut to activate it either. To fix the problem, you only need to find the language code for Finnish (040B ), change the first 04 to 01 and just move the resulting 010B to the beginning of the list as can, for example, be seen in the following screenshot:
(registry import file available HERE; in it, the list is as follows: "010B,010C,0109,0107,0110,010A,0113,0105,0108,0118,0115,0116,011B,011F,010E,011D,0114,0106")
See how easy is to bring the languages you REALLY need to the beginning of the language list?
Note that, as with all the other Registry hacks in this article, contrary what some people state (for example HERE), the changes will be visible as soon as you modify the Registry. You do NOT need to restart your handheld.
Now, let’s move on to providing the real dictionaries for the system.
1.1.2 eT9\IME\KdbDlls
As one can easily guess, dictionaries take up a lot of memory (in general, between 100 and 400 kbytes); therefore, more scare languages don’t come with all Smartphones to conserve ROM memory. (For example, a Smartphone sold in the U.K. doesn’t necessarily need the Swedish or the Finnish dictionary built-in; therefore, they’re left out.)
This means, in addition to listing the language in eT9\AvailableLanguages (see section 1.1), you must also provide the given DLL for the system.
To do this, the given DLL, firs, must be got from somewhere (for example, extracted form a ROM of a localized (non-general) Smartphone having it) and, after being copied to the \Windows directory of your handheld, must be listed under the HKEY_LOCAL_MACHINE\ Software\Tegic\eT9\ IME\KdbDlls subkey.
The values in here are pretty straightforward: their names end up at the lower byte of the country code and their values contain the name of the DLL. For example, with English (language code in hex: 0409; therefore, lower byte: 09) will be represented like this:
"00010609"="eT9.Dis.9Keys.English.kbd.dll"
The upper three bytes will always be 000106 with eT9.Dis.9Keys DLL’s and 000107 with the much rarer (for example, Greek) eT9.HQD.Libra DLL’s.
1.2 Ready-made dictionaries
Should you want to avoid direct Registry editing, all you need to do is importing the CAB file containing the language dictionary you need. For example, if you need one or more of the English, French, German, Italian, Spanish, Dutch, Czech, Greek, Romanian , Polish, Portuguese, Slovak, Turkish, Hungarian set, you can just download and install the CAB file provided HERE (for the HTC Vox / s710) or HERE (HTC Excalibur / s620).
Should you, on the other hand, need Scandinavian languages (yes, including Finnish, Mr. Rutkowski ), you’ll need THIS file, originally compiled by XDA-Developers forum member mriz. (I provide a link to the version hosted by me because mriz hosts his version on Rapidshare, which is known to take down its downloads after a while.)
A screenshot of the language list is HERE; an in-action screenshot with the Finnish dictionary.
1.2.1 A caveat: very important!
When you install ANY language pack, HKEY_LOCAL_MACHINE\ Software\Tegic\eT9\ AvailableLanguages (see section 1.1) will be overridden and the old dictionaries NOT present in the just-installed one will just disappear! Therefore, you MUST for example save the original contents of this entry and, after installing ANY language pack, just concatenate these numbers to the new ones.
For example, if you install the Scandinavian pack on a handheld that previously had the MoDaCo multilingual pack, eT9\AvailableLanguages will contain only the following after the import (that is, four languages; not even English):
011D,0114,010B,0106
instead of the combination of both packs, listing all the languages in both of them; that is,
0109,010C,0107,0110,010A,0113,0105,0108,0118,0115,0116,011B,011F,010E,011D,0114,010B,0106
(I’ve used italic to denote the languages installed by the previously and, by bold, the Scandinavian pack.)
Therefore, you’ll need to re-add the, now, invisible languages to eT9\AvailableLanguages. Should you be aware of this (by manually editing the Registry), just use for example THIS registry import script.
1.2.2 Compatibility
These files worked just great on my HTC Vox. They, however, didn’t work at all on my WM5 AKU3 HTC Oxygen (s310).
2. Redefining the layout of the built-in hardware keyboard (thumbboard)
Unlike on the Pocket PC, where you could quickly swap the keyboard layout by just editing (as is described in the “Change slide-out keyboard layout” section of the related XDA-Dev Wiki page)
With this platform, the situation is a bit more complicated: you must supply the full keyboard mapping file and, in addition, you must also register it in the Registry.
2.1 Keyboard layout files
The recommended (but not compulsory) naming convention for a keyboard mapping file is the following:
eT9.Vox.XXXX.kmap.txt
where XXXX is the official language code (see the already-linked MSDN page for them) and you can change “Vox” to “Excalibur” on the HTC Excalibur (or anythign similar on other, keyboard-enabled devices). Note that, the Smartphone platform (as opposed to Pocket PC) lacking related file name conventions (you must explicitly refer to the keyboard mapping file in the Registry), it can be named anything. I only use this name to be compliant with the naming conventions used by the Vox version of the MoDaCo dictionary installer.
The contents of these files may seem a bit complicated at first but you will soon be able to navigate around. For example, let’s have a look at the following (Greek) configuration file:
As one can see, there are five fields (referred to as {VK VK' CH1 CH2 KeyIndex} by the code samples) in each record defining a button. The first of them just lists what is physically printed on the key and doesn’t need to be touched – it’s only for human consumption, to give you a helping hand when editing the keyboard map file. The second is more important: it’s what you will want to modify when defining a different letter to be input when you press a button. The third and fourth fields define the symbols produced by Fn + key and the symbols entered in 123 mode (the latter two is the same). Finally, you don’t need to touch the last field either.
Note that you can entirely leave the last field (KeyIndex) off (as is in the German layout I provide below). Then, only the first field in the record will be used to determine which key you’re talking about. An example of this (with the German layout):
{Q Q @ @}
{W W ! !}
{E E 0 0}
{R R 1 1}
{T T 2 2}
{Y Z 3 3}
{U U + +}
{I I / /}
{O O ( (}
{P P ) )}
{A A ? ?}
{S S * *}
{D D 4 4}
{F F 5 5}
{G G 6 6}
{H H - -}
{J J _ _}
{K K : :}
{L L ; ;}
{Z Y 0x09 Z}
{X X # #}
{C C 7 7}
{V V 8 8}
{B B 9 9}
{N N 0xFA N} // 0xFA = Launch symbol window
{M M 0xFB M} // 0xFB = Launch SMS
{0xBE . , ,} // 0xBE = VK_PERIOD
{0x26 0x26 0x21 0x26} // 0xF1 = up arrow, 0x21 = page up
{0x28 0x28 0x22 0x28} // 0xF2 = down arrow, 0x22 = page down
{0x25 0x25 0xFD 0x25} // 0xF3 = left arrow, 0xFD = launch pIE
{0x27 0x27 0xDE 0x27} // 0xF4 = right arrow, 0xDE = '
Let’s take a closer look at the Z and the Y records above: that is, the two records you need to modify to get the German layout out of the English one (on limited keyboards not having a number row and non-alphabetic keys):
{Z Y 0x09 Z}
…
{Y Z 3 3}
As you can see, if you need to instruct the handheld to enter a ‘Y’ character when you press the “Z” button, you need to modify the “Z” record.
(Note that this map file is HERE and the accompanying Registry import file – see the next, 2.2 section – HERE)
2.2 Registering keyboard layout files in the Registry
Only providing keyboard layout files (see section 2.1) is insufficient. You must also register these files in the Registry so that the system knows you use a, from English, different keyboard layout.
To do this, you must register they layout file under both HKEY_LOCAL_MACHINE\Software\ Tegic\eT9\IME\ KeyboardLayouDlls and HKEY_LOCAL_MACHINE\Software\ Tegic\eT9\IME\ LanguageKeyboardIDMapping.
With the former, you must create a new value named 000007XX, where XX is the lower byte of the language code (for example, 07 for (the 0407 hexa) German), with the value containing the map file (for example, for a German map, "eT9.Vox.0407.kmap.txt").
With the latter, you must map the language and the keyboard layout together. To do this, you must create a value named after the language ID (with the changes outlined in Section 1.1.1; that is, changing 4 to 1 in the upper byte). Its value must be the lower (16-bit) word of the KeyboardLayouDlls registration – as a String (incidentally, as with, for example, the Pocket PC keyboard language string under HKCU\ControlPanel\ Keybd\Locale).
That is, with the German example, the two new values you must create are the following:
[HKEY_LOCAL_MACHINE\Software\Tegic\eT9\IME\KeyboardLayouDlls]
"00000707"="eT9.Vox.0407.kmap.txt"
[HKEY_LOCAL_MACHINE\Software\Tegic\eT9\IME\LanguageKeyboardIDMapping]
"0107"="0707"
Again, the value of the second value refers back to the first.
Note that, unfortunately, defining a keyboard mapping file to fix the well-known, annoying HTC Vox bug affecting many games / emulators (for example, ScummVM) won’t work. Yes, I’ve tested this (HERE is the file completely switching off numbers in Fn mode) and it didn’t work – pressing the E, R, T, Y, D, F, G, C, V and B keys on the keyboard still resulted in the numbers 0, 1,… 9 being input.
2.3 What about AEKMap?
The well-known AEKMap has gone a LONG way since its first versions (then, only usable with external USB keyboard). This, unfortunately, also means it has gone commercial – at least as far as accessing its advanced features are concerned. The current version is pretty powerful and also supports Smartphones. Unfortunately, very few ready-made Smartphone-related config / layout files are available now, which means you will end up having to write one yourself if you want to use a non-English mapping.
As I find the non-AEKMap way is more system-friendly, I’d, myself, prefer defining your keyboard layout using it, the traditional way. However, you will still want to give AEKMap a try to see whether you can use its advanced capabilities.
3. Tips for ThinkOutstide StowAway keyboard support
Unfortunately, currently, the StowAway keyboards by Mobility Electronics, Inc. (ex- ThinkOutstide) are, officially, not supported by the manufacturer on several Smartphone models. However, this is in no way a problem: if you have a HTC Vox, just download the driver meant for Excalibur (accessible HERE), it’ll work just great. The same may stand for other, officially, not supported models - just give a try to drivers meant for other smartphones (preferably running the same operating system version).
This also means you can safely redefine the keyboard layout by both ThinkOutstide’s official tool (which must be requested by mail as can be read HERE) and, most probably, AEKMap.
Thanks for the amazing guide
do you know by chance if the symbol window is anyhow customizable? I'd like to change the first 4 symbols showing...
thanks
stepir said:
Thanks for the amazing guide
do you know by chance if the symbol window is anyhow customizable? I'd like to change the first 4 symbols showing...
thanks
Click to expand...
Click to collapse
1, thanks
2, nope, sorry
UPDATE (09/27/2007): there are other language packs HERE. It also has a downloadable T9 word editor.
Pantech PN-820
Thanks for your detailed guide. I have contacted all sorts of vendors and tech support people and you seem to be the only out there who is able to get a handle on this. Can you please explain to me how to prevent my native T9 English dictionary (and English inputing abililty) from being wiped out when I install the russiant9.cab that you have a linked at the bottom of your page. I was so happy to find that link and install the Russian only to find that I could not then use the English. I have the PN-820 from Verizon and the only languages it lets you choose are English and Spanish. For that matter I would be happy if you told me how to just add Russian as an input method (even if I don't get T9 abilities).
Also, I downloaded the mobile registry editor but it would not allow me to make any changes and said access denied when I tried changing values. Any ideas on how to get past the protection there? Thanks! Martin
clewirm3 said:
Thanks for your detailed guide. I have contacted all sorts of vendors and tech support people and you seem to be the only out there who is able to get a handle on this. Can you please explain to me how to prevent my native T9 English dictionary (and English inputing abililty) from being wiped out when I install the russiant9.cab that you have a linked at the bottom of your page. I was so happy to find that link and install the Russian only to find that I could not then use the English. I have the PN-820 from Verizon and the only languages it lets you choose are English and Spanish. For that matter I would be happy if you told me how to just add Russian as an input method (even if I don't get T9 abilities).
Also, I downloaded the mobile registry editor but it would not allow me to make any changes and said access denied when I tried changing values. Any ideas on how to get past the protection there? Thanks! Martin
Click to expand...
Click to collapse
1, thanks and welcome to XDA-Dev
2, forget MRE. Get either Resco, Pocket Controller or, even better (because it's free) CeRegEditor ( http://forum.xda-developers.com/showthread.php?t=327511 ). And, of course, don't forget to app unlock your Smartphone
Menneisyys said:
1, thanks and welcome to XDA-Dev
2, forget MRE. Get either Resco, Pocket Controller or, even better (because it's free) CeRegEditor ( http://forum.xda-developers.com/showthread.php?t=327511 ). And, of course, don't forget to app unlock your Smartphone
Click to expand...
Click to collapse
Hi, first of all, thanks for this guide, I´ve been playing with it for about 2 days, and I´m now a little desperate, I´m using the Rogers ROM, and I want to have the spanish dictionary installed, so, when I install the language pack, I can use the dictionary but I can´t use caps and the symbol button either. I tried to copy the needed files and I´ve been making some tweaks to the registry, with no luck til now... Could you help me to achieve this, to have only the spanish dictionary with no changes on my keyboard layout?? Thanks in advance!!!
Still in Qwerty...
Hello,
I have a french HTC with azerty keyboard with HTC_Vox_ARA_1.27.415.4_4.1.13.47 rom.
It works well, it is totally in french, except my keyboard (in abc mode) write in qwerty (when i type on visual touch A, a Q appears on the screen).
I made all the steps of the second post of this thread.
And when i want to write with keyboard, nothing appears on screen !
I maybe made a mistake in I my "eT9.Vox.040C.kmap.txt". I attached this file to the post.
Could you tell me what's wrong in this file?
What can I do?????
Thanks in advance and sorry for my poor english...
Rafael1000 said:
Hello,
I have a french HTC with azerty keyboard with HTC_Vox_ARA_1.27.415.4_4.1.13.47 rom.
It works well, it is totally in french, except my keyboard (in abc mode) write in qwerty (when i type on visual touch A, a Q appears on the screen).
I made all the steps of the second post of this thread.
And when i want to write with keyboard, nothing appears on screen !
I maybe made a mistake in I my "eT9.Vox.040C.kmap.txt". I attached this file to the post.
Could you tell me what's wrong in this file?
What can I do?????
Thanks in advance and sorry for my poor english...
Click to expand...
Click to collapse
I have the same problem.
I have tried to change "eT9.Vox.040C.kmap.txt" with this code :
Code:
//
// N O T E: This file must be saved as Unicode
//
// This file contains the virtual keys mapping table for the
// Cavalier device. The mapping table is define as follow
//
// VK_TPOUND = 0x78
// VK_TSTAR = 0x77
// VK_TAB = 0x09
//
// We do not support escape value yet. So the key/char values should be
// entered explicitly or by encoding start with 0x
//
// Format:
// {VK VK' CH1 CH2}
// VK -> value from keyboard driver
// VK' -> printed on keys
// CH1 -> symbols produced by Fn + key
// CH2 -> symbols in 123 mode
{Q A @ @}
{W Z ! !}
{E E 0 0}
{R R 1 1}
{T T 2 2}
{Y Y 3 3}
{U U + +}
{I I / /}
{O O ( (}
{P P ) )}
{A Q ? ?}
{S S * *}
{D D 4 4}
{F F 5 5}
{G G 6 6}
{H H - -}
{J J _ _}
{K K : :}
{L L;;}
{Z W 0x09 Z}
{X X # #}
{C C 7 7}
{V V 8 8}
{B B 9 9}
{N N 0xFA N} // 0xFA = Launch symbol window
{M M 0xFB M} // 0xFB = Launch SMS
{0xBE . , ,} // 0xBE = VK_PERIOD
{0x26 0x26 0x21 0x26} // 0xF1 = up arrow, 0x21 = page up
{0x28 0x28 0x22 0x28} // 0xF2 = down arrow, 0x22 = page down
{0x25 0x25 0xFD 0x25} // 0xF3 = left arrow, 0xFD = launch pIE
{0x27 0x27 0xDE 0x27} // 0xF4 = right arrow, 0xDE = '
but nothing appears on the screen when i type a message.
Could you help me please ?
Here my config :
Code:
[HKEY_LOCAL_MACHINE\Software\Tegic\eT9\IME\KeyboardLayouDlls]
"0000070C"="eT9.Vox.040C.kmap.txt"
[HKEY_LOCAL_MACHINE\Software\Tegic\eT9\IME\LanguageKeyboardIDMapping]
"010C"="070C"
Thanks and excuse my poor english...
I have found my problem.
My config (code : .reg and .txt) was Ok, my only problem was the file type for the "eT9.Vox.040C.kmap.txt".
I've tried to save the file in UNICODE type, not in ANSI type, this solve the problem.
Bye.
And, once again, excuse my poor english...
could any one create an arabic or persian one ? really thanks .
Fn+Left arrow launches Internet Explorer, even with Norwegian keymap
On my Vox (with the great Dr Gonzo's WM 6.1 1.1), Fn+left arrow launched PIE. I want it to produce the normal "Æ". I was hoping that installing the Norwegian keymap (http://forum.xda-developers.com/showthread.php?t=384186) would get rid of this, but it doesn't.
I've peeked around the registry for clues (according to the informative first post), with no luck.
Any ideas?
My new keymap:
Code:
{Q Q @ @}
{W W ! !}
{E E 0 0}
{R R 1 1}
{T T 2 2}
{Y Y 3 3}
{U U + +}
{I I / /}
{O O ( (}
{P P ) )}
{A A ? ?}
{S S * *}
{D D 4 4}
{F F 5 5}
{G G 6 6}
{H H - -}
{J J : :} // modified by Tegic
{K K ; ;} // modified by Tegic
{L L ' '} // modified by Tegic
{Z Z 0x09 Z}
{X X # #}
{C C 7 7}
{V V 8 8}
{B B 9 9}
{N N 0xFA N} // 0xFA = Launch symbol window
{M M , ,} // 0xFB = Launch SMS // modified by Tegic
{0xBE . Ö Ö} // 0xBE = VK_PERIOD // modified by Tegic
{0x26 0x26 Ä 0x26} // 0x26 = up arrow // modified by Tegic
{0x28 0x28 Ø 0x28} // 0x28 = down arrow // modified by Tegic
{0x25 0x25 Æ 0x25} // 0x25 = left arrow, // modified by Tegic
{0x27 0x27 Å 0x27} // 0x27 = right arrow // modified by Tegic
Link: I figured this out now.
Enable eT9/xt9 and Automatic capitalization
Sorry if this has been answered somewhere else, but I have looked to no avail.
My question:
The HTC S620 that I bought from Dubai is WM5 and has Arabic enabled (Mobidiv Software SmartArabizer) and all seems to work fine (can switch between English and Arabic just fine). However, I can't seem to enable eT9/xT9 for either English or Arabic. Hitting and long-pressing the "Fn" button does nothing, and hitting the "Fn" key with the Space only switches languages. Is there a way to enable eT9/xT9 for the English at least? What is also peculiar is that the first word of every sentence is not automatically capitalized, which I thought would be the case. I would like to have the option of word suggestions, and automatic capitalization.
I looked in the registry to try and find the entries to make these changes. I also do not appear to have the Tegit entry under software. Does that mean that I don't have eT9/xT9? I think it would be nice to have word completion and suggestion available as well as automatic capitalization. Any help on this issue would be appreciated, including tweaks or software suggestions.
Thanks.
hello,
is it difficul to create the cab-file with my own xt9-languages?
if not please send me the informations how to do that.
Or if i have already a cab file with all languages i need and some others, so how can i delete this other languages to save the ROM-memory on my phone.
Thank You
mda5
looking for a better DLL to handle CAPS!
Hi,
thank your for this guide, which really rocks.
As many have complained, upon installing eT9 you appear to lose the CAPS key which has got completely dead.
With WM3.1 you lose the ability to enter text data with MobileR as well.
This is really dramatic, since now you hav'nt got any chance at all to enter any password containing caps. Many threads with the caps problem end up without any solution.
Maybe someone has got a better DLL, to cope with the caps as well?
The original DLLs appear to originate from 12 key keyboard smartphones, does someone have a full keyboard phone with WM3.1 and CAPS working and would be able to share his DLL?
I dont' mind to loose T9, I just lack bitterly the CAPS.
RIN67630
imate jaq upgrade
hello
i m using imate jaq i wants to upgrade it 2 win 5 2 6 can any 1 help for this. thnx inadvance. awaiting for the best reply
thnx again
mahendra
I tried to install the greek laguange to my phone with windows 6.1 but because of the wrong version, I mean that the pack was for windows 2003, after the instalation complete ask me to reset the device. Then the device never reboot.The message 'Windows Mobile' appears in the screen but the windows doesn't boot. Can somebody help me? Do I need to reinstall windows? -Or hard reset the device? If one of those please describe. Thanks.

Making a cab - a small tutorial

Because people asked and didn't find the threat on MoDaCo, a small tutorial here. The example is from my Slide Panther theme, there is another one in make.zip. You have to write an *.inf for each cab you want to create. I t contains all files from a specific location and where they will be copied to. You can also specify reg keys.
[Version]
Signature = "$Windows NT$" <-- no changes needed
CESignature = "$Windows CE$" <-- no changes needed
Provider = "frauhottelmann" <-- change to your name
[CEStrings]
Appname="slide panther" <-- the name that will be displayed in the programs menu in settings
[CEDevice] <-- you don't have to change this for the vox
ProcessorType=0
VersionMin=5.2
VersionMax=6.0
[SourceDisksNames]
1=,"Source1",,"Home" <-- specify the name of your source and then the folder with your files (should be in the same location of the *.ini)
[SourceDisksFiles] <-- All files you want to copy have to be here. The 1 stands for Source1 mentioned above, if you have more than one sources (folders) you have to add it above and add an = 2 ... to the end of the corresponding files!
"Slide Panther.home.xml"= 1
"panther.jpg" = 1
"pantherlc.jpg" = 1
[CopyFiles1] <-- Here you have to list the files for one destination folder on the phone. More than one destiantion means more [CopyFiles2] etc.
"Slide Panther.home.xml"
"panther.jpg"
"pantherlc.jpg"
[DestinationDirs] <-- Specify the destinations for the above
CopyFiles1=0,"\Application Data\Home"
[RegData] <-- add reg data, the following is for string values, I don't know how to add dwords, but I never needed it!
HKCU,ControlPanel\Home,Scheme,,\Application Data\Home\Slide Panther.home.xml
[DefaultInstall] <-- Finally specify what you want to be installed, here every destination dir and reg data should be included
CopyFiles=CopyFiles1
AddReg=RegData
Click to expand...
Click to collapse
Once your done with your *.inf, just drag'n'drop it onto the cabwiz.exe and it'll make a cab with the same name as the *.inf! Now you can install it!
Or the alternative, use this program!
BIIIIIIIIIIIIG thx to the german guy ;D
but don't we have to change the versionmax to 6.1 or we will get this stupid "this prog may not display correctly" message??
No, this is the version of WinCE not Windows Mobile, which is still at 5.2...!
Can this be used to install changes to the registry that will be lost after a hard reset?
Roland
Yes everything you install with a cab is lost after hard reset
Nice work...as always...
/**still waiting for german emulator image......same here for italian's one. **/
could you please be a bit more precise about those regkeys? what are all these commas? what are the folder, keys, values?
HKCU,ControlPanel\Home,Scheme,,\Application Data\Home\Slide Panther.home.xml
Click to expand...
Click to collapse
HKCU = HKEY_CURRENT_USER
then after the comma the "folder" path, after the next comma the key name
then after the next comma comes the reg key type, so none is for a string, for others you have to search, because I don't know them. And finally after the last comma comes the value of the reg key!
funny thing, now that i was looking for th value-types i found the tutorial on modaco.
http://www.modaco.com/content/Smart...iscussion/235885/Tutorial-Creating-Cab-Files/
and here are the flags for diferrent types of registry entries:
[add_registry_section]
registry_root_string , subkey,[value_name], flags, value[,value]
[registry_root_string, subkey,[value_name], flags, value[,value]]
registry_root_strings
String that specifies the registry root location. The following table shows the values that are supported by Windows CE.
Root string Description
HKCR The same as HKEY_CLASSES_ROOT
HKCU The same as HKEY_CURRENT_USER
HKLM The same as HKEY_LOCAL_MACHINE
value_name
Registry value name. If empty, the "(default)" registry value name is used.
flags
Numeric value that specifies information about the registry key. The following table shows the values that are supported by Window CE.
Flag Value Description
FLG_ADDREG_NOCLOBBER 0x00000002 If the registry key exists, do not overwrite it. This flag can be used in combination with any of the other flags in this table.
FLG_ADDREG_TYPE_SZ 0x00000000 The REG_SZ registry data type.
FLG_ADDREG_TYPE_MULTI_SZ 0x00010000 The REG_MULTI_SZ registry data type. The value field that follows can be a list of strings separated by commas.
FLG_ADDREG_TYPE_BINARY 0x00000001 The REG_BINARY registry data type. The value field that follows must be a list of numeric values separated by commas, one byte per field, and must not use the 0x hexadecimal prefix.
FLG_ADDREG_TYPE_DWORD 0x00010001 The REG_DWORD data type. Only the non-compatible format in the Win32 Setup .inf documentation is supported.
The following code example shows a typical [AddReg] section.
AddReg = RegSettings.All
[RegSettings.All]
HKLM,%reg_path%,,0x00000000,alpha ; <default> = "alpha"
got it from here http://www.sundialsoft.freeserve.co.uk/cabinfo.htm
could it be that we need to make a .inF (as it says in the instructions) file and not a .inI file?
Is it possible to delete registry entries??
Yes it's inf sorry. And I am not aware of a way to delete reg key with cabs!
Hi frauhottelmann,
It is realy great starting point for CAB maker. I will use this instructions for making my Sliding Panel Default Green cab for 6.1 ver 1.1 ROM.
I have found something really great for cab makers: http://www.gpcarreon.com/?p=524
Haven't tried it though!
EDIT: Under Vista it does, unfortunately, not work!
It DOES work, in compatibility mode!

Help with UC and xml.

Hello I'm trying to use xmlprovisioning to customize some features of S2U2.
An example of one key I'm having problem with is the following:
<parm name="ShowOwnerInfo" datatype="binary" value="01"/>
I just cannot get the value of 01 to stick. When I go back into S2U2 registry setting it is still showing as value not being set (according to CeRegistryEditor).
I don't have any problems changing other datatypes, such as: integer and string.
Am I don't something wrong?
Thank you in advance for all you guy's help.
Okay, I think I found out the reason:
"Binary values are a PITA since they're encoded Base 64 (see my entry for Owner Information above). If you want to set owner information as I did in the example, then you need to convert Unicode to Base64."
from: http://forum.xda-developers.com/showthread.php?t=366337&highlight=user+customization+binary
Can someone walk me through how to do this?
Is this any good?
Unicode to Base64 Convertor
Thank you for the suggestion.
I have already tried the tool, but what it gives me does not generate the effect that I'm looking for
Maybe I need to manipulate the value some how and then put it into the encoder??
Hi,
just an idea:
Binary data are hex ... so i attached a little txt ... just rename it and import to your registry.
It show how Binary-Values work (as far as i understood them )
In HKLM you'll find a Key (Folderlike) called "fwt"
Therein are three values
1. Capital
2. SmallLetter
3. Test
1. => FWT as binary data => 46,57,54
2. => fwt as binary data => 66,77,74
3. => all signs (letters, numbers, symbols) from 00 to FF
Space is 20
CapitalLetter start with 41
SmallLetters start with 61
Just use CeRegistryEditor and you can see them clearly .
I hope this helps!

Question Samsung keyboard: Remember last language used in password fields

The Samsung keyboard app comes preloaded with the input language of the phone's region (let's say Korean). Of course you can add other input languages and the keyboard app will remember the last language you used for normal text inputs. However, that's not the case for password fields - there, it always defaults to the preloaded language and does not remember your recent language selection (that means you can change the input language in a password field, but next time it will be the preloaded language again).
The only way to change it is to disable the preloaded language (removing it is not possible), then it seems to default to the earliest (not disabled) installed language, and still doesn't remember a different language selection. I don't know if that's just a bug or if there's some hidden setting for this. Since it chooses the earliest installed language, is there a way to change the language list hierarchy somewhere in the settings/properties? That would at least allow me to set the default password field language to the most convenient one, even if it still doesn't remember the last used language.
This issue is not device specific because it affects the Samsung keyboard app (on the recent Android versions) and how it handles password fields. Is there a possible workaround?

Categories

Resources