2016年6月16日木曜日

NOOBS 1.9.2でインストールしたRaspbian (jessie) 上のScratchで日本語入力を可能にしてみた

0. はじめに

Raspberry PiでGPIOにアクセスする場合、プログラミング言語としてPythonばかり使ってきたのですが、ふとScratchではどうなんだろう、と思い、調べてみることにしました。

ところが、Scratchに触れること自体が初めてだったので、GPIOへアクセスする以前に、Scratchで日本語入力を実現する設定に手こずってしまいました。

そこで、日本語入力を実現するために行った方法をまとめておきます。用いたのは、執筆時に最新であったNOOBS 1.9.2に含まれるjessie系列のRaspbian (2016-05-27)です。Raspberry Pi 2のみで試しました。


1. Raspbianの日本語表示設定

Scratchの前に、まずはRaspbianで日本語を表示できるようにします。

jessie系列のRaspbianには日本語フォントが含まれないので、日本語表示設定の前にまず日本語フォントをインストールする必要があります。ターミナルを起動し、下記のコマンドを実行しましょう。
$ sudo apt-get update
$ sudo apt-get install fonts-vlgothic
フォントのインストールが終わったら、デスクトップ左上のメニュー(Menu)から、「Preferences(設定)」→「Raspberry Pi Configuration(Raspberry Piの設定)」をマウスで選択してください。

現れた設定用アプリケーションで「Localisation」→「Set Locale」を選択し、「Language」を「ja (Japanese)」に、「Country」を「JP (Japan)」に、「Character Set」を「UTF-8」に設定します。その後Raspberry Piを再起動すると、日本語表示されたデスクトップ環境が起動します。

その後、メニューから「プログラミング」→「Scratch」を選択すると、下図のようにメニューが日本語化されたScratchが起動します。

しかし、よく見ると文字があまりなめらかではありませんね。そこで、Scratch用には別のフォントを設定することにします。


2. Scrachの日本語表示設定

Scrachでの日本語表示に適したフォントをインストールし、それを用いるよう設定します。本節の内容は「Raspberry PiでScratchを使う際の覚書」を参考にしました。

まず、ターミナルを起動し、下記のコマンドでフォントをインストールしましょう。
$ sudo apt-get update
$ sudo apt-get install ttf-sazanami-gothic
インストール後、「/usr/share/scratch/locale/ja.po」および「/usr/share/scratch/locale/ja_HIRA.po」という2つの設定ファイルをテキストエディタで編集し、上記のさざなみフォントを用いるよう設定します。

まず、下記のコマンドにより、管理者権限のテキストエディタで「/usr/share/scratch/locale/ja.po」を開きます。
$ sudo leafpad /usr/share/scratch/locale/ja.po
この中で、
msgid "Linux-Font"
msgstr "Mona"
という2行を見つけ、これを下記のように編集します。
msgid "Linux-Font"
msgstr "Sazanami Gothic"
編集が終わったら保存してテキストエディタを閉じます。

同様に、下記のコマンドにより、「/usr/share/scratch/locale/ja_HIRA.po」をテキストエディタで開きます。
$ sudo leafpad /usr/share/scratch/locale/ja_HIRA.po
編集内容は「/usr/share/scratch/locale/ja.po」と全く同じです。編集したら保存してテキストエディタを閉じてください。

その後、Scratchを起動しなおすと、下記のようにメニューなどがきれいなフォントで表示されます。


3.日本語入力用アプリケーションのインストール

jessie系列のRaspbianでは、日本語入力アプリケーションとして、Googleが開発したMozcをインストールするのが良いでしょう。

ターミナルを起動し、下記のコマンドでインストールします。
$ sudo apt-get update
$ sudo apt-get install ibus-mozc
インストールが終わったらRaspberry Piを再起動します。

その後、下図のように「US」と書かれた部分をマウスでクリックし「日本語 - Mozc」を選択してください。あとは「半角/全角」キーで日本語入力のオンオフを切り替えられます。


4. Scrachに日本語入力を受け付けさせるための設定

次に、上で可能になった日本語入力をScrachに受け付けさせるための設定を行います。

ターミナルを起動し、テキストエディタでScratchの起動スクリプトを編集します。
$ sudo leafpad /usr/bin/scratch
最後付近にある下記の行を見つけます。
$WRAPPER "$VM" "$IMAGE" "$DOCUMENT" $IMOPTIONS
ここに、下記のように「 -vm-display-x11 -compositioninput 」を追記します。
$WRAPPER "$VM" -vm-display-x11 -compositioninput "$IMAGE" "$DOCUMENT" $IMOPTIONS
追記したら保存してテキストエディタを閉じます。

その後Scratchを起動し、文字を入力できる部分で「半角/全角」キーを押すと、左下に変換候補が表示され、日本語入力が受け付けられそうなことがわかります。


ここで、確定した変換が文字化けすることなく入力部に表示されれば、設定は終了です(将来のRaspbianではそうなると思います)。

しかし、NOOBS 1.9.2に含まれるRaspbianでは確定した文字列が下記のように文字化けしてしまいます。

これを直す設定をさらに行っていきましょう。


5. Squeakのvm-display-x11をビルドしなおす

最後の手順です。長いですが一つずつ実行していきましょう。なお、この節の内容は「RaspbianのScratch1.4で日本語入力(QEMU上だけど)」を参考にさせて頂きました。

Squeakというアプリケーションを再ビルドし、vm-display-x11というプラグインを差し替える必要があります。まず、ターミナルを起動し、 ビルドに必要なパッケージをインストールします。
$ sudo apt-get update
$ sudo apt-get install subversion cmake g++ xorg-dev uuid-dev libasound2-dev libssl-dev libgl1-mesa-dev
その後、Squeakのソースをダウンロードし、ビルドします。
$ svn co http://www.squeakvm.org/svn/squeak/branches/Cog
$ cd Cog/build.linux32ARM/squeak.cog.spur/build
$ ./mvm
ここで「clean?」と聞かれますが「n」を入力してEnterします。

Raspberry Pi 2で5分くらい待つと、ビルドが完了します。 後は、下記の要領でできたプラグインを差し替えます。
$ sudo mv /usr/lib/squeak/5.0-3663/vm-display-X11  /usr/lib/squeak/5.0-3663/vm-display-X11.orig
$ sudo cp /home/pi/Cog/products/cogspurlinuxhtARM/lib/squeak/5.0-3744/vm-display-X11 /usr/lib/squeak/5.0-3663/
その後、Scratchを起動すると、日本語を入力しても文字化けしなくなっているはずです。

何が起こっているかというと、NOOBS 1.9.2に含まれるRaspbianのSqueakは、ダウンロードしたソースよりも若干バージョンが古いのですね。最新のソースでは文字化けを解消するコードが既に取り込まれているので、ビルドして差し替えるだけで文字化けが解消した、というわけです。

6. 終わりに


以上でした。最近のScratchはデフォルトでGPIOにアクセスできたり、カメラモジュールが使えたりするらしいので(参考)、試してみたいと思います。

こちらもどうぞ




「ラズパイ4対応 カラー図解 最新 Raspberry Piで学ぶ電子工作」、「実例で学ぶRaspberry Pi電子工作」、「Raspberry Piではじめる機械学習」を執筆しました。

0 件のコメント:

コメントを投稿