Last modified: 2014-03-31 11:21:36 UTC
Created attachment 13586 [details] IM names in Marathi before the IM is changed from the keyboard menu Description: The labels next to the Input Method names on the Input Settings panel of ULS display different text against some IMs if the user makes any changes to the settings from the Keyboard Menu. Steps to Reproduce: 1. Language Settings panel -> Input Settings -> Select Marathi as the language -> Select any input method -> Apply Settings 2. Click on the Search box 3. From the Keyboard menu -> Select a different keyboard for Marathi 4. Reopen Language Settings panel -> Input Settings 5. Observe the names next to the radio buttons Actual: The text next to the IMs displayed in step 1 and step 4 differ. (See attachments). Expected: The text should be identical
Created attachment 13587 [details] IM names in Marathi after the IM is changed from the keyboard menu
Created attachment 13588 [details] IM names in Hindi before the IM is changed from the keyboard menu
Created attachment 13589 [details] IM names in Hindi after the IM is changed from the keyboard menu
There is an upstream patch at https://github.com/wikimedia/jquery.ime/pull/307
Change 92526 had a related patch set uploaded by Siebrand: Update jQuery.IME from upstream https://gerrit.wikimedia.org/r/92526
Change 92526 merged by jenkins-bot: Update jQuery.IME from upstream https://gerrit.wikimedia.org/r/92526
I just realised that the description from the initial attachment may cause some confusion about the issue reported. This problem is seen for several languages and not just for Hindi and Marathi (the screenshots are illustrations of the problem). To solve this bug, all the sources for the text labels need to be identified and checked for any variation.
I think this indicates that we still use strings from different sources. Sometimes it comes from the IME definition file (for example rules/am/am-transliteration.js), sometimes from jquery.ime.inputmethods.js. I think it should ALWAYS come from the latter (jquery.ime.inputmethods.js). The main reason is that strings from the IME definition files are only available in one language, while a single input method can be used under different language codes and with different descriptions (as is done for nn-tildeforms, for example). My guess is that some key is still being used from the IME definition file (for example amTransliteration.name), instead of from jquery.ime.inputmethods.js ($.ime.sources.am-transliteration.name) (or however the notation in JavaScript is supposed to be).