本地化iOS项目中的"plist"和"NSLocalizedString"

本页面将显示如何识别项目代码中需要翻译的字符串。

Windows
MacOS
Linux
On this page

在某些情况下,您可能想要使用不同的语言部署iOS项目。如果要将iOS项目本地化,您必须识别并翻译代码中的所有字符串。要提交iOS应用程序,这是必要的。在本指南中,您将了解如何创建翻译代码中的字符串的文件。

步骤

  1. 在"{UEProjectDir}/Build/IOS/Resources/Localization/"目录中为每种语言创建一个文件夹。将每个文件夹命名为"{LanguageCode}.lproj"。例如,"EN.lproj",其中"EN"是英语的语言代码;"FR.lproj",其中"FR"是法语的语言代码;"JA.lproj",其中"JA"是日语的语言代码。

    这里使用的语言代码是ISO 639-2标准 中使用的双字符代码。

  2. 在每个语言文件夹中,创建一个名为"InfoPlist.strings"的文本文件。"InfoPlist.strings"文件将翻译iOS项目的"info.plist"文件中的所有字符串。

  3. 在每个语言文件夹中,创建一个名为"Localizable.strings"的文本文件。"Localizable.strings"文件将翻译iOS项目的所有代码文件中的所有字符串。

例如,对于名为"Lovely Game"的应用程序,您的object-c代码包含以下行:

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

下表显示了一些如何针对各种语言修改"InfoPlist.strings"文件和"Localizable.strings"文件的示例。

语言

InfoPlist.strings文件代码

Localizable.strings文件代码

英语

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

最终结果

当虚幻引擎打包您的项目以创建".IPA"文件时,将复制使用本指南创建的"[UEProjectDir]/Build/IOS/Resources/Localization/"文件夹。您打包的iOS项目将会翻译所有字符串,因此您将可以随时向Apple提交您的iOS项目。

Tags
Select Skin
Light
Dark

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