(6) 多言語対応 < Viivi Blog < Viiviの小部屋 < 入り口 / Entrance


[NOTE]
This article is written ONLY in Japanese.
I hope you can read the contents through one of the surprisingly advanced latest machine translators,
such as Google and DeepL.


Fliege über die Rekursiven!

ここに記載した内容は Viivi に関する 非公式で個人的な考えを雑然と思いつくまま書いたものです. Viivi 開発の背景にある経緯や考えかたを知っていただくために設置しています.

(6) 多言語対応

現在,日本語と英語とドイツ語の環境を提供しています. 英語とドイツ語のメッセージには自信がありません (どちらも毎年ラジオ講座を聞き始めては早めに挫折するレベルです) ので (日本語のメッセージも含めて) 文法やスペルの間違い,わかりにくい点などをご指摘ください.

僕が最初にプログラミングをおもしろいと思ったのは 日本語LOGO を使ったときでした. 初心者がプログラミングに興味を持つためには, その人の母生語でやりとりできることが大きなメリットになると考えています. 他のページにも書きましたが,たとえば初心者が使うお話プログラムで 「こんにちは!」じゃなくて「Kon-nichiwa!」とか「Hello!」じゃ, やっぱりちょっと興ざめですよね. その世界に入り込んで遊べるプログラミング言語処理系としては コンパイラよりもインタプリタのほうが良いと思います. つまり初心者が興味をもってその世界で遊べる処理系として その人の母生語でやりとりできるインタプリタが理想的だと考えています. とはいえ,手続き名などは R5RS で規定されているように「英語的」なもののままですが, これまで変えてしまうと別言語になってしまうので… 手続きの名前まで日本語がよければ (幸い Scheme の場合には) define で別の名前に再定義できますからね.

Shibuya.lisp発表以降,ドイツ語への対応を行いましたが, メッセージを独訳しただけで,処理系自体についてはほとんど手を入れる必要がありませんでした. ドイツ語対応したことには, Viivi にとっては日本語も英語も特別な言語ではなく, Viivi が「並列的」に多言語に対応できることを示す目的があります. 英語とドイツ語なんてほとんど同じじゃないか!と思われる方がいらっしゃると思いますが, 実はドイツ語の語順は独特で,英文の単語を置き換えるだけではドイツ語文になりません. メッセージ内に何かオブジェクトを埋め込みたい場合,日英独語ではこのオブジェクトの位置が すべて異なるという場合がよくあります.そういう意味で,この3か国語に対応したことは Viivi が柔軟に多言語に対応できることを示しているつもりです. (ただし英独語訳が間違えているおそれはあります. ご指摘や添削をしていただけますとありがたいです.)

使用する言語は,JVMがプラットフォームの現在使用中のロケールを判断して自動的に決定します. また,手続き呼び出し (viivi-set! language "xx") や コマンドラインオプション -LANG xx で 使用する言語を強制的に指定することもできます (xx は現在 ja en de のいずれか). 使用中のロケールや指定した言語に対して対応できていない場合には, 英語(C-Locale)が使われます.

原理的にはJVMの内部Unicodeが対応しているすべてのロケールに対応可能です. 対応言語をいくら増やしても,Viiviが消費するメモリ容量は変わりません.


(6) 多言語対応 < Viivi Blog < Viiviの小部屋 < 入り口 / Entrance


ご連絡方法

2010/10/24 開設
Copyright(C) 2003-2022 ilma <ilma@viivi.io> All rights reserved.