Internationalization
Overview
Internationalization (i18n) is the process of designing a software application so that it can be adapted to various languages/regions without engineering changes. Localization (l10n) is the process of adapting internationalized software for a specific region or language by translating text and adding locale-specific components.
Character Encodings
With respect to character encodings:
- A character is a minimal unit of text with semantic value.
- A coded character set is a function that maps characters to code points.
- A character repertoire is the set of characters that can be represented by a particular coded character set.
- This is considered independently from how the characters are encoded.
- A repertoire can be open or closed. If open, new additions may be added to the repertoire in the future. If closed, it remains fixed.
- A code point is a value or position of a character in a coded character set.
- A code space is the range of numerical values spanned by a coded character set.
- A code unit is the minimum bit combination that can represent a character in a character encoding.
Locales
A locale is a set of language and cultural rules. Locale information is broken into different categories, a subset of which include:
LC_COLLATE- Determines the collation rules used for sorting and regular expressions, including character equivalence classes and multicharacter collating elements.
LC_CTYPE- Determines the interpretation of byte sequences as characters, character classifications, and the behavior of character classes.
LC_MONETARY- Determines the formatting used for monetary-related numeric values.
LC_NUMERIC- Determines the formatting rules used for nonmonetary numeric values such as the thousands separator and the radix character.
LC_TIME- Determines the formatting used for date and time values.
LC_ALL- Affects all categories.