Page Index Toggle Pages: 1 Send TopicPrint
Normal Topic zh-Hant-TW not showing the Bopomofo letters (windows 10 v1607) (Read 6682 times)
Bryan Maule
YaBB Newbies
*
Offline


I Love MindFusion!

Posts: 11
Joined: Apr 11th, 2018
zh-Hant-TW not showing the Bopomofo letters (windows 10 v1607)
Apr 20th, 2018 at 2:58pm
Print Post  
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/
  
Back to top
 
IP Logged
 
Bryan Maule
YaBB Newbies
*
Offline


I Love MindFusion!

Posts: 11
Joined: Apr 11th, 2018
Re: zh-Hant-TW not showing the Bopomofo letters (windows 10 v1607)
Reply #1 - Apr 25th, 2018 at 8:52pm
Print Post  
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
  
Back to top
 
IP Logged
 
Slavcho
YaBB Moderator
*****
Offline


tech.support

Posts: 3147
Joined: Oct 19th, 2005
Re: zh-Hant-TW not showing the Bopomofo letters (windows 10 v1607)
Reply #2 - Apr 30th, 2018 at 2:50pm
Print Post  
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
  
Back to top
 
IP Logged
 
Bryan Maule
YaBB Newbies
*
Offline


I Love MindFusion!

Posts: 11
Joined: Apr 11th, 2018
Re: zh-Hant-TW not showing the Bopomofo letters (windows 10 v1607)
Reply #3 - May 15th, 2018 at 7:58pm
Print Post  
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!
  

BopomofoCandidateList.png ( 109 KB | 163 Downloads )
BopomofoCandidateList.png
Back to top
 
IP Logged
 
Slavcho
YaBB Moderator
*****
Offline


tech.support

Posts: 3147
Joined: Oct 19th, 2005
Re: zh-Hant-TW not showing the Bopomofo letters (windows 10 v1607)
Reply #4 - May 18th, 2018 at 10:55am
Print Post  
We've added a method that lets you replace key labels reported by Windows with custom ones -
https://mindfusion.eu/_beta/vkwpf.zip
Code
Select All
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
  
Back to top
 
IP Logged
 
Bryan Maule
YaBB Newbies
*
Offline


I Love MindFusion!

Posts: 11
Joined: Apr 11th, 2018
Re: zh-Hant-TW not showing the Bopomofo letters (windows 10 v1607)
Reply #5 - May 18th, 2018 at 6:55pm
Print Post  
Perfect, thanks!
  
Back to top
 
IP Logged
 
Slavcho
YaBB Moderator
*****
Offline


tech.support

Posts: 3147
Joined: Oct 19th, 2005
Re: zh-Hant-TW not showing the Bopomofo letters (windows 10 v1607)
Reply #6 - Jul 13th, 2018 at 11:34am
Print Post  
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.
  
Back to top
 
IP Logged
 
Page Index Toggle Pages: 1
Send TopicPrint