pxt-maqueenを日本語対応させるまで


Maqueenとは

Maqueen(マックイーン)はマイクロビットを使って制御できる教育向けのデバイスです。プログラムを作る際にはマイクロビットの開発環境であるMakeCodeエディターに拡張機能を追加する必要があります。

困った問題点

マックイーンは多機能で使いやすく遊びがいのあるとても良いデバイスなのでルークスのワークショップ アイテムとして使いたかったのですが、ブロックが日本語対応してないという問題があり導入に踏み切れていませんでした。

日本語対応してない状態

実際にワークショップにきた子に触らせてみたこともあるのですが、英語表記は扱いづらそうにしていたのでこの拡張機能を日本語化する方法について探る必要がありました。

原因は何なのか?

MakeCodeの拡張機能追加方法について調べてみた

まず初めに、MakeCodeエディターのドキュメントから拡張機能のローカライズに関する情報を見つけることができました。新規の拡張機能を作る場合にはNodeJSや別のコマンドラインツールのインストールが必要らしいのですが、既存の拡張機能についてはリポジトリをフォークして幾つかのソースに変更・追記するだけで良さそうなことがわかりました。

Maqueenのソースコード(Githubリポジトリ)を調べてみた

しかし、ドキュメントの内容に沿ってソースを改変したつもりが一向に翻訳が反映されませんでした。悩みながら解決策のヒントを探しにリポジトリの中を漁っているとこんなプルリクがありました。

見つけたプルリク

どうやらlocaleの表記をjpではなくjaにすべきだったようです。公式のドキュメントにはISOコードであることの旨が記載されていたのでjpで問題ないと思い込んでいたのが原因だったようです。実際に公式のドキュメントにもjpではなくjaと記載されてたことに後々気付きました。その他にも修正が必要だった点がありましたので、それらは以降で述べさせてもらいます。

対応方法のまとめ

結論だけ知りたい方はソースコードをご覧ください。

localeの表記

先ほども書いていたようにlocaleはjpではなくjaと記載しなければ翻訳が働かないようです。ISOコードとの整合は取れてないように思いますが、結果良ければ全てよしとしておきます。

辞書の追加

続いて、ソースコードの英語を日本語に翻訳するためのデータを各localeのディレクトリにjson形式で保存しておきます。こちらは公式ドキュメントと同様の方法で編集すれば問題ありませんでした。ひらがな表記もできることが確認できています。

ソースコードとpxt.jsonのバージョンを同期

ここも中々気付けなかったところで、どうやらソースのバージョンとpxt.jsonのバージョンは同期していないといけないようでした。例えばgitでタグをv0.1としていたならpxt.json内のversionもv0.1という具合にしないといけなかったようです。

変更内容をMasterブランチにマージ

最後は変更内容をマスターブランチにマージします。これは正しく検証ができてないのでマスターでなくてもデフォルトのブランチに変更内容が反映されていれば問題ないのかもしれません。

実際のプログラムがこちら

最後に

ルークス初の技術ブログ(?)はいかがだったでしょうか?普段プログラミングに触れてない人にとっては取っ付きにくい内容だったかもしれません。(編集者の文才がアレというのは棚に上げさせてもらいます)

ルークスでは今後も不定期でこのような技術ネタをブログにアップしていく予定です。皆さまの問題解決の一助になれれば幸いです。最後までお読みいただきありがとうございました!