One Locale per Language in OpenSolaris LiveCD
By Ales Cernosek on Jan 20, 2010
One Locale per Language approach is one of the changes expected in the incoming release of OpenSolaris (OS 2010.03). This change is driven primarily by reducing the content delivered into LiveCD, so OpenSolaris can fit into CD space. Our goal was to reduce the stuff required by global users without any significant impact to such users.
There are 2 significant changes connected with this project:
- Reducing the number of locales delivered with LiveCD
- Reducing the number of languages for desktop (JDS)
Current OpenSolaris provides support for 62 different languages across the world. Considering the fact that there are many territories covered by one language (typical example is Spanish - covering 18 territories), and that locale data for one territory allocates 5-10MB (uncompressed), there is a lot of redundancy and disk space consumption. Therefore we had to reduce the number of locales delivered in LiveCD - from 150 locales to 62 with covering the same language set as before. Note that LiveCD is shipped with UTF-8 locales only. Non-UTF-8 locales can be installed from IPS repository.
Right now (from build 127), LiveCD contains 62 locales. The locale libraries are located in the packages named as SUNWlang-aa where aa means Language Code. For some languages, the package contains one locale only (e.g. cs_CZ.UTF-8 in SUNWlang-cs). However for other languages, the package contains several locales and thus we had to create a 'flat' version of such packages (e.g. SUNWlang-es contains many additional locale variants). The 'flat' packages are named as SUNWlang-aaBB, where aa is a Language Code and BB is a Territory Code. (e.g. SUNWlang-esES contains one locale only - for Spanish language and Spain region).
As a consequence, there is lower number of Territories offered by OpenSolaris Installer than before. Users can choose primary territories covered by 62 locales only (Fig. 1)). In order to use a different territory, users have to add particular packages or full language support by themselves after installation by installing a proper language support cluster. Note, that the default locale is stored at /etc/default/init configuration file.
The second change is about reducing the number of localization packages for desktop components (GNOME, Firefox and Thunderbird). The desktop is translated into the following languages now:
- Brazilian Portuguese
- Chinese (Simplified)
- Chinese (Traditional)
and localized strings are taken from a particular l10n community. The strings are located in SUNWgnome-l10nmessages-aa, SUNWfirefoxl10n-aa-BB, SUNWthunderbirdl10n-aa-BB packages (aa is a Language and BB is a Territory Code). The rest of packages that deliver translations for other languages have been removed from LiveCD and they are available in IPS repository only (primarily SUNWgnome-l10nmessages-extra, SUNWthunderbirdl10n-extra and SUNWfirefoxl10n-extra). As a result, users can see English desktop even they select a particular language (other than English) from LiveCD language selection list (Fig. 2). Note that this approach applies to major JDS components only (as mentioned above). For OpenSolaris specific components (like Installer, DDU, Getting Started Guide, Welcome Page, ...), we are going to keep providing the translations for all languages that have been contributed by i18n/l10n OpenSolaris community.
The One Locale Per Language project is implemented from build 127.
Summary of some packages delivering i18n and l10n support:\*
- SUNWlang-aa[BB] - package containing UTF-8 locales for a particular language (SUNWlang-aa) / language and territory (SUNWlang-aaBB)
- SUNWlang-aa-extra - package delivering non-UTF-8 locale support
- SUNWlang-common - basic common package with UNICODE methods
- SUNWlang-common-extra - basic common package for non_UTF-8 locales support
- lang-support-XX - full l10n and i18n support for a language XX (XX is a full language name)
- lang-support-common - a cluster with core i18n features, including e.g. iconv modules, IIIMF (Input Method Framework), etc.
- lang-support-all - a general cluster covering all languages in OpenSolaris
\* Note: there are many packages delivering i18n and l10n components (e.g. fonts, keyboard maps, input methods, etc). Those packages are not listed here in order to make the article as simple as possible.
In general, by installing lang-support-XX you obtain a full
language XX support in OpenSolaris. In order to install all i18n and
l10n stuff, install lang-support-all package.