iOS プロジェクトで plist と NSLocalizedString をローカライズする

このページでは、翻訳が必要なプロジェクト コード内の文字列を識別する方法を説明します。

コンテンツ

iOS プロジェクトコード内の文字列を識別して翻訳するために、Unreal Engine にローカリゼーション ファイルを追加することができます。

このページでは、ローカリゼーション ファイルとフォルダを作成することによって、文字列翻訳のセットアップ方法を説明します。

デベロッパーは、iOS プロジェクトをサブミットする前に、最低 1 言語に対するローカリゼーション ファイルを追加することが求められます。

手順

  1. ローカリゼーション フォルダがまだ存在していない場合は、パス「{UEProjectDir}/Build/IOS/Resources/Localizations/」の Unreal Engine プロジェクト ディレクトリの中にフォルダを作成します。

  2. Localizations」フォルダに移動し、1 言語に対して 1 フォルダを作成します。これらのフォルダは {LanguageCode}.lproj 形式に従って名前を付けなければなりません。たとえば、英語のローカリゼーション フォルダは EN.lproj となります。この場合、EN は英語の言語コードです。

    ローカリゼーション フォルダは ISO 639-2 standard にリストされている各言語の 2 文字でなるコードで名前と付ける必要があります。

  3. 各言語フォルダに InfoPlist.strings という名前でテキスト ファイルを作成します。このファイルは、iOS プロジェクトの info.plist ファイルにリストされている文字列を翻訳します。

  4. 各言語フォルダに Localizable.strings という名前でテキストファイルを作成します。このファイルは、iOS プロジェクトのすべてのコード ファイル内の文字列を翻訳します。

たとえば、 「Lovely Game」という名前のアプリケーションの場合、Objective-C コードには次の行が含まれています。

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

次の表は、InfoPlist.strings ファイルと Localizable.strings ファイルをさまざまな言語に変更する方法の例をいくつか示しています。

言語

InfoPlist.strings ファイルのコード

Localizable.strings ファイルのコード

English

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

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

Chinese

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

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

French

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

/* All right */ "All right" = "D'accord"; /* Cancel */ "Cancel" = "Annuler";

最終結果

新規作成されたローカリゼーション フォルダは Unreal Engine が iOS プロジェクトをパッケージ化する時にコピーされます。

iOS プロジェクトをパッケージ化するとすべての文字列が翻訳されるので、プロジェクトは Apple に送信できる状態になります。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル