Changes between Version 8 and Version 9 of TracJa


Ignore:
Timestamp:
11/22/06 11:04:27 (11 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracJa

    v8 v9  
     1[[PageOutline]] 
    12= TracJa について = 
    23'''このファイルはオリジナル Trac の配布物には含まれません。''' 
     
    45Trac-Ja は Trac の日本語ローカライズバージョンです。 
    56 
    6  
     7---- 
    78== Trac の I18N 対応状況 == 
    8 Trac は Python で記述されているため、内部コードは Unicode です。 
    9 また、 Wiki ページやレポート、チケットなどはデータベースに格納する時点で 
    10 UTF-8 に変換されるため、これらは基本的にオリジナル配布のままでも日本語が使用できます。 
    11  
    12 添付ファイルやリポジトリブラウザの表示が文字化けする場合、適切な文字コードを 
    13 TracIni ファイルのパラメータ `[trac]` `default_charset` に設定してください: 
    14 {{{ 
    15 [trac] 
    16 default_charset = Shift_JIS 
    17 }}} 
    18 大抵の場合、この設定だけで文字化けは解消します。 
    19  
    20 Subversion リポジトリに格納しているファイルのエンコードが、ファイルごとに違う場合、 
    21 Subversion 側で各ファイルの `svn:mime-types` 属性に `charset` を 
    22 正しく設定することで解消します (trac-0.8.2 以降): 
    23 {{{ 
    24 PROMPT$ svn propset 'svn:mime-type' 'text/x-csrc; charset=Shift_JIS' *.c 
    25 }}} 
    26  
    27 添付ファイルの文字コードは TracIni の `default_charset` に固定されます。 
    28  
    29  
     9Trac はオリジナル配布のままでも、日本語を使用することができます。 
     10 
     11Trac の内部では ([http://trac.edgewall.org/milestone/0.10 0.10] 以降) Python の 
     12'Unicode binary' 形式で文字列を処理し、 Web の表示は `UTF-8`で行われるため、 
     13(対応するフォントがあれば) どのような言語であっても取り扱うことができます。 
     14(See: TracUnicode) 
     15 
     16 
     17=== [wiki:TracEnvironment Environment] === 
     18[http://trac.edgewall.org/wiki/DatabaseBackend バックエンドのデータベース] には 
     19`UTF-8` でデータ (Wiki ページ, チケット) が保存されます。 
     20 
     21添付ファイルはデータベースに格納されません。 Environment の `attachments` 
     22ディレクトリ配下に、 URL エンコードされたファイル名で保存されます。 
     23[[BR]]→ ブラウザが URL エンコードに `UTF-8` を使用していない場合、ファイル名が 
     24文字化けするかもしれません。 
     25 
     26[wiki:TracIni trac.ini ファイル] 他、Environment に配置するファイル 
     27(サイトヘッダや [wiki:WikiMacros Wiki マクロ] など) は、 `UTF-8` 
     28で作成してください。 (`BOM (Byte Order Mark)` は付けない方が安全です) 
     29 
     30 
     31=== [wiki:TracBrowser リポジトリブラウザ] === 
     32今のところ Trac が正式に対応している 
     33[http://trac.edgewall.org/wiki/VersioningSystemBackend バックエンドのバージョン管理システム] 
     34は、 Subversion だけです。 ([http://trac-hacks.org Trac Hacks] などには、 
     35他のバージョン管理システムを使うためのプラグインがありますが、 
     36動作状況等未確認です。) 
     37 
     38バージョン管理下のファイルは、 MIME Viewer という機能で HTML 変換し、 
     39リポジトリブラウザに表示されます: 
     40 1. `svn:mime-type` 属性もしくはファイルのサフィックスが、画像のように表示可能な 
     41    バイナリファイル形式の場合は、 `<img>` 要素として表示されます。 
     42 2. 表示できないバイナリファイル (`application/octet-stream` 等) の場合は、 
     43    ダウンロードへのリンクが表示されます。 
     44 3. バイナリファイルと判別されない場合、全てテキストファイルとして Web 
     45    ページに表示されます。 
     46   1. ファイルに設定された `svn:mime-type` 属性が `text/html; charset=utf-8` 
     47      のように `charset=` を含む場合は、その文字コードでファイルを読み込みます。 
     48   2. ファイルに `BOM (Byte Order Mark)` が付いていれば、適切な `UTF` 
     49      でファイルを読み込みます。 
     50   3. ファイル個別に判定できない場合は、 [wiki:TracIni trac.ini ファイル] の 
     51      `[trac]` セクション `default_charset` オプションに指定された文字コードで 
     52      ファイルを読み込みます。 
     53      このコンフィグの初期値は `iso-8859-15` なので、日本語で Trac 
     54      を使用する場合は、まず最初に変更する設定になると思います。 
     55 
     56Python 2.3 配布には、日本語だけで使用されている文字コード(`shift_jis`, `euc-jp` 
     57など) の codec が含まれていません。これらの文字コードを使用したい場合は、別途 
     58[http://www.python.jp/Zope/download/JapaneseCodecs JapaneseCodecs] 
     59をインストールする必要があります。 
     60Python 2.4 配布では、 !JapaneseCodecs が同梱されています。 
     61 
     62 
     63=== 添付ファイル === 
     64添付ファイル表示もバージョン管理下のファイルと同じく、 MIME Viewer が行います。 
     65 
     66ただし添付ファイルでは、 (`svn:mime-type` 属性のような) ファイル毎の文字コード 
     67指定はできないので、 `BOM` による `UTF` の判別ができなければ、 `default_charset` 
     68に指定した codec に固定されます。 
     69 
     70 
     71=== [wiki:TracAdmin コンソール] === 
     72[wiki:TracAdmin trac-admin コマンド] の入出力では、使用するコンソールの 
     73文字コードが自動判別されます。 
     74([http://trac.edgewall.org/milestone/0.10 0.10] 以降) 
     75 
     76 
     77=== [wiki:TracNotification メール通知] === 
     78Trac が送信するメールは `UTF-8` が `Base64` か `quoted-printable` で 7bit-safe 
     79な形式にエンコードされています。MUA がこれらのエンコードに対応していない場合、 
     80文字化けする可能性があります。 (See: TracNotification) 
     81 
     82 
     83---- 
    3084== Trac の L10N 対応状況 == 
    3185オリジナル配布ではユーザ入力以外の表示メッセージは全て英語です。 
    32  
    33 プレゼンテーション層の処理は、 `templates` ディレクトリ配下の !ClearSilver テンプレートに 
    34 集約されているのですが、実際に表示される用語などが `trac` ディレクトリ配下の Python コード内に 
    35 ハードコードされているため、現時点では、ソースに直接パッチを行わないと翻訳できません。 
    36 [http://projects.edgewall.com/trac/milestone/0.11 本家マイルストーン0.11] では 
    37 テンプレートエンジンの乗せ換えと、表示メッセージをコードから分離する対応が予定されているため、 
    38 地域化が容易になる見込みです。 
    39  
    40 Wiki ページとして同梱されているオンラインマニュアルは、 `wiki-default` ディレクトリにある 
    41 ファイルを翻訳すれば地域化することが出来ます。 
    42 (マニュアルについてはロケールを指すディレクトリを作成して、その下にマニュアルを 
    43 置くという [http://projects.edgewall.com/trac/wiki/TracGuideTranslations 案] も出ていましたが、 
    44 差分翻訳が難しいなど実用上に問題があるため放置されています。) 
    45  
    46 レポートやカスタムクエリの検索結果画面での、チケット属性の列名は 
    47 検索に使用した SQL の列名がそのまま表示されます。 
    48 そのため SQL の SELECT 句で `AS` によって列名を日本語化することが出来ます。 
    49 ただし、 `modified` や `description` など特定の用途に使用される列名 
    50 (See TracReports) は変更すると表示形式が変わってしまいます。 
    51  
    52 レポートの検索結果画面やチケット閲覧画面での、チケット属性の値については、 
    53 データベースの値をそのまま使用しているため、一部の属性は翻訳することが困難です。 
    54  * ステータス (Status): チケットの状態遷移がハードコードされている 
    55 その他の属性は、 `trac-admin` コマンドで変更することで日本語化できますが、 
    56 プロジェクト毎に必要となる用語は異なるでしょうから、 Trac-Ja では翻訳対象と 
    57 していません。 
    58  
    59  
    60 == Trac-Ja の概要 == 
    61 Trac 配布物を日本語に翻訳しました。Trac の用語は TracTermsJa に示した通りとなっています。 
    62  
    63 配布は [http://www.i-act.co.jp/project/products/products.html InterAct Web サイト公開資料ページ] で 
    64 行っています。 
    65  
    66  
     86これを日本語化した手順を記述します。 
     87 
     88 
     89=== Web 画面のコンテンツ === 
     90[wiki:TracJa#TracのI18N対応状況 前項] の通りです。 
     91日本語化作業で変更した点はありません。 
     92チケット属性について付記します。 
     93 
     94 
     95==== チケット属性名 ==== 
     96チケット属性の名前は、ほとんどの画面で日本語の属性名が表示されますが、 
     97レポートの検索結果画面は例外です。 
     98レポートの検索結果画面でのチケット属性の列名は、検索に使用した SQL 
     99の列名がそのまま表示されます。 
     100ですが SQL の SELECT 句で `AS` を挿入すれば、列名を日本語化することが出来ます。 
     101ただし `modified` や `description` など、特定の表示フォーマットに使用する列名 
     102(See TracReports) は変更するとフォーマットされません。 
     103 
     104 
     105==== チケット属性の値 ==== 
     106チケット属性の値は、データベースにそのまま保存されます。 
     107データベースには `UTF-8` であれば保存できるので、リストボックス形式の属性は 
     108[wiki:TracAdmin trac-admin コマンド] で日本語に変更可能です。 
     109たとえば分類のデフォルトは `defect`, `task`, `enhancement` ですが `不具合`, 
     110`タスク`, `機能追加` のように日本語に変更することができます。 
     111とは言え、プロジェクト毎に必要となる用語は異なるでしょうから、 Trac-Ja 
     112では翻訳対象としていません。 
     113 
     114例外は「ステータス (`Status`)」の値です。 
     115チケットの状態遷移が Python ソースにハードコードされているため、 
     116変更すると多くの箇所にパッチしなければなりませんし、 
     117今後の Trac リリースに対応できなくなるおそれがあります。 
     118 
     119  [http://trac.edgewall.org/milestone/0.11 0.11] か 
     120  [http://trac.edgewall.org/milestone/0.12 0.12] で、導入される予定の 
     121  [http://trac.edgewall.org/wiki/WorkFlow Flexible/Extensible Ticket Workflow] 
     122  では、日本語化できるようになる可能性があります。 
     123 
     124 
     125=== Web 画面のテンプレート === 
     126プレゼンテーション層の処理は、 `templates` ディレクトリ配下の !ClearSilver 
     127テンプレートに集約されているのですが、実際に表示される用語などが `trac` 
     128ディレクトリ配下の Python コード内にハードコードされているため、現時点では、 
     129ソースに直接パッチを行わないと翻訳できません。 
     130 
     131また [http://trac.edgewall.org/milestone/0.10 0.10] 以降、 Trac 
     132が内部処理に使用する文字コードが `UTF-8` から `Unicode binary` に変更されました。 
     133この変更によって、文字列の折り返しや切り落としが、 
     134多バイト文字のバイト境界で行われないようになりましたが、 
     135Python コード内で非 `ASCII` を使用する場合、 `u'日本語文字列'` のように 
     136`Unicode binary` 文字列を使わないと動かない箇所があります。 
     137この制限は [wiki:WikiMacros Wiki マクロ] や [wiki:TracPlugins プラグイン] 
     138でも適用されますので、マクロやプラグインを作成したり、 
     139翻訳したりする場合には留意してください。 
     140 
     141  [http://trac.edgewall.org/milestone/0.11 0.11] では、テンプレートエンジンが 
     142  !ClearSilver から [http://genshi.edgewall.org/ Genshi] に乗せ換えられ、 
     143  表示メッセージは完全に Python コード内に移動します。その上で、 
     144  各言語でのメッセージが `gettext` 方式で切り替えられる構造に変更される予定です。 
     145  ですので、今後の地域化は今までと全く違う形になりそうです。 
     146 
     147 
     148=== Wiki ページ === 
     149Wiki ページとして同梱されているオンラインマニュアルは、 `wiki-default` 
     150ディレクトリにあるファイルを翻訳すれば地域化することが出来ます。 
     151 
     152  [http://trac.edgewall.org/milestone/0.11 0.11] での多言語化対応も、 
     153  今のところ Wiki のマニュアルまでは及んでいません。 
     154  Wiki の地域化は、まだまだ白紙というのが現状です。 
     155 
     156Trac-Ja から Wiki ページだけを使いたい場合: 
     157 1. `trac-0.xx.x-ja-x.zip` を展開し 
     158 2. `wiki-default/check_wiki.py` を削除した上で 
     159 3. [wiki:TracAdmin trac-admin コマンド] で、 `wiki import` してください。 
     160 
     161 
     162---- 
    67163== Trac のバグ == 
    68 オリジナル配布に存在するバグについて記載しておきます。 
     164trac-0.10 のオリジナル配布に存在するバグについて記載しておきます。 
     165 
     166 
     167=== Trac-Ja で修正しているバグ === 
     168日本語環境で Trac を使用するために必要な、最小限のパッチを行っています。 
    69169 
    70170 * `LC_TIME` にマルチバイト文字が含まれるロケールを使用すると、 
    71    タイムラインやマイルストーンでの日付入力がエラーになる。[[BR]] 
    72    ([http://projects.edgewall.com/trac/ticket/2182 本家チケット 2182] に 
    73    パッチがあります。 
    74    [http://projects.edgewall.com/trac/milestone/0.11 本家マイルストーン0.11] で 
    75    対応される予定です) 
    76  * utf-8 以外の charset を使用するコンソール (Windowsを含む) では、 
    77    `trac-admin` コマンドでの非 ASCII 文字の表示が文字化けする。[[BR]] 
    78    ([http://projects.edgewall.com/trac/ticket/2394 本家チケット 2394] に 
    79    パッチがあります。このパッチでは文字列長を考慮していないため、 
    80    表示上のカラム位置にばらつきが発生しますが、とりあえず読めるようには 
    81    なります。 
    82    すでに trunk にはマージされているので、 
    83    [http://projects.edgewall.com/trac/milestone/0.10 本家マイルストーン0.10] では 
    84    解消される見込みです。) 
    85  * `priority` を全て削除すると、ロードマップでの iCalendar 出力に 
    86    スタックトレースが含まれ、不正フォーマットになる。 
    87  * チケットの概要で 1 文字目の空白文字が削除される。 
    88    [http://projects.edgewall.com/trac/ticket/2285 本家チケット 2285 参照][[BR]] 
    89    (trac-0.9.1 で対応されましたが、trac-0.9 で作成したチケットでは、 
    90    データベース登録時に1文字目の空白文字を削除しているので、この現象は解消されません。) 
    91  * マルチバイト文字列の折り返しや切り取りで境界文字が文字化けすることがある。[[BR]] 
    92    ([http://projects.edgewall.com/trac/milestone/0.11 本家マイルストーン0.11] で 
    93    対応される予定です) 
    94  * 0.9 で作ったプロジェクト環境では、優先度 (priority) のデフォルト値が 
    95    0.8.x 以前と異なる。[[BR]] 
    96    ([http://projects.edgewall.com/trac/ticket/1861 本家チケット 1861] によると、 
    97    今後はこれがデフォルトになるようです) 
    98  * レポートによっては、例外が発生することがあります。詳細は、 
    99    [http://projects.edgewall.com/trac/ticket/2773 本家チケット 2773], 
    100    [http://projects.edgewall.com/trac/wiki/TracUpgrade TracUpgrade] を参照してください。 
    101    (すでに trunk では修正されているので、 
    102    [http://projects.edgewall.com/trac/milestone/0.10 本家マイルストーン0.10] では 
    103    解消される見込みです。) 
    104  * 引数を受け取る WikiMacros では、各マクロで引数のサニタイズを行わないと 
    105    脆弱性の元になります。 Trac および Trac-Ja の配布に含まれるマクロでは 
    106    サニタイズが行われていますが、 Trac Hacks などからマクロやプロセッサを 
    107    導入する際には、引数がサニタイズされているか確認してから使用するように 
    108    してください。 
    109  
    110 これらのバグは、今後のオリジナルのリリースや、 Trac-Ja のリリースで解消されるかもしれませんが、 
    111 現状では修正されていません。 
     171   タイムラインやマイルストーンでの日付入力がエラーになる。 
     172   (See: [http://trac.edgewall.org/ticket/2182 #2182])[[BR]] 
     173   [http://trac.edgewall.org/milestone/0.11 trac-0.11] 
     174   ではタイムゾーンのハンドリングを含めた対応が予定されていますが、 
     175   どのような形になるかは未定です。 
     176   (See: [http://trac.edgewall.org/browser/sandbox/datetime datetime 開発ブランチ], 
     177   [http://trac.edgewall.org/browser/sandbox/datetime-genshi datetime-genshi 開発ブランチ]) 
     178   [[BR]]日付が入力できないと実用上の問題が大きいので、デフォルトの日付書式を 
     179   `%x %X` から `%Y/%m/%d %H:%M:%S` に変更しています。 
     180 * [wiki:WikiMacros Wiki マクロ] のヘルプが `ascii`, `Unicodebinary` 
     181   以外のエンコードの場合に `[[MacroList]]` で表示されない。[[BR]] 
     182   マクロヘルプは基本的に class コメントから取得します。この class コメントを 
     183   `Unicode binary` にすることで work arround になるのですが、 
     184   [wiki:WikiMacros Wiki マクロ] は 3rd-party からも提供されているので、 
     185   全てに適用するのは面倒です。マクロヘルプを表示する際に `utf-8` か 
     186   `preferred encoding` から `Unicode bianry` に変換するように変更しています。 
     187 
     188 
     189=== 修正していないバグ === 
     190これらのバグは、今後のオリジナルのリリースや、 Trac-Ja 
     191のリリースで解消されるかもしれませんが、現状では修正されていません。 
     192 
     193 * `priority` を全て削除すると、ロードマップでの iCalendar 
     194   出力にスタックトレースが含まれ、不正フォーマットになる。 
     195 * 変数を使用するレポートで、例外が発生することがある。 
     196   (See: [http://trac.edgewall.org/ticket/2773 #2773], 
     197   [http://trac.edgewall.org/wiki/TracUpgrade TracUpgrade])[[BR]] 
     198   [http://trac.edgewall.org/changeset/2941 "[2941]"] で一旦解消されましたが、  
     199   [http://trac.edgewall.org/changeset/3300 "[3300]"] で上書かれています。 
     200   [http://trac.edgewall.org/milestone/0.10.1 trac-0.10.1] 
     201   以降では解消されるかもしれません。 
     202 * 複数のバージョンを持つ Wiki ページで ''このバージョンを削除'' 
     203   ボタンをクリックすると、削除の警告メッセージに 
     204   「このページには1つのバージョンしかありませんのでページを完全に削除します!」 
     205   と出力されるが実際に削除されるのは、 ''このバージョン'' のみである。 
     206   (See: [http://trac.edgewall.org/ticket/3928 #3928]) 
     207 * チケットのメール通知を有効にしている場合で、 [wiki:TracIni trac.ini ファイル] 
     208   の `[notification]` セクション `always_notify_updater` オプションを `false` 
     209   に設定している場合は、チケット登録時の通知メールが送信されない。 
     210   (See: [http://trac.edgewall.org/ticket/3654 #3654])[[BR]] 
     211   ([http://trac.edgewall.org/changeset/3808 "[3808]"] で 
     212   [http://trac.edgewall.org/browser/branches/0.10-stable trac-0.10 保守ブランチ] 
     213   に取り込まれたので、 [http://trac.edgewall.org/milestone/0.10.1 trac-0.10.1] 
     214   で解消する見込みです。) 
     215 
     216 
     217---- 
     218== セキュリティ上の注意点 == 
     219Trac を使用する上でのセキュリティ上の注意点です。 
     220 
     221 
     222=== [wiki:WikiMacros Wiki マクロ] の導入 === 
     223[wiki:WikiMacros Wiki マクロ] では、受け取った引数を表示に含める場合、 
     224`trac.util.escape()` を使用してサニタイズを行わないと脆弱性の原因になります。 
     225 
     226サニタイズの実施は各マクロで行う必要があります。 
     227Trac および Trac-Ja の配布に含まれるマクロではサニタイズが行われていますが、 
     228マクロを自作する場合や、 
     229[http://trac-hacks.org/ Trac Hacks] 等からマクロを導入する際には、 
     230各自で確認してから使用するようにしてください。 
     231 
     232 
     233=== コメント Spam 対策 === 
     234最近 Trac を標的にしたコメント Spam が発生しています。 
     235 
     236Public に公開する Trac では [wiki:TracPermissions パーミッション] 
     237を適切に設定したり、 [http://trac.edgewall.org/wiki/SpamFilter 本家 Wiki] 
     238を参考に [http://trac.edgewall.org/browser/sandbox/spam-filter SpamFilter] 
     239を導入するなど、対策を怠らないようにしてください。 
    112240 
    113241