Region & Language
Contents
The goal of this settings panel is to provide access to regional and locale settings. This includes: user interface language, locale formats, keyboard layout, input method languages, etc.
Participants
WilliamJonMcCann, MatthiasClasen, RodrigoMoya
Status
Needs design
Design in progress
Needs implementation
Implementation in progress
Stable
Relevant Art
OS X 10.7
Windows 7
Access point
Formats
Location
Keyboards and Languages
Administrative
GNOME 2
GNOME 3.2
Ubuntu
Guidelines
Mockup: region.ui
When using XKB to manage multiple layouts and switching between them, there is a hard-to-lift restriction of at most 4 layouts that can be active at the same time. Instead, we should use a higher layer, namely IBus to switch between active input sources. In this scenario, only one XKB layout at a time is set, and the restriction on the number of active layouts no longer applies.
Functional comparison
Names: OS X 10.6 “Language & Text”, Windows 7 “Region and Language”, Gnome 3.2 “Region and Language”.
Function |
OS X 10.7 |
Windows 7 |
GNOME 3.2 |
Notes |
|
Translations |
|||||
Fallbacks for display language |
|
|
|
Windows has hard-coded “parent language” |
|
Set order for alphabetical sorting |
|
|
|
||
Install translations from settings UI |
|
|
? |
Windows requires language packs to be already downloaded |
|
language for login and new accounts |
|
|
|
overblown? (uses an entire tab) |
|
Text entry |
|||||
input source pre-choice |
|
|
|
|
|
input source reorder |
|
|
|
maybe not necessary? |
|
keyboard layout preview |
|
|
|
in OS X, only from the menu |
|
universal vs. per-window input source |
|
|
|
|
|
input source cycle keyboard toggle |
|
|
? |
|
|
input per-source keyboard combos |
|
|
|
|
|
Text substitutions e.g. (c) → © |
|
|
|
|
|
Smart quotes substitution |
|
|
|
|
|
spelling dictionary |
|
|
|
overridable per-field, but a useful default |
|
word break setting |
|
|
|
behavior of double-click, Ctrl Left/Right, etc |
|
Formats in general |
|||||
region |
|
|
|
|
|
location e.g. for news, weather |
|
|
|
cf. geoclue-properties |
|
Date |
|||||
Gregorian calendar |
|
|
|
||
Buddhist calendar |
|
|
|
||
Coptic calendar |
|
|
|
||
Ethiopic calendar (Amete Alem) |
|
|
|
||
Ethiopic calendar (Geez) |
|
|
|
||
Hebrew calendar |
|
|
|
||
Indian national calendar |
|
|
|
||
Islamic calendar (civil) |
|
? |
|
||
Islamic calendar (lunar) |
|
|
|
||
Japanese calendar (eras) |
|
|
|
||
Persian calendar (Solar Hejri) |
|
|
|
||
first day of week |
|
|
|
|
|
interpretation of two-digit years |
|
|
|
|
|
custom short date format |
|
|
|
|
|
custom medium date format |
|
|
|
|
|
custom long date format |
|
|
|
|
|
custom full date format |
|
|
|
|
|
Time |
|||||
custom short time format |
|
|
|
|
|
custom medium time format |
|
|
|
|
|
custom long time format |
|
|
|
|
|
custom full time format |
|
|
|
|
|
custom AM/PM presentation |
|
|
|
|
|
Numbers |
|||||
custom decimal marker |
|
|
|
|
|
number of digits after decimal |
|
|
|
|
|
digit grouping |
|
|
|
|
|
digit (thousands) separator |
|
|
|
|
|
negative number symbol |
|
|
|
|
|
negative number format |
|
|
|
-1.1 / - 1.1 / (1.1) / 1.1- / 1.1 - |
|
display leading zeros |
|
|
|
|
|
custom currency choice |
|
|
|
default for values in spreadsheets, banking software etc |
|
custom currency symbol |
|
|
|
|
|
positive currency format |
|
|
|
|
|
negative currency format |
|
|
|
|
|
custom currency decimal marker |
|
|
|
|
|
no. of digits after currency decimal |
|
|
|
|
|
currency digit (thousands) separator |
|
|
|
|
|
currency digit grouping |
|
|
|
|
|
list separator |
|
|
|
|
|
standard digits |
|
|
|
|
|
use native digits (vs. always Arabic) |
|
|
|
|
|
metric/imperial measurement units |
|
|
|
|
|
Discussion
Factors to consider when deciding whether a format setting should be in System Settings or in individual applications.
System Settings:
Saves user time in setting it once for multiple applications (e.g. dates in calendar, mailer, IM client, clock menu, feed reader).
- Saves application real estate in not needing an interface for the setting.
- Saves developer time in not needing to implement an interface for the setting.
Individual applications:
- More obvious how to find it — it may not even occur to people that it’s a system-wide thing. (Workaround: An application could provide a cross-reference to the System Settings panel.)
If some applications need to allow custom settings anyway (e.g. multiple calendars of different types), having a “Default” option is awkward.
An example from Gnome history is toolbar display, which moved from a system-wide setting to application-specific settings (if any) in 2.30.
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
Input sources
This is a modification of the current Layouts tab, designed to accommodate iBus integration.
The layouts tab currently has an additional Options dialog which contains a large number of advanced (and often confusing) settings. This will not feature in the new Input Sources panel. A subset of the options provided by that dialog are frequently used.
Operation |
New Home |
Notes |
Set Compose key |
Tweak tool |
[1] |
Set Third Level Chooser key |
Automatically map to Right Alt/AltGr, allow customisation through the shortcuts panel |
[1] |
Set change keyboard layout shortcut |
Shortcuts panel |
|
Enable extra typographic characters |
No longer available |
Toggling different arrangements of punctuation characters is crazy and produces lots of bugs. Typographic characters should be available without having to adjust a setting and these characters are available through the Third Level Chooser key. We need to develop a better solution though (see Extra Characters). |
Remap or disable Caps Lock |
Tweak tool |
These are mainly interesting to programmers |
Map a Meta key |
||
Enable Ctrl+Alt+Delete to kill XServer |
[1] About the Compose and Third Level Chooser keys
- The Compose and Third Level Chooser keys have similar roles, and having both present in the UI and documentation would be confusing
- Both OS X and Windows 7 have an equivalent to the Third Level Chooser
- The Third Level Chooser has suffered because of its name and a lack of documentation
The Third Level Chooser is not automatically mapped to the Right Alt or AltGr key
- The characters accessed by the Third Level Chooser are often marked on keyboards
- Compose is a great tool for confident users but could be intimating for others
I'm therefore proposing that we use the Third Level Chooser as the default keyboard only way of inputting alternative characters. The Compose key can be made available by another means for those who want to use it.
A number of things need to happen to integrate the Third Level Chooser in this way:
Automatically map it to the AltGr key, if there is one (iBus seems to do this anyway)
- Give it a different name. 'Alternative Characters Key', perhaps
- Expose it in the keyboard shortcuts settings
- Add it to the documentation page on using special characters
Improve the keyboard previews so people can learn how to use it - a mockup for this
- Have a note on the change in the release notes
-- AllanDay
I'm not used to think of keyboard layout and keyboard input method as very closely related. Have our CJK friends been consulted on this?
What would be the purpose of the "input method settings" control, and why would it typically be insensitive? In Ubuntu we have a tiny control in language-selector's Language tab to decide (via the im-switch package) whether the IBus daemon shall be started automatically at login, and when IBus is running there is an icon on the top bar.-- GunnarHj 2011-11-08
- They are related if you approach from the point of view of 'I want to make my device work for my region and language'. This is how several other major implementations organise their settings. The settings button would launch the ibus settings dialog for the relevant input method. These are provided for methods like Anthy and Chinese Pinyin.
-- AllanDay
Well, let me explain why I asked why the button typically would be insensitive.
The im-switch package, which we currently use in Ubuntu, controls based on the current locale (display language) whether IBus shall be automatically started at login. By default IBus is not automatically started if e.g. English is display language, but it is if the display language is e.g. Japanese. Some CJK users have emphasized that even if somebody prefers English as display language, s/he may well want to be able to type Chinese or Japanese or whatever characters. In other words, the possibility to change the default behavior is considered important by some CJK users, and we learned that we should not take for granted anything with respect to the need to input CJK characters based on the selected display language.
I suppose the same is true as regards the selected keyboard layout.-- GunnarHj 2011-11-09
- They are related if you approach from the point of view of 'I want to make my device work for my region and language'. This is how several other major implementations organise their settings. The settings button would launch the ibus settings dialog for the relevant input method. These are provided for methods like Anthy and Chinese Pinyin.
Comments

