OSDN Git Service

(split) LDP: (Makefile) Add "translate" target
[linuxjm/LDP_man-pages.git] / README.JM
1 = How to translate =
2
3 LDP man-pages では、翻訳に po4a を利用しています。
4 roff ファイルと po4a ファイルの変換には、LDP man-pages のフランス語翻訳チームが
5 公開している perkamon を利用しています。
6 perkamon を git submodule として利用しているため、手順が少し複雑になっています。
7
8 (0) 前準備
9
10 git repository の top directory で以下のコマンドを実行します。
11
12   cd $JM_REPO_TOP
13   git submodule update --init
14
15 po4a 環境を用意します。
16
17   cd manual/LDP_man-pages
18   make jm-setup
19
20 これで po4a で作業して draft に反映する準備が整いました。
21
22 (1) 翻訳と draft への変換
23
24 (1-1) ja.po と man page の関係
25
26 一つの po ファイルは、LDP_man-pages の複数の man page に対応しています。
27 man page に対応する po ファイルを特定するには、以下のようにします。
28
29 $ grep -l strptime.3 perkamon/po4a/*/*.cfg
30 perkamon/po4a/time/time.cfg
31
32 上記の場合、strptime.3 が含まれる po ファイル (ja.po) は time 以下にあります。
33 po4a/time/po/ja.po を翻訳することになります。
34
35 $ find po4a/time/
36 po4a/time/
37 po4a/time/po
38 po4a/time/po/ja.po
39 po4a/time/po/time.pot
40
41 (1-2) 翻訳
42
43 上記で特定した ja.po を翻訳します。
44 エディタは po ファイルに対応しているものが便利です。
45
46 (1-3) draft page の生成
47
48 make または make translate を実行すると、ja.po から draft を生成します。
49 全ての ja.po が変換対象になるので、時間がかかります。
50 どのファイルが更新されたかは git status で確認して下さい。
51
52 特定のディレクトリ以下のみを変換したい場合は以下のようにします。
53
54   make translate-time
55
56 デフォルトでは、翻訳率が 100% の page のみが生成されます。
57 翻訳中のページなどで状況を確認したい場合は、
58 以下のように THRESH=70 のように翻訳率を指定して下さい。
59
60   make translate-time THRESH=70
61   make THRESH=70
62
63 (1-4) 翻訳状況の確認
64
65 make stats を実行すると、LDP_man-pages 以下の全ての po の翻訳状況が表示されます。
66
67 (2) リリース
68
69 make release を実行すると、ja.po から release ファイルが生成されます。
70 行っていることは draft の生成と同じですが、
71 翻訳率の閾値が 80% になっている点が異なります。
72
73 更新後は通常のリリース手順と同じです。
74  * release ファイルを git add -u → git commit
75  * (必要に応じて) www/index.m4, www/news/index.m4 を更新
76
77 80% にしているのは、ある程度翻訳されているページは公開してしまおうという
78 意図からです。draft の方は翻訳できていないページを検知する意味で、
79 100% の閾値にしています。
80
81 (3) 課題
82
83 以下の点が po4a 移行後の課題です。
84
85  * レビューをどのようにして行うか?
86  * translation-list の更新が手動になっている
87  * 複数のファイルが一つの ja.po の変更で更新されることがあり、管理が面倒
88
89 = How to update original =
90
91 Git Repo 以下はきれいな状態にした状態で始めること。
92
93 (1) perkamon を更新する
94
95   cd perkamon
96   git remote add upstream git://gitorious.org/perkamon/man-pages.git
97   git remote update
98   git checkout master
99   git merge upstream/master
100   git push origin
101   cd -
102
103   (*) 現状 JM 用の perkamon は amotoki が管理する GitHub 上にあります。
104       Commit 権が必要であれば Collaborator に登録しますので、連絡下さい。
105       https://github.com/amotoki/perkamon.git
106
107 (2) perkamon 作業ディレクトリに最新版に対応した展開する
108
109   (ここで Git Repo 以下はきれいな状態にしておく)
110   make clean-setup
111   make jm-setup
112
113   以下の作業が行われる。
114   * 最新版の man-pages の tarball が perkamon/ 直下にダウンロードされる。
115   * tarball が perkamon/man-pages ディレクトリに展開される。
116   * po4a 作業用の source lang が build/C として用意される。
117     * 実際にコンテンツがあるファイルが build/C/man? 以下に man-pages 以下から
118       コピーされる。
119     * po4a-fixes.patch がある場合には、build/C/ 以下のファイルに適用される。
120     * リンクファイルは build/C/link に一覧が作成される。
121
122 (3) original 以下にコピーする
123   cd perkamon/man-pages
124   ../../../../admin/JM-orig-upd.sh ../../original
125   cp README man-pages-* Changes* ../../original
126   cd -
127
128 (4) COLOPHON 以下を削除する。
129     translation_list を更新するため、変更点のみを抽出するため。
130   cd original
131   sed -e 's/\^\\\.SH /^\\.S[Hh] /' ../perkamon/man-pages/scripts/remove_COLOPHON.sh
132   sh ../perkamon/man-pages/scripts/remove_COLOPHON.sh man?/*.[1-8]
133
134 (5) original 以下を git で stage する。
135   (original 以下で作業する。基本的に original 以下の変更は全部取り込む)
136   git add -u
137   git add .
138
139 (6) translation_list の更新
140   cd ..  (LDP_man-pages の直下に移動する)
141   git status original | ../../admin/git2upd > upd.txt
142   vi upd.txt
143   (不要な行の削除を行う)
144   ../../admin/upd_tl.perl translation_list upd.txt 3.XX
145   mv translation_list.3.XX translation_list
146
147 (7) Git commit
148   git add translation_list
149   git commit -m "LDP: Update original to LDP v3.XX"
150
151 (8) POT の更新
152   cd perkamon
153   make print-new-files
154   (何か表示されたら、po4a/*/*.cfg に追加)
155   make disable-removed
156   (何かないか確認)
157   git status
158   (更新があれば git commit)
159
160   cd ..
161   make FLAGS="--no-translations -v --force"
162   (これで POT と ja.po が更新される。
163    タイムスタンプを気にしなくてよいので --force を付けた方がよい。)
164   git add -u po4a/
165   git commit -m "LDP: Update POT and ja.po to LDP v3.XX"
166
167   この時点で draft, stats, untrans.html release も更新されている。
168
169 (9) 単純な fuzzy の更新
170   COLOPHON が更新されているので、fuzzy が少なくとも一つできる。
171   ja.po で fuzzy を探してバージョンを更新する。
172
173   make
174   git add -u po4a/ stats/ untrans.html
175   git commit -m "LDP: Update the version to 3.XX in PO files"
176
177   git add draft/
178   git commit -m "LDP: Update draft pages based on LDP 3.XX release"
179
180   make release
181   git add release/
182   git add -u translation_list
183   git commit -m "LDP: Update release pages based on LDP 3.XX release"