Mercurial > hgbook
annotate tools/po4a/po4a-updatepo @ 744:1114da00d30e
Fix '<programlisting>' in ch02-tour-basic.xml
author | Dongsheng Song <dongsheng.song@gmail.com> |
---|---|
date | Wed, 18 Mar 2009 19:43:46 +0800 |
parents | 082bb76417f1 |
children |
rev | line source |
---|---|
722
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
1 #! /usr/bin/env perl |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
2 eval 'exec perl -S $0 ${1+"$@"}' |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
3 if $running_under_some_shell; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
4 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
5 # pod-updatepo -- Update the po translation of POD data. |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
6 # $Id: po4a-updatepo,v 1.44 2009-03-07 12:33:10 nekral-guest Exp $ |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
7 # |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
8 # Copyright 2002, 2003, 2004 by Martin Quinson (mquinson#debian.org) |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
9 # |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
10 # This program is free software; you can redistribute it and/or modify it |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
11 # under the terms of GPL (see COPYING). |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
12 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
13 =head1 NAME |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
14 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
15 po4a-updatepo - update the translation (in po format) of documentation |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
16 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
17 =head1 SYNOPSIS |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
18 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
19 po4a-updatepo -f E<lt>fmtE<gt> (-m E<lt>master.docE<gt>)+ (-p E<lt>XX.poE<gt>)+ |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
20 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
21 (XX.po are the outputs, all others are inputs) |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
22 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
23 =head1 DESCRIPTION |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
24 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
25 The po4a (po for anything) project goal is to ease translations (and more |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
26 interestingly, the maintenance of translations) using gettext tools on |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
27 areas where they were not expected like documentation. |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
28 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
29 The C<po4a-updatepo> script is in charge of updating po files to make |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
30 them reflect the changes made to the original documentation file. For that, |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
31 it converts the documentation file to a pot file, and call L<msgmerge(1)> |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
32 on this new pot and on the provided po files. |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
33 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
34 It is possible to give more than one po file (if you want to update several |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
35 languages at once), and several documentation files (if you want to store |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
36 the translations of several documents in the same po file). |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
37 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
38 If the master document has non-ascii characters, it will convert the po files |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
39 to utf-8 (if they weren't already), in order to allow non-standard characters |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
40 in a culture independent way. |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
41 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
42 =head1 COMMAND-LINE OPTIONS |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
43 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
44 =over 4 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
45 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
46 =item -f, --format |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
47 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
48 Format of the documentation you want to handle. Use the --help-format |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
49 option to see the list of available formats. |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
50 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
51 =item -m, --master |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
52 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
53 File(s) containing the master document to translate. |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
54 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
55 =item -M, --master-charset |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
56 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
57 Charset of the files containing the document to translate. Note that all |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
58 files must have the same charset. |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
59 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
60 =item -p, --po |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
61 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
62 Po file(s) to update. If these files do not exist, they are created by |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
63 C<po4a-updatepo>. |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
64 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
65 =item -o, --option |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
66 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
67 Extra option(s) to pass to the format plugin and other po4a internal module. |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
68 Specify each option in the 'name=value' format. See the documentation of |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
69 each plugin for more information about the valid options and their meanings. |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
70 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
71 =item --previous |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
72 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
73 This option adds '--previous' to the options passed to msgmerge. |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
74 It requires gettext 0.16 or later. |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
75 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
76 =item --msgmerge-opt options |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
77 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
78 Extra options for msgmerge. |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
79 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
80 =item -h, --help |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
81 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
82 Show a short help message. |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
83 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
84 =item --help-format |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
85 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
86 List the documentation format handled by po4a. |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
87 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
88 =item -V, --version |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
89 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
90 Display the version of the script and exit. |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
91 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
92 =item -v, --verbose |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
93 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
94 Increase the verbosity of the program. |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
95 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
96 =item -d, --debug |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
97 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
98 Output some debugging information. |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
99 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
100 =back |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
101 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
102 =head1 SEE ALSO |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
103 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
104 L<po4a(7)>, L<po4a-gettextize(1)>, L<po4a-translate(1)>, L<po4a-normalize(1)>. |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
105 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
106 =head1 AUTHORS |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
107 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
108 Denis Barbier <barbier@linuxfr.org> |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
109 Martin Quinson (mquinson#debian.org) |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
110 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
111 =head1 COPYRIGHT AND LICENSE |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
112 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
113 Copyright 2002, 2003, 2004, 2005 by SPI, inc. |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
114 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
115 This program is free software; you may redistribute it and/or modify it |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
116 under the terms of GPL (see the COPYING file). |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
117 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
118 =cut |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
119 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
120 use 5.006; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
121 use strict; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
122 use warnings; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
123 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
124 use Getopt::Long qw(GetOptions); |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
125 use Locale::Po4a::Po; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
126 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
127 use Locale::Po4a::Chooser; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
128 use Locale::Po4a::TransTractor; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
129 use Locale::Po4a::Common; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
130 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
131 use Pod::Usage qw(pod2usage); |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
132 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
133 use File::Temp; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
134 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
135 Locale::Po4a::Common::textdomain('po4a'); |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
136 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
137 sub show_version { |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
138 Locale::Po4a::Common::show_version("po4a-updatepo"); |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
139 exit 0; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
140 } |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
141 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
142 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
143 # init commandline parser |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
144 Getopt::Long::config('bundling', 'no_getopt_compat', 'no_auto_abbrev'); |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
145 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
146 # Parse our options |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
147 my (@masterfiles,@pofiles); |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
148 my ($help,$help_fmt,$verbose,$debug,$format,@options); |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
149 my $mastchar; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
150 my $previous; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
151 my $msgmerge_opt = ""; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
152 GetOptions('help|h' => \$help, |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
153 'help-format' => \$help_fmt, |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
154 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
155 'master|m=s' => \@masterfiles, |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
156 'po|p=s' => \@pofiles, |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
157 'format|f=s' => \$format, |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
158 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
159 'master-charset|M=s' => \$mastchar, |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
160 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
161 'option|o=s' => \@options, |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
162 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
163 'previous' => \$previous, |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
164 'msgmerge-opt=s' => \$msgmerge_opt, |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
165 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
166 'verbose|v' => \$verbose, |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
167 'debug|d' => \$debug, |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
168 'version|V' => \&show_version) |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
169 or pod2usage(); |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
170 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
171 $help && pod2usage (-verbose => 1, -exitval => 0); |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
172 $help_fmt && Locale::Po4a::Chooser::list(0); |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
173 pod2usage () if scalar @masterfiles < 1 || scalar @pofiles < 1; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
174 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
175 $msgmerge_opt .= " --previous" if $previous; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
176 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
177 my %options = ( |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
178 "verbose" => $verbose, |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
179 "debug" => $debug); |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
180 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
181 foreach (@options) { |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
182 if (m/^([^=]*)=(.*)$/) { |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
183 $options{$1}="$2"; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
184 } else { |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
185 $options{$_}=1; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
186 } |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
187 } |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
188 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
189 # parser |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
190 my ($doc)=Locale::Po4a::Chooser::new($format,%options); |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
191 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
192 map { -e $_ || die wrap_msg(gettext("File %s does not exist."), $_) } @masterfiles; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
193 map { die wrap_msg(gettext("po4a-updatepo can't take the input po from stdin.")) |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
194 if $_ eq '-' && !-e '-'} @pofiles; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
195 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
196 my ($pot_filename); |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
197 (undef,$pot_filename)=File::Temp->tempfile("po4a-updatepoXXXX", |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
198 DIR => "/tmp", |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
199 SUFFIX => ".pot", |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
200 OPEN => 0, |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
201 UNLINK => 0) |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
202 or die wrap_msg(gettext("Can't create a temporary pot file: %s"), $!); |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
203 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
204 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
205 print STDERR wrap_msg(gettext("Parse input files... ")) if $verbose; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
206 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
207 $doc->{TT}{utf_mode} = 1; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
208 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
209 $doc->process('file_in_name' => \@masterfiles, |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
210 'file_in_charset' => $mastchar, |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
211 'po_out_name' => $pot_filename, |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
212 'debug' => $debug, |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
213 'verbose' => $verbose); |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
214 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
215 print STDERR wrap_msg(gettext("done.")) if $verbose; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
216 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
217 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
218 while (my $po_filename=shift @pofiles) { |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
219 if (-e $po_filename) { |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
220 print STDERR wrap_msg(gettext("Updating %s:"), $po_filename) |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
221 if $verbose; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
222 my $cmd = "msgmerge $msgmerge_opt -U $po_filename $pot_filename"; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
223 system ($cmd) == 0 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
224 or die wrap_msg(gettext("Error while running msgmerge: %s"), $!); |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
225 system "msgfmt --statistics -v -o /dev/null $po_filename" |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
226 if $verbose; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
227 } else { |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
228 print STDERR wrap_msg(gettext("Creating %s:"), $po_filename) |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
229 if $verbose; |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
230 system ("cp",$pot_filename,$po_filename) == 0 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
231 or die wrap_msg(gettext("Error while copying the po file: %s"), $!); |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
232 } |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
233 } |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
234 |
082bb76417f1
Add Po4a 0.37-dev(2009-03-08)
Dongsheng Song <dongsheng.song@gmail.com>
parents:
diff
changeset
|
235 unlink($pot_filename); |