Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sort items in Language (requires restart to fully take effect) combo box alphabetically by the expanded language names #7284

Closed
bhavyashah opened this issue Jun 14, 2017 · 10 comments · Fixed by #8143

Comments

@bhavyashah
Copy link

Currently, the list of languages in the Language (requires restart to fully take effect) combo box present in the General Settings dialog are sorted alphabetically with respect to their two-letter language short codes. The basis of sorting is not too evident, particularly at first look, furthermore by a newbie. In my personal experience, despite being a long-time NVDA user, I never quite understood and admittedly never bothered to understand the structure of the sorting there, until I gave this a quick thought while in General Settings moments ago. I suspect that most new users would not recognize the presence or meaning of the two-letter language identifiers and most probably never figure out that that is the characteristic on which the list of languages has been alphabetically sorted.
To address the above described problem, I would like to propose sorting languages alphabetically by their full names itself as opposed to using their identifiers for sake of clarity. I understand that this issue is very trivial, but I suppose it sounds easy to tackle and thus worth reporting.
P.S. Would you advise me to open separate tickets to tackle other similar item sorting improvements such as the Voice Settings > Variants combo box, or should the scope of this ticket just be broadened to encompass those as well (again, too trivial for another dedicated ticket for each case, therefore asking before proceeding)?

@feerrenrut
Copy link
Contributor

I believe the names of the languages are localised (and therefore the list order could be different when different language settings are enabled) I don't think this is a problem. I assume you intend to sort based on this localised long name? To me this would seem the most logical for a user.

In terms of sorting the voice settings > variants combo box:
I don't think another issue needs to be raised, in fact there is a request for this in #561 The scope of issue #561 is actually a bit larger, and includes a trying to filter the names of the voices.

Please submit the voices variants sorting, and the language items sorting as two pull requests.

@feerrenrut
Copy link
Contributor

I seem to have assumed you were a developer, I'm not sure why I did exactly. So sorry if my comments are a little direct, and developer specific.

The user specific question still stands though, if a person with English locale looks for the German language, they try to find 'G' for 'German'. However a person with German locale tries to find 'D' for 'Deutsch'

@bhavyashah
Copy link
Author

bhavyashah commented Jun 14, 2017 via email

@jcsteh
Copy link
Contributor

jcsteh commented Jun 14, 2017 via email

@bhavyashah
Copy link
Author

bhavyashah commented Jun 14, 2017 via email

@bhavyashah
Copy link
Author

bhavyashah commented Jun 14, 2017 via email

@jcsteh
Copy link
Contributor

jcsteh commented Jun 14, 2017 via email

@josephsl
Copy link
Collaborator

josephsl commented Jun 14, 2017 via email

@jcsteh
Copy link
Contributor

jcsteh commented Jun 15, 2017 via email

@josephsl
Copy link
Collaborator

josephsl commented Apr 4, 2018

Hi,

Technical: take a look at languageHandler.getAvailableLanguages function. Based on code in there, the best strategy is insertion sort when a keyword argument specifies human-readable (presentational) view of available languages.

As commented by @feerrenrut, this should be a separate PR from other l10n sorting work, as this one deals with UI languages list.

Thanks.

josephsl added a commit to josephsl/nvda that referenced this issue Apr 4, 2018
… be obtained. Re nvaccess#7284.

When going through General settings/Language combo box, users might be puzzled as to why items in there are listed in random order. This is because entries are sorte according to ISO 639-1 code. To improve user experience, sort this alphabetically according to description.
This is done through a new keyword argument in languageHandler.getAvailableLanguages function. Wuth presentational argument set, language tuples will be sorted based on description text.
josephsl added a commit to josephsl/nvda that referenced this issue Apr 4, 2018
josephsl added a commit to josephsl/nvda that referenced this issue Apr 4, 2018
…ntation purposes. Re nvaccess#7284.

Reduece confusion further by omitting language codes from language description texts.
josephsl added a commit to josephsl/nvda that referenced this issue Apr 12, 2018
…users. Re nvaccess#7284.

Reviewed by Mick Curran (NV Access) and others: suppose a user changes to another language by accident, a language he or she cannot understand, especially changes the Windows display language by accident. So how can they return to a language they know? This cannot be done with absence of ISO 639 language codes.
@nvaccessAuto nvaccessAuto added this to the 2018.3 milestone Jun 13, 2018
michaelDCurran pushed a commit that referenced this issue Jun 13, 2018
* Language handler: allow presentational view of available languages to be obtained. Re #7284.

When going through General settings/Language combo box, users might be puzzled as to why items in there are listed in random order. This is because entries are sorte according to ISO 639-1 code. To improve user experience, sort this alphabetically according to description.
This is done through a new keyword argument in languageHandler.getAvailableLanguages function. Wuth presentational argument set, language tuples will be sorted based on description text.

* Settings dialog/General/Language: enable presentational view of languages. Re #7284.

* GUI/settings dialog: update copyright years

* Docstring: language handler module description

* Language handler: only add language descriptions if this is for presentation purposes. Re #7284.

Reduece confusion further by omitting language codes from language description texts.

* Language handler: clarify module docstring

* Language handler: readability changes for variable namess.

the nanes 'd', 'i', and 'l' are so generic. Thus rename them to 'displayNames', 'entry', and 'locales'.

* Language handler: clarify comment

* Language handler: add ISO 639 codes in order to reduce confusion for users. Re #7284.

Reviewed by Mick Curran (NV Access) and others: suppose a user changes to another language by accident, a language he or she cannot understand, especially changes the Windows display language by accident. So how can they return to a language they know? This cannot be done with absence of ISO 639 language codes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants