Experience Prototypistのマルチリンガル子育て+プログラミングブログ

Design Thinking、語学(英語、中国語、韓国語)、日中マルチリンガル育児、littleBitsやRaspberry Pi, Arduinoを使ったExperience Prototypingネタ。

PukiWikiとkakasiを連携してみた...けど多言語対応はどうしたものか

今ご覧いただいているこのブログはMovable Typeというシステム上で(ちょっと寂し目の頻度で)書いているのですが、むしろ私はWikiの方が好きで、http://www.mfunaki.jp/の方には、こちらよりも割と頻繁にいろいろエントリをしている(そのほとんどが私の個人的なメモに過ぎなかったりするので、RSSリーダーで読んでも面白くはないでしょうが)。

Wikiの方は、PukiWiki Plus!というシステムを使っています。理由としては(UTF-8ベースでの)国際化が容易だったの一言に尽きます。日本語でも英語でも中国語でも(そして最近は韓国語でも)あれこれエントリを書き連ねているのでEUC-JPでデータを保持しているなんてのはお話にならんです、はい。

で、今日はそのPukiWikikakasiと連携するようにしてみました。連携といっても、エントリの一覧(本の索引みたいなもの)がこれまではアルファベットのものはそれらしく、それ以外のものは文字コードの順にまとめて並んでいたのですが、kakasiとの連携によって(読みがなが付与された結果)、日本語のエントリに関しても、「あ」から順に辞書順に並ぶようになりました。

とはいうものの、ページをご覧いただければわかるのですが、見やすくはないですね、ちっとも。韓国語(ハングル)に関しては、なんとか(自分でプラグインを書くなり拡張するなりすれば)もう少し見やすく整理出来そうな気がしますが、中国語に関してはピンインで読みを付与しても(これ自体は手作業でやればそれほど大変ではない)、英語のエントリと同列に扱っては、これもまた見にくくなりそうなので、どうしたものかと考え中です。

ちなみに、具体的にどのような作業をしたのかというと、本サイトはさくらインターネットを使っているのだが、

  1. sshでログインしてkakasiのインストール (Namazu正規版インストール覚え書きを参照)
  2. pukiwiki.ini.phpファイルを更新してftpでアップロード
だけです。

 // Enable page-reading feature by calling ChaSen or KAKASHI command
 // (1:Enable, 0:Disable)
 $pagereading_enable = 1;
 // Specify converter as ChaSen('chasen') or KAKASI('kakasi') or None('none')
 $pagereading_kanji2kana_converter = 'kakasi';
 // Specify Kanji encoding to pass data between PukiWiki and the converter
 $pagereading_kanji2kana_encoding = 'UTF8'; // for UTF8-based PukiWiki Plus!
// Absolute path of the converter (KAKASI)
$pagereading_kakasi_path = '/home/hoge/bin/kakasi';