OSDN Git Service

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