Region & Language

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

Relevant Art

OS X 10.7

osx-language.small.png osx-text.small.png osx-formats.small.png osx-formats-region.small.png osx-formats-dates.small.png osx-formats-calendar.small.png osx-formats-times.small.png osx-formats-numbers.small.png osx-input.small.png

Windows 7

Access point

w7-control-panel.small.png

Formats

w7-formats.small.png w7-formats-additional-numbers.small.png w7-formats-additional-currency.small.png w7-formats-additional-time.small.png w7-formats-additional-date.small.png

Location

w7-location.small.png

Keyboards and Languages

w7-keyboards.small.png w7-keyboards-general.small.png w7-keyboards-general-add.small.png w7-keyboards-general-properties.small.png w7-keyboards-languagebar.small.png w7-keyboards-advanced.small.png

Administrative

w7-administrative.small.png w7-administrative-copy.small.png w7-administrative-system.small.png

GNOME 2

https://lh5.googleusercontent.com/-aYk-tUhK7Ss/S-tjIuEPbOI/AAAAAAAAW0g/GPUWlfoMe64/s288/Screenshot-IM%2520Chooser%2520-%2520Input%2520Method%2520configuration%2520tool.png https://lh3.googleusercontent.com/-Ls3hxw8fZOY/S-tjIoXxe1I/AAAAAAAAW0g/R7OAtoS2VzE/s288/Screenshot-IM%2520Chooser%2520-%2520Input%2520Method%2520configuration%2520tool-1.png https://lh5.googleusercontent.com/-I6KP9UMAoN8/S-tjI9ry4dI/AAAAAAAAW0g/0OotS4D6xTU/s288/Screenshot-IBus%2520Preferences.png https://lh6.googleusercontent.com/-EtoAGLvW3E4/S-tjIyKLPOI/AAAAAAAAW0g/PBA3U-gOT-o/s288/Screenshot-IBus%2520Preferences-1.png https://lh4.googleusercontent.com/-_e63ng3OBAw/S-tjiuG2KrI/AAAAAAAAW0g/sWbkebsbSEA/s288/Screenshot-IBus%2520Preferences-4.png https://lh3.googleusercontent.com/-XyPhjViotbc/S-tji2WMJiI/AAAAAAAAW0g/ReQhtEzW_z8/s288/Screenshot-IBus%2520Preferences-5.png https://lh3.googleusercontent.com/-GWhT-dPDH9w/S-tjJGkrcLI/AAAAAAAAW0g/16Gcaxe4sFI/s288/Screenshot-IBus%2520Preferences-2.png https://lh6.googleusercontent.com/-F6l-kq56mMc/S-thvGRWNhI/AAAAAAAAW0g/tv5GbtHCtxY/s288/Screenshot-Choose%2520a%2520Layout.png

GNOME 3.2

region-language.png region-language-add.png region-format.png region-format-add.png region-layouts.png region-layouts-add.png region-system.png

Ubuntu

ubuntu-language.small.png ubuntu-installed-languages.small.png ubuntu-formats.small.png

Guidelines

Mockup: region.ui

https://lh4.googleusercontent.com/-LaZfq9tVZPk/S_3h2FZerfI/AAAAAAAAW0g/d6gBttA7Skc/s640/Screenshot-region.ui-1.png https://lh3.googleusercontent.com/-6LJZewGmh3Y/S_3h2ES1H1I/AAAAAAAAW0g/lJuCCueSJfg/s640/Screenshot-region.ui-2.png https://lh3.googleusercontent.com/-Zpb5k_VK6f0/S_3h15UeebI/AAAAAAAAW0g/VTUuFVbNai0/s640/Screenshot-region.ui.png https://lh5.googleusercontent.com/-SuLpAgqCrUg/S_3h2mFtUMI/AAAAAAAAW0g/BNNQlvFV5ew/s640/Screenshot-region.ui-3.png

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

{*}

{o}

{o}

Windows has hard-coded “parent language”

Set order for alphabetical sorting

{*}

{o}

{o}

example

Install translations from settings UI

{o}

{o}

?

Windows requires language packs to be already downloaded

language for login and new accounts

{o}

{*}

{*}

overblown? (uses an entire tab)

Text entry

input source pre-choice

{*}

{*}

