このファイルは Trac のオリジナル配布物には含まれません。
Trac-ja は Trac の日本語ローカライズバージョンです。
Trac はオリジナル配布物のままでも、日本語を使用することができます。
Trac の内部では (0.10 以降) Python の'Unicode' 形式で文字列を処理し、 Web の表示は UTF-8で行われるため、 (対応するフォントがあれば) どのような言語であっても取り扱うことができます。 (See: TracUnicode)
バックエンドのデータベース には UTF-8 でデータ (Wiki ページ, チケット) が保存されます。
添付ファイルはデータベースに格納されません。 Environment の attachments ディレクトリ配下に、 URL エンコードされたファイル名で保存されます。ブラウザが URL エンコードに UTF-8 を使用していない場合、ファイル名が文字化けすることがあります。また、ファイル名に日本語を使用すると 1 文字あたり 9 バイトに展開されるので、日本語 20 文字程度でファイルシステムが許容するファイル名の長さの上限に達してしまうので注意してください。
trac.ini ファイル 他、Environment に配置するファイル (カスタムテンプレート や、 Wiki マクロ など) は、 UTF-8 で作成してください。 BOM (Byte Order Mark) が付いていると動かないことがあります。 Windows のメモ帳 (NOTEPAD.EXE) で編集しないようにしてください)
今のところ Trac が正式に対応している バックエンドのバージョン管理システム は、 Subversion だけです。 Trac Project の開発ブランチ や Trac Hacks などには、他のバージョン管理システムを使うためのプラグインがありますが、動作状況等未確認です。
バージョン管理下のファイルは、 MIME Viewer という機能で HTML 変換し、リポジトリブラウザに表示されます:
Python 2.3 配布には、日本語だけで使用されている文字コード(cp932, shift_jis, euc-jp など) の codec が含まれていません。これらの文字コードを使用したい場合は、別途 JapaneseCodecs をインストールする必要があります。 Python 2.4 配布では、 JapaneseCodecs が同梱されています。
添付ファイル表示もバージョン管理下のファイルと同じく、 MIME Viewer が行います。
ただし添付ファイルでは、 (svn:mime-type 属性のような) ファイル毎の文字コード指定はできないので、 BOM による UTF の判別ができなければ、 default_charset に指定した文字コードに固定されます。
trac-admin コマンド の入出力では、使用するコンソールの文字コードが自動判別されます。 (0.10 以降)
Trac が送信するメールは UTF-8 が Base64 か quoted-printable で 7bit-safe な形式にエンコードされています。MUA がこれらのエンコードに対応していない場合、文字化けする可能性があります。 (See: TracNotification)
オリジナル配布ではユーザ入力以外の表示メッセージは全て英語です。これを日本語化した手順を記述します。
入力内容はオリジナル配布物でも日本語を使用できます。 前項 の通りです。日本語化作業で変更した点はありません。
チケット属性について付記します。
チケット属性の名前は、ほとんどの画面で何もしなくても日本語の属性名が表示されるようになっています。例外は TracReports の検索結果画面です。レポートの検索結果画面でのチケット属性の列名は、検索に使用した SQL の列名がそのまま表示されます。ですので SQL の SELECT 句で AS を挿入すれば、列名を日本語化することが出来ます。 0.11 以降、デフォルトのレポートのカラム名は日本語に変更しました。アップグレードした Environment で日本語のレポートを使用したい場合は、 TracReports を参考に変更してください。
チケット属性の値は、データベースにそのまま保存されます。データベースには UTF-8 であれば保存できるので、リストボックス形式の属性は trac-admin コマンド で日本語に変更可能です。たとえば分類のデフォルトは defect, task, enhancement ですが 不具合, タスク, 機能追加 のように日本語に変更することができます。とは言え、プロジェクト毎に必要となる用語は異なるでしょうから、 Trac-ja では翻訳対象としていません。
0.11 から TracWorkflow が導入され、チケットのステータス (Status) も日本語化できるようになりましたが、同じ理由で Trac-ja では翻訳対象としていません。また new と closed のステータスは依然ハードコードされており、日本語化すると動作に不具合が起きます。ワークフローを変更するときは、チケットの初期ステータスは new に、終了ステータスは closed にするようにしてください。
アップグレードした Environment でワークフローを変更する場合、 trac.ini ファイルを変更しても、すでに存在するチケットのステータスは書き変わらないことにも注意してください。
0.11 からテンプレートエンジンが ClearSilver から Genshi に変更され、一部のテキストについては gettext での多地域化を前提に実装されるようになりました。しかし、カタログ抽出や表示言語セレクタとなるコンポーネントである Babel の組み込みは、次のメジャーリリースである 0.12 に持ち越されており、ローカライズ対応は開発途中の状態です。
このような背景もあり、以下の要領で翻訳を行いました:
trac/util/translation.py のディクショナリを変更すれば、表示メッセージを変更することができます。
Wiki ページとして同梱されているオンラインマニュアルは、 trac/wiki/default-pages ディレクトリにあるファイルを翻訳すれば地域化することが出来ます。
0.11 から Wiki ページ単体でもオリジナル配布物に使用できるように、翻訳方法を変更しました。 Trac-ja から Wiki ページだけを使いたい場合、 trac-0.xx.x-ja-x.zip を展開し trac-admin コマンド で、 wiki import してください。
また、 0.12 では 新しいヘルプシステム が予定されています。
Trac-0.11 のオリジナル配布に存在するバグについて記載しておきます。
日本語環境で Trac を使用するために必要な、最小限のパッチを行っています。
これらのバグは、今後のオリジナル配布物のリリースや、 Trac-ja のリリースで解消されるかもしれませんが、現状では修正されていません。
Trac を使用する上でのセキュリティ上の注意点です。
Wiki マクロ では、受け取った引数を表示に含める場合、サニタイズを行わないと脆弱性の原因になります。
サニタイズの実施は各マクロで行う必要があります。 Trac および Trac-ja の配布に含まれるマクロではサニタイズが行われていますが、マクロを自作する場合や、 Trac Hacks 等からマクロを導入する際には、各自で確認してから使用するようにしてください。
Trac を標的にしたコメント Spam が発生しています。
Public に公開する Trac では パーミッション を適切に設定したり、 Trac Project の Wiki ページ を参考に SpamFilter を導入するなど、対策を怠らないようにしてください。
See also: TracInstall, TracUpgrade