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ブランチにマージ

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

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

最後に

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

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

第3回アソビIoTワークショップを開催しました

どんなことをやったか

今回のワークショップのテーマは「リミックス」でした。

スクラッチのガイドラインによれば

リミックスとは、ある作品を元に、新たな作品を作ることで、盗作とは異なる。

とあります。つまりアイディアのスタート地点を他の友だちの作品に移すことでより創発的な活動を促すことを狙いとしました。

このワークショップ には5名の子どもたちが参加してくれました。スクラッチのコミュニティではこの「リミックス」が持つネガティヴな側面についても議論がされており(先述のリンク参照)今回のワークショップを始めるにあたって少し不安もありましたが、それは杞憂に終わりました。彼らのアイディアは友だちの作品によってより刺激され、我々大人たちには想像もつかない世界を作り上げていました。以下のリンクから子供たちの作品を見て頂けると幸いです。

子どもたちの作品リンク

学び・発見

今回は運営側の機材トラブルが生じたため、イベントの進行に若干の遅れが発生したことをこの場を借りて深くお詫びいたします。問題原因の特定は既に完了しており次回のワークショップ は万全の態勢で開催することを約束します。

今回は前回に引き続き各作品の作者である子供たちが自ら作品の内容を説明する時間を設けました。意外だったのが、前回に比べて子供たちの発表に対する恐怖心が減っていたことでした。それが顕著に現れていたのが発表の順番選びです。 受動的に順番が決められるのを待たずに各々がやりたい順番を率先して選んでいたのです。そして作品の説明も前回よりも大きな声を出せており彼らの成長には驚かされるばかりでした。

今後の予定

2019年度(2020年3月末)までは月1回、2020年度からは月2回ワークショップを開催していきます。具体的な日時についてはイベントをご覧ください。これからも一般社団法人ルークスの活動にご理解とご協力を頂けますと幸いです。

当日のPRスライド