====================
翻訳手順チートシート
====================
本節は、 翻訳作業を進めるにあたり、JM git リポジトリの操作も含めた手続き全体のチートシートです。
git リポジトリを操作するシステム操作者(翻訳者自身を含む)が適宜参照してください。
1. 翻訳対象パッケージ選定
=========================
1. 対象パッケージが未翻訳/翻訳済みであるかどうかの確認。
* ``jm.git/manual/<パッケージ名>`` の存在確認。
* `JM インデックス (作業状況) `_ の確認。
2. 翻訳済みである場合のステータス確認(翻訳終了かどうかの確認)。
* ``jm.git/manual/<パッケージ名>/translation_list`` のステータス記号確認。
2. 翻訳予約に向けた準備
=======================
1. 対象パッケージが未翻訳であった場合のデータ整備。
* パッケージディレクトリ ``jm.git/manual/<パッケージ名>`` の生成。
.. code-block:: shell
$ mkdir jm.git/manual/<パッケージ名>
* オリジナルソース収容ディレクトリ ``jm.git/manual/<パッケージ名>/original`` の生成。
その配下に ``man[0-9n]`` 等のサブディレクトリを適宜生成。
.. code-block:: shell
$ mkdir jm.git/manual/<パッケージ名>/original
* ``jm.git/manual//translation_list`` の初期生成。
.. note::
``translation_list`` の生成スクリプトとして以下がある。
* ``jm.git/admin/JM-tl-modify.sh``
* ``jm.git/admin/mktrlist2.sh``
* ``upd_tl.perl``
po4a 利用方式を取る場合、po4a 全般の関連ファイルを生成する ``jm.git/support/genmancfg.sh`` があり、これを用いた場合は、初期 translation_list のテンプレート(ひながたとなる)ファイルを生成する。
2. 対象パッケージのオリジナルソースのコピー。
* ``original`` ディレクトリ配下の削除(対象パッケージが既翻訳であった場合)。
.. code-block:: shell
$ rm -fr jm.git/manual/<パッケージ名>/original/*
.. note::
既翻訳時と現時点でのオリジナルソースでの差異=かつて含まれていたものが含まれなくなった場合に対して、不要なオリジナルソースを残さないため。
この後に ``git rm`` の実行を必要とするかもしれない。
* ``original`` ディレクトリ配下に ``man[0-9n]`` 等のサブディレクトリを適宜生成。
.. code-block:: shell
$ mkdir jm.git/manual/<パッケージ名>/original/man{1,5} # man1, man5 が必要な場合
* 対象パッケージソースから man ページオリジナルソースをコピー。
.. code-block:: shell
$ cp <オリジナルソースディレクトリ>/*.1 jm.git/manual/<パッケージ名>/original/man1
$ cp <オリジナルソースディレクトリ>/*.5 jm.git/manual/<パッケージ名>/original/man5
$ ...
3. translation_list のステータス記号記入。
============ ================= ============ ==========================
場合分け ページ種類 ステータス ステータス内容
============ ================= ============ ==========================
新規翻訳時 通常manページ ``▲`` 翻訳予約・作業中
リンクページ ``※`` リンク先が未翻訳・未公開
既翻訳時 通常manページ ``■`` 改訂予約・作業中
リンクページ ``※`` リンク先が未翻訳・未公開
============ ================= ============ ==========================
その他作業日付、作業者メールアドレス、作業者名記入。
.. code-block:: shell
$ cd jm.git/manual/<パッケージ名>
$ vi translation_list
3. 翻訳予約
===========
1. 翻訳予約時のソースコミット。``original`` ソース、``translation_list``
.. code-block:: shell
$ cd jm.git/manual/<パッケージ名>
$ git commit \
original \
translation_list
2. `JM discuss メーリングリスト `_ への翻訳予約メール送信。
``TR`` は翻訳の予約(Translation Reservation)
.. code-block:: shell
件名:
[POST:TR] <パッケージ名> [<ページ名>]
メール本文:
stat: TR
ppkg: <パッケージ名>
page: <ページ名>
date: YYYY/MM/DD
mail: EMAIL@ADRRESS
name: FULL NAME
3. チケット起票(利用時)。
4. 翻訳作業
===========
ローカル環境にて翻訳作業実施。
* po4a を用いた作業。
標準的手法の整備なし。
``jm.git/support/genmancfg.sh`` あり。
* いわゆる draft ファイルを用いた作業(旧来)。
``draft`` ディレクトリにて draft ファイルの編集。
.. code-block:: shell
$ cd jm.git/manual/<パッケージ名>
$ mkdir -p draft; cd draft
$ mkdir -p man{1,5} # man1, man5 が必要な場合
$ cd man1
$ vi <ページ名>.1
5. 校正依頼に向けた準備
=======================
1. translation_list のステータス記号記入。
============ ================= ============ ==========================
場合分け ページ種類 ステータス ステータス内容
============ ================= ============ ==========================
新規翻訳時 通常manページ ``△`` 翻訳終了。校正者募集中
リンクページ ``@`` リンク先が翻訳・公開済み
既翻訳時 通常manページ ``□`` 改訂終了。校正者募集
リンクページ ``@`` リンク先が翻訳・公開済み
============ ================= ============ ==========================
その他作業日付、作業者メールアドレス、作業者名記入。
.. code-block:: shell
$ cd jm.git/manual/<パッケージ名>
$ vi translation_list
6. 校正依頼
===========
1. 校正依頼時のソースコミット。
* 旧来の draft ファイル利用の場合、``draft``, ``translation_list`` のコミット。
.. code-block:: shell
$ cd jm.git/manual/<パッケージ名>
$ git commit \
draft \
translation_list
* po4a を用いた作業時の draft ファイルについては、標準的運用なし。
``jm.git/admin/po4a/gendraft.perl`` により draft ファイルを生成する手立てあり。
po4a を用いた作業ではこの時点で po4a サブディレクトリを合わせてコミットする。
.. code-block:: shell
$ cd jm.git/manual/<パッケージ名>
$ git commit \
draft \
po4a \
translation_list
2. `JM discuss メーリングリスト `_ への校正依頼メール送信。
``DP`` はドラフトの投稿。引き続き自分で校正を行う。(Draft and Proof reservation)
.. code-block:: shell
件名:
[POST:DP] <パッケージ名> [<ページ名>]
メール本文:
stat: DP
ppkg: <パッケージ名>
page: <ページ名>
date: YYYY/MM/DD
mail: EMAIL@ADRRESS
name: FULL NAME
<draft ファイル本文>
3. チケット更新(利用時)。
7. 校正作業
===========
`JM discuss メーリングリスト `_ 上において、メンバーを交えた校正作業。
適宜応答と、指摘内容への討議、検討、翻訳内容への反映等。
8. リリース判断とその準備
=========================
1. リリースするかどうかを翻訳者当人が判断。
2. ``release`` ディレクトリの生成とリリース成果物の準備
* 旧来の draft ファイル編集方式に対しては ``jm.git/admin/JM-release.sh`` がある。
* po4a 利用方式の場合は、最終出力ファイルを release ディレクトリに配置するようにする。
3. translation_list のステータス記号記入。
================= ============ ==========================
ページ種類 ステータス ステータス内容
================= ============ ==========================
通常manページ ``○`` 校正終了
リンクページ ``@`` リンク先が翻訳・公開済み
================= ============ ==========================
その他作業日付、作業者メールアドレス、作業者名記入。
.. code-block:: shell
$ cd jm.git/manual/<パッケージ名>
$ vi translation_list
9. リリース
===========
1. リリース時のソースコミット。
.. code-block:: shell
$ cd jm.git/manual/<パッケージ名>
$ git commit \
release \
translation_list
2. `JM discuss メーリングリスト `_ へのリリース報告メール送信。
``RO`` はリリースの投稿。(Release Only)
.. code-block:: shell
件名:
[POST:RO] <パッケージ名> [<ページ名>]
メール本文:
stat: RO
ppkg: <パッケージ名>
page: <ページ名>
date: YYYY/MM/DD
mail: EMAIL@ADRRESS
name: FULL NAME
3. チケット更新(利用時)。
.. note::
リリース tarball の生成などは、この後に定例バッチジョブが行うため、作業者は必要ソースをコミットするだけでよい。