24.4 · Testing localisation, and sorting, calendars and names by locale
Translating strings is the easy part of localisation. The bugs come from layouts that cannot hold longer text, comparisons that assume English, and dates and calendars that assume one culture.
Mental model. Make the app work in any locale before you ship any translation: test with pseudo-languages and launch arguments, and let the system do the comparing and formatting.
Testing
Pseudolanguages, launch arguments, export and import, and language versus region.
- How do you test internationalisation before translations exist: pseudolanguages, launch arguments, text expansion and the export and import workflow?
You do not need translators to find most internationalisation bugs. Xcode’s scheme (Run ▸ Options ▸ App Language) offers pseudolanguages: the Double-Length one…
Locale-aware behaviour
Sorting, searching, first weekday, calendars and names.
- What changes by locale beyond strings: sorting and searching, the first day of the week, calendars, names and addresses?
Sorting and searching depend on the language. Where “ä” sorts differs: in German it sorts with “a”, in Swedish it is a separate letter after “z”. The check…
More in Accessibility & localization
- 24.1 · VoiceOver, accessibility elements and the other ways people use an app
- 24.2 · Dynamic Type, display settings, contrast and touch targets
- 24.3 · Right-to-left layout, bidirectional text and number systems
- 24.5 · Auditing and testing accessibility, and making it a bar, not a backlog
- 24.6 · Building and testing accessible components
- 24.7 · Adaptive colour, font fallback and mirrored drawing
- 24.8 · Language matching, plural rules, string catalogs and Info.plist strings
- 24.9 · Unicode equivalence, word boundaries and regional defaults