ゲームの国際化

はじめに

Sería excelente que el mundo hablara solo un idioma(世界が一つの言語しか話さなかったら素晴らしいことだ)。残念ながら、私たち開発者にとっては、そうではありません。インディーズのゲームやニッチなゲームは通常ローカライズを必要としませんが、より大規模な市場をターゲットにしたゲームは、多くの場合、ローカライズを必要とします。Godot は、このプロセスをより簡単にするための多くのツールを提供しています。このチュートリアルは、ヒントとコツを集めたようなものです。

ローカライズは通常、仕事のために雇われた特定のスタジオによって行われ、このために利用可能なソフトウェアとファイル形式の膨大な量にもかかわらず、今日にローカライズを行う最も一般的な方法は、まだスプレッドシートです。スプレッドシートの作成とインポートのプロセスについては、翻訳のインポートチュートリアルですでに説明されています。

注釈

公式デモを例に使用します。アセットライブラリからダウンロードできます。download it from the Asset Library

インポートされた翻訳の構成

翻訳は変更時に更新および再インポートできますが、プロジェクトに追加する必要があります。これは プロジェクト → プロジェクト設定 → ローカライズ で行います:

../../_images/localization_dialog.png

上記のダイアログは、プロジェクト全体の翻訳を追加または削除するために使用されます。

リソースのローカライズ

また、現在の言語に応じて、アセット(リソース)の代替バージョンを使用するようにGodotに指示することもできます。Remapsタブは、次の場合に使用できます:

../../_images/localization_remaps.png

リマップするリソースを選択し、ロケールごとに代替手段を追加します。

キーをテキストに変換する

ButtonLabelなどの一部のコントロールは、テキストが翻訳キーと一致する場合に自動的に翻訳を取得します。たとえば、ラベルのテキストが「MAIN_SCREEN_GREETING1」で、そのキーが現在の翻訳に存在する場合、テキストは自動的に翻訳されます。

コードでは、Object.tr() 関数を使用できます。これにより、翻訳のテキストが検索され、見つかった場合は変換されます:

level.set_text(tr("LEVEL_5_NAME"))
status.set_text(tr("GAME_STATUS_" + str(status_index)))

コントロールのサイズを変更可能にする

異なる言語で同じテキストの長さが大きく異なる場合があります。このためには、コントロール サイズを動的に調整すると役立つ可能性があるため、サイズとアンカー のチュートリアルを必ずお読みください。Container だけでなく、Label で使用できるテキストの折り返しオプションも便利です。

翻訳サーバー

Godot には、TranslationServer と呼ばれる低レベルの翻訳管理を処理するサーバーがあります。翻訳は、実行時に追加または削除できます。現在の言語は、実行時に変更することもできます。

コマンドライン

コマンドラインからGodotを実行するときに、言語をテストできます。たとえば、フランス語でゲームをテストするには、次の引数を指定できます:

godot --language fr

プロジェクト名の翻訳

異なるオペレーティングシステムやプラットフォームにエクスポートするときに、プロジェクト名がアプリ名になります。複数の言語でプロジェクト名を指定するには、プロジェクト設定 で新しい設定 application/name を作成し、ロケール識別子を追加します。たとえば、スペイン語の場合、これは application/name_es になります:

../../_images/localized_name.png

使用する言語コードが不明な場合は、list of locale codes を参照して下さい。