Spring til indhold

Locale

Fra Wikipedia, den frie encyklopædi

Inden for databehandling er en locale et sæt parametre, der definerer brugerens sprog, region og eventuelle specielle variantpræferencer, som brugeren ønsker at se i deres brugergrænseflade. Normalt består en locale-identifikator af mindst en sprogkode og en landekode/subnational områdekode. Locale er et vigtigt aspekt af i18n.

Generelle indstillinger for locale

[redigér | rediger kildetekst]

Disse indstillinger inkluderer normalt følgende skærmformat (output) indstillinger:

  • Indstilling af talformat (LC_NUMERIC, C/C++)
  • Karakterklassificering, indstillinger for kasuskonvertering (LC_CTYPE, C/C++)
  • Indstilling af datoformat og klokkeslætsformat (LC_TIME, C/C++)
  • Indstilling for tekststreng sortering (LC_COLLATE, C/C++)
  • Valutaformatindstilling (LC_MONETARY, C/C++)
  • Indstilling af papirstørrelse (LC_PAPER, ISO 30112)
  • Farveindstilling
  • UI-skrifttypeindstilling (især for CJKV sprog)

Landestandardindstillingerne handler om formatering af output givet en lokalitet. Så tidszoneoplysninger og sommertid er normalt ikke en del af lokalitetsindstillingerne.

Mindre sædvanligt er indstillingen af inputformatet, som for det meste er defineret per applikation.

Understøttelse af programmerings- og markupsprog

[redigér | rediger kildetekst]

I disse miljøer,

og andre (i dag) unicode-baserede miljøer, er de defineret i et format svarende til BCP 47. De er normalt defineret med kun ISO 639 (sprog) og ISO 3166-1 alfa-2 (2-bogstavs lande) koder.


Internationale standarder

[redigér | rediger kildetekst]

I standard C og C++ er locale defineret i "kategorier" af LC_COLLATE (tekstsortering), LC_CTYPE (tegnklasse), LC_MONETARY (valutaformat), LC_NUMERIC (talformat) og LC_TIME (tidsformat). Den specielle kategori LC_ALL kan bruges til at indstille alle landestandardindstillinger.[1]

Der er ingen standard-locale-navne forbundet med C- og C++-standarder udover et "minimal locale"-navn "C", selvom POSIX-formatet er en almindeligt anvendt baseline.

POSIX-platforme

[redigér | rediger kildetekst]

POSIX-platforme såsom Unix, Linux og andre - defineres locale-identfikatorer på en måde, der svarer til BCP 47-definitionen af sprogtags, men locale-variantens modifikator er defineret anderledes, og tegnsættet er valgfrit inkluderet som en del af identifikatoren. POSIX- eller "XPG"-formatet er [language[_territory][.codeset][@modifier]]. (For eksempel er australsk engelsk der bruger UTF-8-kodningen en_AU.UTF-8.)[2] Separat beskriver ISO/IEC 15897 en anden form, language_territory+audience+application,sponsor_version, selvom det er meget tvivlsomt, om det overhovedet bruges.[3]

I det næste eksempel er der et output af kommandoen locale for tjekkisk sprog (cs), Tjekkiet (CZ) med eksplicit UTF-8-kodning:

 $ locale
 LANG=cs_CZ.UTF-8
 LC_CTYPE="cs_CZ.UTF-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=


Specifikationer for Microsoft-platforme

[redigér | rediger kildetekst]

Microsoft Windows bruger specifikt sprog[4] og [5] territorium-strenge. Locale identifier (LCID) for unmanaged codeMicrosoft Windows er et tal som f.eks. 1033 for engelsk (USA) eller 2057 for engelsk (Storbritannien), eller 1041 for japansk (Japan). Disse tal består af en sprogkode (nedre 10 bit) og en kulturkode (øvre bits), og er derfor ofte skrevet i hexadecimal notation, såsom 0x0409, 0x0809 eller 0x0411.

Microsoft begynder at introducere administreret kode application programming interface'er (API'er) til .NET, der bruger dette format. En af de første, der generelt udgives, er en funktion til at afbøde problemer med internationalized domain names (IDN),[6] men flere er i Windows Vista Beta 1.

Startende med Windows Vista er nye funktioner[7], der bruger BCP 47 lokalitetsnavne, blevet introduceret at erstatte næsten alle LCID-baserede API'er.

Et POSIX-lignende stednavnsformat af language[_country-region[.code-page]] er tilgængeligt i UCRT (Universal C Run Time) i Microsoft Windows 10 og Microsoft Windows 11.[8]

  1. ^ "LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME - cppreference.com". en.cppreference.com.
  2. ^ "Environment Variables". pubs.opengroup.org.
  3. ^ "ISO/IEC JTC1/SC22 N610 [draft ISO/IEC 15897:1998(E)] Information technology — Procedures for registration of cultural elements" (PDF). 1998-11-17. Hentet 8. juni 2023. For Narrative Cultural Specifications and POSIX Locales the token identifier will be: 8_9+11+12,13_14
  4. ^ sprog
  5. ^ territorium
  6. ^ dd317795.aspx "DownlevelGetLocaleScripts-funktion (Windows)". MSDN. Microsoft. Hentet 2017-12-11. {{cite web}}: Tjek |url= (hjælp)
  7. ^ "Locale Names (Windows)". MSDN. Microsoft. Hentet 2017-12-11.
  8. ^ strings?view=msvc-140 "Locale Names, Languages and Country-Region Strings". learn.microsoft.com (amerikansk engelsk). 19. oktober 2022. {{cite web}}: Tjek |url= (hjælp) (Webside ikke længere tilgængelig)