ローカライゼーションダッシュボードを使ってテキストをローカライズする。

# ローカライゼーションダッシュボードとは？

ローカライゼーションダッシュボードとは、4.8 から追加されたローカライズ用のツールです。
これを使うと、以下のことができるようになります。

* アセットやソースコードからローカライズするテキストを抽出する。
* テキストを GUI 上で翻訳、管理する。
* ローカライズリソースをビルドする。

今まではコマンドレットを使ってこれらの作業を行っていたみたいですが、ローカライゼーションダッシュボードを使うことでコマンドレットを使うことなく、すべて GUI 上でテキストのローカライズ作業ができます。

この記事では、ローカライゼーションダッシュボードを使って、テキストの抽出からゲーム中での確認までの手順をひと通り説明します。

# ローカライゼーションダッシュボードを使えるようにする。

ローカライゼーションダッシュボードは、**Experimental (実験的)扱い**になっているので、デフォルトでは使えないようになっています。
というわけで、まずはこれを使えるようにします。

まず、エディタのメニュー**「Edit > Editor Preferences」**を選択します。
ウィンドウが開いたら、**「General - Experimental」**にある**「Localization Dashboard」**にチェックを入れます。
![image](https://qiita-image-store.s3.amazonaws.com/0/43814/2c86e554-682a-53bd-a8e1-bca869ec6c1e.png)

チェックを入れると、エディタのメニュー**「Window > Localization Dashboard」**が選択できるようになります。
![image](https://qiita-image-store.s3.amazonaws.com/0/43814/c992de1e-3f95-acab-be98-28bcd6bea9dc.png)

# テキストを抽出する

では、ローカライゼーションダッシュボードを使ってテキストを抽出してみます。
ローカライゼーションダッシュボードを開いて、以下の図で赤く囲った**「Game」**をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/43814/7bdeff6f-448b-69f4-72a1-0d6b0a3300aa.png)

すると、ウィンドウ下部に以下のようなタブが表示されます。
これは**「Game」**に対する設定や操作を行うためのタブとなります。
![image](https://qiita-image-store.s3.amazonaws.com/0/43814/a857942f-c908-69cb-4a5a-20340349a082.png)

## 抽出元を指定する。

タブの項目**「Gather」**でテキストの抽出に関する設定を行います。
単にテキストを抽出するだけであれば、以下の３つの項目を設定すればテキストは抽出できます。
![image](https://qiita-image-store.s3.amazonaws.com/0/43814/a4a954f7-1a95-1ee5-835b-d79cd08f1828.png)

* **Gather from Text Files**
チェックを入れると、指定したディレクトリ内に存在するテキスト（ソース）ファイルからテキストを抽出します。

* **Gather from Packages**
チェックを入れると、指定したディレクトリ内に存在するアセット（.umap や .uasset など）からテキストを抽出します。

* **Gather from Meta Data**
チェックを入れると、UFUNCTION や UPROPERTY に埋まっているメタデータからテキストを抽出できるらしいです。(未確認)

抽出されるテキストは、いずれも **FText** で指定された文字列のみとなります。


## 言語の設定をする
タブの項目**「Cultures」**でローカライズする言語の設定や翻訳元となる言語を設定します。
デフォルトでは英語のみになっているので、**「Add New Culture」**から**「Japanese」**を選んで、日本語を追加します。
![image](https://qiita-image-store.s3.amazonaws.com/0/43814/22cd286d-0b5d-7fff-9147-03137a43c468.png)

もし、下記の図のように Native の ○ が英語についていた場合、赤い四角で囲まれた場所をクリックしてください。
そうすることで、翻訳元となる言語を日本語にすることができます。
![image](https://qiita-image-store.s3.amazonaws.com/0/43814/217e0241-bec7-37dc-b7ee-c8a602b7eb8b.png)

## テキストの抽出を開始する
タブの項目**「Cultures」**の**「Gather」**で、テキストの抽出を開始します。
![image](https://qiita-image-store.s3.amazonaws.com/0/43814/5bface95-a467-69df-77dc-8cdbd25d3c15.png)

ウィンドウが表示され、以下のようになったら抽出は完了です。
![image](https://qiita-image-store.s3.amazonaws.com/0/43814/baae7873-4bb9-f437-75ad-5a43d261cf74.png)

抽出されたテキストを確認するには、以下の図の赤い四角で囲まれたボタンを押します。
![image](https://qiita-image-store.s3.amazonaws.com/0/43814/8cc6cc10-388c-2fcf-b7a4-6fc614a2fcad.png)


ボタンを押すと以下の様なウィンドウが開かれます。
このウィンドウの**「Completed」**タブを選択すると、抽出されたテキストが確認できます。
![image](https://qiita-image-store.s3.amazonaws.com/0/43814/d254cef7-d3a8-8de4-3b00-197b046c1351.png)

# 翻訳したテキストを入れる

テキストが無事に抽出されたので、次は翻訳したテキストを入れます。
下の図の赤い四角で囲まれたボタンを押します。先ほどとは違い、**English の横**のボタンです。
![image](https://qiita-image-store.s3.amazonaws.com/0/43814/46129c3e-7a49-0712-1f4e-4898ce6f5ca1.png)

すると、先ほどと同じウィンドウが開かれますので、今度は**「Untranslated」**タブを選択します。
選択すると以下のように左側に抽出したテキスト、右側に空欄の状態になりますので、この右側の空欄に翻訳したテキストを入れていきます。
![image](https://qiita-image-store.s3.amazonaws.com/0/43814/160cd3f1-15da-ed69-4456-cdd51c0d1c4d.png)

# ローカライズデータをコンパイルする

翻訳したテキストをひと通り入れ終わったら、ローカライズデータをコンパイルして、データとして使えるようにします。
タブの項目**「Cultures」**の**「Compile All」**をクリックすると、ローカライズデータのコンパイルが始まります。
![image](https://qiita-image-store.s3.amazonaws.com/0/43814/949938f8-7030-6383-ee36-995f7849bae1.png)

ウィンドウが表示され、表示が以下のようになったら成功です。
![image](https://qiita-image-store.s3.amazonaws.com/0/43814/436b3d1c-3ea0-ffe4-b43c-fe8f742b2525.png)

# テキストが差し替わっているか確認する

最後に、テキストが差し替わっているかどうかを確認します。

まず、エディタのメニュー**「Edit > Editor Preferences」**を選択します。
ウィンドウが開いたら、**「Level Editor - Play」**にある**「Play in Standalone Game」**の設定**「Additional Launch Parameters」**・・・
![image](https://qiita-image-store.s3.amazonaws.com/0/43814/17ff9935-f7d6-e49d-32af-922c31c8ee15.png)

ここに以下のオプションを設定します。

```:
-culture="【言語名】"
```

英語の場合は en、日本語の場合は ja を言語名に指定します。

この設定を入れた状態で、スタンドアローンモードでレベルをプレイします。
![image](https://qiita-image-store.s3.amazonaws.com/0/43814/67ba9f99-95f2-dad5-b10d-402516c2dc6c.png)

すると、en を指定した時は英語で・・・
![image](https://qiita-image-store.s3.amazonaws.com/0/43814/1d0ba7c4-3a2f-e291-c970-77dee29e459b.png)

ja を指定した時は日本語でテキストが表示されます。
![image](https://qiita-image-store.s3.amazonaws.com/0/43814/ee77a7f2-0765-2ff6-e9e9-676c52ed171a.png)