iOS App Localization Display Rules: CFBundleDisplayName and CFBundleDevelopmentRegion Behavior
The article examines how iOS determines an app’s displayed name by testing various Info.plist and .lproj configurations, revealing five rules that show CFBundleDisplayName is used only without localization, while CFBundleDevelopmentRegion influences name selection only when matching a single localized folder, and is ignored when multiple localizations—including or excluding English—are present, with plutil highlighted as a useful tool for inspecting and editing these files.
This article explores the behavior of iOS app localization, specifically focusing on how the CFBundleDisplayName and CFBundleDevelopmentRegion keys affect app name display across different system languages. The author investigates a scenario where an app's Chinese name doesn't display correctly when switching system languages.
The article begins by explaining the standard localization approach using Info.plist and InfoPlist.strings files. It then introduces a useful technique using the macOS plutil command to convert InfoPlist.strings files between XML, JSON, and binary formats, allowing developers to view and modify localization content.
Through systematic testing by modifying IPA packages and reinstalling on devices, the author establishes five key conclusions about app name display behavior:
1. Without localization (.lproj folders), the app displays the CFBundleDisplayName value from Info.plist. 2. With one .lproj folder matching CFBundleDevelopmentRegion, it displays the localized name. 3. With one .lproj folder not matching CFBundleDevelopmentRegion, it shows the localized name for matching system languages and falls back to CFBundleDisplayName for others. 4. With multiple .lproj folders including English, it displays the matching language or defaults to English, ignoring CFBundleDevelopmentRegion and CFBundleDisplayName. 5. With multiple .lproj folders without English, it displays matching languages or defaults to an unspecified .lproj, also ignoring CFBundleDevelopmentRegion and CFBundleDisplayName.
The article concludes that plutil is a valuable tool for modifying localization files, and emphasizes the importance of understanding how CFBundleDevelopmentRegion interacts with localization configurations in different scenarios.
37 Interactive Technology Team
37 Interactive Technology Center
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.