Closed Bug 1119671 Opened 6 years ago Closed 6 years ago

[keyboard][my] Update layout and add IME for Myanmar keyboard

Categories

(Firefox OS Graveyard :: Gaia::Keyboard, defect)

All
Gonk (Firefox OS)
defect
Not set
major

Tracking

(b2g-v2.2 fixed, b2g-master fixed)

RESOLVED FIXED
2.2 S13 (29may)
Tracking Status
b2g-v2.2 --- fixed
b2g-master --- fixed

People

(Reporter: seinlin, Assigned: seinlin)

References

Details

Attachments

(3 files, 2 obsolete files)

No description provided.
Summary: [keyboard][my] Add IME for Myanmar keyboard → [keyboard][my] Update layout and add IME for Myanmar keyboard
According to Unicode Technical Note #11, http://www.unicode.org/notes/tn11/UTN11_4.pdf

Unicode standard states that vowels are stored after the consonant, according to how they are
pronounced, regardless of where they are rendered. There are a few words involving contractions which ideally sort differently from how they are spelled.

Thus there are three particular technical issues that need to be addressed by a keyboard:
• People want to type the prevowels, that are rendered before the initial consonant, before the
initial consonant.
• People want to type kinzi after the initial consonant, just as another diacritic, but have it stored
before the initial consonant.
• Diacritics typed in the wrong order should be reordered appropriately.

Reordering as people type raises the issue of what happens when one pressed backspace. If pressing
backspace merely deletes the last code in the string, one might type one diacritic, have it reordered with another and then press backspace and find the computer deleting a completely different diacritic to the last one typed.
Tin Aung Lin, 

Could you help me to verify if the new Myanmar keyboard for Firefox OS does work properly?

Detail steps are:
1. Download simulator.xpi from
   Simulator for Linux64, http://goo.gl/D8TYc4
   Simulator for Mac64, http://goo.gl/ruCVzb

2. Open simulator.xpi with Firefox and install it

3. In Firefox address bar, input 'about:app-manager'

4. Start Simulator -> Choose Firefox OS 2.2
   OR
   Tools -> Web Developer -> WebIDE -> Select Runtime -> Choose Firefox OS 2.2

5. Simulator will be started.

Once the Simulator is started, go to Settings -> Keyboards -> Select Keyboards -> Find and Check 'မြန်မာ'.

Then go back back to home and find any text input area. Switch to Myanmar keyboard and test...

Thanks!
Flags: needinfo?(nalazyboy)
Rudy, Could you have a look to my PR and give me some suggestions? Especially about the structure of new added Myanmar imes. Thanks!

Now member form Myanmar community are testing the new Myanmar keyboard. I will update the final patch for review after I get some feedback from them.
Attachment #8552159 - Flags: feedback?(rlu)
Comment on attachment 8552159 [details] [review]
Update Myanmar keyboard layouts and add imes for it.

Generally, this looks good to me since the patch conforms to the APIs we defined for ime engines.

Please help try to use replaceSurroundingText instead of sendString() as I pointed out on the pull request.
And if possible, refine the internal functions so that it use "callbacks" only when necessary.

Last but not least, you would need to add unit tests for this module before landing on Gaia master.

