新ChoregrapheのDialogで日本語が選べない！と思ったら

Choregraphe 2.5.5でPepperプログラミング（以下Pepper本）を試そうとした時「あれ？」となるポイントとして、Dialogの言語選択画面があります。

新Choregrapheでは言語設定周辺が見直される中で、Dialogの言語設定に不整合が起きないよう設定に制約が加えられたようです。この記事では、Dialogの言語設定がどのように変わったか、新Choregrapheではどのように言語設定を行うべきかを見ていきます。

# 2.5.5のDialogで日本語が選べない？

2.5.5で新規プロジェクトを作成し、何も設定しないまま新規Dialogを作成しようとすると、下図のようなウィンドウが表示されます。

![2.5.5の新規Dialog作成ウィンドウ（デフォルト設定の場合）](https://qiita-image-store.s3.amazonaws.com/0/173797/63479f30-a088-d9c7-397b-df40c0382057.png)

言語欄にはEnglishしか選択肢がなく、このままでは日本語を使うことができません。

# 旧バージョンにおけるDialogの言語設定

2.5.5の説明の前に、旧バージョンではどうなっていたか確認してみます。

旧バージョンのChoregrapheを起動し、先ほどと同じように、新規プロジェクトで新規Dialogを作成しようとすると、下図のようなウィンドウが表示されます。

![旧バージョンの新規Dialog作成ウィンドウ](https://qiita-image-store.s3.amazonaws.com/0/173797/df740ccf-907f-ec28-e134-a0954691f4fe.png)

新バージョンのダイアログとは異なり、言語欄にはすべての対応言語が表示されています。
Englishのチェックを外し、Japaneseにチェックを入れることで、Dialogで日本語を使うことができるようになります。

# 2.5.5におけるプロジェクトの言語設定

2.5.5では、多言語対応周りの機能が変更され、プロジェクトで選択されていない言語はDialog作成時に選択できなくなったようです。
デフォルトではプロジェクトの言語はEnglishのみが有効になっているため、日本語を使いたい場合はプロジェクトの設定を変更する必要があります。
では、プロジェクトの設定からDialogの作成までを、ステップごとに見ていきましょう。

## プロジェクトの言語設定

まずは、以下のステップに従い、プロジェクトの言語設定を日本語に変更します。

1. プロジェクトファイルのプロパティボタン(下図のA)をクリックし、プロジェクトのプロパティを開きます。

    ![プロジェクトのプロパティを開く](https://qiita-image-store.s3.amazonaws.com/0/173797/a4fd2622-b11e-a287-c4c2-8ba239db8988.png)

2. ロボアプリの対応言語および概要の言語がEnglishになっていることを確認します。

    ![デフォルトのプロジェクトのプロパティ](https://qiita-image-store.s3.amazonaws.com/0/173797/df95125a-4aa7-e0a8-7f76-68d6e1ffcb6b.png)

3. ロボアプリの対応言語(下図のB)をクリックすると、右側にロボアプリの対応言語候補が一覧表示されます。一覧の中のJapanese(同C)にチェックを入れてから、English(同D)のチェックを外します。
※先にEnglishのチェックを外してしまうと、対象言語を限定しない(同E)に自動的にチェックが入ってしまい、Japaneseを選択できなくなります。対象言語を限定しないのチェックを外すと、言語を選択できるようになります。

    ![ロボアプリの対応言語を設定する](https://qiita-image-store.s3.amazonaws.com/0/173797/a88df7db-faad-703a-b0f4-19bdf66a49a5.png)

4. 同様に、概要の言語(下図のF)をクリックすると、右側に概要の言語候補が一覧表示されますので、English(同G)のチェックを外します。Japaneseは3.の操作によって自動的に選択されます。

    ![概要の言語を設定する](https://qiita-image-store.s3.amazonaws.com/0/173797/ef107ac2-4c7a-7b41-323b-6103fa0537f5.png)

5. OKボタンをクリックし、変更を適用します。このとき、下図のような警告が表示されることがあります。多言語化用ファイルを作成している場合は、適切にファイルのバックアップなどを行ってください。

    ![言語変更適用時の警告](https://qiita-image-store.s3.amazonaws.com/0/173797/c76253e8-130a-326b-f860-7c99775e86f5.png)

## Dialogの言語設定

プロジェクトの言語を日本語に設定したら、以下のステップで新規Dialogを作成します。

1. プロジェクトファイルパネルの追加ボタン(下図のA)をクリックし、新規ダイアログトピック(同B)を選択します。

    ![新規Dialog作成ウィンドウを開く](https://qiita-image-store.s3.amazonaws.com/0/173797/8eb7df5e-7e80-d982-ff2b-0cc72a9bc939.png)

2. 新規Dialog作成ウィンドウが開くので、名前(下図のC)を入力し、言語欄のJapanese(同D)を選択した後、追加ボタン(同E)をクリックします。

    ![2.5.5で新規Dialogを日本語設定で作成する](https://qiita-image-store.s3.amazonaws.com/0/173797/add86749-4dbd-fc98-3f01-4834b20cbc33.png)

3. 下図のように、プロジェクトファイルに指定した名前のDialogディレクトリ、dlgファイル、日本語(jpj)のtopファイルが作成されていれば、成功です。

    ![2.5.5における日本語設定のDialogを持つプロジェクトファイル](https://qiita-image-store.s3.amazonaws.com/0/173797/94751d68-e94c-1d7d-1011-d8109746eefa.png)

## Dialogを使ってみる

せっかくなので、作成したDialogを使って簡単なプログラムを作り、正常に動作することを確認してみます。

1. プロジェクトファイルパネルから `<Dialogの名前>_dialog_jpj.top` をダブルクリックし、スクリプトエディタを開きます。

2. 開いたスクリプトエディタに以下のスクリプトを入力します。
※topic名は適宜変更してください

    ```
    topic: ~hoge_dialog()
    language: jpj
    
    u:(こんにちは)こんにちは
    ```

3. プロジェクトファイルパネルから `<Dialogの名前>_dialog.dlg` (下図のA)をフローダイアグラムにドラッグ＆ドラッグし、Dialogボックスを配置します。

4. フローダイアグラム左端のonStart入力(同B)と、配置したDialogボックスのonStart入力(同C)を、マウスドラッグで繋ぎます。

    ![フローダイアグラム](https://qiita-image-store.s3.amazonaws.com/0/173797/b1d9d221-158e-de00-9a07-be1c1c07d653.png)

5. アップロードして再生をクリックし、実行します。

6. Pepperに「こんにちは」と話しかけるか、ダイアログパネルに "こんにちは" と入力し、Pepperが「こんにちは」と返して来たら成功です。

    ![ダイアログ（実行結果）](https://qiita-image-store.s3.amazonaws.com/0/173797/fa3cebef-4fc7-b84e-5b02-4dd22e3bd878.png)


# まとめ

Dialogの言語設定の考え方自体は変わっていませんが、先に[新しいSayボックスと発話のカスタマイズ](http://qiita.com/vr-lab/items/8f5e6b305118535ee570)で見てきたように、Choregraphe全体で多国語対応に関する変更が行われています。
これまでプロジェクトは英語のみの設定でも日本語のDialogが作れてしまいましたが、ツールによって矛盾がある設定はできないように変更が加えられているようです。

今までの操作感からすると一瞬「あれ？」となる部分ですが、不整合をツールによって極力なくしていこうという配慮ということなのかもしれません。