Bug #12547

Selecting Language "English - x" results in the wrong keyboard layout for many values of x

Added by anonym 2017-05-16 11:45:03 . Updated 2020-04-15 06:01:41 .

Status:
Resolved
Priority:
Normal
Assignee:
Category:
Internationalization
Target version:
Start date:
2017-05-16
Due date:
% Done:

100%

Feature Branch:
bugfix/12547-wrong-language-to-keyboard
Type of work:
Code
Blueprint:

Starter:
Affected tool:
Welcome Screen
Deliverable for:

Description

E.g. “English - Canada”, “English - Hong Kong”, “Enlish - Denmark” results in the keyboard layout “Cameroon Multilingual (qwerty)”. It is quite similar to the normal English layouts, but differs on the rather important (English) key for single apostrophe (’).


Subtasks


Related issues

Related to Tails - Bug #12638: Automatic language → keyboard selection is broken when selecting some languages Confirmed 2017-06-04

History

#1 Updated by intrigeri 2017-05-16 12:23:44

  • Category set to Internationalization
  • Assignee set to alant
  • Target version changed from Tails_3.0~rc1 to Tails_3.0
  • Type of work changed from Research to Code

#2 Updated by intrigeri 2017-05-16 12:29:05

#3 Updated by alant 2017-06-04 14:34:56

  • Status changed from Confirmed to In Progress
  • Assignee changed from alant to intrigeri
  • % Done changed from 0 to 50
  • QA Check set to Ready for QA
  • Feature Branch set to bugfix/12547-wrong-language-to-keyboard

I implemented a new algorithm to select default layout for a given locale:

Try first the intersection between layouts matching language and country, then layouts matching language, then layouts matching country, then all layouts for language. Once the list of layouts is build, filter those with variant, then those not matching country then language.

If the language filtering approach fails, start again with a list of layouts matching country and filter them the same way. If there is still more than one match select an arbitrary layout matching the country.

If everything else fails fallback to us.

Please review!

#4 Updated by intrigeri 2017-06-04 15:50:27

  • % Done changed from 50 to 60

Code review passes, built + uploaded 1.0.0~rc2 to a topic branch in tails.git called the same as the one in greeter.git. Will now:

  • build + test an ISO manually
  • check that Jenkins doesn’t spot any regression (although we don’t exercise this code path much)
  • run directly affected and fragile automated tests (if any) manually

(Yeah, I’m growing more careful wrt. such changes a few days before our hard freeze.)

#5 Updated by intrigeri 2017-06-04 16:38:20

intrigeri wrote:
> * build + test an ISO manually

Looks good!

But since then Alan found a bug that affects some corner cases: selecting some languages (lang codes: ayc, bhb, brx, cmn, hak, hne, lij, lzh, mhr, nan, nhn, quz, sgs, shs, tcy, the, unm, wae, yue) confuses the algorithm, triggers an exception (invisibly to the user), so English (US) layout is picked by default, and then:

  • one can still choose their preferred keyboard layout by hand;
  • if one selects another language/region, then the previously set keyboard layout is not updated accordingly.

I don’t think the resulting UX is problematic enough to make me review/merge/release/test yet another Greeter branch today, and I don’t think it’s a blocker for 3.0, so I’ll file a dedicated ticket about this, and the fix might make its way in some 3.x release (or even 3.0 if time allows).

> * check that Jenkins doesn’t spot any regression (although we don’t exercise this code path much)

Waiting.

> * run directly affected and fragile automated tests (if any) manually

localization.feature passes.

#6 Updated by intrigeri 2017-06-04 16:40:59

  • related to Bug #12638: Automatic language → keyboard selection is broken when selecting some languages added

#7 Updated by intrigeri 2017-06-05 09:34:25

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

Applied in changeset commit:77b67dad07f153b679338704eb7e37acc1a195f5.

#8 Updated by intrigeri 2017-06-05 09:34:47

  • Assignee deleted (intrigeri)
  • QA Check changed from Ready for QA to Pass

#9 Updated by intrigeri 2017-06-12 16:07:10

  • Status changed from Fix committed to Resolved

#10 Updated by intrigeri 2020-04-15 06:01:41

  • Affected tool changed from Greeter to Welcome Screen