Thanks.
Attachment #8552159 - Flags: feedback?(rlu) → feedback+
(In reply to Kai-Zhen Li [:seinlin] from comment #2)
> Tin Aung Lin, 
> 
> Could you help me to verify if the new Myanmar keyboard for Firefox OS does
> work properly?
> 
> Detail steps are:
> 1. Download simulator.xpi from
>    Simulator for Linux64, http://goo.gl/D8TYc4
>    Simulator for Mac64, http://goo.gl/ruCVzb

I found that Myanmar fonts in in Mac OS have some problem on display 'Myanmar Sign Virama', you can use one of the following solutions.

- Temporarily remove 'Myanmar MN.ttc' and 'Myanmar Sangam MN.ttf' from /Library/Fonts (As simulator includes Myanmar fonts.)

OR

- Replace Myanmar fonts in Mac OS with one which can display 'Myanmar Sign Virama' correctly, such as Padauk.ttf or other.
(In reply to Rudy Lu [:rudyl] from comment #4)
> Comment on attachment 8552159 [details] [review]
> Update Myanmar keyboard layouts and add imes for it.
> Last but not least, you would need to add unit tests for this module before
> landing on Gaia master.
> 

Rudy, Thanks! 

I'll wait for the feedback from Myanmar community and update the patch for review.

BTW, What kind of test do you suggest to be added in unit test?
The IME is great. Here are the few things if we have as sugar.

1: Pat Sint ( ​လိမ္မာ ၊ ပစ္စည်း ၊ ဥစ္စာ ) a load words and glossaries are quiet useful for everyday conservations. ( I don't know how to type Pat Sint with current IME , tried other familiar methods like long pressing)

2: For mathematical expressions like ( Multiplication * )  should be as in Burmese scripts ( x for Multiply ).

3: And saw the irregular characters in the second row of the screen-shot when we try to use numbers related characters. Any idea why this happen ? Fonts or just simulator problem ? 
[ http://i.imgur.com/lCciF2C.png ]

Still experimenting daily chat dialogues and would update with what we feel.

Thanks for the efforts
Flags: needinfo?(nalazyboy)
(In reply to tinaunglinn from comment #7)
> The IME is great. Here are the few things if we have as sugar.
> 1: Pat Sint ( ​လိမ္မာ ၊ ပစ္စည်း ၊ ဥစ္စာ ) a load words and glossaries are
> quiet useful for everyday conservations. ( I don't know how to type Pat Sint
> with current IME , tried other familiar methods like long pressing)

If the error of 3 got fixed, you can type these words easily.

> 2: For mathematical expressions like ( Multiplication * )  should be as in
> Burmese scripts ( x for Multiply ).

long press on '+' can get mathematical expressions.

I add long press for these character, could you also give me some suggestion on this?
https://github.com/Seinlin/gaia/blob/bug-1119671/apps/keyboard/js/layouts/my.js#L110

> 3: And saw the irregular characters in the second row of the screen-shot
> when we try to use numbers related characters. Any idea why this happen ?
> Fonts or just simulator problem ? 
> [ http://i.imgur.com/lCciF2C.png ]

It is the character for typing words in 1. This is a fonts issue, if you follow the instruction in comment 5, the issued can be fixed.


Please give me more feedback, Thanks!
Flags: needinfo?(nalazyboy)
I successfully solve problems 1 to 3 with the instructions you provided.

It is pretty OK for daily usage ( messaging, browsing ) for now. We should start with this version in the nearest release.
Flags: needinfo?(nalazyboy)
(In reply to tinaunglinn from comment #9)
> I successfully solve problems 1 to 3 with the instructions you provided.
> 
> It is pretty OK for daily usage ( messaging, browsing ) for now. We should
> start with this version in the nearest release.

Thanks! 

This keyboard can be supported from v2.1. 
But older version we need to back port 
- gecko patch from bug 1054839,
- gaia patch from bug 972210 to support surroundingtextChange event.
Attached image New layout of Myanmar Keyboard (obsolete) —
Tin Aung Lin, Could you give me a feedback on this Layout? Thanks!

Majors changes are:

- Page 1 and 2 are updated to 11 cols from 10, because all most used characters should be found in these two pages.

- Move and add the support of Pali to page 3.
Attachment #8554418 - Flags: feedback?(nalazyboy)
This is cool. As far as we have tested with the simulator the Burmese IME is already satisfied the users we have selected here in Barcamp Yangon 2015. 

We are going to test it with the real device on its arrival from DHL.

We have some documentations to prepare on the language related resources. But I will open another bugs for this.

For now, this is good to go.
Attachment #8554418 - Flags: feedback?(nalazyboy) → feedback+
Comment on attachment 8552159 [details] [review]
Update Myanmar keyboard layouts and add imes for it.

Rudy, We got feedback from tinaunglin and all nits were fixed. Could you review this patch? Thanks!
Attachment #8552159 - Flags: review?(rlu)
Comment on attachment 8552159 [details] [review]
Update Myanmar keyboard layouts and add imes for it.

Seinlin, thanks for the updates, I think this patch is ready, but still need your help to take care of 2 test related stuff before we can land this,
 1. Unit tests are required for Gaia patch
    I think we should add unit tests for myanmar IME, please refer to apps/keyboard/test/unit/imes/latin/latin_test.js as an example.

 2. We have build tests available for keyboard app, you may need to run 
    |make build-test-integration TEST_FILES=apps/keyboard/test/build/integration/keyboard_test.js|
    and modify the files under apps/keyboard/test/build/integration/resources/.
    Let me know if you need my help to handle this part.
Attachment #8552159 - Flags: review?(rlu)
Comment on attachment 8552159 [details] [review]
Update Myanmar keyboard layouts and add imes for it.

Rudy, I added an unit test for Myanmar ime, Could you have a review to this patch? Thank!
Attachment #8552159 - Flags: review?(rlu)
Comment on attachment 8552159 [details] [review]
Update Myanmar keyboard layouts and add imes for it.

Hi Kai-Zhen,

Thanks for your help to add the tests (and your patience :P).
I just left some comments on the pull request about some nits in the tests.

Please help address them and I think this patch is good to go.
Thanks.
Attachment #8552159 - Flags: review?(rlu) → review+
Rudy, Thanks! I addressed all nits as your comments on pull request. BTW, I also updated the test as below, could you have a look?

Before update:
All rules are classified into 3 types and each type is handled as a test case. This is also the reason of why the test needs to do replaceSurroundingText.reset() in each iteration.

After update:
Each rule is handled as a test case. This could be easier to identify which rule was broken.
Flags: needinfo?(rlu)
BTW, setUpperCase needs to be defined in glue, otherwise there will be an undefined error when imes try to call it.
Hi Kai-Zhen,

You could make one rule as a test suite, and let each specific case in that rule a test case.
However, I don't have a strong opinion on that, so you could move on to land this code with my r+.

Thanks a lot for the contribution!
Flags: needinfo?(rlu)
Attached image New layout of Myanmar Keyboard (obsolete) —
Assignee: nobody → kli
Attachment #8554418 - Attachment is obsolete: true
master: https://github.com/mozilla-b2g/gaia/commit/3b3267b1af76188139e69825d28a21f14c4b2e4b
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Blocks: 1118512
Comment on attachment 8630289 [details] [review]
[gaia] Seinlin:bug-1119671-v2.2 > mozilla-b2g:v2.2

[Approval Request Comment]
[Bug caused by] (feature/regressing bug #): feature enhanced
[User impact] if declined: User in Myanmar can't use Myanmar keyboard correctly.
[Testing completed]: Verified by local community members
[Risk to taking this patch] (and alternatives if risky): low, change is specific to Myanmar keyboard only.
[String changes made]: none
Attachment #8630289 - Flags: approval-gaia-v2.2?
Thanks Seinlin! ;)

Hi Delphine,
It's past 2.2 CC. By adding Myanmar keyboard, do we need further l10n test about it?
Flags: needinfo?(lebedel.delphine)
Hey Josh, on l10n-side this is fine to land on 2.2, since layout has been reviewed by a community member (as per comment 23) and is low risk. Thanks for getting this in! :)
Flags: needinfo?(lebedel.delphine) → needinfo?(jocheng)
Comment on attachment 8630289 [details] [review]
[gaia] Seinlin:bug-1119671-v2.2 > mozilla-b2g:v2.2

Thanks Delphine!
Flags: needinfo?(jocheng)
Attachment #8630289 - Flags: approval-gaia-v2.2? → approval-gaia-v2.2+

The attachment in comment 20 seems broken. Attach again for reference.

https://github.com/seinlin/mm-kb/blob/master/sample/nexus4.png

Attachment #8608025 - Attachment is obsolete: true
You need to log in before you can comment on or make changes to this bug.