Develop and Download Open Source Software

Recent Changes

2012-04-06
2012-02-23
2011-12-09
2011-11-12
2011-08-07

Wiki Guide

Side Bar

trac012の日本語化についてのページ

messages.poの内容を中心にまとめていきます

インストール方法

# 大体環境は整ってるところから
# 記憶ベースで書いてますので間違ってる場所あるかも

# ${DOKOKA} tracとかを置いとく場所ですフルパス、最後/なしで
cd ${DOKOKA}
svn co http://svn.edgewall.org/repos/babel/tags/0.9.4/    babel
svn co http://svn.edgewall.org/repos/genshi/branches/experimental/advanced-i18n   genshi
(上がなかったらhttp://svn.edgewall.org/repos/genshi/trunk でお願いします)
svn co http://svn.edgewall.org/repos/trac/trunk     trac

# さらにとりあえずインストール
# そこの場所を利用します
cd ${DOKOKA}/babel
python setup.py develop
cd ${DOKOKA}/genshi
python setup.py develop
cd ${DOKOKA}/trac
python setup.py develop

#cldrのインストール
# 次のファイルを拾ってきて
# http://unicode.org/Public/cldr/1.6.1/core.zip
# ${DOKOKA}/cldr-1.6.1-core/ あたりに展開

cd ${DOKOKA}/babel
scripts/import_cldr.py ${DOKOKA}/cldr-1.6.1-core

# メッセージファイルの作成
cd ${DOKOKA}/trac
python setup.py compile_catalog -f

インストール時のエラー対応

  • logがないとか言われinstallができない
    → setuptoolsのバージョンが古いです

その他のエラー対応

  • encode error ascii にはない文字だといわれる
    → sitecustomize.py setdefaultencoding でぐぐってUTF-8を設定する
  • 二桁月を認識できない(全然直んないよな)
    lib/_strptime.pyあたり(下はversion 2.5.4から)
babelがあればbabelからデフォルトフォーマット引っ張ってほしいかも
#!diff
Index: _strptime.py
===================================================================
--- _strptime.py        (revision 21)
+++ _strptime.py        (working copy)
@@ -129,11 +129,11 @@
         date_time[1] = time.strftime("%x", time_tuple).lower()
         date_time[2] = time.strftime("%X", time_tuple).lower()
         replacement_pairs = [('%', '%%'), (self.f_weekday[2], '%A'),
+                    ('17', '%d'), ('03', '%m'), ('3', '%m'),
                     (self.f_month[3], '%B'), (self.a_weekday[2], '%a'),
                     (self.a_month[3], '%b'), (self.am_pm[1], '%p'),
                     ('1999', '%Y'), ('99', '%y'), ('22', '%H'),
                     ('44', '%M'), ('55', '%S'), ('76', '%j'),
-                    ('17', '%d'), ('03', '%m'), ('3', '%m'),
                     # '3' needed for when no leading zero.
                     ('2', '%w'), ('10', '%I')]
         replacement_pairs.extend([(tz, "%Z") for tz_values in self.timezone
こんな感じでテスト
import locale
locale.setlocale(locale.LC_ALL, "ja")

import time
time.strptime('2009/01/01','%x')
time.strptime('2009/12/01','%x')

import _strptime
_strptime.LocaleTime().LC_date

messages.poのファイルのありか

このファイルを
${DOKOKA}/trac/trac/locale/ja_JP/LC_MESSAGES/messages.poに上書きしてください。

操作方法

# extract (tracからメッセージをmessage.potに抽出する方法)
cd ${DOKOKA}/trac
python setup.py extract_messages

# update (message.potからmessage.poへの取り込み)
cd ${DOKOKA}/trac
python setup.py update_catalog -l ja_JP

# compile (翻訳に使うバイナリファイルを作成する)
# (環境への反映には随時読み込んでるようでapacheのrestart等は不要です)
cd ${DOKOKA}/trac
python setup.py compile_catalog -f -l ja_JP

それぞれシェル/batファイルを作っとくと楽になります。

問題点

  • i18nを考慮していないコーディングが残っていて変換できないところが多くあります。
  • message.potに抽出されていても、文として抽出されてないので翻訳できないところも多いです。
  • 現在httpアクセスのproject配下でしか翻訳されないのでtrac-admin中などは変換されません。
  • message.po中の翻訳者コメントが残りません

リンク


SourceForge.JP is a Japanese version of SourceForge.net. For developments that are not related to Japan, we recommend you to use SourceForge.net.