Localization — mohiyati, kontentni til va mintaqaga moslashtirish

Muallif: IT Sectr Nashr etilgan: 2026-02-26 O'qish vaqti: 7 daq

Localization (mahalliylashtirish, l10n) — mobil ilova kontentining maqsadli auditoriya tili, mintaqasi va madaniy xususiyatlariga moslashtirilishi. Xalqarolashtirishdan (i18n) farqli o'laroq, bu yerda kod tarjimaga tayyorlanadi, lokalizatsiya esa satrlarning tarjimasi, sanalar, raqamlar va valyutalarni formatlash, tasvirlarni tanlash va mahalliy me'yorlarni hisobga olish jarayonidir. iOS-da tarjimalar Localizable.strings (har bir til uchun .lproj papkalari), Android-da esa values-ru, values-de va boshqa resurs kataloglarida saqlanadi. Batafsil — Android lokalizatsiya qo'llanmasida.

Asosiy ma'lumotlar

  • Localization (l10n) — ilova kontentini aniq til va mintaqaga tarjima qilish va moslashtirish
  • Localizable.strings — har bir til uchun "kalit" = "tarjima" juftlarini o'z ichiga olgan iOS fayli
  • values-ru — Rus tili uchun resurslarga ega Android katalogi (strings.xml)
  • Mintaqaviy moslashtirish — sanalar, raqamlar, tasvirlar, ranglar, huquqiy talablar mamlakatlarga qarab farqlanadi
  • Madaniy xususiyatlar — ranglar, piktogrammalar, imo-ishoralar va misollar mahalliy me'yorlarga mos kelishi kerak

Localization (l10n) nima va u i18n-dan nimasi bilan farq qiladi?

Localization (qisqacha l10n — "l" va "n" orasida 10 ta harf) — ilovani aniq til va mintaqaga moslashtirish jarayonidir. Agar i18n arxitektura poydevori bo'lsa, l10n uning mazmunidir. i18n tarjimani mumkin qiladi, l10n uni amalga oshiradi. Lokalizatsiya o'z ichiga oladi: interfeysning barcha matnlarini tarjima qilish, sana va raqam formatlarini moslashtirish, madaniy jihatdan sezuvchan tasvirlarni almashtirish, huquqiy matnlarni (maxfiylik siyosati, EULA) tuzatish, to'lov tizimlarini mintaqaga sozlash va maqsadli qurilmalarda sinovdan o'tkazish.

Biznes rentabelligi — lokalizatsiya konversiyaga bevosita ta'sir qiladi. CSA Research (2023) ma'lumotlariga ko'ra, foydalanuvchilarning 76% ona tilidagi ilovalarda xarid qilishni afzal ko'radi, 40% esa hech qachon xorijiy tilda xarid qilmaydi. Chakana savdo ilovasi uchun yapon tiliga lokalizatsiya konversiyani o'rtacha 150% ga oshiradi (Google, 2022). Mahalliylashtirilgan ilovalar mintaqaviy App Store va Google Play-da mintaqaviy ASO (maqsadli tildagi kalit so'zlar) tufayli 2–3 marta ko'proq organik o'rnatish oladi.

i18n vs l10n — bir jarayonning ikki tomoni. i18n: satrlarni resurslarga chiqarish, RTL qo'llab-quvvatlash, raqamlarni formatlash. Dasturchilar tomonidan bir marta bajariladi. l10n: satrlarni tarjima qilish, kontentni moslashtirish, mahalliy sinov. Har bir lokalizatsiya uchun tarjimonlar va QA tomonidan bir necha marta bajariladi. IT Sectr-da har bir yangi til uchun sprint vaqtining 20–30% lokalizatsiyaga ajratamiz — bu tarjima, ko'rib chiqish, qurilmalarda sinov va xatolarni tuzatishni o'z ichiga oladi.

iOS-da lokalizatsiya: Localizable.strings va Base Internationalization

Localizable.strings — iOS-da tarjimalarni saqlash uchun asosiy fayl. Har bir lokalizatsiyaning o'z .lproj papkasi bor: en.lproj/Localizable.strings, ru.lproj/Localizable.strings, de.lproj/Localizable.strings. Format: "kalit" = "qiymat"; (nuqtali vergul bilan). Apple Base Internationalization-dan foydalanadi: Storyboard va XIB bir marta yaratiladi (Base.lproj), interfeys satrlari esa har bir til uchun Localizable.strings-ga eksport qilinadi. Bu har bir lokalizatsiya uchun XIB nusxalarini yaratish zaruratini bartaraf qiladi.

