ローカライズ

Sahana Eden の翻訳に貢献するには

各言語への翻訳は大歓迎です。翻訳に使えるオンラインツールとして、Sahana の Pootle サーバー を用意しています。 使い方は Pootle のユーザガイド を読んでください。アドバイスが必要なら、 メーリングリストでコンタクトを取ってください。

Sahana Eden の翻訳にあらたな言語を追加するには

1. 言語ファイルを作成する

http://127.0.0.1:8000/admin/default/design/eden#languages

翻訳する言語の  ISO 639-1 言語コード をファイル名とする新たなファイルを作成します。ニュージーランド系英語のように、ある国や地域でのバリアント言語の場合には、 "en_nz.py" のように、ファイル名に地域名サフィックスを付加してください。

2. 翻訳する

Sahana Eden は以下のような方法で翻訳できます:

A. Pootle を使う方法

この方法を推奨します

オンラインでの共同作業や翻訳の校閲、ワークフローには  Sahana Pootle サーバー を使えます。

Pootle で使うために、 .po ファイルに変換します。 (PO 形式への変換は  Virtaal のようなツールでもできます):

  • "web2py2po" スクリプト ( Translate Toolkit 中のツールです) を使います。
    • バージョン 1.8.1 以降 (または 1.8.0 に  パッチ をあてたもの) を使ってください。
    • (訳注:1.8.0では不具合が出るという報告があります。1.5.3では不具合無く変換可能です)

文字コードを UTF-8 にしてファイルを作成する場合、ファイルのエンコーディングに注意しましょう。ファイルは「BOMなし」または「UTF-8 でエンコードした ANSI」でなければなりません。

  • ファイルのエンコーディングに関する注意は、 languages/ 以下のファイルの他に、カスタマイズしたビューで UTF-8 文字列を使う場合にも適用されます。
web2py2po -i zh-tw.py -o zh-tw.po

# Pootle や Virtaal で翻訳して、次のコマンドで書き戻す:

po2web2py -i zh-tw.po -o zh-tw.py

注意: .py ファイルの中には UTF-8 のバイナリ文字列が入っているので、一見出力がおかしいように見えますが、 Web2Py 上の処理には全く問題がありません:

Pootleの管理

言語を追加する際、以下のリソースを使用することで、データを正しく設定することが可能です。

Fran(訳注:Sahanaメイン開発者)がBzrとPootle間でファイルの更新を行う際には、以下のスクリプトを使用しています。

If the script fails, check for the presence of a ` in a T("") - this causes the languages.py to reset the languages/* to default &/or stop web2py2po from working!

ToDo:

B. 自動翻訳を使う

まだベータ版ですが、 Google Translate API を使って全てのファイルを (web2py の言語ファイルも含めて) 翻訳する方法も試せます:

  •  Auto-Translator のページに行き、ファイルをダウンロードして、 .tar.gz アーカイブを解凍します。
  • 解凍したディレクトリの中でアプリケーションを実行します:
    • ./autotranslate.py (パラメタ) または
    • python autotranslate.py (パラメタ)

(パラメタの形式は、 ファイル名, 元の言語名, 翻訳先の言語名 です)
例: ./autotranslate.py /home/johndoe/web2py/applications/eden/languages/es.py en es 
処理が終わるまで待ちます (処理状況が表示されます)。翻訳結果を (web2py 上か、テキストエディタで開いて) 校正します。

バグや問題を発見したら、メーリングリストで知らせてください。

C. Using Web2Py Admin UI

言語ファイルは、Web2Py Admin UI から直接編集できます。

言語ファイルへのアクセス権が必要で、それ以外のソースコードにはアクセスしないのなら:

Wiki ページの翻訳

  • 各ページを  ISO 639-2 言語コード の拡張子を付けて翻訳します (オリジナルの英語のページは、拡張子なしです)。例えば:
    • 元のページ: eden.sahanafoundation.org/wiki/BluePrintInternationalisation
    • ドイツ語の翻訳: eden.sahanafoundation.org/wiki/BluePrintInternationalisation/de
  • [[TranslatedPages]] マクロを入れておく (ページの末尾がよい) と、そのページで翻訳されている言語のリストを表示します。

参考


UserGuidelines

Comments