Implementing Multilanguage (i18n) Support in Mobile App

NOVASOLUTIONS.TECHNOLOGY is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.
Development and support of all types of mobile applications:
Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1 servicesAll 1735 services
Implementing Multilanguage (i18n) Support in Mobile App
Medium
~3-5 business days
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1054
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    445

Mobile Application Multilingual Support (i18n)

Adding one language and adding support for N languages — different architectural tasks. When languages two — can manage with straightforward approach. When five or more — without properly built i18n infrastructure, each new language adds pain: missed strings, broken plurals, date formatting for wrong locale, and inability to give translation to team without code access.

i18n Architecture: From Simple to Proper

iOS

Standard — Localizable.strings + .stringsdict for plurals + XLIFF for translator exchange. String(localized:) API (Swift 5.5+) — preferred way, because supports interpolation, plural rules and translator comment in one call:

let message = String(localized: "notifications.count \(count)",
                     comment: "Number of unread notifications in tab bar")

For large projects with 1000+ strings and multiple teams — String Catalog (.xcstrings, Xcode 15+). Replaces scattered .strings files single JSON with built-in diff and untranslated string warnings directly in IDE.

Android

strings.xml in res/values/ (base) + res/values-{lang}/ for each language. plurals in same file. For parametric strings — named arguments:

<string name="welcome_user">Welcome, %1$s!</string>

%1$s instead of %s — mandatory with multiple arguments, because word order differs in languages.

React Native

react-i18next — de facto standard. Namespaces for module split (auth, profile, feed), lazy load namespaces to not load all translations at once. Plural forms through i18next-icu plugin with ICU Message Format — correctly handles Russian, Ukrainian, Polish plural rules without custom resolvers.

Flutter

flutter_localizations + intl package. ARB-files (Application Resource Bundle) — Flutter i18n standard. flutter gen-l10n generates type-safe Dart classes from ARB-files, excludes string key typos:

Text(AppLocalizations.of(context)!.notificationCount(count))

Instead string keys — methods with parameters. Plural forms described directly in ARB through ICU syntax.

Dynamic Language Switching

System locale — not always what user needs. Some apps provide language choice in settings. On iOS officially supported through CFBundleLocalizations in Info.plist + storing user choice. On Android — through AppCompatDelegate.setApplicationLocales() (AndroidX API, Android 13+) or manual Resources.updateConfiguration() replacement on old versions.

Runtime language change important: all formatters (dates, numbers, currencies) recreate with new locale. Cached DateFormatter with hardcoded locale remain on old language.

Plural Forms: Summary Table

Language Number of Forms Complexity
English 2 (one/other) Low
Ukrainian 3 (one/few/many) Medium
Russian 3 (one/few/many) Medium
Polish 4 (one/few/many/other) High
Arabic 6 forms Very high
Chinese 1 form None

ICU Message Format + i18next-icu or Flutter intl handle all variants automatically. Manual branching in code by form count — antipattern, breaks with each new language.

CI/CD and Translation Quality

Integrate checks into pipeline:

  • String lint: twine (iOS), android-strings-lint — find missed translations, unused keys, unescaped special characters
  • Screenshot tests: fastlane snapshot (iOS) or screengrab (Android) — auto make screenshots on all languages, UI regression visible immediately
  • Translation Management System: Phrase, Lokalise, Crowdin — sync strings between code and translator team through API, without manual XLIFF export/import

Timeframe: from three to ten working days depending on platform, number of languages and ready infrastructure presence.