OSDN Git Service

(split) LDP: Translation snapshots for LDP 3.64
[linuxjm/LDP_man-pages.git] / README.JM.org
1 * How to Translate
2
3 LDP man-pages では、翻訳に po4a を利用しています。
4
5 roff ファイルと po4a ファイルの変換には、LDP man-pages のフランス語翻訳チームが
6 公開している perkamon を利用しています。
7 perkamon を git submodule として利用しているため、手順が少し複雑になっています。
8
9 ** 前準備
10
11 git repository の top directory で以下のコマンドを実行します。
12
13 #+BEGIN_EXAMPLE
14 cd $JM_REPO_TOP
15 git submodule update --init
16 #+END_EXAMPLE
17
18 po4a 環境を用意します。
19
20 #+BEGIN_EXAMPLE
21 cd manual/LDP_man-pages
22 make jm-setup
23 #+END_EXAMPLE
24
25 これで po4a で作業して draft に反映する準備が整いました。
26
27 ** 翻訳と draft への変換
28
29 *** ja.po と man page の関係
30
31 一つの po ファイルは、 LDP\_man-pages の複数の man page に対応しています。
32 man page に対応する po ファイルを特定するには、以下のコマンドを実行します。
33
34 #+BEGIN_EXAMPLE
35 $ ./tools/identify-po.sh strptime.3
36 strptime.3 -> po4a/time/po/ja.po
37 #+END_EXAMPLE
38
39 上記の場合、strptime.3 が含まれる po ファイル (ja.po) は time 以下にあります。
40 po4a/time/po/ja.po を翻訳することになります。
41
42 *** 翻訳
43
44 上記で特定した ja.po を翻訳します。
45
46 エディタは po ファイルに対応しているものが便利です。
47 - Emacs を使っていれば Emacs の po-mode が便利です。
48 - gedit も PO ファイルをきれいに色付けしてくれるので、作業しやすいと思います。
49
50 *** draft page の生成
51
52 ja.po から draft を生成するには以下のいずれかを実行します (どちらも同じです)。
53 更新を行った PO ファイルのみが変換されます。
54
55 #+BEGIN_EXAMPLE
56 make
57 make translate
58 #+END_EXAMPLE
59
60 初めて実行する際には、全ての ja.po が変換対象になるので、時間がかかります。
61 どのファイルが更新されたかは git status で確認して下さい。
62
63 #+BEGIN_EXAMPLE
64 git status .
65 #+END_EXAMPLE
66
67 デフォルトでは、翻訳率 80% 以上のページが生成されます。
68 80% にしている理由は、ある程度日本語混じりの draft page を見ながら翻訳する方が
69 全体の文脈をつかみやすいためです。全部翻訳できたかは、下記の「翻訳状況の確認」
70 の方法で確認できるので、翻訳率 100% を閾値にする必要はないと考えています。
71
72 *** 翻訳状況の確認
73
74 - *ページ毎の翻訳状況* :
75   上記の draft page の生成の際に、翻訳状況のページ untrans.html が更新されます。
76   このページを表示すると、ページ毎の翻訳状況が確認できます。
77
78   #+BEGIN_EXAMPLE
79 w3m untrans.html
80 #+END_EXAMPLE
81
82 - *PO ファイル単位の翻訳状況* :
83   PO ファイル毎の翻訳状況も表示できます。
84
85   #+BEGIN_EXAMPLE
86 make postats
87 #+END_EXAMPLE
88
89   未翻訳項目がある PO ファイルのみを表示することもできます。
90
91   #+BEGIN_EXAMPLE
92 make untrans-postats
93 #+END_EXAMPLE
94
95 ** レビュー
96
97 JM ML に翻訳を投稿する場合は、以下のファイルを投稿して下さい。
98
99 - ja.po から生成された draft page
100 - 翻訳した ja.po ファイルの git diff
101   (または ja.po ファイルそのもの)
102
103 ja.po の diff は以下のコマンドで取得できます。 time の ja.po を翻訳した場合。
104
105 #+BEGIN_EXAMPLE
106 git diff po4a/time/po/ja.po
107 #+END_EXAMPLE
108
109 ** リリース
110
111 まとめてリリースを行う場合の手順です。
112 通常は JM ML でレビューを行います。
113
114 make release を実行すると、以下を行います。
115 - draft page を release フォルダにコピー
116 - translation_list を更新し、 PO ファイルで翻訳率が 100% になっているページのステータスを「☆」
117   リリース済に変更します。
118
119 更新後は通常のリリース手順と同じです。
120  * release ファイルを git add -u → git commit
121  * (必要に応じて) www/index.m4, www/news/index.m4 を更新
122
123 * How to update original
124
125 Git Repo 以下はきれいな状態にした状態で始めること。
126
127 1. perkamon を更新する
128
129    #+BEGIN_EXAMPLE
130   cd perkamon
131   git remote add upstream git://gitorious.org/perkamon/man-pages.git
132   git remote update
133   git checkout master
134   git merge upstream/master
135   git push origin
136   cd -
137 #+END_EXAMPLE
138
139    現状 JM 用の perkamon は amotoki が管理する GitHub Repository
140    https://github.com/amotoki/perkamon.git にあります。
141    Commit 権が必要であれば Collaborator に登録しますので、連絡下さい。
142
143 2. perkamon 作業ディレクトリに最新版に対応した展開する
144
145    #+BEGIN_EXAMPLE
146 make clean-setup
147 make jm-setup
148 #+END_EXAMPLE
149
150    以下の作業が行われる。
151
152    - 最新版の man-pages の tarball が perkamon/ 直下にダウンロードされる。
153    - tarball が perkamon/man-pages ディレクトリに展開される。
154    - po4a 作業用の source lang が build/C として用意される。
155      - 実際にコンテンツがあるファイルが build/C/man? 以下に man-pages 以下から
156        コピーされる。
157      - po4a-fixes.patch がある場合には、build/C/ 以下のファイルに適用される。
158      - リンクファイルは build/C/link に一覧が作成される。
159
160 3. original 以下にコピーする
161
162    #+BEGIN_EXAMPLE
163 cd perkamon/man-pages
164 ../../../../admin/JM-orig-upd.sh ../../original
165 cp README man-pages-* Changes* ../../original
166 cd -
167 #+END_EXAMPLE
168
169 4. COLOPHON 以下を削除する。
170
171    translation\_list を更新する際に、変更点のみを抽出するために行う。
172    COLOPHON 部分はリリース毎にバージョン番号が更新されてしまうので、
173    original に登録する際には、この節を削除しておく。
174
175    #+BEGIN_EXAMPLE
176 cd original
177 sed -e 's/\^\\\.SH /^\\.S[Hh] /' ../perkamon/man-pages/scripts/remove_COLOPHON.sh
178 sh ../perkamon/man-pages/scripts/remove_COLOPHON.sh man?/*.[1-8]
179 #+END_EXAMPLE
180
181 5. original 以下を git で stage する。
182
183    original 以下で作業する。基本的に original 以下の変更は全部取り込む
184
185    #+BEGIN_EXAMPLE
186 git add -u
187 git add .
188 #+END_EXAMPLE
189
190 6. translation\_list の更新
191
192    #+BEGIN_EXAMPLE
193 cd ..
194 (LDP_man-pages の直下に移動する)
195 git status original | ../../admin/git2upd > upd.txt
196 vi upd.txt
197 (不要な行の削除を行う)
198 ../../admin/upd_tl.perl translation_list upd.txt 3.XX
199 mv translation_list.3.XX translation_list
200 #+END_EXAMPLE
201
202 7. Git commit
203
204    #+BEGIN_EXAMPLE
205 git add translation_list
206 git commit -m "LDP: Update original to LDP v3.XX"
207 #+END_EXAMPLE
208
209 8. POT の更新
210
211    #+BEGIN_EXAMPLE
212 cd perkamon
213 make print-new-files
214 (何か表示されたら、po4a/*/*.cfg に追加)
215 make disable-removed
216 (何かないか確認)
217 git status
218 (更新があれば git commit)
219
220 cd ..
221 make FLAGS="--no-translations -v --force"
222 (これで POT と ja.po が更新される。
223  タイムスタンプを気にしなくてよいので --force を付けた方がよい。)
224 git add -u po4a/
225 git commit -m "LDP: Update POT and ja.po to LDP v3.XX"
226 #+END_EXAMPLE
227
228    この時点で draft, stats, untrans.html release も更新されている。
229
230 9. 単純な fuzzy の更新
231
232    COLOPHON が更新されているので、fuzzy が少なくとも一つできる。
233    ja.po で fuzzy を探してバージョンを更新する。
234
235    #+BEGIN_EXAMPLE
236 make
237 git add -u po4a/ stats/ untrans.html
238 git commit -m "LDP: Update the version to 3.XX in PO files"
239
240 git add draft/
241 git commit -m "LDP: Update draft pages based on LDP 3.XX release"
242
243 make release
244 git add release/
245 git add -u translation_list
246 git commit -m "LDP: Update release pages based on LDP 3.XX release"
247 #+END_EXAMPLE