[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-devel:10333] Re: Draft 1 (Re: I18N Document)



岡@奈良先端です。

At Thu, 9 Sep 1999 11:07:07 +0900,
Tomohiro KUBOTA <kubota@xxxxxxxxxxxxxxxxxxxxx> wrote:
> 
> 久保田です。

> System1 って、free software ですか?
> (もちろん、ここでの free とは、DFSG free のことです)。
> その Web ページを見ても、よくわかりませんでした。
> ダウンロードして自分でコンパイルして試したりもできるのでしょうか?
> おおくまさんは、試されたことがありますか?
> フリーでないものを紹介しても仕方がないので。

参考程度にM17Nの実装例として引用してもいいんじゃないかと思い
ますよ。フリーソフトウェアに限定して視野を狭めることもないです。

> # そういえば、噂に聞く多言語 Web ブラウザ arena-i18n って
> # どこにあるのでしょう? だれか Debianize しないかな...

arena - an HTML 3.0 compliant WWW browser for X

> 岡さん:
> > そのため、EUCに特化した折り畳み規則を適用するパッチを作成し
> > ています。いわゆるその場しのぎというやつです。最初はwchar化
> > を考えていましたが、gettext全部直す必要がありそうだったので、
> > 「問題回避」に終わりました。
> > 当然本家とマージできるような代物ではないので放置しています。
> > 翻訳する人は比較的小数なので、このパッチでしのいでいるようです。
> 
> # 私だったら「マージしてくれ」って言ってたかも。こわいもの知らずだし。
> ## それくらい自信過剰じゃなかったら、I18N についての文書を
> ## 書くぞ、なんて私は絶対に言い出さなかったはず。
> # でも、gettext ってたしか GNU ですよね。GNU が相手なら
> # やめてるかな... (「伽藍とバザール」の「伽藍」ですしね。)
> # ところで意地悪な質問していいですか?そのパッチは、JIS X 0212
> # (SS3 + 2バイト) に対応してました?

対応していないです。JIS X 208のEUCマッピングのみを考慮してい
たようです(もう忘れている)。0xa1〜0xfeという直接的な知識を用
いています。

 # 国際化プログラミング p65, 図5-7

> ところで、そのパッチ作成の話、実例としてコードもまじえて、
> 第7章の実例のところに contribute してもらえないでしょうか?

ライセンスをつけるようなレベルの代物でないので、御自由にお使
い下さい。間違っている可能性はあります。
# 悪い例として使うといいかも。

> # いま思いつきましたが、折り畳みを無効にするコマンドオプションを
> # 追加して、文字セットが ASCII と ISO-8859-* 以外なら自動的に
> # それが有効になるようにしておくとかなら、マージできるのでは?
> # gettext は GNU ツールだし、1行の長さに制限はないのでしょう?
> # それに、どうせ折り畳みは「カラム数」という、文字コードの規格には
> # ない概念をもとにした考え方であり、ようするに考え方そのものが
> # 美しくないのだから、それの実装が美しくできるはずがない。
> # というわけで、EUC べったりな実装とかでもいいんじゃない?

EUC依存なこととカラム数依存なことは別物です。カラム数依存で
あってもまだコードセットに依存していなければ十分価値のあるコー
ドを保てています。gettextのような重要度の高いツールを汚した
くなかったのです。

 # カラム数依存はgettextの機構には影響ありません。主にEmacs
 # でメッセージを翻訳する時にやり易いだけです。

> 岡さん:
> > # でも日本ってそんな悪いイメージなのかなぁ...。
> > # とても特徴的な国なのに。
> 
> # 日本という「国」つまり「仕組み」は特徴的だ、という意味ですか?

 # いやぁ、この場合は文化を背負った国のことを言ってます:-)

> # だから、gettext の quick hacking でも、マージすりゃいいのに、
> # って考えるのです。だれかがそれに刺激されてきちんとした I18N
> # を実装するかもしれないですしね。

それはそうだったかもしれません。Wishlistぐらい出せばよかった。

> 岡さん:
> > それから、足りないと書いたのは「I18Nでは足りない」と書いたの
> > ではなくて、「wcstombs的な関数群」だけではI18Nをするには足り
> > ないと書いたつもりです。ここではM17Nの事は一切関係ありません。
> 
> はい。それでは、何が足りないのか、意見を聞かせてください。

沢山ありすぎて忘れかけていると思います。

メールソフトでEUC-JP→JISやJIS→EUC-JPに変換することなんかも、
メールソフト側がフィルタ的プラブイン機構を提供することで国際
化の一環として実装できそうです。これのEUC-JP <-> JISプラグイ
ンを書くことが地域化。

言い換えると、「国際化」に収まらなかったものが「地域化」にし
わ寄せされているように思います。

 # 「国際化」の解釈が広すぎるようでしたら無視して下さい。

> # 今やっと気がつきましたが、私が関心があるのは文字だけで、
> # ほかの部分、たとえば通貨とか日付フォーマットには関心がないです。
> # 文字についても、ワープロ的な機能にはあまり興味がなくて、
> # というか、荷が重過ぎます。テキストファイルで表現できる範囲に
> # 重点を置きたい。それ以上のことについては、そういうものがある、
> # 程度の扱いになりそう。
> # そういう文書になってもいいでしょうか? >all
> # もちろん、Introduction にはそのような旨を書かないといけませんね。

気がついた人が追加していけばいいですね。

> 岡さん:
> >> えっと、それは目次の項目づけに対する意見ですね。私は X とコンソールで
> >> 分類することが必要だと思ったから分類したのですが、ごっちゃにすると
> >> どうなるか、ちょっと想像もつきません。
> > いえ。久保田さんがXFontStructなどの言葉を直接使わず一般化し
> > て書きたいと書かれていたので、こう書きました。そんなに気にし
> > ないで下さい。
> 
> そんなこと言いましたっけ?すみません、意見が変わりました。X 全般について
> そのふたつの関数だけでほとんど話がついてしまうくらいその関数が重要
> なのなら、具体的に書きたいと思います... って、XFontStruct って、
> 関数じゃなくて構造体だったんですね。じゃあ話が長くなるかも...

僕もあんまり詳しくないですが、

  XFontStruct *font;
  Display *display;
  GC gc;
  ...
  font = XLoadQueryFont (display, "font-name");
  XSetFont (display, gc, font->fid);

みたいにしてフォントを指定するらいしいです。
FontとFontSetの対応はたいてい以下のようになるようです。
# 他にもありますが割愛。

  Font              | FontSet
  ==================+====================
  XFontStruct       | XFontSet
  ------------------+--------------------
  XLoadFont()       | XCreateFontSet()
  ------------------+--------------------
  XUnloadFont()     | XFreeFontSet()
  ------------------+--------------------
  XQueryFont()      | XFontsOfFontSet()
  ------------------+--------------------
  XDrawString()     | XmbDrawString()
  XDrawString16()   | XwcDrawString()
  ------------------+--------------------
  XDrawText()       | XmbDrawText()
  XDrawText16()     | XwcDrawText()
  ------------------+--------------------

で、Xはこれだけでいいかと言うと、そうじゃないような気がして
きました。例えばAthenaやMotifやGTK+やQtによって全然違うプロ
グラミングインファフェースがあるわけですから、内部的にこれを
使っていようと表面的なプログラマには関係無い話です(Qtについ
ては上記の関数すら使ってないと思います)。

そういうわけで、主要なものを全部書くか、一般化した表現に留め
るかだと思います。

--
岡 充 (Mitsuru Oka)
奈良先端科学技術大学院大学