Completely new code to handle notification of input locale / keyboard layout changes.
Now NVDA reports (in both speech and braille) the correct full name of the layout, and the full language.
For example: "Layout united States Dvorak, Language English (Australian)" was previously only announced as "US keyboard layout".
Specific changes:
*nvdaController interface add a inputLangChangeNotify method, which takes a hkl as returned from GetKeyboardLayout, and a layout name string (hex) as returned from GetKeyboardLayoutName, as arguments.
*nvdaHelperRemote: the inputLangChange hook now passes appropraite info to nvdaController_inputLangChangeNotify, rather than firing a custom winEvent.
*nvdaHelper.py: implement nvdaController_inputLangChangeNotify. This function looks up the localized name of the layout in the registry using the layout hex string. It also fetches the name for the locale identified in the hkl. Then it reports this information via ui.message.
*nvdaHelper.py and keyboardHandler.py: remove old code that is no longer needed.
Notes:
*changes to nvdaHelper mean it must be recompiled.
*There are some new strings that must be translated.
Anyone who uses multiple keyboard layouts please test this thurrally. Please report any issues.