swift
// en.lproj/Localizable.strings
// "settings.title" = "Settings";
// "profile.greeting" = "Hello, %@!";
// "items.count" = "%d item(s)";

// ru.lproj/Localizable.strings
// "settings.title" = "Sozlamalar";
// "profile.greeting" = "Assalomu alaykum, %@!";
// "items.count" = "%d dona.";

// Satrni kalit bo'yicha yuklash
navigationItem.title = NSLocalizedString(
    "settings.title",
    comment: "Sozlamalar ekrani sarlavhasi"
)

// Parametrli satr
let name = "Anna"
greetingLabel.text = String.localizedStringWithFormat(
    NSLocalizedString("profile.greeting", comment: ""), name
)

// XLIFF importi (Xcode → Editor → Import Localizations)
// Tarjimon ishidan so'ng .lproj fayllarini avtomatik yangilaydi

Base Internationalization — Apple-ning yondashuvi, bunda interfeys (Storyboard, XIB) Base.lproj-da bir marta yaratiladi. Til qo'shilganda Xcode Base-dan satrlarni XLIFF fayliga eksport qiladi. Tarjimon XLIFFni tarjima qiladi. Importdan so'ng Xcode tarjima qilingan satrlar bilan .lproj yaratadi. Afzallik: har bir til uchun XIBni takrorlash shart emas. Cheklov: RTL tillari (arab, ivrit) uchun oyna ko'rinishidagi layout bilan alohida XIB talab qilinishi mumkin.

InfoPlist.strings va metama'lumotlarni lokalizatsiya qilish

InfoPlist.strings — ilova nomini (CFBundleDisplayName), kamera/mikrofon ruxsatnomalarini (NSCameraUsageDescription) va Info.plist-dagi boshqa qiymatlarni lokalizatsiya qilish uchun fayl. .lproj-da yaratiladi: ru.lproj/InfoPlist.strings. Format: CFBundleDisplayName = "Mening ilovam"; NSCameraUsageDescription = "Ilovaga suratga olish uchun kameraga kirish kerak";. InfoPlist.strings lokalizatsiya qilinmasa, tizim dialog oynalari ingliz tilida bo'ladi.

Android-da lokalizatsiya: values-ru, mahalliylashtirilgan resurslar

Android resurslari lokalizatsiya uchun katalog nomlarida kvalifikatorlar (qualifiers) orqali tashkil etiladi. Rus tili uchun — res/values-ru/, nemis tili uchun — res/values-de/, braziliya portugal tili uchun — res/values-pt-rBR/. Android 160 dan ortiq lokalizatsiyani qo'llab-quvvatlaydi. Tizim qurilma tiliga qarab resurslarni avtomatik tanlaydi (Locale.getDefault()). Agar aniq lokalizatsiya topilmasa — values/ (asosiy lokalizatsiya, odatda en) resurslari ishlatiladi.

kotlin
// res/values/strings.xml (asosiy — ingliz)
<string name="settings_title">Settings</string>
<string name="greeting">Hello, %s!</string>

// res/values-ru/strings.xml (rus)
<string name="settings_title">Sozlamalar</string>
<string name="greeting">Salom, %s!</string>

// res/values-de/strings.xml (nemis)
<string name="settings_title">Einstellungen</string>
<string name="greeting">Hallo, %s!</string>

// Kotlin — barcha tillar uchun yagona kod
textView.text = getString(R.string.settings_title)

// Parametrli satr
val greeting = getString(R.string.greeting, userName)

// Mahalliylashtirilgan tasvirlar
// res/drawable-ru/flag.png — rus versiyasi uchun bayroq
// res/drawable/flag.png — standart bayroq

// Layoutlarni lokalizatsiya qilish (RTL tillari uchun)
// res/layout-ar/activity_main.xml — arab versiyasi

Faqat satrlarni emas, balki boshqa resurslarni ham lokalizatsiya qilish — Android tasvirlarni (res/drawable-ru/), ranglarni (res/values-ru/colors.xml), o'lchamlarni (res/values-ru/dimens.xml), animatsiyalarni, menyularni va hatto butun layoutlarni lokalizatsiya qilish imkonini beradi. Turli so'z uzunligiga ega tillar uchun (nemis tili ingliz tilidan 30–40% uzun) kengaytirilgan tugma kengligi bilan mahalliylashtirilgan dimens.xml dan foydalaning. Turli rang simvolikasiga ega mintaqalar uchun (oq — Xitoyda motam) — mahalliylashtirilgan colors.xml.

