- Welcome, Guest. Please Login or Register
MindFusion  
  We have released initial version of MindFusion.Scheduling library for HTML5 & JavaScript.  
  HomeHelpSearchLoginRegister   
     
     
   
 
Page Index Toggle Pages: 1 Send Topic Print  
zh-Hant-TW not showing the Bopomofo letters (windows 10 v1607)
Read 783 times

Bryan Maule   Offline
YaBB Newbies
*
Posts: 11
I Love MindFusion!


   
     
 
zh-Hant-TW not showing the Bopomofo letters (windows 10 v1607)
Apr 20th, 2018 at 3:58pm
 
The virtual keyboard creator shows English letters even while it correctly produces bopomofo letters.

So for example, after changing the keyboard to zh-Hant-TW - Chinese (Traditional, Taiwan) - I see what looks like a normal query keyboard.  When I press the '1' character, it produces the correct symbol 'ㄅ'

Why wouldn't 'ㄅ' be displayed instead of a '1'?  Is there a way to display 'ㄅ' instead?  I tried setting the content, and that works but it screws up Shift...

Shift and '1' should produce an actual 1.

I understand that Chinese (Simplified) using the Pinyin IME should display English characters, but I don't think that is the case for Chinese (Traditional, Taiwan) using the Bopomofo IME.

Here are the Bopomofos characters:
ㄅ      BOPOMOFO LETTER B (U+3105)      a8c5
ㄆ      BOPOMOFO LETTER P (U+3106)      a8c6
ㄇ      BOPOMOFO LETTER M (U+3107)      a8c7
ㄈ      BOPOMOFO LETTER F (U+3108)      a8c8
ㄉ      BOPOMOFO LETTER D (U+3109)      a8c9
ㄊ      BOPOMOFO LETTER T (U+310A)      a8ca
ㄋ      BOPOMOFO LETTER N (U+310B)      a8cb
ㄌ      BOPOMOFO LETTER L (U+310C)      a8cc
ㄍ      BOPOMOFO LETTER G (U+310D)      a8cd
ㄎ      BOPOMOFO LETTER K (U+310E)      a8ce
ㄏ      BOPOMOFO LETTER H (U+310F)      a8cf
ㄐ      BOPOMOFO LETTER J (U+3110)      a8d0
ㄑ      BOPOMOFO LETTER Q (U+3111)      a8d1
ㄒ      BOPOMOFO LETTER X (U+3112)      a8d2
ㄓ      BOPOMOFO LETTER ZH (U+3113)      a8d3
ㄔ      BOPOMOFO LETTER CH (U+3114)      a8d4
ㄕ      BOPOMOFO LETTER SH (U+3115)      a8d5
ㄖ      BOPOMOFO LETTER R (U+3116)      a8d6
ㄗ      BOPOMOFO LETTER Z (U+3117)      a8d7
ㄘ      BOPOMOFO LETTER C (U+3118)      a8d8
ㄙ      BOPOMOFO LETTER S (U+3119)      a8d9
ㄚ      BOPOMOFO LETTER A (U+311A)      a8da
ㄛ      BOPOMOFO LETTER O (U+311B)      a8db
ㄜ      BOPOMOFO LETTER E (U+311C)      a8dc
ㄝ      BOPOMOFO LETTER EH (U+311D)      a8dd
ㄞ      BOPOMOFO LETTER AI (U+311E)      a8de
ㄟ      BOPOMOFO LETTER EI (U+311F)      a8df
ㄠ      BOPOMOFO LETTER AU (U+3120)      a8e0
ㄡ      BOPOMOFO LETTER OU (U+3121)      a8e1
ㄢ      BOPOMOFO LETTER AN (U+3122)      a8e2
ㄣ      BOPOMOFO LETTER EN (U+3123)      a8e3
ㄤ      BOPOMOFO LETTER ANG (U+3124)      a8e4
ㄥ      BOPOMOFO LETTER ENG (U+3125)      a8e5
ㄦ      BOPOMOFO LETTER ER (U+3126)      a8e6
ㄧ      BOPOMOFO LETTER I (U+3127)      a8e7
ㄨ      BOPOMOFO LETTER U (U+3128)      a8e8
ㄩ      BOPOMOFO LETTER IU (U+3129)      a8e9

Which was from here:
https://www.fileformat.info/info/charset/GBK/list.htm

Here is how it should work:
http://www.i2bopomo.com/
 
 
 
IP Logged    
 
     

Bryan Maule   Offline
YaBB Newbies
*
Posts: 11
I Love MindFusion!


   
     
 
Re: zh-Hant-TW not showing the Bopomofo letters (windows 10 v1607)
Reply #1 - Apr 25th, 2018 at 9:52pm
 
That being said... I'm sure I can fix this.  My biggest problem is that the input method candidate list doesn't show up for Bopomofo like it does for Pinyin Sad
 
 
 
