TracGanttCalendarPluginの文字コードエラーを解消する
GanttCalendarPlugin の見た目に惹かれてインストールしてみたが、ファイル内部で日本語が使われているためか、エラーが発生する。ちなみに Python のバージョンは 2.5.2。
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128)
とりあえず、ticketcalendar.py と ticketgantt.py にて日本語で書かれているところを u〜 を付ければ動いた (Python のことは知らないけど、これ何て言うんだろう?)。
# tag.a('カレンダー', href=req.href.ticketcalendar())) tag.a(u'カレンダー', href=req.href.ticketcalendar()))
しかし、このままでは動いてもメニューの文字が暗号のような文字になってしまうので、ファイルの先頭に
#!-*- coding:utf-8 -*-"
を付ける必要があった。と言うわけで、修正点を纏めると↓みたいな感じかな?
★ ticketcalender.py
#!-*- coding:utf-8 -*-" import re, calendar, time from datetime import datetime, date, timedelta
def get_navigation_items(self, req): if req.perm.has_permission('TICKET_VIEW'): yield ('mainnav', 'ticketcalendar', tag.a(u'カレンダー', href=req.href.ticketcalendar()))
★ ticketgantt.py
#!-*- coding:utf-8 -*-" import re, calendar, time from datetime import datetime, date, timedelta from genshi.builder import tag
def get_navigation_items(self, req): if req.perm.has_permission('TICKET_VIEW'): yield ('mainnav', 'ticketgantt', tag.a(u'ガントチャート', href=req.href.ticketgantt()))