Tricky Back-Compatible Localization
summary
Android 13’s per-app language preference is backported via AppCompat 1.6 and implemented by calling AppCompatDelegate.setApplicationLocales to install a new Configuration per activity; integration on a 280M-install app exposes problems: Indonesian uses conflicting codes (in/id), which triggers back-end validation errors and required two fixes; widgets driven from the server needed fresh localized payloads; using activity context and a TextResolver pattern fixes most UI strings and unit tests, and an application-level resource wrapper that delegates string lookups resolves a WebView crash so the feature works.
AI-written summary · about
chapters (20)
- 0:00Introduction and speaker intro
- 1:32About Flow app and quiz
- 3:44Why localization matters
- 4:05Per-app language preference feature
- 7:13Integration steps and ISO 639 issue
- 10:04Android’s language resolution logic
- 13:45Reintegrating the feature
- 15:14Widget language mismatch
- 16:37Android 11 vs 13 differences
- 17:19Understanding resource retrieval
- 20:11AppCompat library implementation
- 24:45Optimization in AppCompat
- 25:29Applying new languages to app
- 28:30Activity recreation mechanism
- 30:00Context usage recommendations
- 30:20Text resolver approach
- 31:25Testing with new approach
- 32:33Quick fix for legacy apps
- 33:59WebView crash and solution
- 35:46Achievements and closing
related talks
25mLocalization: Implementation and Testing... Locally
19mSimeon Griggs-Localization for real-world use-cases: Key learnings from onboarding global brands
22mInternationalisation(i18n) & Localisation(l10n)
08mLocalization for Real-World Use-Cases: Key Learnings from Onboarding Global Brands
35mEnter Frontend Localization - Pitfalls and Solution Approaches
23mDriving Seamless Localization
53mInternationalization - Translating Applications in Qt
20mFinding translations, localisation and internationalisation
