Author Topic: United States-International keyboard  (Read 4202 times)

0 Members and 1 Guest are viewing this topic.

jsbucket

  • Newbie
  • *
  • Posts: 10
    • View Profile
United States-International keyboard
« on: April 01, 2006, 08:57:01 AM »
I can't figure out how to assign, by manually selecting, as the help file states, the United State-International keyboard IME.  I'd like to avoid having to go to the XP Language bar and manually selecting United States-International keyboard each time I start Stackz.

Chris

  • Administrator
  • Sr. Member
  • *****
  • Posts: 429
    • View Profile
Re: United States-International keyboard
« Reply #1 on: April 01, 2006, 09:41:33 AM »
Stackz allows to manually assign an IME to every language. When entering an edit control which is editing text of a certain language, the assigned IME is activated. IME selection will therefore not occur when Stackz is started, but only when an edit control gets the focus.

jsbucket

  • Newbie
  • *
  • Posts: 10
    • View Profile
Re: United States-International keyboard
« Reply #2 on: April 01, 2006, 04:21:18 PM »
OK.  I hear you, but I can't duplicate that behavior.  Even if I'm already in United States-International mode before I start Stackz, once I start Stackz and first get into each edit field, the IME switches to English (United States) and I have to manually select the United States-International keyboard from the XP Language taskbar.

My first take is that I'm simply failing to understand how to set the Keyboard to United States-International for Langauge English within in the Stackz Options dialog.  I see a button called Assign next to the Keyboard field, but I see no way to select United States-Internation for the keyboard in that field.

Chris

  • Administrator
  • Sr. Member
  • *****
  • Posts: 429
    • View Profile
Re: United States-International keyboard
« Reply #3 on: April 01, 2006, 04:42:38 PM »
The Assign button will assign the currently active IME with the language. So you will have to make the desired IME or Keyboard active in the taskbar before pressing the Assign button.

jsbucket

  • Newbie
  • *
  • Posts: 10
    • View Profile
Re: United States-International keyboard
« Reply #4 on: April 01, 2006, 06:10:20 PM »
Won't work for me (I'll assume I'm doing something wrong).  Even when "United States-International" is showing in the task bar after I start Stackz, when I press assign, the keyboard stays "English (United States)".  Even if I press "Reset" and then "Assign", the keyboard will not switch to "United States-International" in the Stackz Options dialog.

Chris

  • Administrator
  • Sr. Member
  • *****
  • Posts: 429
    • View Profile
Re: United States-International keyboard
« Reply #5 on: April 10, 2006, 06:44:30 PM »
OK here is what I have found out after investigating the details of your issue.

There are two concepts in the Windows XP keyboard selection process, the "language" and the "keyboard layout". The keyboard layout can be a physical keyboard layout, an input method editor (IME) for CJKV languages, or even things like speech to text converters... The language has one or several keyboard layouts assigned to it. Typically one. You have to define those two things when you add a new Windows language, first the "input language", then the "keyboard layout/IME".

What you see (and select) in the taskbar is the language, not the keyboard layout. If a language has more than one keyboard layouts assigned to it, an additional icon showing a keyboard appears next to the blue language selection icon. This icon permits to change the keyboard layout. From what I understand, this is what you are usually doing when you change between "United States-International" and "English (United States)", I assume that the language is constantly set to "EN" in both situations.

The Windows API function which I'm using in Stackz (ActivateKeyboardLayout) actually does change languages, not keyboard layouts... if there is more than one keyboard layout assigned to a language being activated, the "current" layout (i.e. the one that was used the last time) becomes active. I have not found any way to programmatically switch among the multiple keyboard layouts that are assigned to one language. I'm not even sure if there is a keyboard shortcut in Windows for that... anybody with more information, please let me know!

Due to this limitation, Stackz will only change languages, and when doing so, it will always activate the keyboard layout for the new language that was used last time.

Maybe I'll find a way to specificly change the keyboard layout later on (typically this happens shortly after posting a long and complicated workaround message just like this one), but in the meantime you can use the following workaround:  Add a new language to your system (any language should be fine as far as I understand the issue, Xhosa sounds really great... or Zulu) and assign the "other" keyboard layout to this language. This new Windows language can then be assigned to the Stackz language in the options dialog, it will then automatically get activated if such a Stackz language is edited in Stackz, and the specified keyboard layout will therefore be used.

Yes sure it's a weird workaround to add a language to the system that is only used for Stackz, but that's the only way I can think about solving the problem at the moment. The chosen language did not have any negative influences on the processed input when I tried this here on my system. The new Windows language is merely a means to hold and activate its keyboard layout. Other programs such as MS Office in fact *do* consider the language for some settings, but Stackz does only activate it in order to indirectly have its assigned keyboard layout activated, so the workaround should function correctly.

I hope that was clear, not too long, and - I hope it works in your situation. Please let me know if it fails.



 

details