Mobile Application Localization to Uzbek Language
Uzbek language — formally one, but technically exists in two active writing systems: Cyrillic (senior audience, rural areas) and Latin (official since 1993, youth, urban environment). Most products targeting Uzbekistan support both. This not doubling work, but additional logic for writing selection.
Locale and Writing Systems
iOS locale: uz_UZ (Uzbek Cyrillic by default on old systems) and uz_Latn_UZ (Latin). Android similarly: uz → Cyrillic historically, uz-Latn → Latin.
Real system behavior depends on OS version and device regional settings. Reliable approach — determine writing preference explicitly: give user choice in app settings and save in UserDefaults (iOS) or SharedPreferences (Android).
Uzbek Latin contains specific characters: Oʻ (O with hook) and Gʻ (G with hook) — not standard Unicode O and G with diacritics, but specific code points. System fonts support, custom — check.
Cyrillic Uzbek contains Ў (short u) and Қ, Ғ, Ҳ, Ң — similar to Kazakh, but set slightly different.
Plural Forms
Uzbek — agglutinative language (Turkic group). By CLDR plural rules: only one and other. Technically simpler than Russian — two forms sufficient. But case suffixes when substituting nouns require same approach as Kazakh: rephrase strings to avoid problematic agreements.
Example: "5 ta xabar" (5 messages in Latin) — noun doesn't change, numeral "ta" used as plurality particle. Translator must account for this structure.
Text Direction
Uzbek — LTR in both writing systems. Layout doesn't change.
Formats
DateFormatter with Locale(identifier: "uz_Latn_UZ") for Latin Uzbek. Date format: DD/MM/YYYY. Numbers: thousands separator — space, decimal — comma: "1 234,56".
If application works with currency — Uzbek sum (UZS). NumberFormatter with currencyCode: "UZS" and uz_UZ locale.
Implementation Practice
Standard workflow:
- Export strings to XLIFF (iOS) or Android Localization strings
- Translation with native speaker verification (separate Cyrillic and Latin if supporting both)
- Add
uz.lprojanduz-Latn.lprojon iOS,values-uzandvalues-b+uz+Latnon Android - Testing with both system locales
Machine translation to Uzbek — worse than to Russian or English. For UI strings with legal meaning (privacy policy, consents) — mandatory native speaker.
Timeframe: three to five working days with one writing system support, five to eight with both — including testing and translation verification.







