Region & Language Settings - Change proposals
Inline installation and removal of display languages
There are two important variations between Gnome-using OSes in how they deal with display languages:
whether translations are bundled with the application (e.g. Fedora, Opensuse), or as language packs (e.g. Ubuntu)
whether you can choose one display language, or a list of multiple fallback languages (e.g. Ubuntu)
Each affects how the Display Language tab should appear.
If translations are bundled with the application, the listbox should show common languages by default, with “+” and “–” buttons for altering the list (“+” opening a dialog). If translations are provided as language packs, the listbox should show whichever languages are currently installed.
If only one display language choice is possible, the label for the listbox should be “Preferred display language:”, and the caption should be “This language will be used when available for menus, windows, and Web pages.”. If multiple fallback languages are possible, the label should be “Languages in order of preference:”, and the caption should be “These languages will be used when available for menus, windows, and Web pages. Drag languages into the order you prefer (or use Ctrl Up and Down keys).”. In either case, the final paragraph should be “Changes take effect next time you log in.”.
If translations are provided as language packs, the list should be followed by “Reset…” and “Install/Remove Languages…” buttons. “Reset…” should revert the installed languages back to their installation-/administrator-specified order. Choosing “Install/Remove Languages…” should switch the tab into installation mode:
- The language list label should change from “Languages in order of preference:” to “Languages installed:”.
The list should grow to show every installable language. For visual stability, the languages you use personally (i.e. those above and including English in your order of preference) should be presented at the top of the list in the same order, followed by a separator, followed by all other available languages. Each language should have a checkbox, checked initially if it is currently installed. (The checkbox for “English” should be checked but insensitive, since it can’t be removed.) As with the normal list, to make languages easier to find if the interface is not in a language you understand, the second group should be sorted alphabetically by its localized name, but should be named in its own script first, with the localized name in brackets afterwards — for example, “العربية (Arabic)”.
- The “Install/Remove Languages…” button should be replaced by “Cancel” and “Apply” buttons (“Apply” being sensitive only when you have made any changes).
- The caption should change to a single paragraph, “Select which languages should be available to anyone using this computer.”.
If you choose “Cancel”, the interface should return to its normal view, with no changes being made.
If you choose “Apply”, then after any authentication:
- Any warnings should disappear.
- All controls and other captions inside the tab should become insensitive.
- Below the caption should appear a progress bar for the aggregate changes, and a “Cancel” button that remains sensitive as long as the installation can be cancelled.
- Below the progress bar and “Cancel” button should be status text for the installation/removal task(s).
- When the installation/removal finishes, the tab should return to its normal state.
The tab being in installation state should persist if you navigate to another System Settings panel and then return, but should not persist if you close System Settings then reopen it. Neither of those actions should be blocked on installation/removal finishing.
Enhancement: If you have selected languages that would require downloading anything (i.e. the packages are not cached), and there is no Internet connection, a warning should appear below the caption — “ An Internet connection is needed to download some of the selected languages.” — followed by a “Connect to the Internet…” button that invokes the Internet connection setup.
Enhancement: If you have deselected languages that are in use (i.e. above English in the order of preference) for any user accounts on the system, a warning should appear below the caption: “ Languages you have selected for removal are used by {N} user accounts.”
Why do we need to show the user the distinction between installed and non-installed languages? I don't think that's interesting at all to the user, so why not just show a small list by default and, when showing an extended list (as we do in 3.2), display all existing languages (installed and not-installed), and when the user selects a language that is not installed, just offer him/her to install it? -- RodrigoMoya
- Three reasons.
- A small list and an extended list that are decided by popularity isn’t any simpler than a small list and an extended list that are decided by installed state. (If anything, it’s a bit more complex to explain that the distinction is an arbitrary cut-off.)
- On most systems, you need to be an administrator to install languages. And usually you will need an Internet connection (or an installation disc) too. So whether or not the distinction is interesting, people who want to use non-installed languages will often need to understand it anyway.
- What should be in any small list depends on the deployment. For example, a system installed for an organization in India should probably include, in its small list, Hindi, Dogri, Kannada, Kashmiri, Malayalam, Oriya, Punjabi, Tamil, Telugu, and Urdu — none of which would be present by default. The easiest way for an administrator or local partner to ensure that particular languages are in the initial list is just to (pre-)install them. They shouldn’t have to edit a config file somewhere as well.
- Yes, this might be the case on Ubuntu, but other distros, like Fedora and, I think, openSUSE, have all translations included in the binary packages of each application, so this results in all being installed by default. Thus, your mockup would make the 1st list display every existing language. That's why we did the separation between a small list of known languages and an extended list. It makes a lot of sense though to have the default list be more clever and display languages that might make sense for the initial list, so maybe we can add code to populate the default list with the languages that make sense for the configured timezone/region? -- Rodrigo Moya
In Ubuntu, when you install a language, one thing that happens is that the locales for that language are generated. The list of translations presented to the user is basically the intersection of available translations and available locales ('locale -a'). Possibly this approach would make sense also to other distros? -- GunnarHj 2011-11-08
I don’t think there’s a sensible way to have exactly the same interface for both OSes where translations are bundled with the application, and OSes where translations are provided as language packs. So I’ve specified variations for each. — MatthewPaulThomas
Probably a wise approach. Thanks! I for one wasn't aware of the big differences as regards how distros handle installation of languages. -- GunnarHj 2011-11-23
A few comments on the proposed ideas as regards the list(s) of display languages:
- The label "Languages in order of preference" indicates that the UI would be given the ability to maintain the LANGUAGE environment variable, which would be an important step in the right direction.
- From an Ubuntu POV I agree that the list of display languages should show all the installed translations, and that the only need for an extended list is in the context of installing or removing language packs.
One "but" with the idea to show (in installation mode) the languages you personally use and all other installable languages in the same list is that some language packs include more than one translation. I suppose that installable languages should be language packs, while you select the translations you want to use.
I put together the Ubuntu wiki page LanguageSettings with a short description of how language settings are dealt with in Ubuntu.
-- GunnarHj 2011-11-08
As regards the listbox, which will let the user set multiple fallback languages, the drag-and-drop approach seems to be specified, which is how language-selector does it. I'd like to mention that the language-selector UI has been considered non-intuitive, and users have sometimes had difficulties to figure out how it works. In the language-selector session at UDS-O this problem was discussed and it was agreed (before the goal to start using "Region and Language" in Ubuntu was set) to let the design team review the UI. -- GunnarHj 2011-11-23