Project

General

Profile

Bug #11292

Bopomofo input for Chinese is not working

Added by gslin over 3 years ago. Updated 5 months ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Category:
Internationalization
Target version:
Start date:
03/31/2016
Due date:
% Done:

100%

Estimated time:
1.00 h
Feature Branch:
bugfix/11292-chinese-input-methods
Type of work:
Code
Blueprint:
Starter:
Affected tool:

Description

There are two chinese input methods in Tail 2.2.1. One is "Chinese (Pinyin)" and another one is "Chinese (Bopomofo)". And pinyin is working, but Bopomofo is not.

When you try to type "1" & "9" & "3" (which should be shown to "ㄅ" & "ㄞ" & "ˇ"), it just shows original "193".


Related issues

Related to Tails - Feature #14544: Spend software developer time on smallish UX improvements In Progress 08/31/2018
Related to Tails - Bug #11382: New ibus-pinyin cannot be used for quanpin Rejected 04/27/2016
Duplicated by Tails - Bug #11995: Fix the support of Chinese (Bopomofo) Duplicate 11/24/2016
Duplicated by Tails - Bug #14535: Bopomofo input method doesn't work Duplicate 08/30/2017
Blocks Tails - Feature #15507: Core work 2019Q1: Foundations Team Resolved 04/08/2018

Associated revisions

Revision edded7c5 (diff)
Added by intrigeri 6 months ago

