Localize ‘plist' and ‘NSLocalizedString' in an iOS Project

This page shows how to identify strings in the project code that need to be translated.

On this page

There may be situations where you want to deploy your iOS project with different languages. If you are localizing your iOS project, you must identify and translate any strings in your code. This is a requirement for submitting your iOS app. In this How-To, you will learn how to create files that translate strings in your code.


  1. Create a folder for each language in the {UEProjectDir}/Build/IOS/Resources/Localization/ directory. Name each folder {LanguageCode}.lproj. For example, EN.lproj, where EN is the language code for English; FR.lproj, where FR is the language code for French; JA.lproj, where JA is the language code for Japanese, and so on.

    The language codes used here are the two character codes used in the ISO 639-2 standard .

  2. In each language folder, create a text file named InfoPlist.strings . The InfoPlist.strings file translates all strings in the info.plist file of your iOS project.

  3. In each language folder, create a text file named Localizable.strings. The Localizable.strings file translates all strings in all the code files of your iOS project.

For example, for an application named "Lovely Game" your object-c code contains the following lines:

NSString* allRightText = NSLocalizedString(@"All right", @"All right");
NSString* cancelText = NSLocalizedString(@"Cancel", @"Cancel");

The following table shows some examples of how you modify the InfoPlist.strings file and Localizable.strings file for various languages.


InfoPlist.strings File Code

Localizable.strings File Code


"CFBundleDisplayName" = "Lovely Game"; "NSCameraUsageDescription" = "The camera is needed to take a picture";

/<em> All right </em>/
"All right" = "All right"; /<em> Cancel </em>/
"Cancel" = "Cancel";


"CFBundleDisplayName" = "可爱的游戏"; "NSCameraUsageDescription" = "需要摄像头用于拍照";

/<em> OK </em>/ "OK" = "确定";
/<em> Cancel </em>/
"Cancel" = "取消";


"CFBundleDisplayName" = "Beau Jeu"; "NSCameraUsageDescription" = "L'appareil photo est nécessaire pour prendre une photo";

/<em> All right </em>/
"All right" = "D'accord";
/<em> Cancel </em>/
"Cancel" = "Annuler";

End Result

The [UEProjectDir]/Build/IOS/Resources/Localization/ folder, created using this How-To, is copied when the Unreal Engine packages your project to create an .IPA file. Your packaged iOS project will have all strings translated, and so your iOS project will be ready to submit to Apple.

Select Skin
Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback