ページ更新: 2009-11-10 (火) (3205日前)

(2006-05-09 作成, 2006-05-28 ページ名を変更)

Tracを日本語環境で使うときの注意点と、 インタアクト株式会社(→../情報源#i-act)によるTracの日本語化(0.8.X)、あるいは日本語版(0.9.X)を使う手順について。

なお、Trac Project では Milestone 0.11 にてInternationalizationが行われるので、その際には日本語化の手順も変わると思われる。

目次

[編集]

Tracの日本語化、日本語版 (2006-05-09) #

注意:特に日本語版を使わなくても、Tracで日本語は使用できる。日本語版はメニューやオンラインマニュアルを日本語化したいときに使用する

インタアクト株式会社が日本語化を行ったものを作成し、以下のサイトで提供している。

インタアクト株式会社--業務内容--公開資料
http://www.i-act.co.jp/project/products/products.html

ファイル名は trac-X.X.X-ja-Y.zip で、X.X.Xは元にしたTracのバージョン、Yは日本語版独自のマイナーバージョン。

参照:

[編集]

Trac 0.9.X, 0.10.Xの日本語化(英語版を消して、日本語版を入れる) #

(2006-10-20)

インタアクト株式会社が配布するZIPにはTracの動作に必要なすべてのファイルが入っている。

インタアクト株式会社--業務内容--公開資料の「trac-0.9-ja 以降の特記事項」によると:

「オリジナル配布に相当する全てのファイルが含まれています。通常通りsetup.py を使用してインストールすることが出来ます。詳しくは配布に含まれる TracInstall, TracUpgrade をご覧ください。」

よって、日本語化の手順は:

  1. 本家Tracをインストールしており、それを置き換えたいのなら、削除する。(ファイルの日付が同一なので、setup.pyでは上書きされないので)
  2. Trac-0.9.X-ja-X.zip あるいは Trac-0.10.X-ja-X.zip を展開して、インストールする。(python setup.py install)
  3. もし2.を行う前から運用中のTrac Environmentがあれば、更新する。 trac-admin で upgrade と wiki upgradeを実行。→TracUpgrade
[編集]

Trac 0.8.Xの日本語化(英語版を入れてから、templateとwiki-defaultを日本語版に入れ替える) #

(2006-05-09)

2005-06-19 Trac 0.8.4 までのバージョンの日本語化手順。

インタアクト株式会社が配布するZIPにはTracのtemplates, wiki-defaultのみが入っている。

インタアクト株式会社--業務内容--公開資料の「trac-0.8.x-ja 以前の特記事項」によると:

「templates ディレクトリと、 wiki-default ディレクトリだけが含まれています。オリジナルの同ディレクトリに上書きして使用してください。」

よって、日本語化の手順は:

  1. 本家のTracをインストール
  2. Trac-0.8.X-ja-X.zipを展開して、templates, wiki-defaultを上書き。
  3. もし2.を行う前から運用中のTrac Environmentがあれば、更新する。 trac-admin で upgrade と wiki upgradeを実行。→TracUpgrade
[編集]

リポジトリ内のファイルの日本語表示 (2006-06-22) #

リポジトリ内のファイルがUTF-8ではない場合(EUC-JP, shift_jisなど)、 リポジトリの日本語表示を行うには、次の設定が必要になる。

[編集]

Python 2.3.X 以下ではJapaneseCodecsが必要、Python 2.4以後は不要 #

Python 2.3を使用しているとき、Python 2.3用の JapaneseCodecs が必要。(Python 2.4以後は標準添付)

Python 2.4以後の場合、CJKCodecs (中国語、日本語、韓国語のコーデック)が標準で含まれている。

2006-11-05
「オープンソースソフトウェアにおける統一したレガシーエンコーディングの変換機能の開発」

SourceForge.jp: Project Info - Legacy Encoding Project
http://sourceforge.jp/projects/legacy-encoding

[Python-ml-jp 3758] Python への CP932 系エンコーディングの追加パッチ
http://www.python.jp/pipermail/python-ml-jp/2006-October/003755.html

を利用すると、Windowsの機種依存文字が使えると思われる。試してないが。

[編集]

Subversionリポジトリの文字コード #

(2010-12-15 修正)

Subversionリポジトリの文字コードを指定しておく。

なお、BOM つきのUnicodeであれば、文字コードを自動判別してくれるので、指定しなくても動作する。

でも、BOM をつけられないファイル(OSがファイル先頭の「#!」を解釈するもの。シェルスクリプトなど)については、 BOMをつけない代わりに以下の手段で文字コードを指定するか、文字コードを別途自動判別するようTracを改造する必要がある。

[編集]

1種類の文字コードを使用して言える場合 #

リポジトリ内で同一の文字コードを使用しているのであれば、 trac.iniでdefault_charsetを設定するとよい。

Python 2.3.Xを使用していて、別途JapaneseCodecsをインストールしているのであれば、文字コードの名称は以下のページに書かれているものを使う:

Python 2.4.X以後で、Python本体に付属しているCJKCodecsを使うのであれば、文字コードの名称は以下のページに書かれているものを使う:

[編集]

複数の文字コードが混在している場合 #

リポジトリの個々のファイルごとに文字コードが異なるのであれば、 Subversionリポジトリ側の該当ファイルへのプロパティ設定する。 (svn:mime-typeを例えば"text/plain; charset=shift_jis"にする。設定は svn propset を使い、svn commitした時点で有効になる。)

TracJa#リポジトリブラウザ

あるいは、Trac を改造して、自動判別 させる。

自動プロパティ(auto-props)では設定できないかも。ためしていないが

なぜなら、自動プロパティの書式は「file-name-pattern = propname[=value][;propname[=value]...]」のように各プロパティを「;」で区切るので。 「svn:mime-type=text/plain; charset=shift_jis」は「svn:mime-type=text/plain」と「charset=shift_jis」の2つのプロパティと見なされるかも。

でも1つのファイルに対して「file-name-pattern」が複数マッチするようなので(Subversion解説書,p.238〜239)、もしかすると使えるかもしれない‥‥。

参照:

[編集]

Subversionリポジトリの文字コードを自動判別 #

Tracの設定 (trac.ini)やSubversionのプロパティを設定する代わりに、 Trac自体を改造して、文字コードの自動判別機能をつける方法もある。

1. 鷹の島 - 2005-11-26 Trac で遊んでみたよ その1 - 日本語

2. ヤマロぶろぐ - 2007-02-20 Tracでファイルの文字コードを自動判定

なお、私自身は 2. を Trac 0.10.4-ja-1 に適用して使っている。「CHARDET_MAX_SAMPLE」は4000に変更している。

対象となるリポジトリにはcp932とUTF-8の2種類が混在している。

[編集]

マイルストーン完了期限設定時のエラー回避 (2006-07-26, 2009-11-10) #

TracJa - Trac のバグ より引用:

LC_TIME にマルチバイト文字が含まれるロケールを使用すると、タイムラインやマイルストーンでの日付入力がエラーになる。 (See: #2182) 地域化ライブラリ Babel での解決が 0.12 で予定されていますが、現時点では開発バージョンも含めて対応されていません。 日付が入力できないと実用上の問題が大きいので、デフォルトの日付書式を %x %X から %Y/%m/%d %H:%M:%S に変更しています。

回避策1: 対策済みの Trac-ja を使う。

回避策2: 日付の入力方法を工夫

  • (未確認)「2006/10/23」はエラーになるので、「2006/010/23」のように月が10〜12のときはそれぞれ010〜012のように入力する。

回避策3: 環境変数 LC_TIME を変更 (LC_ALL や LANGでもよいが、影響範囲が広くなる)

  • LC_TIMEに、不具合が出ないようなロケールを指定する。(ロケールなし、あるいは、C ロケールを指定する)
  • 日付表示の書式が切り替わるかもしれない。
  • tracdであれば、実行時にLC_TIMEを定義(あるいはクリア)してやる。
    • http://discypus.jp/wiki/sandbox/ は、当初はこの方法で回避 (現在はTrac-jaを使っているので不要になった)。 tracdの起動用スクリプトを用意し、そのなかでexport LANG=Cを実行している。
  • (未確認)mod_pythonなら、PythonOption TracLocale で設定 (2006-08-08)
  • (未確認) あるいはApache mod_envの SetEnvで設定 (2006-08-08)
  • 日付表示の書式のほか、localeに影響される部分の動作が切り替わるかもしれない。

回避策4: tracにパッチを当て、trac.ini で書式を設定する

回避策5: 将来対策される予定なので、それまで待つ。

参照:

[編集]

Tracリンクに日本語が含まれる場合 (2006-08-23) #

(この項、作成中)

Tracリンクとは(TracLinks)

チケット: #1 or ticket:1
レポート: {1} or report:1
チェンジセット: r1, [1] or changeset:1
コミットログ: r1:3, [1:3] or log:#1:3
Wiki ページ: CamelCase or wiki:CamelCase
Wiki ページと見出し: CamelCase#sectionName or wiki:CamelCase#secitionName
マイルストーン: milestone:1.0
添付ファイル: attachment:ticket:944:attachment.1073.diff
ファイル: source:trunk/COPYING
あるリビジョンのファイル: source:/trunk/COPYING#200 

Wikiページ名を日本語にする

見出しを日本語にする

マイルストーン名称を日本語にする

  • (経験上、特に問題は出てないが、詳しくは調べていない)

添付ファイル名が日本語の時

  • 「attachment:ticket:944:attachment.1073.diff」
  • (未調査。試したこともない。)

Subversionリポジトリ内のファイル名が日本語の時

  • 「source:trunk/COPYING」
  • (未調査。試したこともない)

Subversionリポジトリ内のファイル名が日本語の時(リビジョン指定)

  • 「source:/trunk/COPYING#200 」
  • (未調査。試したこともない)
[編集]

番外編: Pythonのデフォルトエンコーディングを変更した環境でちゃんと動作するプラグインを、他の環境に持って行くとUnicodeのエラーが出る (2008-11-03) #

UnicodeDecodeError - PythonInfo Wikiなどのエラーが出る場合について。

sitecustomize.pyについては日本語文字列コード問題まとめを参照。

例えば、**/Lib/site-packages/site-customize.pyを新規作成して、次の内容を入力すると、PythonのデフォルトエンコーディングをUTF-8に変更できる。

import sys
sys.setdefaultencoding('utf-8')

この場合、デフォルトの文字列はutf-8とみなされる。

ここでは話を単純にするために、*.pyのエンコーディングがUTF-8であり(ファイルの先頭でencoding: utf-8と記載されていて、さらにファイルの内容のもutf-8)、asciiで表現できない文字列を普通の文字列("〜"や'〜'や"""〜"""など)で記載した場合、

  • デフォルトエンコーディングがutf-8の環境では、utf-8とみなされるため、エラーが発生しない。
  • デフォルトエンコーディングがutf-8以外の環境では、エラーが発生する。 (u"〜"やu'〜'などに書き換える必要がある)

Windows XP Professional SP3 + Python 2.5.2

C:\> python -V
Python 2.5.2

C:\> python -c "import sys; print sys.getdefaultencoding()"
ascii

Windows XP Professional SP3 + Python 2.6

C:\> c:\Python26\python -V
Python 2.6

C:\> c:\Python26\python -c "import sys; print sys.getdefaultencoding()"
ascii

Debian 4.0:

$ cat /etc/debian_version
4.0

$ python -V
Python 2.4.4
$ python -c 'import sys; print sys.getdefaultencoding()'
ascii
C:\> ver
Microsoft Windows XP [Version 5.1.2600]

なお、TracLightningでは、site-customize.pyでデフォルトエンコーディングをutf-8に変更している(2.0,9で確認)。 このため、Trac Lightningのみで動作を確認したプラグインを他の環境に持ち込むと、エラーを発生することがある。