Hatena::ブログ(Diary)

Webと文字

よければ、はてブしてください。( ´∀`) George.Nagaoka@gmail.com

JavaScript IME:海外からブラウザで日本語を変換 新URL 旧URL:
多言語入力ブックマークレット:ブラウザでロシア語、中国語、アラビア語・・・
【軍曹が】携帯電話開発の現状【語る】をAA化した
AAのデータベース
趣味のページ

2009-01-07

JavaScriptで日本語のIMEを作ろう その2

1.あけまして おめでとう

    _  ∩
  ( ゚∀゚)彡 今年もおっぱい!おっぱい!
  (  ⊂彡
   |   | 
   し ⌒J

         ∧ ∧
       ヽ(・∀ ・)ノ <おっぱい!おっぱい!
       (( ノ(  )ヽ ))
         <  >

 今年もよろしくお願いします。

2.コードをいじったらカオスになったでござるの巻

バグリスト

  • 確定した後にキャレットがどっかへ飛んでいってしまう。
  • たまに文字化けする。

3.サンプル:

サンプル:http://www.geocities.jp/project_the_tower2/web_mozi/nihongoime/7/


3.参考資料

  1. WYSIWYGエディタに夢中になったときのメモ (Chronicle it.)
  2. テキストエリアでリターンキーを押した際に、submitイベントの発生を抑止する方法 - Enjoy*Study
  3. Social IME 〜 みんなで育てる日本語入力 〜

2008-12-29

2008-11-03

DOM Rangeは #`Д´> 頭にくる

1.謝罪と賠償を要求する

気が付いたら連休が終わっているじゃないか!これもDOM Rangeのせいだ。どうして各ブラウザで統一されていないんだ!謝罪と賠償を要求する!

    ((⌒⌒))
ファビョ━ l|l l|l ━ン!
(⌒;;.. ∧_∧
(⌒.⊂,ヽ#`Д´>   怒り心頭に発する!
(⌒)人ヽ   ヽ、从
 从ノ.:(,,フ .ノゝ⊃
人从;;;;... レ' ノ;;;从人

キャレットの位置とキャレット位置の設定を行おうとして挫折したサンプル:

contentEditable="true"によるキャレット位置テスト

2.クロスドメイン制限に死刑を

誰だ、クロスドメイン制限なんてかけたやつは!俺の三時間を返せ!クロスドメイン制限の撤回を要求する!

゛ (⌒) ヽ
          ((、´゛))
    ..      |||||
(( ⊂_ヽ     |||||| ドッカーン !!
   ( \\ ∧_∧) ))
  ((⌒))\ <♯`Д´> 
  ノ火    >  ⌒ヽ
  (⌒((⌒)/:..:″;.へ \)), ファビョ━━━ン!
  (⌒( ⌒ )::./)) \\    。
     ( (( ⌒ )) )  ヽ_つ   ゚
     (( ⌒ )) )),        
    从ノ.::;;火;; 从))゙     
    从::;;;;;ノ  );;;;;从 
   从;;;;;::人 ;ノ;;;;;从人 

日本語IMEを作ろうとして挫折したサンプル:

contentEditable="true"による日本語IMEテスト

3.レポートなんかあるからだ

どうして期日があるのだ!


     \丶 r⌒ヽ (⌒⌒)  r⌒ヽ/,  / /,
  ヽ  、、;(⌒ヾ . (((⌒⌒)))  /⌒) ),  ,
   、ヾ (⌒ ファビョ━ l|l l|l ━ン!⌒⌒);;)/,
 、\(⌒ゝ;(⌒ヾ    ∧_∧    ⌒)/)) .,  /
((⌒-丶(;;;(⌒ゝ;;(⌒∩#`Д´>'') ,⌒⌒);;;;;)))⌒)
 (;;;;(⌒(⌒;;;(⌒   ヽ    ノ / ))⌒));;;;)-⌒))
ゞ (⌒⌒=─      (,,フ .ノ    ─=⌒⌒)ノ;;ノ;;;::)
((⌒≡=─.       レ'    ─=≡⌒)丿;;丿ノ

4.参考資料

  1. createRange
  2. parentElement
  3. 第29回 Textとloadの利用方法を確認する
  4. keyイベント(keypress,keyup,keydown)の確認
  5. JavaScript Rangeの使い方 - とみぞーノート

2008-10-22

多言語とWebに関して

1.方向性の転換

今まで文字の入力を目標にJavaScriptで多言語入力用のソフトを作ってきたわけですが、ロシア製のパーペキIMEには勝てそうにないので方向を変えようと思います。

2.キーボード

ロシア製IMEはEnterキーを実装するのに画像を使用しています。多角形を書くことはJavaScriptだけではできないからです。そこでSVGやキャンパスを使うことでキーボードレイアウトの自由化を図ります。キー配列やレイアウトも自由に変えられることが目標です。

3.フォント

そもそも入力方式が存在しないのならフォントも存在しないのではと私は考えます。フォントの支援こそがIMEの重要な課題のひとつではないでしょうか。海外からオンラインの中国語や日本語のIMEを利用してもフォントがなければ無意味です。著作権のクリアしたフォントをCSS3にあるWebFontやJavaAppletで支援することを目指します。

4.入力と変換

単純に文字を入力するIMEにおいてロシア人は完璧でした。しかし、変換を必要とするような言語ではそれは苦痛です。オンラインのIMEにおいて変換を加えることは飛躍的に価値を向上させます。例を挙げればAjaxIMEやJapaneseIMEです。この二つは日本語を入力するのに形態素解析を行うことで入力の効率をアップさせています。これを中国語に対しても行うことが目標です。

5.ToDo

  • キーボードを調べる
  • 著作権フリーなフォントを探す。
  • 中国語のフリーのピンイン文脈解析機を探す。Google谷歌 拼音输入法のようなものを目指す。

6.参考資料

  1. Виртуальная клавиатура http://debugger.ru/projects/virtualkeyboard
  2. Ajax IME: Web-based Japanese Input Method http://ajaxime.chasen.org/
  3. Japanese IME http://colspan.net/experiment/jsim/japanese.html

2008-10-21

自分が情けなくて(´;ω;`)涙が出る

多言語ブックマークレットに関して海外の方からメールを頂いた。何とか返信しようと思ったのだけれども、自分の言いたいことが英語で表せない。そういえば昔、TheTower?というゲームのサイトをやっていた時にも海外の方から英語でメールが何通かきた。その時はメールを無視してしまった。5年たってどうだろうか。このまま無視したら何かが終わってしまうような気がした。Yahooの翻訳サイトやGoogleなんかを使って何とかメールを仕上げた。ぼろぼろなメールだと思うが果たしてどうだろうか。相手に失礼なことは書かなかっただろうか。自分の情けなさに本当にいやになる。(´;ω;`)