Qurilmada lokalizatsiyani tekshirish

Sinov — qurilma tilini Sozlamalar → Tizim → Til orqali maqsadli tilga o'zgartiring. Tekshiring: barcha satrlar tarjima qilingan, sanalar to'g'ri formatlangan, raqamlar to'g'ri ajratkich bilan ko'rsatilgan, tasvirlar mintaqaga mos, layout uzun satrlarda "buzilmaydi". Avtomatlashtirish uchun Espresso bilan LocaleTestRule (Android Testing Library) dan foydalaning — bu tilni qo'lda o'zgartirmasdan turli lokalizatsiyalar bilan testlarni ishga tushirish imkonini beradi.

Madaniy moslashtirish: matndan tashqari nimani tarjima qilish kerak

Madaniy xususiyatlar — lokalizatsiya faqat satrlarni tarjima qilish bilan cheklanmaydi. Rang simvolikasi farqlanadi: qizil — Xitoyda omad, AQShda xavf, Janubiy Afrikada motam. Oq — Yevropada poklik, Xitoyda motam. Imo-ishorali piktogrammalar: bosh barmoq yuqoriga — AQShda ijobiy, Yaqin Sharqda haqorat. Odam tasvirlari: arab mamlakatlarida cho'milish kostyumidagi ayol tasvirlari qabul qilinishi mumkin emas. Diniy ramzlar: xoch, yarim oy, Dovud yulduzi faqat tegishli kontekstda ishlatilishi kerak.

Huquqiy talablar — har bir mamlakatning raqamli mahsulotlar haqida o'z qonunlari bor. GDPR (Yevropa Ittifoqi) — cookies va ma'lumotlarni qayta ishlash uchun majburiy rozilik. CCPA (Kaliforniya) — ma'lumotlarni o'chirish huquqi. Shaxsiy ma'lumotlar to'g'risidagi qonun (Rossiya, 152-FZ) — ma'lumotlarni RF serverlarida saqlash. LGPD (Braziliya) — GDPR analogi. To'lovlar: Xitoyda Alipay/WeChat Pay, Hindistonda — UPI, Braziliyada — Boleto va PIX kerak. Lokalizatsiyani boshlashdan oldin mintaqa uchun to'lov shlyuzini sozlang.

AspektAQShXitoyBAAGermaniya
To'lov tizimiApple Pay, kartalarAlipay, WeChat PayKartalar, Apple PayPayPal, Giropay
Brend ranglariIstalganQizil — omadYashil — islomQora/sariq
Ijtimoiy tarmoqlarInstagram, XWeChat, DouyinWhatsApp, XWhatsApp, X
SanaMM/dd/yyyyyyyy/MM/dddd/MM/yyyydd.MM.yyyy
Ma'lumot qonuniCCPAPIPLPDPLGDPR

Misollar va kontent — misollarni mintaqaga moslashtiring. Nemis lokalizatsiyasi uchun metrik tizimdan (kg, km), Amerika uchun — imperial tizimdan (lb, mi) foydalaning. Telefon raqamlari, pochta indekslari, manzillar — turlicha formatlanadi. Valyuta misollari: Yaponiyada ¥1000, AQShda $9.99, Rossiyada 999 ₽. Ovqat, kiyim-kechak, interyer tasvirlari mintaqaviy standartlarga mos kelishi kerak. IT Sectr-da madaniy moslashtirishni tekshirish uchun mahalliy maslahatchilarni yollashni tavsiya qilamiz.

Lokalizatsiya jarayoni: vositalar, tarjimonlar, CI/CD

