mercurial-translation-ja / README.ja.txt

-------------------------------------------------------------------------------
                         Mercurial 日本語翻訳
-------------------------------------------------------------------------------

本プロジェクトは、分散 SCM ツールである
Mercurial(http://www.selenic.com/mercurial/wiki/)のメッセージファイル
('i18n/ja.po')翻訳を行うプロジェクトです。


* 用語:

  - SRC      : Mercurial のソースリポジトリ
  - L10N-repo: 翻訳作業を行う作業用リポジトリ


* ブランチを用いた翻訳作業の調整手順:

  - 翻訳作業者向け手順:

    * [TRANSLATE]
      L10N-repo における 'default' ブランチで翻訳作業を実施

      1. 保守担当に翻訳担当希望を表明し、要望の受理を待つ

      2. 'ja.po' ファイルの該当部分を翻訳

         ja.po ファイル中の msgid 行に先行する '#' 行に列挙されるキーワー
         ドは以下の意味を持つ:

            - python-format:
              "%xx" 使用の有無のマーキング
              => "msgfmt --check" での %xx の不正使用等のチェックに使用

            - fuzzy:
              msgmerge の際の msgid 変更検出のマーキング
              => 再翻訳が必要な箇所の見当付けに使用

         そのため、ja.po ファイルの msgid に先行する '#' 行に対する編集
         は、msgid 改変に伴う再翻訳の際の fuzzy の除去だけとする

         なお、翻訳内容が心許ない場合は、"XXXX"(半角大文字の X を4つ以
         上並べたもの)を翻訳内容に埋め込むものとする


         また、担当箇所の特定を簡便化するために「ファイル名+行番号」情
         報が必要な場合は、以下の要領で 'ja.po' に情報を埋め込むことが
         できる

           % msgmerge --update L10N-repo/ja.po L10N-repo/hg.pot

         ※ 別ファイルに書き出す場合は、'--update' の代わりに
            '-o destfile' を指定

         ここで埋め込んだ情報は、L10N-repo においてコミットを行う前に、
         以下の要領で取り除くこととする

           % msgcat --no-location -o L10N-repo/ja.po L10N-repo/ja.po

         なお、以下のコマンド実行により、「ファイル名+行番号」が埋め込
         まれた状態の 'ja.po' ファイルを元に、担当ファイルの要注意箇所
         を抽出することができる

           % python L10N-repo/pickup.py L10N-repo/ja.po 担当ファイル名 ...

         上記のコマンド実行が検出するのは、以下の箇所:

           - 未翻訳のもの('not yet translated')
           - fuzzy 検出されたもの('fuzzy msgid')
           - 末尾に改行(\n)が無いのに複数行に渡るもの('unexpected wrap')

         出力形式は "ja.po filename:line#:detail" という、grep と同形式
         のもの

         ※ ソースを参照しながら作業を進める場合は、BASE_REVISION ファ
            イルに書かれたリビジョンのソースを参照

      3. 翻訳結果の形式を以下で確認し、問題があれば解消:

           % msgfmt --check L10N-repo/ja.po

         '%x' 等の置換フォーマット利用の不正や、改行文字('\n')の多寡等
         が警告される

         ※ 「ファイル名+行番号」を埋め込んだ別ファイルで翻訳作業をし
            ている場合は、そちらで事前に確認しておく

      4. 以下の手順で表示内容を確認し、問題があれば手順 2 に戻る:

           % cd SRC
           % hg update `cat L10N-repo/BASE_REVISION`
           % cp L10N-repo/ja.po ./i18n/ja.po
           % make install
           % export LANGUAGE=ja
           % ※ 翻訳メッセージが表示される状況を再現

         ※ "make install-home-bin" 等でインストールした場合は
            PYTHONPATH 環境変数の設定を忘れないように注意

         対象バージョンの Mercurial がインストール済みの場合は、もっと
         簡単に翻訳結果の確認が可能です。

           % cd L10N-repo
           % msgfmt -v -c -o hg.mo ja.po
           % cp hg.mo SITE_PACKAGES/mercurial/locale/ja/LC_MESSAGES

         ※ SITE_PACKAGES は、Mercurial の Python モジュール群がインス
            トールされる場所("/usr/lib/python2.5/site-packages" 等)を指
            します

      5. 公開リポジトリを持たない場合は、'ja.po' を更新するパッチ
         を作成し、保守担当にメールで送付

         ※ 「ファイル名+行番号」情報の除外を忘れないように

      6. 公開リポジトリを持つ場合は、'ja.po' の更新分をコミットし、
         保守担当に通知

         ※ 「ファイル名+行番号」情報の除外を忘れないように

      7. 必要に応じて手順 3 に戻って翻訳内容を修正
         (例: ソース内ドキュメントの更新や、翻訳スタイルの統一等)

      8. (完了)


  - 保守担当向け手順:

    - 必要に応じて MERGE 手順を適用
    - 短い周期で CATCHUP 手順を適用(毎週程度?)
    - SRC における 'i18n/ja.po' 更新の都度、IMPORT 手順を適用
    - 長い周期で  EXPORT 手順を適用(隔月程度?)
    - UPDATE 手順で検出された 'i18n/ja.po' 中の '#, fuzzy' 部分を確認
      し、再翻訳の調整を行なう


    * [MERGE]
      翻訳担当者からの変更内容の統合:

      0. 変更内容に対する以下の形式チェックを実施:

           - msgfmt --check
           - 「ファイル名+行番号」情報が埋め込まれて「いない」こと

      1. 翻訳成果をパッチ形式で受理した場合、L10N-repo における
         'default' においてパッチを適用

      2. 翻訳成果が公開リポジトリ経由で公開されている場合、翻訳担当者の
         リポジトリから 'hg pull'(および複数ヘッドの解消)を実施

      3. 変更内容を確認し、必要であれば翻訳担当者に再翻訳を依頼

      4. 訳語統一のための辞書(ja.po ファイル冒頭)や、表現形式統一のため
         の「翻訳形式」(本ファイル末尾)を、必要に応じて更新

      5. (完了)


    * [UPDATE]
      L10N-repo における 'ja.po' を SRC における 'hg.pot' で更新:

      1. L10N-repo における 'ja.po' の内容を以下で確認:

           % msgfmt --check L10N-repo/ja.po

      2. 必要に応じて問題を解消し、コミットを実施

      3. SRC を更新

      4. SRC 中の 'hg.pot' を以下の方法で更新:

           % make update-pot

      5. L10N-repo における 'hg.pot' を、SRC における新しい 'hg.pot' で
         上書き

      6. L10N-repo における 'ja.po' を、L10N-repo における更新済み
         'hg.pot' を用いて、以下の方法で更新:

           % msgmerge --update --no-location \
                 L10N-repo/ja.po L10N-repo/hg.pot

      7. SRC のリビジョンを L10N-repp/BASE_REVISION ファイルに記録

      8. 更新された 'hg.pot'、'ja.po' と BASE_REVISION を L10N-repo に
         おいてコミット

      9. 必要に応じて、更新された 'ja.po' 中の 'fuzzy' 問題を解消

         ここでの「問題解消」は、msgid の変更/削除等に伴う msgstr との
         対応付けの修正に留めること。

         軽微な修正であっても、'default' 以外のブランチでの翻訳部分の修
         正は行なわない。

         再翻訳の際に検出しやすいように、'ja.po' ファイルに付与された
         '#, fuzzy' マークは残しておくこと。

      10. 更新された 'ja.po' を L10N-repo においてコミット

      11. 翻訳状況の変更を確認し、必要であれば担当者に再翻訳を依頼

            % msgmerge -o - L10N-repo/ja.po L10N-repo/hg.pot |
              python L10N-repo/filestat.py |
              grep -f L10N-repo/assigned.txt

          ※ 出力形式は: 'filename msgid done fuzzy'

      11. (完了)


    * [CATCHUP]
      SRC における更新への追従:

      1. L10N-repo における 'default' ブランチから 'downstream-line' ブ
         ランチにマージ

      2. L10N-repo における 'downstream-line' ブランチのヘッドに対して、
         UPDATE 手順を適用

      3. UPDATE 手順を実施したリビジョンを、L10N-repo の 'default' ブラ
         ンチにマージ

      4. (完了)


    * [IMPORT]
      SRC から L10N-repo への取り込み:

      1. SRC を更新

      2. L10N-repo における 'sync-line' ブランチの 'ja.po' を、SRC にお
         ける新しい 'ja.po' で上書き

      3. 'ja.po' が更新されている場合に限り、以下の手順を実施

      4. 'ja.po' の更新を、L10N-repo における 'sync-line' ブランチでコ
         ミット

      5. 上記の新規リビジョンを、L10N-repo における 'downstream-line'
         ブランチにマージ

      6. L10N-repo における 'default' ブランチから 'downstream-line' ブ
         ランチにマージ

      7. L10N-repo における 'downstream-line' ブランチのマージ実施リビ
         ジョンに対して、UPDATE 手順を適用

      8. UPDATE 手順を実施したリビジョンを、L10N-repo の 'default' ブラ
         ンチにマージ

      9. (完了)


    * [EXPORT]
      L10N-repo での成果の公開:

      0. CATCHUP 手順を実施し、全ての問題を解消しておく
         ('ja.po' ファイルの PO-Revision-Date 情報の更新も)

      1. L10N-repo における 'default' ブランチから、公開対象リビジョン
         を決定

      2. 上記リビジョンを、L10N-repo における 'upstream-line' ブランチ
         にマージ

      3. 'sync-line' ブランチのヘッドから、'upstream-line' ブランチのヘッ
         ドに対する 'ja.po' の差分を取得

      4. 上記の差分を、'i18n/ja.po' 更新パッチとして、mercurial-devel
         ML に送付

      5. 些細な修正(例: typo など)の必要があった場合は、L10N-repo にお
         ける'upstream-line' ブランチで解消し、パッチを再送付

      6. 送付したパッチが公式リポジトリに取り込まれた際には、上記2つの
         ヘッドを 'sync-line' ブランチにおいてマージ

      7. (完了)


* 翻訳形式:

  - 「ですます」調

  - 用語の統一は、'ja.po' ファイル冒頭の辞書を参照

  - 一行の幅は、最大でも改行除いて半角 79 文字に収めることを原則とする
    (時折原文の時点で 80 文字越えもありますが…)

    可能であれば、74 〜 76 XXXX 文字程度が理想

    msgfmt/msgmerge 等による不本意な折り返しを避けるため、ja.po ファイ
    ルにおける記述も、(行頭の msgstr や、ダブルクォート等も含めて)一行
    の分量は半角 76 〜 78 文字程度に収めること

  - 記号(!?[]'"など)は半角文字を使用
    ※ 読点としての "," には「、」、句点としての "." には「。」を使用

  - 原文での引用符(' ないし ")の有無はそのまま生かす

  - 原文での文区切りの "-"/":" は極力生かす
    ※ 超訳が必要な場合は、この限りではない

  - 全角文字と半角文字が隣接する場合は、半角スペースを1つ入れる
    ※ 但し、以下の場合は空白を入れない
      - 括弧
      - 引用符
      - 感嘆符/疑問符
      - 文を区切る ":" が全角文字に続く場合
        e.g.: "あいうえお: かきくけこ"

  - 表現は極力短く

    - サポートされていません ⇒ 未サポートです
    - 利用することはできません ⇒ 利用できません
    - ●に対する▲ ⇒ ●の▲/●への▲
    - ●という▲ ⇒ ▲●(例: %sというファイル ⇒ ファイル %s)

  - 一字一句を対応させた翻訳よりは、以下のような「超訳」を行う

    - 自明な名詞は省略
    - 必要であれば語句を補う
    - 原文の変更に対応し易いように、文(「。」区切り)を横断して原文から
      異なるような翻訳は避ける
    - 「コマンド名」を意図した単語(例: add, remove)は訳さない
      (行頭のものはそのままに。文中のものは 'hg xxxx' という形式で表記)

  - コマンド行の USAGE に相当する部分は原文のままとする
    (例: "hg commit [OPTION]... [FILE]..." に相当する部分)

    - 原文の記述水準のばらつきが激しい

    - ヘルプ本文で特定の引数を参照(例: "REV")する際に、キーワード的に使
      用される可能性がある

  - あまり砕けた表現は用いない

-------------------------------------------------------------------------------
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.