views:

73

answers:

3

On my Windows there are at least keyboard sets, for completely different languages.

If, for example, I click Alt-T in Firefox, the Tools menu will open, both if the keyboard layout is Hebrew or English. (Mozilla's behavior is inconsistent in that respect, but forget it for now).

When building a wxWidgets applications, the language must be English, since alt+ה is a different key.

Is there a simple way, or a workaround, as the GUI developer, to get WX or any other environment to response identically regardless of the keyboard mapping?

Is it "correct"? (oh, yes, it is, since the keyboard switch is shifting too often)

How is it done in Firefox?

How can this be done in wxPython? in VB6?

+1  A: 

Shortcuts are different per-language, since the shortcut is usually the first letter of the word. For example, the "Go to Address Bar" shortcut is Alt-D in English Firefox, but Alt-S in German Firefox; you have to localize it just like the text content.

Paul Betts
The question is, what if I have a German localized firefox, and add Russian keyboard layout, then press Alt+"Ы". See? If I'm writing some text in russian, then want to hit the address bar, i'll have to switch layouts first (and it'd take me time to realize what's wrong with firefox)
Berry Tsakala
Wouldn't you have this problem regardless of whether you localized the shortcuts per-language?
Paul Betts
A: 

there's a lot of inconsistency on this. some programs (like most from MS) like to translate shortcuts, some others don't.

as a non-english native, I vote for stable shortcuts. translating them looks ugly and fosters inconsistency.

Javier
what do you mean by "stable"?
Berry Tsakala
that are the same on every (relevant) program and every language
Javier
A: 

I'd dare to say that it works because Arabic and Hebrew keyboards still have the English characters on their keys (The keyboard I'm typing this on is a QWERTY keyboard, and those letters have ضصثقفغ on them), I'm sure the best way to handle these two languages is to use the "key code" and not the resulting character after the layout translation.

Osama ALASSIRY