Table of locales
Note: This page is a work-in-progress. Feedback and suggested improvements are welcome. Please join the discussion on moodle.org or use the page comments.
Introduction
Definition: (from Wikipedia) Locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface. Usually a locale identifier consists of at least a language identifier and a region identifier.
Currently such locales are named differently under Unix-based and Win32-based platforms so we need to have them defined separately to allow Moodle to use them as necessary. For each lang package' available for Moodle, we must specify the locale value (Unix locale) and the localewin value (Win32 locale). Both those strings should be (no mandatory) defined inside each Moodle 1.6 and upwards langpack to be able to display locale strings properly.
The general syntax for locales is:
language[_country][.charset]
(with information under brackets being optional)
While the .charset part seems to work properly under Unix, it seems that is not working under Win32 (at least from PHP), and strings returned from some PHP functions aren't in the charset specified but in some sort of default charset. Let's call it localewincharset. This forces us to convert from this charset to the current_charset() being used by the user.
Table
So, for each 1.6 Moodle language pack, we'll describe below this columns:
- package_name: name of the language pack as showed in http://download.moodle.org/lang16/.
- lang_name: name of the language as showed in http://download.moodle.org/lang16/.
- locale: locale string to be used under Unix platforms. This will be stored in each language langconfig.php file.
- localewin: locale string to be used under Win32 platforms. This will be stored in each language langconfig.php file.
- localewincharset: charset in which PHP is retrieving information from locale-dependent functions (strftime...). This will allow us to convert such strings to the final charset properly. This will be stored in each language langconfig.php file.
package_name | lang_name | locale | localewin | localewincharset |
---|---|---|---|---|
af_utf8 | Afrikaans | en.UTF-8 | Afrikaans.1252 | WINDOWS-1252 |
sq_utf8 | Albanian | al.UTF-8 | Albanian_Albania.1250 | WINDOWS-1250 |
ar_utf8 | Arabic | en.UTF-8 | Arabic.1256 | WINDOWS-1256 |
eu_utf8 | Basque | eu.UTF-8 | Basque_Spain.1252 | WINDOWS-1252 |
be_utf8 | Belarusian | en.UTF-8 | Belarusian_Belarus.1251 | WINDOWS-1251 |
bs_utf8 | Bosnian | bs.UTF-8 | Serbian (Latin) | WINDOWS-1250 |
bg_utf8 | Bulgarian | en.UTF-8 | Bulgarian_Bulgaria.1251 | WINDOWS-1251 |
ca_utf8 | Catalan | ca_ES.UTF-8 | Catalan_Spain.1252 | WINDOWS-1252 |
zh_cn_utf8 | Chinese (Simplified) | zh_CN.UTF-8 | Chinese_China.936 | CP936 |
zh_tw_utf8 | Chinese (Traditional | zh_TW.UTF-8 | Chinese_Taiwan.950 | CP950 |
undefined | Czech | undefined | undefined | undefined |
undefined | Danish | undefined | undefined | undefined |
undefined | Dutch | undefined | undefined | undefined |
undefined | English | undefined | undefined | undefined |
undefined | English (US) | undefined | undefined | undefined |
undefined | Estonian | undefined | undefined | undefined |
undefined | Farsi | undefined | undefined | undefined |
undefined | Filipino | undefined | undefined | undefined |
undefined | Finnish | undefined | undefined | undefined |
undefined | French | undefined | undefined | undefined |
undefined | French (Canada) | undefined | undefined | undefined |
undefined | Gaelic | undefined | undefined | undefined |
undefined | Gallego | undefined | undefined | undefined |
undefined | Georgian | undefined | undefined | undefined |
undefined | German | undefined | undefined | undefined |
undefined | German (Personal) | undefined | undefined | undefined |
undefined | Greek | undefined | undefined | undefined |
undefined | Hebrew | undefined | undefined | undefined |
undefined | Hindi | undefined | undefined | undefined |
undefined | Hungarian | undefined | undefined | undefined |
undefined | Indonesian | undefined | undefined | undefined |
undefined | Italian | undefined | undefined | undefined |
undefined | Japanese | undefined | undefined | undefined |
undefined | Kannada | undefined | undefined | undefined |
undefined | Khmer | undefined | undefined | undefined |
undefined | Korean | undefined | undefined | undefined |
undefined | Lithuanian | undefined | undefined | undefined |
undefined | Latvian | undefined | undefined | undefined |
undefined | Malaysian | undefined | undefined | undefined |
undefined | Maori (Ngai Tahu) | undefined | undefined | undefined |
undefined | Norwegian | undefined | undefined | undefined |
undefined | Norwegian (Primary) | undefined | undefined | undefined |
undefined | Nynorsk | undefined | undefined | undefined |
undefined | Polish | undefined | undefined | undefined |
undefined | Portuguese | undefined | undefined | undefined |
undefined | Portuguese (Brazil) | undefined | undefined | undefined |
undefined | Romanian | undefined | undefined | undefined |
undefined | Russian | undefined | undefined | undefined |
undefined | Serbian | undefined | undefined | undefined |
undefined | Slovak | undefined | undefined | undefined |
undefined | Slovenian | undefined | undefined | undefined |
undefined | Somali | undefined | undefined | undefined |
undefined | Spanish (International) | undefined | undefined | undefined |
undefined | Spanish (Spain) | undefined | undefined | undefined |
undefined | undefined | undefined | undefined | undefined |
undefined | Swedish | undefined | undefined | undefined |
undefined | Tagalog | undefined | undefined | undefined |
undefined | Thai | undefined | undefined | undefined |
undefined | Turkish | undefined | undefined | undefined |
undefined | Ukrainian | undefined | undefined | undefined |
undefined | Vietnamese | undefined | undefined | undefined |
Note: Some locales for windows in red could be incorrect (technically or geographically but they are the only way I've found to show dates properly in my XP box). Also some other coloured cells (in other columns should be revised).
Some references
Windows
- Win32 Language names: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_language_strings.asp
- Win32 Country names: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_country_strings.asp
- Win32 Codepage codes: http://www.microsoft.com/globaldev/reference/wincp.mspx
- Languages and codepages: http://www.science.co.il/Language/Locale-Codes.asp?s=codepage
Unix
- Unix Language names: http://www.loc.gov/standards/iso639-2/englangn.html (639-2 is used only if 639-1 doesn't exist, see the "Locale Name Guide" below).
- Unix Country names: http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html
- Unix Charset codes: http://www.w3.org/International/O-charset-list.html
Other Info
- Locale Name Guide: http://openi18n.org/docs/text/LocNameGuide-V10.txt
- FAQ about ISO 639: http://www.loc.gov/standards/iso639-2/faq.html
- One initiative from Unicode: http://www.unicode.org/cldr/index.html