This project has moved. For the latest updates, please go here.

Allow use of non-QWERTY keyboards


User request: PinyinTones should be able to use a French keyboard (AZERTY).

The best way to solve this problem would be to write a real installer that asks the user which language to register PinyinTones under. This will automatically pick up the keyboard layout for that language.

There's also the possibility of calling LoadKeyboardLayout (without passing the KLF_ACTIVATE flag), and then passing the layout into MapVirtualKeyEx and ToUnicodeEx to get the appropriate character. This would be read from some regkey under HKCU, since it would allow users to override the systemwide setting of the language that PinyinTones is registered under.

(We must use a separate regkey, because we cannot use any Windows setting reliably. For example, the user's default input keyboard can be read from HKCU\Keyboard Layout\Preload\1, but this wouldn't work for anyone using a non-Latin keyboard as the default.)

file attachments


Karibou wrote Jun 19, 2014 at 8:37 AM

I have a French keyboard and I ran into the same problem,
since by default (on win7 anyway) normal chinese input refers to a QWERTY kb and not AZERTY, you have to solve that anyway
This website provides a patch "IME_FR" to modify the registry in order to input chinese with an AZERTY.

I looked how it worked and I tried to apply the same logic for pinyin input and it works !

so just go to the registry (non techies on 7 : "start" and type "gepedit" then enter

then go to

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411]
double click "Layout File"

and change the value to kbdfr.dll

or you could also apply the attached *.reg file i just made :
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411]
"Layout File" = "kbdfr.dll"

I hope that helps
and thanks a million to the author of pinyintones :)

taoyue wrote Jul 15, 2014 at 9:04 PM

Thanks for the suggestion.

This kind of registry workaround is something that a user can do, because he owns the machine.

It is frowned upon for program installers to do the same thing. This would affect all Japanese text services, even those that are installed in the future.

I think the ultimate solution is going to be installing as French. It solves everything -- the font problem, the AZERTY keyboard, etc. The main problem is that you can't use the default Alt+Shift keystroke to switch languages. A lot of PinyinTones users are not very computer-savvy, and getting started is the hardest part.

In Windows 8, the problem goes away because text services are no longer categorized by language. You use the same Windows+spacebar keystroke, whether the text service is in the same language or a different language. However, Windows 8 uptake has been very slow, which means I cannot rely on its availability.