keyman icon indicating copy to clipboard operation
keyman copied to clipboard

fix(windows): sort setup UI language selector according to language names

Open sze2st opened this issue 10 months ago • 5 comments

New procedure Reorder of class TSetupUILanguageManager provides a reordering of language selector

Fixes: #13376 The languages are orderd alphabetically based on their Latin-based language names. All the other names will appear after that. Before: grafik

After: grafik Note: an issue with spelling of Pyccĸий affects the ordering. Hence it is ordered after latin Pulaar-Fulfulde and not after all the latin names (see https://github.com/keymanapp/keyman/issues/13519 )

sze2st avatar Mar 24 '25 16:03 sze2st

User Test Results

Test specification and instructions

Test Artifacts

  • Windows
    • Keyman for Windows - build : all tests passed (no artifacts on BuildLevel "build")
    • FirstVoices Keyboards for Windows - build : all tests passed (no artifacts on BuildLevel "build")
    • FirstVoices Keyboards for Windows (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
    • Keyman for Windows (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
    • Text Editor (32 bit) - build : all tests passed (no artifacts on BuildLevel "build")
    • Text Editor (64 bit) - build : all tests passed (no artifacts on BuildLevel "build")

keymanapp-test-bot[bot] avatar Mar 24 '25 16:03 keymanapp-test-bot[bot]

Congraulations on the PR! I have made a few admin tweaks:

  1. Changed title of the PR to match our guidelines
  2. Fixed the reference to Fixes to the correct issue
  3. Used backtick to highlight code in the PR body

Can you please add some notes in the PR body about the sort order for the UI language names?

We should consider propagating this sort order to Keyman Configuration (and to other platforms) as a separate issue.

mcdurdin avatar Mar 24 '25 23:03 mcdurdin

Thanks for the PR!

Can I add two more questions?

  • Should we apply these changes to the beta branch so it will be included in the 18.0 release?
  • Could we add some user test steps to show the sorting works? :smile: This is also why the user_testing action failed on the PR.

Reference on writing user tests https://github.com/keymanapp/keyman/wiki/User-Testing-Workflows#instructions-for-developers

darcywong00 avatar Mar 25 '25 06:03 darcywong00

  • Should we apply these changes to the beta branch so it will be included in the 18.0 release?

Yes, makes sense. @rc-swag can you walk through the beta rebase with @sze2st?

mcdurdin avatar Mar 26 '25 04:03 mcdurdin

@sze2st I have made some notes on the Issue. We should do this work in two stages. First, this PR which will get the ordering happening like you have here - the result is Latin-based language names will be sorted alphabetically, then all the other names will appear after that.

In separate PR we can do all the extra work to enable better sorting of non-latin based names.

rc-swag avatar Mar 26 '25 06:03 rc-swag

User Testing

**TEST_TESTING_SORTING **: Sorting by language names.

  • Uninstall any versions of Keyman
  • Start the install of this PR Build, at the first combo box "setup screen" choose the drop down
  • scroll down the list of languages. The language names should be sorted according to their Latin based names
  • For non-Latin based languages: the non-Latin based name is displayed is followed by the Latin based English name in parenthesis

**TEST_LONG_NAMES **: Displaying long names.

  • check for width of combo box in "setup screen": Even long entries should be displayed completely both for Latin based languages same as for non-Latin based languages including their English name in parenthesis.

rc-swag avatar Sep 08 '25 05:09 rc-swag

Test Results

I tested this PR in the "Keyman-19.0.9-alpha-test-13573" build on Windows 10. Here I am sharing my observation.

  • TEST_TESTING_SORTING (Passed):
  1. Uninstall any versions of Keyman
  2. Download the attached PR build.
  3. Start the PR installer build.
  4. Verify that the "Keyman setup" dialog appears.
  5. Verify that the language combo box appears.
  6. Click the language combo box.
  7. Scroll down the list of languages.
  8. Verified that the languages are listed by the latin script based name.
  9. Verified that the non-latin script based languages are listed by the Latin based English name in parenthesis
  • TEST_LONG_NAMES (Passed):
  1. Uninstall any versions of Keyman
  2. Download the attached PR build.
  3. Start the PR installer build.
  4. Verify that the "Keyman setup" dialog appears.
  5. Verify that the language combo box appears.
  6. Click the language combo box.
  7. Verified the language names are listed completely both for Latin-based languages and for non-Latin-based languages, including their English name in parentheses.
  8. Verified the language names are not wrapped text if the names appear in long entries.

dinakaranr avatar Sep 10 '25 12:09 dinakaranr

Changes in this pull request will be available for download in Keyman version 19.0.128-alpha

keyman-server avatar Sep 26 '25 07:09 keyman-server