[StarLogo/fujim2]
[ トップ ]   [ 一覧 | 単語検索 | 最終更新 | ヘルプ ]

  • バックアップ一覧
  • 差分 を表示
  • ソース を表示
  • バックアップ を表示
  • StarLogo日本語化 へ行く。
    • 1 (2019-01-27 (日) 04:00:48)

  • 追加された行はこの色です。
  • 削除された行はこの色です。
[[FrontPage]]
[[Petit-Hack]]

「プチハック」。
Hackってほどでもないけれど、多少いじってみるコーナー。
#ref(starlogo-ja_0.PNG,,,50%)

なかなかじっくりできませんが、ちょこちょこと調査中。

目次
----
#contents
----

*多言語対応 [#ya4be486]
*素直に日本語対応設定ファイルを作ってみる [#c8bbfaa8]

OpenStarLogoを少しいじっていて気がついたのですが、実は、もともと
StarLogoのインストールディレクトリにおいてあった、
 StarLogo.jar
は、いわゆる実行可能Jarファイルで、classファイルだけではなく、
必要な画像や、設定ファイル含まれています。
そうすれば、起動時にenとやっているところをjaとするだけで、日本語での
メニューになってくれてもいい。というか、それくらい単純であって欲しい。

jarファイルはzip圧縮ファイルなので、展開するとディレクトリやや
MANIFESTファイルやらが出てきます。それで、中をみてみたら、
OpenStarLogoではじめて意識した多言語対応設定ファイルらしきもの
がちゃんとおいてありました。特に、GUI(メニューやボタン)の項目
のテキストが記述されている、
で、
 GUIBundle_ja.properties
をつくって、起動したが、うまくいきません。実行時にあるオブジェクト
がnullであるためにexceptionが出ている模様。追いかけ切れていません。

 GUIBundle.properties
で、実際には、これだけではなく、jaのついた名前で存在したほうあよさそう
なファイルを全部作ってみることに。とりあえず、

は、言語のlocaleに対応した形で、
-stalogo以下
-- GUIBundle_ja.properties
-- SLCommands_ja.properties
-yoyo以下
-- YoYoErors_ja.properties
-- YoYoCommands_ja.properties

 GUIBundle_en.properties
 GUIBundle_es.properties
あたり。

がありました。そこで、トップにあるstarlogo-windows.batの中に書いてあった
もちろん、GUIBundle_ja.properties以外は当面「en」の
コピーで。

 java -Xmx256000000 -classpath .;.\language.jar;.\patch.jar;.\starlogo.jar
   starlogo.Toplevel compiler en "init 100" %1
*英語用の設定ファイルを無理やり日本語化してみる [#ve2ff2c5]

のenをesに変えたら、ちゃんとスペイン語らしきGUIテキストになって起動されま
した(どこかに書いてある可能性大。単に調査不足?)
そもそも日本語を含んでいるのが悪いかもしれないので、最初から
ちゃんと読み込まれているGUIBundle_en.propertiesの中身を
直接日本語化して、動かしてみました。

#ref(starlogo-spanish.PNG,,,50%)
ちなみに、日本語打ち込んで、native2asciiで変換すればいいのです
が、それも今後メンドウなので、propeditのeclipseプラグインバージョン
で直接編集しました。

*日本語対応 [#yc1aceb4]
#ref(starlogo-prop_ja_edit.PNG,,,50%)

StarLogoの2.2からunicodeに対応しているので、「日本語が表示できる」という
意味では日本語対応しているわけですが、みたところ、

 GUIBundle_ja.properties
そしたら、結構ちゃんと動きました。まだ完全ではありませんが、
結構細かいところまで日本語化されています。

とかも無いようなので、現在はそもそもそういうニーズはないのかも。

しかし、構造計画研究所KK-MASとの比較で、KK-MASが「日本語ベース」をその
特徴としているところからすると、その問題はメニューを日本語化するだけ
で解決してしまうのかもしれない。
#ref(starlogo-ja-newplot.PNG)

そういうわけで、日本での普及ということを考えれば
多少意味もあるのかも。
さて、本来の方法でできないのはなぜだろう・・・

それをやったあとは、
*正当なやりかたで、日本語化してみる [#y22dc674]

 VisualBasicか、LOGOかの選択
・・・本来の方法でできないのはやはり気持ち悪いので、やってやろうと
思って調べたら、結構いろいろと知らないこと(で、知ってて当然のこと)が
たくさんあって、苦労してしまいました。

ということになりましょうか。
もっと単純にできるうまいやりかたはあるかもしれませんが、とりあえず、うまく
いった方法を載せておきます。

-[[StarLogo日本語化]]
-GUIBundle_ja.propertiesではなく、GUIBundle_ja_JP.propertiesのようにした。
--YoYo.languageに入っている値そのままを使った。
-シミュレーションを止めるためのボタン(基本の画像と押されたときの画像)のためのgifファイルを用意した
--stop.gifとstop-pressed.gif
-- ---> stop_ja_JP.gif, stop-pressed_ja_JP.gif
--Application.javaの中で、YoYo.languageの値を表示したら、ja_JPが返っていたので。
-ある怪しいコードを手直しした。

・・次の様なコードがあったのです。

 if(YoYo.language.getLanguage().equals("en")){
       setMyPreferredSize(new Dimension(285,500));	
 } else if (YoYo.language.getLanguage().equals("es")){
       setMyPreferredSize(new Dimension(320,500));
 }

しょうがないような、しょうがなくないような・・「en」はいいけれど
「es」がハードコードされているのはちょっと。ま、それはいいのですが、
これだと、jaとかja_JPの時は、setMyPreferredSizeされないことになって
しまいます。

実はこれが本当の原因かどうかはまだ検証の余地はあるのですが、これを

 if(YoYo.language.getLanguage().equals("en")){
      setMyPreferredSize(new Dimension(285,500));	
 } else if (YoYo.language.getLanguage().equals("es")){
      setMyPreferredSize(new Dimension(320,500));
 } else {
      setMyPreferredSize(new Dimension(285,500));
 }

みたいな形に、es, en以外でもとりあえず、setMyPrefferedSizeされるように
しました。そしたら、それまで出ていたImageに関するExceptionが消えました。

これで、「日本語対応」といってもいいのではないかと思います。あとは、
プロパティファイルをどう日本語化するかです。

とりあえず、何でもかんでも日本語化すればいいのでしょうけれど、逆に
日本語の用語の方がわかりにくいものもあるかもしれないし、必要以上
に文字列が長くなるようなものがあると、Swingのコンポーネントのサイズ
が足りないものがでてくる可能性もあります。

とりあえず、「やりかた」はわかったということで、内容はもう少し試行錯誤
がいりそうです(fujim2/2006/06/24)

*本家に提出 [#jb1f625d]

とりあえず、上記の試行錯誤の過程の中で、openstarlogoの配布者(つまりは
Starlogoの開発陣)に対していくつかコメントをもらい、最後には、見てもら
うことにしました。現在、提出したところです。

もし、受理されれば、上記のことが、本体に組み込まれるかもしれません(
もちろん却下かもしれませんが)。

実際のところ、勝手にここでパッチを当てたStarlogoを配るわけ
にもいかないので、そうするしかないわけですが・・・
(fujim2/2006/06/25)

*とりあえず、本家でダウンロード可能に [#ia2a896d]

提出してから2日音沙汰なかったのですが、今日見たら、Communitie Contribution
ということで差分のみ(ここで公開しているのと同じもの)ダウンロードできる
様になっています。

*その後調べて [#ya36fc7d]

JavaのLocaleについてその後もう少し調べましたが、やはりソフトウェア側で
xx_ja_JP.propertiesがなかったら、xx_ja.properties、それも無かったらxx.propertiesを参照する、というのが正しいつくりなので、本来はその辺からの訂正が望ましい
ような気がします。全体的に自分でももう少し読んで、確信できたらまた提出
しようかと思います(fujim2/2006/06/28)。

----
#counter



トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Site admin: anonymous

PukiWiki 1.5.0 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji. Powered by PHP 5.6.21. HTML convert time: 0.009 sec.