IP Logged    
 
     

Slavcho   Offline
YaBB Moderator
*****
Posts: 1474
Gender: male
tech.support


   
     
 
Re: zh-Hant-TW not showing the Bopomofo letters (windows 10 v1607)
Reply #2 - Apr 30th, 2018 at 3:50pm
 
We've compared ours with the Windows 10 OSK and they work the same way in regards to both labels and candidate lists, at least on English-US version of Windows.

The component does not store key label tables by the way, but asks the Windows API which label to display for given virtual key code and layout. Probably same API is used by Windows' own OSK and it shows Latin letters too.

The IME itself probably does not involve candidate lists, from what we can see it waits you to type a valid combination of three symbols before merging them into a glyph, same happening both with ours and Win10 OSK as well. We aren't sure if that's really how it's supposed to work, we'll try to find a Taiwanese developer to consult with.

In any case we'll try to add some support for replacing the labels returned by Windows API functions with custom ones and possibly insert the table above as a built-in replacement for next release.

Regards,
Slavcho
 
 
 
IP Logged    
 
     

Bryan Maule   Offline
YaBB Newbies
*
Posts: 11
I Love MindFusion!


   
     
 
Re: zh-Hant-TW not showing the Bopomofo letters (windows 10 v1607)
Reply #3 - May 15th, 2018 at 8:58pm
 
I've attached a screenshot of the builtin windows virtual keyboard using Traditional Chinese and the Bopomofo IME.  You can see there is a candidate list that pops up when typing.  That is the candidate list I need to interact with.  Thanks!
 
 
 
IP Logged    
 
     

Slavcho   Offline
YaBB Moderator
*****
Posts: 1474
Gender: male
tech.support


   
     
 
Re: zh-Hant-TW not showing the Bopomofo letters (windows 10 v1607)
Reply #4 - May 18th, 2018 at 11:55am
 
We've added a method that lets you replace key labels reported by Windows with custom ones -
https://mindfusion.eu/_beta/vkwpf.zip
Code:
var overrideLabels = new[]
{
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.A),
			Lower = "ㄇ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.B),
			Lower = "ㄖ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.C),
			Lower = "ㄏ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.D),
			Lower = "ㄎ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.E),
			Lower = "ㄍ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.F),
			Lower = "ㄑ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.G),
			Lower = "ㄕ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.H),
			Lower = "ㄘ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.I),
			Lower = "ㄛ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.J),
			Lower = "ㄨ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.K),
			Lower = "ㄘ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.L),
			Lower = "ㄠ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.M),
			Lower = "ㄩ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.N),
			Lower = "ㄥ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.O),
			Lower = "ㄟ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.P),
			Lower = "ㄣ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.Q),
			Lower = "ㄆ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.W),
			Lower = "ㄊ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.R),
			Lower = "ㄐ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.S),
			Lower = "ㄋ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.T),
			Lower = "ㄔ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.U),
			Lower = "ㄧ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.V),
			Lower = "ㄒ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.X),
			Lower = "ㄌ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.Y),
			Lower = "ㄗ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.Z),
			Lower = "ㄈ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.OemSemicolon),
			Lower = "ㄤ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.OemComma),
			Lower = "ㄝ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.OemBackslash),
			Lower = "ㄥ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.OemMinus),
			Lower = "ㄦ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.D2),
			Lower = "ㄦ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.D5),
			Lower = "ㄓ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.D9),
			Lower = "ㄞ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.D0),
			Lower = "ㄢ"
		},
	new KeyLabels
		{
			VirtualKey = KeyCode(Key.D1),
			Lower = "ㄅ"
		}
};

var culture = new CultureInfo("zh-TW");
vk.SetKeyLabels(
	culture,
	overrideLabels);

int KeyCode(Key key)
{
	return KeyInterop.VirtualKeyFromKey(key);
} 



We'll look for some API that returns candidate lists.

Regards,
Slavcho
 
 
 
IP Logged    
 
     

Bryan Maule   Offline
YaBB Newbies
*
Posts: 11
I Love MindFusion!


   
     
 
Re: zh-Hant-TW not showing the Bopomofo letters (windows 10 v1607)
Reply #5 - May 18th, 2018 at 7:55pm
 
Perfect, thanks!
 
 
 
IP Logged    
 
     

Slavcho   Offline
YaBB Moderator
*****
Posts: 1474
Gender: male
tech.support


   
     
 
Re: zh-Hant-TW not showing the Bopomofo letters (windows 10 v1607)
Reply #6 - Jul 13th, 2018 at 12:34pm
 
Unfortunately we could not find any Windows or .NET APIs to return candidate lists, so these won't be available in upcoming release. We'll see if we can implement our own lists or reverse-engineer from the Win10 built-in IME.
 
 
 
IP Logged    
 
     
Page Index Toggle Pages: 1 Send Topic Print