古い記事
ランダムジャンプ
新しい記事
Hack部(ハック部)の合宿で、中国語の簡体字と日本語漢字の相互変換ツール Kanconvit を作りました。
オフィシャルな読みは「カンコンビット」ということでよろしくです。
まあ別になんでもいいんですが。

- Kanconvit - 簡体字と日本語漢字の相互変換ツール
http://kanconvit.ta2o.net/

簡体字と日本語漢字の違い分かりますか?
下図では、右が簡体字で左が日本語漢字(Kanconvitで変換したもの)です。
左だと漢字だけ見るだけでも中国語の意味がなんとなくわかりそうでしょ?

人民網(www.people.com.cn)

Kanconvit ダイジェスト


- 文字変換ライブラリ「Kanconvit.pm」(Perlモジュール)
http://kanconvit.ta2o.net/Kanconvit.pm

- 変換ページ「Kanconvit CGI」
http://kanconvit.ta2o.net/conv.cgi
-- 例:「中華料理協議会

- 変換API「Kanconvit API」
http://kanconvit.ta2o.net/api.cgi
-- 例:XML, JSONP

- 変換ラッパー「Kanconvit Wrapper」
http://kanconvit.ta2o.net/wrap.cgi
-- 例:中日変換オリジナル), 日中変換オリジナル
-- ブックマークレット:[J2C], [C2J]


開発前の構想メモ


簡体字と日本語漢字の相互変換ツール、サービスの作成を作りたい。
- 「lang="ja"」→「lang="cn" charset=UTF-8」
- 「lang="cn"」→「lang="ja" charset=UTF-8」

中国語のページを日本語の漢字で見ると意味が分かりやすくなる。
翻訳をするまでもない、こともあるかもしれない。

作業順序


(1) 簡体字日本漢字変換テーブルの作成

中国語漢字と日本語漢字の対応表のリスト(後述)から抜き出して作成。

(2) 変換部分のPerlモジュール化

Kanconvit.pm というのを作った。
Simplified to Japanese, Japanese to Simplified の両方向。

SYNOPSYS:
use Kanconvit;
my $ck = Kanconvit->new();
$jtext = $ck->conv_c2j($ctext);
$ctext = $ck->conv_j2c($jtext);
(コード:http://kanconvit.ta2o.net/Kanconvit.pm)

(3) フォーム入力式変換ページ(CGI)の作成

文字コードは UTF-8 で統一。

- Kanconvit CGI
http://kanconvit.ta2o.net/conv.cgi

サンプル:「中華料理協議会

(4) 変換 API CGI の作成

XML だけでなく、JSON, JSONP にも対応。

- Kanconvit API
http://kanconvit.ta2o.net/api.cgi

パラメータ解説
ctext日本語漢字に変換したい簡体字テキスト(UTF-8)
jtext簡体字に変換したい日本語漢字テキスト(UTF-8)
formatフォーマットを指定する。xml か json。
callbackformat=json のときに callback 関数を指定する。

サンプル:
- 日→中, XML : jtext=%E4%B8%AD%E8%8F%AF
- 中→日, XML : ctext=%E4%B8%AD%E5%8D%8E
- 日→中, JSON : jtext=%E4%B8%AD%E8%8F%AF&format=json
- 中→日, JSONP : ctext=%E4%B8%AD%E5%8D%8E&format=json&callback=f

(5) 変換ラッパーCGIの作成

ウェブページをラップするCGI。
ブックマークレットで使うことを念頭に。

- 変換ラッパーCGI「Kanconvit Wrapper」
http://kanconvit.ta2o.net/wrap.cgi

サンプル:中日変換オリジナル), 日中変換オリジナル

日中、中日のそれぞれの方向用のブックマークレット。
日本語ページ、中国語(簡体字)ページで実行する。
- [J2C], [C2J]

ラッパープログラムは下記の自記事を参考にした。

- [を] Webページを読み込んで何か処理して表示するラッパーCGIのテンプレート(Perl)[2008-11-04-2]

既存の変換サービス


既存の簡体字・日本漢字変換サービスはいくつか公開されている。

- 日本漢字⇔簡体字・変換・コンバート(SJIS<->GB2312)
http://pinyin.jp/sjis2gb.cgi
- 文字コード変換 (紀州技研工業・文字コードの話)
http://www.kishugiken.co.jp/cgi-bin/code3.cgi

中国語漢字と日本語漢字の対応表


漢字対応表はネットでたくさん公開されている。

- A Dictionary for Readings of Japanese Kanji 漢字辞典
http://www.scribd.com/doc/12382503/A-Dictionary-for-Readings-of-Japanese-Kanji-
- 漢字テーブル
http://www.aka-hashi.net/1000kanji.html
- 中国語漢字日本語漢字
http://emich.world.coocan.jp/kanji/SimplifiedTraditionalJapanese.htm
- 文字対応表エクセルシート
ttp://www.space-library.com/ChineseFont_by_Tsujino(NISTEP).xls

開発に使ったサンプルページ


これらのページをテストに使用した。

- 人民日報 (GB2312)
http://www.people.com.cn/
- 在中日本大使館 (UTF-8)
http://www.cn.emb-japan.go.jp/

追記


追記090615:
弾さん(dankogai)による JavaScript 版が公開されました。
わーい!
- javascript - にKanconvitを移植してみた (404 Blog Not Found)
http://blog.livedoor.jp/dankogai/archives/51224227.html
この記事に言及しているこのブログ内の記事