fix(windows): sort setup UI language selector according to language names
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:
After:
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 )
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")
Congraulations on the PR! I have made a few admin tweaks:
- Changed title of the PR to match our guidelines
- Fixed the reference to
Fixesto the correct issue - 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.
Thanks for the PR!
Can I add two more questions?
- Should we apply these changes to the
betabranch 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
- Should we apply these changes to the
betabranch so it will be included in the 18.0 release?
Yes, makes sense. @rc-swag can you walk through the beta rebase with @sze2st?
@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.
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.
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):
- Uninstall any versions of Keyman
- Download the attached PR build.
- Start the PR installer build.
- Verify that the "Keyman setup" dialog appears.
- Verify that the language combo box appears.
- Click the language combo box.
- Scroll down the list of languages.
- Verified that the languages are listed by the latin script based name.
- Verified that the non-latin script based languages are listed by the Latin based English name in parenthesis
- TEST_LONG_NAMES (Passed):
- Uninstall any versions of Keyman
- Download the attached PR build.
- Start the PR installer build.
- Verify that the "Keyman setup" dialog appears.
- Verify that the language combo box appears.
- Click the language combo box.
- Verified the language names are listed completely both for Latin-based languages and for non-Latin-based languages, including their English name in parentheses.
- Verified the language names are not wrapped text if the names appear in long entries.
Changes in this pull request will be available for download in Keyman version 19.0.128-alpha