鷹の島

2005-11-26 (Sat)

Trac で遊んでみたよ その1 - 日本語

Trac 入れてから 1ヶ月位経ちましたが、大分手放せないツールになってきました。チケットとログの連動が便利杉。

さて、そんな Trac ですが、ソースコードブラウザで EUC や ShiftJIS が化けます。これ自体は trac.ini の default_charset を japanese.shift_jis とかにしておけば良いのですが、(勿論 python-japanese-codecs が必要ですが!!) 1つしか指定出来ないので、文字コードが混在している自分のウンコ環境では片方が確実に文字化けしてしまいます。

インタアクト さんの所の配布物に含まれるドキュメントによると、svn:mime-types を指定してやれば解決する可能性が高いらしいですが、全部チェックするのは面倒すぎなので、trac のソースコードをいじって対応してみました。

たいした変更じゃないのでやっておくと安心かも。

更新したファイル /usr/lib/python2.3/site-packages/trac/util.py

@@ -78,7 +78,8 @@
             u = unicode(text, charset)
         except UnicodeError:
             # This should always work
-            u = unicode(text, 'iso-8859-15')
+            #u = unicode(text, 'iso-8859-15')
+            u = unicode(text, 'japanese.euc-jp')
         return u.encode('utf-8')

この状態で default_charset を shift_jis にしておけば、EUC-JP と Shift_JIS の混在環境でもOKでした。あと Unicode も普通に表示出来ます。他は知らないけど、この辺の条件分岐に追記してやったりすれば簡単に対応出来そう。

ところで、今見ていて気が付いたのですが、インタアクトさんの所の日本語版が更新されて0.9版の配布も開始されていました。今回から、差分の提供じゃなくなったみたいですね。自分でも見た目をちょっといじってるので更新しずらいかも…。しかし何にせよこうして更新して下さるのには頭が下がる思いです。

Posted by Kyosuke Takayama at 2005-11-26 (Sat) 10:11