Page Info
Engine Version:

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

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";

/* All right */
"All right" = "All right"; /* Cancel */
"Cancel" = "Cancel";


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

/* OK */ "OK" = "确定";
/* Cancel */
"Cancel" = "取消";


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

/* All right */
"All right" = "D'accord";
/* Cancel */
"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.