Skip to content

ローカライズ

すべてのゲームリソース(スクリプト、オーディオ、音声、背景など)は、複数の言語/文化にローカライズできます。

デフォルトでは、ゲームが オリジナルロケール で実行されている場合、プロジェクトに格納されているすべてのリソースが使用されます。たとえば、最初にゲームを英語で開発するとします。作成したオリジナル(ソース)のnaninovelスクリプト、UI、背景のサインなどはすべて英語です。この場合 オリジナルロケールen (または地域別のロケールを使用する場合 en-GB / en-US)です。

オリジナルロケールNaninovel -> Configuration -> LocalizationSource Locale プロパティで変更できます。Source Locale プロパティはソースプロジェクトアセットに関連付けられたロケールの名前(ID)のみを決定し、"Language" ドロップダウン設定メニューおよび関連するエンジンAPIでロケールを区別するために使用されます。

Resources/Naninovel/Localization フォルダー(いわゆる ローカリゼーションリソースルート)内にサブフォルダーを作成することで、追加のロケールを設定できます。名前はローカライズしたい RFC5646 ↗ 言語タグと同じにします。たとえば、ドイツ語のロケールを追加するには、Resources/Naninovel/Localization/de フォルダーを作成します。ゲーム設定UIの "Language" ドロップダウンリストには、追加されたすべてのロケールが自動的に組み込まれます。

オリジナルロケール のサブフォルダを ローカリゼーションリソースルート に作成する必要はありません。ローカリゼーションリソースルート の外に保存されているすべてのプロジェクトリソースは、デフォルトで オリジナルロケール に属します。

ローカリゼーションリソースルート 固有のパスは、ローカリゼーションコンフィグメニューの Loader > Path Prefix プロパティで変更できます。構成するパスは ("Assets"ではなく) "Resources" フォルダーへの相対パスであることに注意してください。リソースフォルダーは、Unityによって特別な方法で処理されます ↗。プロジェクトアセット内の任意の場所に、そのような複数のフォルダを保存して整理できます。

ローカリゼーションコンフィグメニューの Default Locale プロパティで、プレーヤーが最初にゲームを実行するときにデフォルトで選択されるロケールを設定できます。プロパティが指定されていない場合、ゲームはデフォルトで オリジナルロケール で起動します。

cover

リソースのローカライズ

ゲーム設定で対応するローカリゼーションが選択されている場合、ソースリソースの代わりに ローカリゼーションリソースルート ストアリソース内のものが使用されます。

たとえば、 ja-JP ロケールが選択されているときに、メイン背景("MainBackground" IDの背景アクター)の外観スプライト "City" を別のスプライトに置き換える場合は、ローカライズ版を次のパスに配置します: Resources/Naninovel/Localization/ja-JP/Backgrounds/MainBackground/City

スクリプトのローカライズ

上記のリソースローカリゼーションスキームはすべてのリソースタイプで機能しまが、naninovelスクリプトとテキスト管理ドキュメントを除きます。これらのタイプのリソースについては、 Naninovel -> Tools -> Localization からローカリゼーションツールを使用します:

Localization Toolcover

まず、生成されたローカリゼーションリソースを保存するロケールフォルダーへのパスを選択します。ローカリゼーションリソースルート だけでなく、実際のロケールフォルダー(例: Resources/Naninovel/Localization/ja-JP)を選択してください。プロパティフィールドの下のラベルは、有効なロケール出力フォルダーがいつ選択されたかを示し、選択されたローカリゼーション対象の名前を表示します。

"Try update" プロパティを有効にすると、現在存在するローカリゼーションリソースを保持しようとします。 無効にすると、指定したパスにある既存のローカリゼーションリソースはすべて失われます。

"Localize text" を有効にすると、テキスト管理 のローカリゼーションドキュメントも作成されます。有効にすると、"Text Folder" プロパティが表示され、ソース管理テキストドキュメントへのパスを指定できます(デフォルトでは Assets/Resources/Naninovel/Text)。ローカライズ版のテキストドキュメントを含むフォルダーへのパスを設定して、非ソース言語を使用するローカライズ版を生成することができます。

"Generate" ボタンを押して、ローカリゼーションリソースを作成(更新)します。

スクリプトのローカリゼーションドキュメントは、次の形式のステートメントで構成されています:

nani
# ID
; Source text
Translation text

# ID 行は、naninovelスクリプト内のソースステートメントのユニークな識別子です。変更しないでください。

; Source text の行は、翻訳する元のテキストです。これは単なるコメントなので、この行を変更しても影響はありません。便宜上提供されています。

実際の翻訳は、ソーステキストを含むコメント行の直後に置く必要があります。翻訳には任意の量の行を使用できます。必ず次の # ID 行の前に配置してください。

以下は、一般テキストの翻訳例です。

nani
# f63f03ea
; Yuko: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam ut ultricies enim, id venenatis arcu. Nullam rhoncus eros eu ante vulputate tempus.
Yuko: Все известные астероиды имеют прямое движение, при этом весеннее равноденствие отражает гейзер. Уравнение времени однократно. Большая Медведица, оценивая блеск освещенного металлического шарика, пространственно притягивает первоначальный метеорный дождь.

翻訳に必要なスペースが多すぎる場合は、別のコマンドに分割できます:

nani
# f63f03ea
; Yuko: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam ut ultricies enim, id venenatis arcu. Nullam rhoncus eros eu ante vulputate tempus.
Yuko: Все известные астероиды имеют прямое движение, при этом весеннее равноденствие отражает гейзер. Уравнение времени однократно.
Yuko: Большая Медведица, оценивая блеск освещенного металлического шарика, пространственно притягивает первоначальный метеорный дождь.

ソースに存在するインラインコマンドは、翻訳に含める必要があります:

nani
# b53b395d
; Kohaku: Qui ante molestie sit tempor felis.[br 2][char Kohaku.Casual/Angry][style #ff0000,bold,45]Adipiscing elit?[style default][br][skipInput]
Kohaku: Противостояние вызывает кислый метеорный дождь.[br 2][char Kohaku.Casual/Angry][style #ff0000,bold,45]Меандр разрушаем?[style default][br][skipInput]

WARNING

キャラクターIDは翻訳しないでください (他のアクターIDも同様です)。そうすると一部の機能(キャラクターのハイライトや口パクなど)が機能しなくなります。 テキストプリンターに表示された著者名を翻訳したい場合は、代わりに 表示名 をお使いください。

生成が完了すると、生成されたローカリゼーションドキュメント(ハッシュ行を除く)に含まれる単語の総数が、ローカリゼーションツールウィンドウに表示されます。

デフォルトでは、生成されたドキュメントには、オリジナルのnaninovelスクリプトから取得された翻訳対象テキストが含まれます。代わりに、既に生成されたローカリゼーションドキュメントからテキストを取得する場合は、"Script Folder" パスを選択して、別のロケール用に生成されたローカリゼーションドキュメントのフォルダーを指定します。たとえば、オリジナルロケールがスペイン語だとします。デフォルトでは、ローカリゼーションドキュメントにはスペイン語のソーステキストが含まれます。しかし、すでにスペイン語->英語の翻訳があり、英語->ロシア語のドキュメントを生成する必要がある場合はどうでしょうか。この場合 "Script Folder" に、英語のドキュメントが保存されているフォルダーを指定するだけです。生成されたドキュメントには、英語の翻訳から取得したテキストが含まれます。

EXAMPLE

ローカリゼーション設定の例は、 デモプロジェクトにあります ご自身のプロジェクトでローカリゼーションの設定に問題が発生した場合の参考としてご利用ください。