{*}

input source reorder

{o}

{*}

{*}

maybe not necessary?

keyboard layout preview

{o}

{*}

{*}

in OS X, only from the menu

universal vs. per-window input source

{*}

{o}

{*}

input source cycle keyboard toggle

{*}

{*}

?

input per-source keyboard combos

{o}

{*}

{o}

Text substitutions e.g. (c) → ©

{*}

{o}

{o}

Smart quotes substitution

{*}

{o}

{o}

spelling dictionary

{*}

{o}

{o}

overridable per-field, but a useful default

word break setting

{*}

{o}

{o}

behavior of double-click, Ctrl Left/Right, etc

Formats in general

region

{*}

{*}

{*}

location e.g. for news, weather

{o}

{*}

{o}

cf. geoclue-properties

Date

Gregorian calendar

{*}

{*}

{*}

See Design/AltCalendarSystems

Buddhist calendar

{*}

{o}

{o}

Coptic calendar

{*}

{o}

{o}

Ethiopic calendar (Amete Alem)

{*}

{o}

{o}

Ethiopic calendar (Geez)

{*}

{o}

{o}

Hebrew calendar

{*}

{*}

{o}

Indian national calendar

{*}

{o}

{o}

Islamic calendar (civil)

{*}

?

{o}

Islamic calendar (lunar)

{*}

{*}

{o}

Japanese calendar (eras)

{*}

{o}

{o}

Persian calendar (Solar Hejri)

{*}

{*}

{o}

first day of week

{*}

{*}

{o}

interpretation of two-digit years

{o}

{*}

{o}

custom short date format

{*}

{*}

{o}

custom medium date format

{*}

{o}

{o}

custom long date format

{*}

{*}

{o}

custom full date format

{*}

{o}

{o}

Time

custom short time format

{*}

{*}

{o}

custom medium time format

{*}

{o}

{o}

custom long time format

{*}

{*}

{o}

custom full time format

{*}

{o}

{o}

custom AM/PM presentation

{*}

{*}

{o}

Numbers

custom decimal marker

{*}

{*}

{o}

number of digits after decimal

{o}

{*}

{o}

digit grouping

{*} (on/off)

{*} (4 options)

{o}

digit (thousands) separator

{*}

{*}

{o}

negative number symbol

{o}

{*}

{o}

negative number format

{o}

{*}

{o}

-1.1 / - 1.1 / (1.1) / 1.1- / 1.1 -

display leading zeros

{o}

{*}

{o}

custom currency choice

{*}

{o}

{o}

default for values in spreadsheets, banking software etc

custom currency symbol

{o}

{*}

{o}

positive currency format

{o}

{*}

{o}

negative currency format

{o}

{*}

{o}

custom currency decimal marker

{*}

{*}

{o}

no. of digits after currency decimal

{o}

{*}

{o}

currency digit (thousands) separator

{*}

{*}

{o}

currency digit grouping

{o}

{*}

{o}

list separator

{o}

{*}

{o}

standard digits

{o}

{*}

{o}

use native digits (vs. always Arabic)

{o}

{*}

{o}

metric/imperial measurement units

{*}

{*}

{o}

Discussion

Factors to consider when deciding whether a format setting should be in System Settings or in individual applications.

System Settings:

Individual applications:

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:
{1} whether translations are bundled with the application (e.g. Fedora, Opensuse), or as language packs (e.g. Ubuntu)
{2} 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.

display-language-single.png

display-language-normal.png

If {1} 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 {1} translations are provided as language packs, the listbox should show whichever languages are currently installed.

If {2} 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 {2} 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.”.

display-language-installation.png

If {1} 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:

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:

  1. Any warnings should disappear.
  2. All controls and other captions inside the tab should become insensitive.
  3. 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.
  4. Below the progress bar and “Cancel” button should be status text for the installation/removal task(s).
  5. 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.”

MatthewPaulThomas

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

A few comments on the proposed ideas as regards the list(s) of display languages:

-- 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.

https://github.com/gnome-design-team/gnome-mockups/raw/master/system-settings/region-and-language/png/input-sources.png

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

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:

-- AllanDay

Comments

See Also

Design/SystemSettings/RegionAndLanguage (last edited 2011-11-23 23:01:10 by GunnarHj)