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 つの文字コードです。

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

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

最終結果

この操作ガイドを使用して作成された [UEProjectDir]/Build/IOS/Resources/Localization/ フォルダは、Unreal Engine がプロジェクトをパッケージ化して .IPA ファイルを作成するときにコピーされます。iOS プロジェクトをパッケージ化するとすべての文字列が翻訳されるので、プロジェクトは Apple に送信できる状態になります。

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