小笠原です。
LibreLogo ですが、po ベースでがーっと変更かけました。 ので、ざーっと見ていただけるとありがたいです。 なお LibreLogo のマニュアルは: https://wiki.documentfoundation.org/User:Nemeth にあります。 LibreLogo には「magic アイコン」というアイコンがありまして、これは、 ----- ペンを上げる 前進 10 ペンを下げる 前進 10 ----- みたいにやってアイコンをぽちっと押すと、 ----- PENUP FORWARD 10 PENDOWN FORWARD 10 ----- みたいに変換してくれる機能です。 個人的には、 ・ユーザーの対象は10歳ぐらい ・英語はわからないけどローマ字ぐらいはわかる (パソコン使ってるってことはアルファベットには 抵抗がない) ・なので「最初に覚えてしまえば」英語のコマンドを 普通に使うんじゃないか ・けど、その「最初に覚える」ために magic アイコン 対応はしたほうがいいんじゃないか というポリシーです。 なお LibreLogo は magic アイコンで変換できる用語 を複数用意できるので: FORWARD=すすむ|forward|fd と書いたら、この三つのどれを書いても FORWARD に 変わってくれます (逆に |forward を書き忘れると、 forward って直接英語書いたときに認識してくれな いという不具合が)。 まあそんなわけで、FORWARD ぐらいならいいのです けど、制御構文でかなり苦しい訳をしています。 ので、そこらへんを見ていただければと。 1) 無理は止めて制御構文は英語にしたら? 2) いや、いっそのこと全部英語でいいんじゃ? 3) 日本語でもいいと思うけどもうちょっとマシな 表現はないのん? などご意見くだされば幸いです。 -------------------- (1) PICTURE PICTURE は描画コマンド列をグルーピングする機能です。 PICTURE [ FORWARD 100 CIRCLE 100 ] と書くと、「100 前進して 100 のサイズの円を書く」処理がグループ化 されます。かなり訳しにくかったので英語以外にふたつ用意しました。 https://translations.documentfoundation.org/ja/libo_ui/librelogo/source/pythonpath.po/translate/#unit=29912313 図 [ すすむ 100 円 100 ] 図のグループ [ すすむ 100 円 100 ] でもどっちにしても: PICTURE ; start a new line shape FORWARD 10 PICTURE FORWARD 10 ; two line shapes この例にはハマらないんだよなあ……(というか、この例の意味がよくわかんない)。 -------------------- (2) REPEAT 繰り返しの基本形です。引数を省略すると無限ループです。 内部でREPCOUNTという変数を参照できて、これが繰り返しの回数です。 REPEAT 10 [ FORWARD 10 LEFT 45 CIRCLE 10 ] REPEAT [ POSITION ANY ] ; endless loop REPEAT 100 [ FORWARD REPCOUNT LEFT 90 ] https://translations.documentfoundation.org/ja/libo_ui/librelogo/source/pythonpath.po/translate/#unit=29912317 これはシンプルにしました。 くりかえす 10 [ すすむ 10 左 45 円 10 ] くりかえす [ 場所 なんでも ] くりかえす 100 [ すすむ くりかえした数 ] -------------------- (3) FOR IN ほかのプログラミング言語の foreach 的なやつです。 FOR i IN [1, 5, 7, 9, 11] [ FORWARD i LEFT 90 ] 文字列も OK です。 FOR i IN “text” [ LABEL i FORWARD 10 ] これはかなり強引です。お知恵拝借したく。 https://translations.documentfoundation.org/ja/libo_ui/librelogo/source/pythonpath.po/translate/#unit=29912322 https://translations.documentfoundation.org/ja/libo_ui/librelogo/source/pythonpath.po/translate/#unit=29912323 ひとつずつ i を次から取り出して [1, 5, 7, 9, 11] [ すすむ i 左 90 ] -------------------- (4) WHILE WHILE REPCOUNT <= 10 [ FORWARD 50 LEFT 36 ] ; as REPEAT 10 [ ... ] これもかなり無理矢理です(「次の間くりかえす」という候補もありました)。 https://translations.documentfoundation.org/ja/libo_ui/librelogo/source/pythonpath.po/translate/#unit=29912321 くりかえすのは次の間 くりかえした数 <= 10 [ すすむ 50 左 36 ] -------------------- (5) BREAK/CONTINUE C の break/continue そのまんまです。 REPEAT [ ; endless loop POSITION ANY IF REPCOUNT = 100 [ BREAK ] ; equivalent of the REPEAT 100 [ ... ] ] REPEAT 100 [ POSITION ANY IF REPCOUNT % 2 <> 0 [ CONTINUE ] CIRCLE 10 ; draw circles on every 2nd positions ] https://translations.documentfoundation.org/ja/libo_ui/librelogo/source/pythonpath.po/translate/#unit=29912319 https://translations.documentfoundation.org/ja/libo_ui/librelogo/source/pythonpath.po/translate/#unit=29912320 くりかえす [ 場所 なんでも もし くりかえした数 = 100 [ くりかえしから出る] ] くりかえす 100 [ 場所 なんでも もし くりかえした数 % 2 <> 0 [ はじめにもどる ] 円 10 ] 「はじめにもどる」は処理の先頭にもどりそうなのでなんとかしたいんですが、 どうせ記号だと割りきりました。 -------------------- (7) IF なんか文法が Lisp っぽいのは気のせいです。 IF a < 10 [ PRINT “Small” ] IF a < 10 [ PRINT “Small” ] [ PRINT “Big” ] https://translations.documentfoundation.org/ja/libo_ui/librelogo/source/pythonpath.po/translate/#unit=29912324 これはシンプルに。 もし a < 10 [ 表示 "小さい" ] もし a < 10 [ 表示 "小さい" ] [ 表示 "大きい" ] -------------------- (8) NOT, AND, OR IF a < 10 AND NOT a < 5 [ PRINT “5, 6, 7, 8 or 9” ] NOT がキツイ。 たぶんこれ多くの日本語プログラミングの取り組みで同じ悩みがあったと思います。 なぜなら NOT は前置ですが日本語の否定は後置だからです。 あと AND の略語も意外と悩みます。ちょっと気にいっていません。 「かつ」って言葉が硬いんでやわらかいことばをいれたいなとおもって「と」を選んだんですが、いまいち。 意外と「で」がいいんじゃないかと思うんですけど反映してません。 https://translations.documentfoundation.org/ja/libo_ui/librelogo/source/pythonpath.po/translate/#unit=29912330 https://translations.documentfoundation.org/ja/libo_ui/librelogo/source/pythonpath.po/translate/#unit=29912331 https://translations.documentfoundation.org/ja/libo_ui/librelogo/source/pythonpath.po/translate/#unit=29912332 もし a < 10 と 次が正しくない a < 5 [ 表示 “5, 6, 7, 8 または 9” ] -------------------- (9) TO ... END 関数やサブルーチンを作ります。この一般語彙がパパート先生の意志を感じるけど、 正直つらい。 TO triangle REPEAT [ FORWARD 100 RIGHT 120 ] FILL END REPEAT 10 [ triangle PENUP POSITION ANY PENDOWN ] https://translations.documentfoundation.org/ja/libo_ui/librelogo/source/pythonpath.po/translate/#unit=29912314 https://translations.documentfoundation.org/ja/libo_ui/librelogo/source/pythonpath.po/translate/#unit=29912315 そもそも「サブルーチン」をなんと呼ぶかなやんで、結局「動き」としました。 「処理」だとちょっと固いのが気に入らない。でも「動き」も気に入ってないです。 「おわり」がなんか一般用語すぎて気に入らないんですよね。 動きを作る triangle くりかえし [ すすむ 100 右 120 ] 塗りつぶす おわり くりかえし 10 [ triangle ペンを上げる 場所 なんでも ペンを下ろす ] いま思ったんですけど、こんなのもいいかも。反映はしてないです。 動きの名前 triangle くりかえし [ すすむ 100 右 120 ] 塗りつぶす できあがり -------------------- (10) OUTPUT return 文のうち、値を返す方。 TO randomletter OUTPUT RANDOM “qwertzuiopasdfghjklyxcvbnm” END https://translations.documentfoundation.org/ja/libo_ui/librelogo/source/pythonpath.po/translate/#unit=29912325 動きを作る randomletter 値を返す RANDOM “qwertzuiopasdfghjklyxcvbnm” おわり -------------------- (11) STOP return 文のうち、値を返さない方。 TO example number IF number < 0 [ STOP ] PRINT SQRT number ; print square root ] https://translations.documentfoundation.org/ja/libo_ui/librelogo/source/pythonpath.po/translate/#unit=29912316 「動き」という言葉が変わったら、こっちも変えます。 動きを作る example number もし number < 0 [ 動きから出る ] 表示 平方根 number ; print square root ] ---------------------------------------------------- 構造があるやつはこの程度のはずなので、残りは Pootle で確認お願いします。 https://translations.documentfoundation.org/ja/libo_ui/librelogo/source/pythonpath.po よろしくお願いします。 [以上] -- Naruhiko Ogasawara ([email protected]) -- Unsubscribe instructions: E-mail to [email protected] Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette List archive: http://listarchives.libreoffice.org/ja/discuss/ All messages sent to this list will be publicly archived and cannot be deleted
