- 翻訳シートはUTF8形式のCSVファイルで出力(Excelから出力する際は指定に注意)
- 言語コードは 公式Doc ロケールコードで、確認可能
- 翻訳文の反映方法は、大きく以下2種類
- UIのTextプロパティに直接Key値を指定(静的な要素向け)
tr("キー値")
関数で設定
- 言語設定はデフォルトでOSの言語が適用。変更する際は、
TranslationServer.set_locale("言語コード")
を使用
Step1. 翻訳シートの作成
まずは各言語と、表示テキストを対応図けるための翻訳シートを作成していきます。
翻訳シートは、以下形式で構成され、それぞれのキー値と言語コードに対応する形でテキストを定義していきます。
keys
: 翻訳対象のキー(後述の tr(“START_GAME”) などで参照)ja
,en
: 言語コードに対応する列
※各言語ごとの言語コードは 公式Doc ロケールコードで、確認できます。

作成したシートは、文字化け防止のためUTF-8
エンコーディングを設定し、CSVで出力します。

Step2. Godotへのインポート
作成したCSVファイルを、Godotエディタのファイルシステムへドラッグアンドドロップし、インポートします。

Godotは、先ほど作成した形式のCSVをインポートすることで、自動的に指定した言語コードごとの翻訳ファイルを生成します。

生成された翻訳ファイルは、
プロジェクト設定 > ローカライズ > 翻訳 > 追加…
から、設定を行う必要があります。

以下のように、各翻訳ファイルが追加されていればOKです。

Step3. 翻訳テキストの反映
翻訳テキストのの反映方法には、大きく以下2種類があります。
① 直接Key値を設定(静的な要素向け)
ButtonノードのTextなど、テキストを扱うプロパティに、シートの「キー値」を入力・実行すると、現在の言語設定(デフォルトではOSと同言語)に対応したテキストが反映されることを確認できます。

➁ tr("キー値")関数による設定 (動的な設定)
GDScriptから、動的にキー値によるテキストの反映を行いたい場合は、 Object.tr( ) 関数を使用します。
以下の例では、ApplyというButton押下時のシグナルでキー値の反映を行っています。
func _on_apply_button_pressed():
text = tr("LANGUAGE")

Step4. 言語設定の変更
言語設定は、デフォルトでOSの言語( 日本語 )が適用されています。
これを変更する際は、TranslationServer.set_locale("言語コード")
関数を使用します。
以下の例では、各ボタンを押した際に以下のような言語切替処理を行っています。
func _on_pressed():
TranslationServer.set_locale("ja")

Step5. フォーマット文字列の利用
翻訳シートでは、以下のような構成で、フォーマット文字列を使用することも可能です。
翻訳シート構成例:
コードの設定例:
text = tr("TEST_FORMAT_TEXT").format({"item" : tr("TEST_ITEM")})
上記で実行すると、以下のように、「TEST_FORMAT_TEXT」、「TEST_ITEM」それぞれを反映した形で、翻訳テキストを適用できます。

参考ページ
以下は、Godotにおける国際化に関する参考ページです。
今回扱ったテキストに限らず、画像やゲーム名称などの国際化についても対応することが可能です。
コメント