LoginSignup
8
5

More than 5 years have passed since last update.

Choregraphe2.5.xの国際化(i18n)対応について

Posted at

はじめに

Choregraphe2.5のリリースノートの「New translation workflow」について少し調べてみました。
よく読むとロボアプリの国際化対応(i18n)のようです。これまでも言語ごとに発話内容を変更できましたが、しくみが変わり、それによって新しいタイプが増えていたり、よく使うSay系のボックスが変わっていたりしています。

環境について

今回使用した環境です。Choregraphe2.5.5は開発者向けのbeta扱いですので、ご注意ください。
なお、まだPepperをNAOqi2.5.5にしていないため、バーチャルロボット上での確認となります。
Choregraphe 2.5.5.5 (beta)
Choregraphe 2.4.3.28

2.4と2.5のボックスの違い

ボックス名 2.5 2.4
Say Text変数に指定された文字を発話 Localized Textに指定された文字を発話
Animated Say Text変数に指定された文字を発話 Localized Textに指定された文字を発話
Localized Text Say, Animated Sayボックスの仕様が変わったためなくなる Say,Animated Sayボックス内で発話文字列を各言語ごとに設定する
Get Localized String 新規

新しいタイプ「ローカライズされたストリング」

 Choregraphe2.5から新しいタイプ「ローカライズされたストリング」が追加になりました。新しい Sayボックス、Animated Sayボックスの Text属性はこの「ローカライズされたストリング」のタイプを使用した属性です。

スクリーンショット 2017-03-29 13.48.37.png

翻訳ファイル(.ts)

Chregraphe2.5のプロジェクトには、translationsのフォルダとその配下に翻訳ファイル(.ts)が新たに追加されています。
起動直後のプロジェクトでは、ロボアプリの対応言語の初期値が「English(UnitedStates)」のため、英語用の翻訳ファイル(translation_en_US.ts)となっています。
Sayボックス、Animated Sayボックス、Get Localized Stringなど「ローカライズされたストリング」のタイプで指定したテキストは、このファイルに記録されます。
ただし、自動で記録されるのは1つの翻訳ファイルのみです。プロジェクトのプロパティの「次の項目への翻訳自動登録」で指定した言語に対応する翻訳ファイルに記録されます。(ロボアプリの対応言語が「English(UnitedStates)」のまま、SayボックスのTextに日本語を入れると、英語用の翻訳ファイル(translation_en_US.ts)に記録されてしまうので、注意してください。)

スクリーンショット 2017-03-29 13.50.03.png

実際に試してみよう

ここからは実際に試してみます。翻訳自動登録は「Japanese」とし、ロボアプリの対応言語は、「English(UnitedStates)」と「Japanese」の2つにします。

スクリーンショット 2017-03-29 15.05.51.png

複数の言語を選択した状態で、「OK」ボタンを押すと「translation workflow」についてのドキュメントを見てねというお知らせが表示されます。
スクリーンショット 2017-03-29 15.06.51.png

一度保存します
スクリーンショット 2017-03-29 15.13.55.png

翻訳ファイル(.ts)が英語と日本語それぞれ作成されています。
スクリーンショット 2017-03-29 15.23.49.png

次に Set languageボックスと、Sayボックスをフローダイアグラムに配置して、次のように結線してください。
スクリーンショット 2017-03-29 15.17.47.png

Set LanguageボックスのLanguageパラメータを「Japanese」にします。
スクリーンショット 2017-03-29 15.26.28.png

SayボックスのTextパラメータに日本語の発話メッセージを設定します。
スクリーンショット 2017-03-29 15.29.17.png

実行してみます。
スクリーンショット 2017-03-29 15.33.54.png
スクリーンショット 2017-03-29 15.30.43.png

次に英語の発話メッセージを編集します。先ほどの日本語の場合は、自動で翻訳ファイルに記録されていたため、これまでの作り方と変わりませんでしたが、ここからは翻訳ファイルに対して対応する発話内容を編集していくことになります。
編集方法は2種類あり、ファイルメニューの「翻訳を更新する」を実行した後で、翻訳ファイルを直接編集する方法と、同じくファイルメニューの「アプリをローカライズする」を実行して「Qt Linguist」ツールで、編集する方法があります。
スクリーンショット 2017-03-29 15.36.27.png

ここでは「Qt Linguist」で編集する方法で試してみます。
ファイルメニューの「アプリをローカライズする」を実行すると「Qt Linguist」が起動します。
スクリーンショット 2017-03-29 15.46.10.png

先ほどSayボックスのTextパラメータに設定した発話のメッセージが「日本語 訳」欄に記載されていますので、「English 訳」欄に対応する英語のメッセージを設定します。
半角スペースを入れると.が入りますが、気にしないでください。
スクリーンショット 2017-03-29 15.49.32.png

次に翻訳状況が!と?になっていますので、両方ともチェック状態にします。
スクリーンショット 2017-03-29 15.50.44.png

クリックするとチェック状態になります。あとは全て保存後、このツールを閉じてください。
スクリーンショット 2017-03-29 15.51.54.png

Set LanguageボックスのLanguageパラメータを「English」にして、実行してみましょう。
スクリーンショット 2017-03-29 15.56.17.png
スクリーンショット 2017-03-29 15.56.52.png
日本語で指定した発話メッセージに対応する英語の発話メッセージに変換されました。

おまけ

Get Localized Text ボックスと  Say Text ボックスでも先ほどと同様のことができます。
Get Localized Text ボックスも「ローカライズされたストリング」のタイプを使用しているため、翻訳ファイルの対象となります。
スクリーンショット 2017-03-29 16.03.33.png

最後に

これまでボックス内に埋もれていた文字列が外部ファイルになったことで、翻訳作業が分担できるといったメリットがありそうです。また、Text Editボックスではなく、Get Localized Textボックスを使っていくことで、文字列が翻訳ファイルに記録されるので、文字列の管理と一括変更が楽になりそうです。

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5