Bosh sahifa Wiki Locale

Locale

Locale — dastur matn, son, sana, vaqt, valyuta, saralash va boshqa madaniy formatlarni qaysi til va hudud qoidalari asosida qayta ishlashini belgilaydigan sozlamalar to‘plami.

Locale faqat tarjima tilini anglatmaydi. Bir xil til turli hududlarda boshqa sana, decimal separator, valyuta va alifbo tartibiga ega bo‘lishi mumkin.

Misollar:

uz-UZ
en-US
en-GB
ru-RU

Locale identifikatori

Locale odatda quyidagi qismlardan tuziladi:

  • language;
  • script;
  • region;
  • variant;
  • extension.

Misol:

sr-Latn-RS

bu serb tili, lotin yozuvi va Serbiya hududini bildiradi.

Barcha qismlar majburiy emas.

BCP 47

Web va ko‘p platformada language taglar BCP 47 formatiga yaqin ishlatiladi.

language-Script-REGION

Case ko‘rinishi convention:

  • language — kichik;
  • script — bosh harf bilan;
  • region — katta.

Parser tagni case-insensitive qabul qilishi mumkin.

POSIX locale

Unix tizimlarda locale categorylarga bo‘linadi:

  • LC_CTYPE;
  • LC_NUMERIC;
  • LC_TIME;
  • LC_COLLATE;
  • LC_MONETARY;
  • LC_MESSAGES;
  • LC_ALL.

LANG default locale’ni belgilaydi.

LC_ALL boshqa categorylarni vaqtincha bosib ketishi mumkin.

Son formati

Bir xil son hududga qarab turlicha yoziladi.

1,234.56
1 234,56
1.234,56

Comma qaysi joyda decimal yoki grouping ekanini locale belgilaydi.

User inputni parse qilishda display locale bilan machine format aralashtirilmaydi.

Sana formati

Sana tartibi:

  • yil-oy-kun;
  • kun-oy-yil;
  • oy-kun-yil

bo‘lishi mumkin.

03/04/2026

locale bo‘lmasa 3-aprel yoki 4-mart ekanligi noaniq.

Machine data uchun ISO 8601ga o‘xshash aniq format, UI uchun localized format ishlatiladi.

Vaqt formati

Locale 12 yoki 24 soatlik ko‘rinishga ta’sir qiladi.

14:30
2:30 PM

Time zone locale’dan alohida tushuncha.

Locale formatni, time zone esa vaqtning qaysi hududga nisbatan hisoblanishini belgilaydi.

Valyuta

Valyuta formati:

  • symbol joyi;
  • spacing;
  • decimal digit;
  • negative format;
  • grouping

bilan farq qiladi.

$1,200.00
1 200,00 €

Locale default valyutani ko‘rsatishi mumkin, ammo transaction currency explicit bo‘lishi kerak.

Plural qoidasi

Ko‘plik faqat 1 va boshqa sonlarga bo‘linmaydi.

Turli tillar:

  • zero;
  • one;
  • two;
  • few;
  • many;
  • other

kategoriyalariga ega.

Localization tizimi son asosida to‘g‘ri message variantini tanlaydi.

Collation

Textni alifbo bo‘yicha saralash code point tartibidan farq qiladi.

Locale-aware collation:

  • harf;
  • accent;
  • case;
  • digraph;
  • numeric segment

qoidalarini hisobga oladi.

Database va UI bir xil collation ishlatmasa tartib farq qilishi mumkin.

Case conversion

Katta-kichik harf o‘zgartirish ayrim tilda locale-sensitive.

Turk tilidagi I, i, İ, ı mashhur misol.

Identifier, protocol token va security key uchun locale-independent case folding kerak bo‘lishi mumkin.

UI text uchun user locale ishlatiladi.

Number parsing

User kiritgan 1,5 qiymatni invariant parser 15 yoki xato deb talqin qilishi mumkin.

Form input locale bilan parse qilinadi, ichki model esa numeric type’da saqlanadi.

Databasega localized string emas, aniq numeric qiymat yoziladi.

Invariant locale

Machine-to-machine formatlar uchun barqaror, hududdan mustaqil locale ishlatiladi.

Misollar:

Server OS locale’i o‘zgarsa protocol output o‘zgarmasligi kerak.

Locale negotiation

Web application foydalanuvchi locale’ini quyidagilardan tanlashi mumkin:

  1. user profile;
  2. explicit URL yoki setting;
  3. browser language header;
  4. organization default;
  5. application fallback.

IP manzilga qarab locale tanlash taxminiy va foydalanuvchi tanlovini almashtirmaydi.

Fallback

To‘liq locale translation mavjud bo‘lmasa fallback zanjiri ishlaydi.

uz-Cyrl-UZ
→ uz-Cyrl
→ uz
→ default

Fallback text topishga yordam beradi, ammo regionga xos date va currency qoidasi alohida bo‘lishi mumkin.

Runtime locale

Ba’zi eski APIlar process-global locale ishlatadi.

Bir thread locale’ni o‘zgartirsa boshqa thread natijasiga ta’sir qilishi mumkin.

Zamonaviy API explicit locale object qabul qiladi.

Bu concurrent serverda xavfsizroq.

Locale ma’lumoti

Runtime locale data’ni CLDR yoki platforma database’dan olishi mumkin.

Versiya yangilanganda:

  • format;
  • timezone nomi;
  • plural;
  • currency symbol;
  • collation

o‘zgarishi mumkin.

Outputni exact snapshot bilan test qilganda data versiyasi hisobga olinadi.

Diagnostika

Locale muammosida:

tekshiriladi.

“Til to‘g‘ri, format noto‘g‘ri” holati language va region alohida tanlanganini ko‘rsatishi mumkin.

Measurement unit

Locale va region temperature, masofa, og‘irlik va qog‘oz o‘lchami kabi birliklarga ta’sir qilishi mumkin. Ammo user preference yoki domain talabi region defaultidan ustun bo‘lishi mumkin.

Calendar

Barcha foydalanuvchi faqat Gregorian calendar ishlatmaydi. Locale framework alternativ calendar va era nomlarini qo‘llashi mumkin. Backend canonical timestampni saqlab, UI kerakli calendar ko‘rinishini beradi.

Address va ism

Manzil fieldlari, postal code va ism tartibi hududga qarab farq qiladi. first name va last nameni barcha madaniyat uchun majburiy qilish noto‘g‘ri model bo‘lishi mumkin.

Locale cache

Formatter obyektini qayta ishlatish performance’ni oshiradi, lekin locale almashtirilganda eski formatter cache’i yangilanadi. Process-global cache multi-tenant serverda userlar orasida aralashmasligi kerak.

Bog‘liq tushunchalar

Localization, Internationalization, BCP 47, CLDR, Collation, Time zone, Number formatting, Plural rules, Language tag