The name under the icon comes from the CFBundleDisplayName key in Info.plist, and the user-visible Info.plist keys can be localized like any other string. You leave Info.plist itself alone and provide a value per language for the key.
With String Catalogs (Xcode 15 and later), add a String Catalog named InfoPlist to the app target (File > New > File from Template, then String Catalog). On the next build Xcode fills InfoPlist.xcstrings with the localizable Info.plist keys, including CFBundleDisplayName and CFBundleName; add your languages and type the translated names.
Without String Catalogs, create a strings file named InfoPlist.strings, localize it from the File inspector so that you get en.lproj/InfoPlist.strings, de.lproj/InfoPlist.strings and so on, and put the keys in each copy:
/* de.lproj/InfoPlist.strings */
"CFBundleDisplayName" = "Wetter";
"CFBundleName" = "Wetter";
Localize CFBundleName together with CFBundleDisplayName. Apple's key reference asks for both, the system shows CFBundleName where no display name is set, and CFBundleName is limited to 15 characters. If you need the localized name in code, read Bundle.main.localizedInfoDictionary?["CFBundleDisplayName"].
The Home screen shows the name for the device language. If it still shows the old name after you run a new build, delete the app from the device or simulator and install it again.
The App Store listing is separate. Its name is entered per language in App Store Connect, under App Information, and it does not have to match the bundle's display name.
LSHasLocalizedDisplayName is a macOS key that tells the Finder and the Dock that the app has a localized display name. It appears only in Apple's archived macOS guides, not in the current Info.plist reference, and an iOS app does not need it.
Published Oct 9, 2026 · Markdown version