Locale

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Locale (vyslovováno [loʊˈkæl, -ˈkɑl]) je v informatice soubor parametrů, které definují uživatelův jazyk, stát a jiné zvláštnosti, které se následně projeví v uživatelském rozhraní. Obvykle se locale skládá přinejmenším z identifikátoru jazyka a státu. V unixových a jiných systémech založených POSIXu jsou locale identifikátory podobné, jako definice jazyka značek BCP 47, ale modifikátor locale je definován odlišně, protože obsahuje navíc část se znakovou sadou.

Definice formátu: [jazyk[_území][.znaková sada][@modifikátor]] (např. čeština s kódováním UTF-8 je cs_CZ.UTF-8).

Funkce locale

Locale definují různé jazykově specifické odlišnosti, mezi které patří: * formát čísel (např. oddělování řádů, desetinná tečka nebo čárka) * roztřídění znaků do skupin, pravidla pro změnu velikosti znaků (malé/velké písmeno, čČ, řŘ, …) * formát data a času (31. +more 12. 1970, 12/31/70 apod. ) * pravidla pro porovnání řetězců (třídění dle abecedy) * nastavení měny (Kč, $, € atd. ) * velikost papíru * další drobné nastavení….

Nastavení locale ovlivňuje formátování výstupu, takže časové pásmo a letní čas obvykle nejsou součástí nastavení locale. Méně obvyklé, ale za zmínku stojící, je formátování vstupů, které je většinou definováno na úrovni aplikace. +more Locale dále definuje obecné rozložení rozložení kláves (pro daný jazyk).

Podpora v programovacích jazycích

Podpora je v těchto programovacích jazycích: * C * C++ * Eiffel * Java * Microsoft . +moreNET framework * Rebol * Ruby * Perl * PHP * Python * XML a další dnešní prostředí založená na Unicode, která jsou definována podobně jako BCP 47. Jsou definována obvykle pouze za pomoci kódů ISO 639 a ISO 3166-1 alpha-2.

POSIX platformy

V unixových, linuxových a jiných POSIX platformách je locale identifikátor definován podobně, jako BCP 47, ale locale obsahuje navíc znakovou sadu (implicitní znaková sada pro češtinu je totiž stále ISO-8859-2). V následujícím příkladu je výstup příkazu locale pro český jazyk (cs) a Českou republiku (CZ) s užitím kódování UTF-8. +more V tomto případě je v systému nastavena pouze proměnná prostředí LANG, která má nejnižší váhu. Nastavením proměnné prostředí s vyšší váhou (ve výpisu jsou níže) dojde k předefinování proměnné s nižší váhou. Je tak možné například nastavit prostředí programu tak, aby bylo české, ale zároveň byl používán anglický zápis čísel s desetinnou tečkou (tj. v tomto případě nastavit LC_NUMERIC na nějaký anglický locale kód, například en_US). Nejvyšší váhu má proměnná LC_ALL, která přebije nastavení jakýchkoliv ostatních proměnných.

[user@machine ~]$ locale LANG=cs_CZ. UTF-8 LC_CTYPE="cs_CZ. +moreUTF-8" LC_NUMERIC="cs_CZ. UTF-8" LC_TIME="cs_CZ. UTF-8" LC_COLLATE="cs_CZ. UTF-8" LC_MONETARY="cs_CZ. UTF-8" LC_MESSAGES="cs_CZ. UTF-8" LC_PAPER="cs_CZ. UTF-8" LC_NAME="cs_CZ. UTF-8" LC_ADDRESS="cs_CZ. UTF-8" LC_TELEPHONE="cs_CZ. UTF-8" LC_MEASUREMENT="cs_CZ. UTF-8" LC_IDENTIFICATION="cs_CZ. UTF-8" LC_ALL=.

Pokud není locale definováno, předpokládá se nastavení na C - C (programovací jazyk), čímž je míněno v podstatě anglické prostředí.

Specifika pro platformy Microsoft

V Microsoft Windows je historicky pro „neřízený kód“ používán locale identifikátor (LCID). Například číslo 1033 pro angličtinu (Spojené státy), nebo 1041 pro japonštinu (Japonsko). +more LCID číslo se skládá z kódu jazyka (spodních 10 bitů) a kulturního kódu (horní bity). Proto se obvykle zapisují hexadecimálně, například 0x0409 nebo 0x0411. Microsoft zavedl pro . NET API, které tyto kódy využívá. Jedna z prvních implementací API, která byla vypuštěna, byla funkce pro řešení problémů s doménovými jmény, které obsahují znaky národních abeced - tzv. IDN (Internationalized Domain Names). Další API s LCID byly uvedeny v systému Windows Vista Beta 1.

Od vydání Windows Vista přechází Microsoft na názvy locale podle BCP 47, které by mělo nahradit všechna zastaralá rozhraní založená na LCID.

Reference

Související články

Internacionalizace a lokalizace

Externí odkazy

[url=http://tools. ietf. +moreorg/html/bcp47]BCP 47[/url] * [url=http://www. iana. org/assignments/language-subtag-registry]Jazykové subtag registry[/url] * [url=http://www. unicode. org/cldr/]Společná národní úložiště dat[/url] * [url=http://msdn. microsoft. com/en-us/library/cc233965. aspx]MS-LCID: reference od Microsoft[/url] * [url=http://msdn. microsoft. com/en-us/library/cc233968. aspx]Microsoft LCID seznam[/url] * [url=https://docs. microsoft. com/en-us/previous-versions/windows/embedded/ms912047(v=winembedded. 10). redirectedfrom=MSDN]Tabulka LCID s desetinnými ekvivalenty od Microsoft[/url] * [url=http://www. opengroup. org/onlinepubs/007908799/xbd/envvar. html]POSIX proměnné prostředí[/url] * [url=http://www. opengroup. org/onlinepubs/009695399/basedefs/xbd_chap07. html]POSIX locale[/url] * [url=http://wiki. debian. org/Locale]Debian a locale[/url] * Článek "[url=http://cantrip. org/locale. html]The Standard C++ Locale[/url]" od Nathana C. Myerse * [url=https://web. archive. org/web/20060718180204/http://docs. python. org/lib/module-locale. html]Python referce[/url] * [url=http://www. die. net/doc/linux/man/man7/locale. 7. html]Popis multi- jazykové podpory[/url] - Linuxové manuálové stránky * [url=http://incubator. apache. org/stdcxx/doc/stdlibug/VII. html]Apache C++: Standardní národní uživatelská příručka[/url] * [url=https://web. archive. org/web/20110520132147/http://www. collation-charts. org/]"Collation char" pro různé O. S. [/url] * [url=http://www. freesource. info/wiki/Lokalizacija/NATSPECDescription]NATSPEC knihovna[/url] * [url=http://www. debian. org/doc/manuals/reference/ch-tune. en. html#s-env-locale]Popis locale- související s UNIX proměnným prostředím[/url]- Debian Linux příručka * [url=http://translate. sourceforge. net/wiki/guide/start#locales]Příručky pro locale na různých platformách[/url].

Kategorie:Internacionalizace a lokalizace Kategorie:Operační systémy

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top