IBus: switch from ibus-pinying to ibus-libpinying (refs: #11292).

The former is deprecated. Let's hope the later fixes issues such as:
it segfaults when enabling Bopomofo support.

Revision 67e48a91 (diff)
Added by intrigeri 6 months ago

IBus: install ibus-chewing for better Chinese ZhuYin (Bopomofo) support (refs: #11292).

This is supposed to provide better Bopomofo support than alternatives,
according to:
https://wiki.archlinux.org/index.php/IBus
https://www.pinyinjoe.com/linux/ubuntu-18-gnome-chinese-setup.htm

Revision 0a7107b2 (diff)
Added by intrigeri 6 months ago

IBus: switch from ibus-pinyin to ibus-libpinyin + ibus-chewing (refs: #11292).

ibus-pinying is deprecated and in Tails 3.12.1, it segfaults when enabling
Bopomofo support. Let's replace it with ibus-libpinying — which supports
both Chinese Pinyin and Chinese ZhuYin (Bopomofo) — and also install
ibus-chewing, that according to some sources has better Bopomofo support:

https://wiki.archlinux.org/index.php/IBus
https://www.pinyinjoe.com/linux/ubuntu-18-gnome-chinese-setup.htm

Revision 13519c32 (diff)
Added by intrigeri 6 months ago

IBus: switch from ibus-pinyin to ibus-libpinyin + ibus-chewing (refs: #11292).

ibus-pinying is deprecated and in Tails 3.12.1, it segfaults when enabling
Bopomofo support. Let's replace it with ibus-libpinying — which supports
both Chinese Pinyin and Chinese ZhuYin (Bopomofo) — and also install
ibus-chewing, that according to some sources has better Bopomofo support:

https://wiki.archlinux.org/index.php/IBus
https://www.pinyinjoe.com/linux/ubuntu-18-gnome-chinese-setup.htm

Revision e46f7794
Added by intrigeri 5 months ago

Merge branch 'bugfix/11292-chinese-input-methods' into stable (Fix-committed: #11292)

History

#1 Updated by goupille over 3 years ago

  • Status changed from New to Confirmed
  • Assignee set to anonym

I can confirm that selecting Chinese (Bopomofo) in the top right bar is not working. the 'preferences' button is not working either, alongside the different options.

#2 Updated by intrigeri over 3 years ago

I can confirm that selecting Chinese (Bopomofo) in the top right bar is not working.

It does work, at least in Gedit, if I choose Chinese in the Greeter and then select bopomofo in the input methods menu (right of the top bar). But indeed, it doesn't work, at least in Gedit, if I log in with the default locale and then select bopomofo in the input methods menu.

#3 Updated by gslin about 3 years ago

intrigeri wrote:

I can confirm that selecting Chinese (Bopomofo) in the top right bar is not working.

It does work, at least in Gedit, if I choose Chinese in the Greeter and then select bopomofo in the input methods menu (right of the top bar). But indeed, it doesn't work, at least in Gedit, if I log in with the default locale and then select bopomofo in the input methods menu.

Thanks, if I choose zh_TW locale at boot, then I can use bopomofo. Unfortunely very few people will use ibus-libpinyin's bopomofo in Taiwan due to familiarity. I am very hard to type chinese using libpinyin's bopomofo but in vain.

Most people will choose ibus-chewing in Taiwan when using ibus, may we support it?

#4 Updated by BitingBird about 3 years ago

  • Type of work changed from Code to Test

Is it the case in Debian? If yes, it should be reported there and corrected there.

#5 Updated by intrigeri about 3 years ago

  • Assignee changed from anonym to gslin
  • QA Check set to Info Needed

Thanks, if I choose zh_TW locale at boot, then I can use bopomofo. Unfortunely very few people will use ibus-libpinyin's bopomofo in Taiwan due to familiarity. I am very hard to type chinese using libpinyin's bopomofo but in vain.

Most people will choose ibus-chewing in Taiwan when using ibus, may we support it?

Thank you for following up! Please bear with me, I've totally ignorant in this area.

This ticket was originally about the fact that the bopomofo input system did not work in Tails. So I thought that the request was about making bopomofo work. (In passing, I don't know how I've seen it work two months ago, as right now I can't make it work; tried zh_CN and zh_TW.)

And now there's a proposal to add ibus-chewing, so now I'm confused and I need your help to know how to best direct my efforts:

  • If we fixed bopomofo and didn't add ibus-chewing, what use use case would suffer / be improved / be unchanged?
  • If we replaced bopomofo with ibus-chewing, what use use case would suffer / be improved / be unchanged?

#6 Updated by intrigeri over 2 years ago

  • Duplicated by Bug #11995: Fix the support of Chinese (Bopomofo) added

#7 Updated by intrigeri over 2 years ago

FWIW, I'm told on #11995 that Bopomofo is fixed in 3.0~alpha1. Not sure in which locale, though.

#8 Updated by intrigeri over 2 years ago

intrigeri wrote:

  • If we fixed bopomofo and didn't add ibus-chewing, what use use case would suffer / be improved / be unchanged?
  • If we replaced bopomofo with ibus-chewing, what use use case would suffer / be improved / be unchanged?

Ping?

#9 Updated by intrigeri over 2 years ago

Both pinyin and bopomofo seem to work on 3.0~alpha1.

#10 Updated by u over 1 year ago

  • Related to Bug #14535: Bopomofo input method doesn't work added

#11 Updated by mercedes508 over 1 year ago

  • Assignee changed from gslin to anonym

intrigeri wrote:

Both pinyin and bopomofo seem to work on 3.0~alpha1.

Well just tried with Tails 3.4 and following the OP instructions it's not working for me.

#12 Updated by intrigeri over 1 year ago

  • Assignee changed from anonym to intrigeri

I'll triage this.

#13 Updated by intrigeri over 1 year ago

#14 Updated by segfault about 1 year ago

  • Assignee changed from intrigeri to segfault

#15 Updated by segfault about 1 year ago

  • Estimated time set to 1.00 h

#16 Updated by intrigeri about 1 year ago

#17 Updated by intrigeri about 1 year ago

#18 Updated by u about 1 year ago

I think this needs testing in current Tails.

#19 Updated by u about 1 year ago

I learned at DebConf that this is what Taiwanese use to write and learn Chinese phonetically :)

#20 Updated by intrigeri 11 months ago

#21 Updated by intrigeri 11 months ago

#22 Updated by segfault 11 months ago

  • Assignee deleted (segfault)

I'm giving this back to the unclaimed work pool - it's not my area of expertise and I don't really know where to start looking into (within a 1 hour time frame)

#23 Updated by sajolida 10 months ago

  • Duplicated by Bug #14535: Bopomofo input method doesn't work added

#24 Updated by sajolida 10 months ago

  • Related to deleted (Bug #14535: Bopomofo input method doesn't work)

#25 Updated by sajolida 10 months ago

This is what I learned recently from someone from Taiwan:

  • Pinyin is the input method taught in mainland China to write both simplified and traditional Chinese. People in mainland China don't know how to use Bopomofo.
  • Bopomofo is the input method taught in Taiwain to write both simplified and traditional Chinese. People in Taiwan don't know how to use Pinyin.

We first tested Bopomofo after starting Tails in Chinese and it didn't work. Now I started Tails in English but with Chinese keyboard and it doesn't work either.

This person told me that Bopomofo was working out-of-the-box in Ubuntu so maybe we should look at what they are doing. They also told me about various Linux tools for Bopomofo. They knowledge on this was not super up-to-date so we should double-check everything or ask them for me info:

  • ibus-chewing, but not updated in years according to them but I see new version in Debian: https://tracker.debian.org/pkg/ibus-chewing. We don't have it in Tails so that could be a first thing to try.
  • gcin
  • rime (ibus-rime?) for both Pinyin and Bopomofo? There's see to be an ibus package as well, so maybe that's easy to try as well.
  • fcitx also supports Bopomofo but not very well?

I think they would be happy to at least test possible solutions or provide more information to help us navigate this issue.

#26 Updated by sajolida 10 months ago

  • Related to Feature #14544: Spend software developer time on smallish UX improvements added

#27 Updated by sajolida 10 months ago

  • Subject changed from Chinese (Bopomofo) is not working to Bopomofo input for Chinese is not working

#28 Updated by intrigeri 8 months ago

#29 Updated by intrigeri 8 months ago

#30 Updated by gslin 8 months ago

I've used ibus-chewing before, but it's buggy in my Ubuntu 16.04, so now I use

fcitx
(for bopomofo you need to install
fcitx-chewing
).

#31 Updated by intrigeri 6 months ago

  • Assignee set to intrigeri
  • QA Check deleted (Info Needed)
  • Feature Branch set to bugfix/11292-chinese-input-methods

On Tails 3.12.1, ibus-pinyin (that's used for Bopomofo in this version) segfaults when choosing Bopomofo; gah! I've seen it work once but can't reproduce. I'll retry with ibus-libpinyin (which seems to supersede it) and ibus-chewing. If that doesn't work I'll try ibus-rime.

Wrt. gcin: AFAIK it has no integration with IBus (which is what is best integrated in GNOME).

Wrt. fcitx: it seems that Buster will bring IBus integration for it. Then we can consider it.

#32 Updated by intrigeri 6 months ago

  • Status changed from Confirmed to In Progress

#33 Updated by intrigeri 6 months ago

  • Related to Bug #11382: New ibus-pinyin cannot be used for quanpin added

#34 Updated by intrigeri 6 months ago

  • Target version set to Tails_3.13
  • % Done changed from 0 to 10
  • QA Check set to Ready for QA

I've prepared an experimental image that switches from ibus-pinyin to ibus-libpinyin + ibus-chewing: https://nightly.tails.boum.org/build_Tails_ISO_bugfix-11292-chinese-input-methods/lastSuccessful/archive/build-artifacts/

My understanding is that both ibus-libpinyin and ibus-chewing support Bopomofo. If the first one is good enough then we don't need to ship ibus-chewing. It seems that ibus-chewing works (at least it does not crash and does something like what I would expect), but as a non-Chinese-speaker I can't really tell.

Please test this experimental image and compare:

  • Is Bopomofo support working? (It's not working in Tails 3.x so far.)
  • Is Chinese Pinyin support better or worse than in Tails 3.12.1?

@gslin, can you please test this?

@emmapeel, @goupille, @mercedes508: if you have contacts of Chinese-speaking users, please point them to this comment or give me their contact :)

#35 Updated by intrigeri 6 months ago

Sent a call for testing to tails-testers and on top of that, I've privately sent a slightly more personal version to a bunch of contacts sajolida gave me. I doubt we'll get enough feedback in time for 3.13 but who knows; in any case, I'm confident that'll be useful for 3.14.

#36 Updated by intrigeri 6 months ago

FWIW:

  • deepin, that originates from the PRC, uses fcitx. They have their own desktop environment though so integration with GNOME is not a problem for them.
  • Fedora 29 uses ibus-libpinyin by default in zh-cn locales.

#37 Updated by emmapeel 6 months ago

Asking my Chinese contacts....

#38 Updated by gslin 6 months ago

Yes it (bopomofo) works much better in VirtualBox now, but I cannot use Super-Space to switch my input method between English and bopomofo.

#39 Updated by intrigeri 5 months ago

Yes it (bopomofo) works much better in VirtualBox now, but I cannot use Super-Space to switch my input method between English and bopomofo.

@gslin, thanks for this valuable feedback! Two questions:

  • Is the Super-Space problem a regression compared to Tails 3.12.1?
  • If it's not, might it be a conflict between the virtual machine and the host system, both trying to capture Super-Space, and the host system winning?

In any case, I'll try myself on bare metal.

#40 Updated by gslin 5 months ago

Thanks, I used RightCommand-Space then I can switch input method (I guess it's because LeftCommand is Host key). Just found a bug:

  • After switched to another input method, keyboard focus would lose. For example, I opened https://duckduckgo.com/ and typed some English words into <input> field, then I used RightCommand-Space to Chinese (bopomofo), the focus will not in <input> field.

#41 Updated by intrigeri 5 months ago

Thanks, I used RightCommand-Space then I can switch input method (I guess it's because LeftCommand is Host key).

@gslin, thanks for testing again. Good to know there is a way to switch input methods with the keyboard.

Another tester says that Win + Space works for them, in the candidate ISO, to switch between the various non-Latin input methods. Indeed, if I press and hold the "Win" key, then press "Space", I see a menu with all the available input methods. Today I learned!

  • After switched to another input method, keyboard focus would lose. For example, I opened https://duckduckgo.com/ and typed some English words into <input> field, then I used RightCommand-Space to Chinese (bopomofo), the focus will not in <input> field.

I could reproduce this problem with Tor Browser in both the candidate image and Tails 3.12.1. Interestingly, I can't reproduce it in GEdit, so the exact scope of the problem is unclear to me. @gslin, would you mind filing a dedicated ticket on our Redmine, testing more software, and listing on that new ticket which are affected and which are not? This would probably help us pinpoint the root cause of the problem :) In any case, this is not a regression so it shall not prevent us from shipping the other fixes we have ready.

Finally, a tester told me that with this ISO, Intelligent Pinyin (both 全拼 and 双拼) works well. This is great: we've already learnt above that this branch fixes Bopomofo and this report cancels my only remaining concern, i.e. the risk of regressions for Pinyin :)

#42 Updated by intrigeri 5 months ago

  • Assignee changed from intrigeri to CyrilBrulebois
  • % Done changed from 10 to 50
  • Type of work changed from Test to Code

tl;dr: this branch improves Pinyin support and fixes the totally broken Bopomofo support.

@lamby, @CyrilBrulebois: sorry for the last minute merge request, I should obviously have sent my calls for testing earlier than March 11. I only dare sending it for 3.13 because of the huge potential user impact (Chinese is the first language for a huge part of the world human population :)

Anyway, user feedback is all positive and I think we're good to go! ⇒ Please someone review the branch and then we can merge into stable.

#43 Updated by CyrilBrulebois 5 months ago

  • Assignee changed from CyrilBrulebois to intrigeri
  • QA Check changed from Ready for QA to Pass

LGTM, feel free to merge.

#44 Updated by intrigeri 5 months ago

  • Status changed from In Progress to Fix committed
  • % Done changed from 50 to 100

#45 Updated by intrigeri 5 months ago

  • Assignee deleted (intrigeri)

#46 Updated by CyrilBrulebois 5 months ago

  • Status changed from Fix committed to Resolved

Also available in: Atom PDF