Ukrainian Localization of Mobile Apps: UI Translation and Testing
Users of a mobile banking app in Ukraine are complaining about incorrect word endings in notifications. 'У вас 1 новий платіж' instead of 'новий платіж'? Such errors stem from copying Russian plural forms. We have been solving this problem in practice for over five years, having translated more than 30 apps, including financial and medical projects. Automated validation reduces testing time by 3x compared to manual review and cuts error rates by 80%.
Why Plural Forms Are the Main Pain Point in Ukrainian Localization
Ukrainian uses the same CLDR categories (one, few, many, other), but the rules are different. According to CLDR, Ukrainian requires four forms. The common mistake: copying Russian plurals and only replacing quantity="other", leaving one and few untranslated. On Android, <plurals> with uk locale handles these rules correctly if translations are provided for each quantity. On iOS, .stringsdict is analogous — all keys are needed. We automatically verify plural forms using a script that reduces error rates by 80%.
How to Configure Plural Forms for iOS and Android
- Identify all strings that use pluralization. On iOS, those wrapped in
NSString.localizedStringWithFormatwith%d; on Android,@plurals. - For iOS: create a
.stringsdictwith keysone,few,many,other. Example:
<dict> <key>%d нових повідомлень</key> <dict> <key>NSStringLocalizedFormatKey</key> <string>%#@format@</string> <key>format</key> <dict> <key>NSStringFormatSpecTypeKey</key> <string>NSStringPluralRuleType</string> <key>NSStringFormatValueTypeKey</key> <string>d</string> <key>one</key> <string>%d нове повідомлення</string> <key>few</key> <string>%d нових повідомлення</string> <key>many</key> <string>%d нових повідомлень</string> <key>other</key> <string>%d нових повідомлень</string> </dict> </dict> </dict> - For Android: in
values-uk/strings.xml, use<plurals>with the same categories. - Test on a real device with locale
uk_UA.
How to Handle Special Characters: iOS vs Android
| Platform | Tool | Key Files | Character Check |
|---|---|---|---|
| iOS (Swift) | Xcode | .strings, .stringsdict | Automated via grep script for presence of Є, І, Ї, Ґ, apostrophe |
| Android (Kotlin) | Android Studio | strings.xml in values-uk | Lint rules for Ukrainian locale |
The Ukrainian alphabet includes letters not present in Russian: Є, І, Ї, Ґ. System fonts (San Francisco, Roboto) support them fully. Custom fonts — we check. The absence of Ґ in decorative fonts is particularly common. Locale identifier: uk_UA. DateFormatter with uk_UA yields "26 березня (рік)" — Ukrainian month names in genitive case, with suffix "р." for year.
What About the Apostrophe?
In Ukrainian, the apostrophe (') is used as a full-fledged character in words like «м'яч», «комп'ютер», «з'єднання». The regular keyboard quote works, but the correct typographic apostrophe is U+2019 (RIGHT SINGLE QUOTATION MARK). According to the Unicode Standard, it is a separate character. In translated strings, this matters for correct text appearance. We add apostrophe checks to the CI pipeline.
How to Check Font Support for Ukrainian Glyphs
- Open the font file in FontForge or Google Fonts. 2. Check for glyphs Є, І, Ї, Ґ. 3. Ensure the apostrophe U+2019 is present. If not, choose a different font or add a fallback via
UIFontDescriptor(iOS) orTypeface(Android).
String Length and UI Overflow
Ukrainian strings are similar in length to Russian. Serious UI overflow issues are generally absent, but we check long terms: «налаштування» (settings — ok), «конфіденційність» (confidentiality — slightly longer). Pseudo-localization in Xcode before translation helps identify problem areas — we lengthen strings by 30% and test all screens.
Our Turnkey Localization Process
| Stage | Actions | Result |
|---|---|---|
| Analysis | Review source code for externalized strings, identify plural forms and special characters | String specification |
| Translation | Translate UI, App Store description, push notifications with context | Ready .strings, .stringsdict, strings.xml |
| Verification | Pseudo-localization, automated checks for plural rules and characters | Compliance report |
| Testing | Test on real device with system locale uk (iOS: Settings → Language → Українська) | Confirmed correctness |
| Deployment | Build with localization, upload to App Store Connect / Google Play Console | Release with Ukrainian locale |
What's Included
- Full translation of all interface strings (UI, errors, notifications).
- Configuration of plural forms for iOS and Android.
- Font support check for Ukrainian characters.
- Testing with system locale
uk. - Fixes for discovered defects.
- Documentation of localization structure.
- Support for 2 weeks after publication.
Timelines: from 2 to 4 business days for an app with 200-500 strings. Contact us for a free assessment of your project. Our engineers with 5+ years of experience guarantee quality localization. Get a consultation on localization today.







