ここで記載した方法はSnap!の派生のTurtleStitchに対しても適用可能である。
Snap 4.1が公開されたが,日本語入力は不可のままである。ここで記載する方法はSnap 4.1に対しても有効である。(2017.10.22追記)
ここで説明する方法で日本語入力可能にすると,Snap!のキーボード編集機能の一部で不具合がでる。(2018.4.6追記)
Snap!5 betaが公開されていますが,上記のSupport_Japanese.xmlで用いた翻訳ファイルと一部互換性がないので注意してください。(2019.6.6追記)
Snap!(BYOB 4.0)はScratchと同様のビジュアルプログラミング環境で,リストやスプライトがFirst Classであるという特徴をもっている。UCB(University of California, Berkeley)では,計算機科学を主専攻ではない学生へのプログラミング教育として,Snap!を利用している([1])。発達科学部人間環境学科数理情報環境論コースでも,Snap!の前身のBYOB3.0を講義に取り入れてきた。
しかし,現在公開されているSnap!ではIMEを使用した日本語入力(多バイト文字入力)がまだできないため,Snap!を日本で利用するには若干敷居の高いものになっている。(ただし,クリップボード経由での入力可能で,iOS上のSafariでは漢字変換はできないがひらがな入力は可能である。) その点は開発者の間でも議論されていて,多バイト文字入力を可能にするプルリクエスト([2],[3])も行われているため,近い将来Snap!でIME経由での日本語入力が可能になるものと思われる。
[3]のプルリクエストで提案されている方法をchangesetファイルとしてまとめた。
PR1214ChangesToMorphic.js
これを利用すると日本語入力可能なSnap!を使用することができる。Snap!のサイトで日本語入力を行うためには,このファイルの内容をjavascriptのブロックに入れて実行すれば良い。
最初から入力可能なSnap!を使うには以下の様にローカルにSnap!のソースをダウンロードする。
こちらからそのままダウンロードできるのはSnap!5になりました。Snap!4を使用する場合はreleasesからSnap!4を選んでください。(追記2019.6.6)
<script type="text/javascript" src="PR1214ChangesToMorphic.js"></script>
上でJavascriptブロックを利用して,日本語入力を可能にしたが,同様にJavascriptブロックを利用して,日本語化されていないブロックを日本語にすることができる。 ローカルに使う分には,日本語翻訳ファイルであるlang-ja.jsファイルに付け加えていけばよいが,Snap!の公式サイトで翻訳を追加するにはJavascriptを利用することになる。Snap!では翻訳辞書は連想配列を利用しているので,翻訳辞書を格納している配列に追加の翻訳を付け加えるようにJavascriptのスクリプトを記述すればよい。具体的には日本語翻訳辞書はSnapTranslator.dict.jaに入っているので,次のようなスクリプトをかけばよい。
var arr={}; for (var key in arr){ SnapTranslator.dict.ja[key]=arr[key]; }ここで,arrには追加する翻訳を記載する。例えば,
'add a new Turtle sprite':'新しいスプライトを追加する', 'paint a new sprite':'新しいスプライトをペイントで作る', 'Paint a new costume':'新しいコスチュームをペイントで作る',の3つを追加するには,
var arr={ 'add a new Turtle sprite':'新しいスプライトを追加する', 'paint a new sprite':'新しいスプライトをペイントで作る', 'Paint a new costume':'新しいコスチュームをペイントで作る', }; for (var key in arr){ SnapTranslator.dict.ja[key]=arr[key]; }として,javascriptブロックに入れて実行すると翻訳が反映される。
'item %idx of %l':'%idx 番目 %l',となっていて,ブロックはこのように表示されている。
'item %idx of %l':'%idx 番目 ( %l の)',として,さきほどと同様にしてSnapTranslator.dict.jaに追加すると
'item %idx of %l':'%l の %idx 番目',とすることはできない。
現在Snap!で未翻訳のものをできるだけ翻訳してlang-ja.jsに追加したファイルを http://herb.h.kobe-u.ac.jp/lang-ja.jsで公開している。このファイルのmissing entries2以下の部分を上記の方法でjavascriptで追加すると未翻訳のもののかなりの部分が翻訳される。最初に記載したプロジェクトはこの部分を追加したものである。 Snap!5 betaを利用している場合は,こちらのファイルhttp://herb.h.kobe-u.ac.jp/snap5/lang-ja.jsを利用してください。