Lokalizatsiya vositalari — professional platformalar jarayonni avtomatlashtiradi: Lokalise, Crowdin, POEditor, Smartling, Phrase. Ular repozitoriy bilan integratsiyalanadi, avtomatik yangi satrlarni import qiladi, o'zgarishlarni kuzatadi (Delta updates — faqat o'zgartirilgan satrlar tarjima qilinadi), Translation Memory (TM — avval tarjima qilingan iboralarni saqlash) va Glossary (atamalar lug'ati) taqdim etadi. Professional tarjimaning o'rtacha narxi: so'z boshiga $0.08–0.15 (tilga qarab).

Jarayon — (1) Dasturchi i18n kalitlarini kodga qo'shadi, repozitoriyga yuboradi. (2) CI/CD (GitHub Actions / GitLab CI) avtomatik yangi kalitlarni lokalizatsiya platformasiga yuboradi. (3) Tarjimonlar bildirishnoma oladi, tarjima qiladi, saqlaydi. (4) Tarjima qilingan fayllar avtomatik repozitoriyda PR yaratadi. (5) QA qurilmalarda lokalizatsiyani tekshiradi. (6) Reliz. Bitta lokalizatsiya uchun sikl: 2–5 ish kuni (hajmga qarab). 10 lokalizatsiya uchun: tarjimonlarning parallel ishi bilan 5–15 kun.

Machine Translation + Human Review — zamonaviy standart. Neyron tarmoq tarjimasi (DeepL, Google Translate, GPT-4) mashhur til juftlari uchun 80–90% sifat beradi. Inson-tarjimon tekshiradi: terminologiya, kontekst (so'zlar turli ekranlarda turlicha ma'noga ega bo'lishi mumkin), madaniy moslashtirish. IT Sectr-da gibrid yondashuvdan foydalanamiz: ML tarjima + ona tilida so'zlovchining ko'rib chiqishi. Kritik satrlar (huquqiy, to'lov) uchun — faqat professional tarjimon. Tejamkorlik: sifatni saqlagan holda xarajatlarning 60% gacha.

Ko'p beriladigan savollar

Lokalizatsiya xalqarolashtirishdan nimasi bilan farq qiladi?

Xalqarolashtirish — kodni tarjimaga tayyorlash (satrlarni chiqarish, RTL, formatlash). Lokalizatsiya — tarjima va madaniy moslashtirish. i18n dasturchi tomonidan bir marta, l10n esa tarjimon tomonidan har bir til uchun amalga oshiriladi. i18n l10n holda — ilova tarjimaga tayyor, ammo tarjima qilinmagan. l10n i18n holda — har bir til uchun kodni qayta yozish kerak.

iOS-da tarjimalar qayerda saqlanadi?

Localizable.strings fayllarida .lproj papkalari ichida. Har bir til uchun: en.lproj (ingliz), ru.lproj (rus), de.lproj (nemis). Format: "kalit" = "qiymat";. Ko'plik uchun — Localizable.stringsdict. Ilova sozlamalari (CFBundleDisplayName) — InfoPlist.strings-da. Xcode .lproj-ni Base Internationalization orqali boshqaradi.

Android-da values-ru nima?

values-ru — Rus tili uchun Android resurs katalogi. Tarjimalar bilan strings.xml ni o'z ichiga oladi. Boshqa tillar uchun ham xuddi shunday: values-de (nemis), values-fr (fransuz). Android tizim tiliga qarab resurslarni tanlaydi. Agar values-ru topilmasa — values/ (asosiy til, odatda ingliz) ishlatiladi.

Turli mintaqalar uchun sanalarni qanday formatlash kerak?

Har doim Locale API dan foydalaning. iOS: DateFormatter.locale = Locale(identifier: locale). Android: DateFormat.getDateInstance(DateFormat.SHORT, locale). Rossiya: 31.12.2024. AQSh: 12/31/2024. Yaponiya: 2024/12/31. Hech qachon qattiq formatni o'rnatmang — har bir mamlakatning o'z standartlari bor. Sanalarni kiritish uchun UIDatePicker / DatePicker dan foydalaning.

Global ilova uchun qancha lokalizatsiya kerak?

Global qamrov uchun 10–15 til yetarli: ingliz, ispan, fransuz, nemis, yapon, xitoy, koreys, portugal, rus, italyan, arab. Mintaqaviy uchun — 1–2 til. Har bir qo'shimcha lokalizatsiya tegishli mintaqada organik o'rnatishlarni 5–15% ga oshiradi. App Store kamida ingliz lokalizatsiyasini talab qiladi.

Xulosa

  • Localization (l10n) — kontentni aniq til va mintaqaga tarjima qilish va madaniy moslashtirish
  • iOS — .lproj papkalarida Localizable.strings, Base Internationalization, InfoPlist.strings
  • Android — values-ru/strings.xml, qualifiers orqali mahalliylashtirilgan drawable va layout
  • Madaniy moslashtirish — ranglar, piktogrammalar, imo-ishoralar, to'lov tizimlari, huquqiy talablar
  • Jarayon — CI/CD → lokalizatsiya platformasi → tarjimon → QA → reliz (til uchun 2–5 kun)
  • Gibrid yondashuv — ML tarjima (DeepL, GPT) + ona tilida so'zlovchining ko'rib chiqishi 60% tejamkorlik uchun
  • Rentabellik — foydalanuvchilarning 76% faqat ona tilida xarid qiladi (CSA Research, 2023)

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing