[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)
奈良先端科学技術大学院大学