💭

Unity Localizationを使ってTextMeshProGUIの多言語対応を行う

2025/02/01に公開

はじめに

OSSのデスクトップマスコット「uDesktopMascot」を開発しています。

https://github.com/MidraLab/uDesktopMascot

こちらは多言語に対応したプロジェクトにしていくために、unityのLocalizationを使って多言語対応を行っています。

以下の記事で LocalizationデータをGitHub Actions + openaiのapiを使って自動翻訳をするフローを記事にしています。合わせてローカライズ対応のワークフローとしてご覧ください

https://zenn.dev/midra_lab/articles/2a33206cd88276

デモ

以下はメニュー画面を多言語対応をして、言語を切り替えた際に表示です。
Unity Editorでは、実行時に右上で言語を切り替えることができます。

開発環境

  • Unity 6000.0.31f1(IL2CPP)
  • Localization 1.5.4

Localization設定

まずは LocalizationをPackage Managerからインストールします。

次に Window > Asset Management > Localization Tablesで ローカライズ一覧を開きます。

NewEntryから任意の単語と言語を追加します。

TextMeshProでのローカライズ設定

TextMeshProコンポーネントのテキストを言語によって切り替えるための設定は以下になります。

  1. Localization String Eventを追加
  2. String ReferenceTable Collectionを追加したものを選択
  3. Update Stringに TMPを登録して、.textをイベントに登録

MidraLab(ミドラボ)

Discussion