Mercurial > pidgin
comparison po/update.pl @ 5180:ea261ce36f0b
[gaim-migrate @ 5544]
This is the wave of the future! Or something like that.
Imma go eat cake later! Yay happy Easter!! Oh crap, I'm probably
going to get in a lot of trouble now. Holiday references, y'know. They're
illegal'n stuff. Or something like that. Personally, I like Christmas, but
it's just too near my birthday, you know? The presents should be spread
out. Birthdays are cool, sometimes. Halloween can be fun. Free candy!
Society says I can't trick-or-treat anymore though, so I take my little
sister around and get candy. Mmm.. Like stealing candy from a baby, except
we share it. So it's not stealing, really. Voluntary. On her part, not
mine, because it'd be stealing if it was my volunteering to take her candy.
committer: Tailor Script <tailor@pidgin.im>
author | Christian Hammond <chipx86@chipx86.com> |
---|---|
date | Sat, 19 Apr 2003 23:19:49 +0000 |
parents | |
children | 06fe6ed7f63a |
comparison
equal
deleted
inserted
replaced
5179:8b32f3644dc6 | 5180:ea261ce36f0b |
---|---|
1 #!/usr/bin/perl -w | |
2 | |
3 # GNOME po update utility. | |
4 # (C) 2000 The Free Software Foundation | |
5 # | |
6 # Author(s): Kenneth Christiansen | |
7 | |
8 | |
9 $VERSION = "1.2.5 beta 2"; | |
10 $LANG = $ARGV[0]; | |
11 $PACKAGE = "gaim"; | |
12 | |
13 if (! $LANG){ | |
14 print "update.pl: missing file arguments\n"; | |
15 print "Try `update.pl --help' for more information.\n"; | |
16 exit; | |
17 } | |
18 | |
19 if ($LANG=~/^-(.)*/){ | |
20 | |
21 if ("$LANG" eq "--version" || "$LANG" eq "-V"){ | |
22 print "GNOME PO Updater $VERSION\n"; | |
23 print "Written by Kenneth Christiansen <kenneth\@gnome.org>, 2000.\n\n"; | |
24 print "Copyright (C) 2000 Free Software Foundation, Inc.\n"; | |
25 print "This is free software; see the source for copying conditions. There is NO\n"; | |
26 print "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"; | |
27 exit; | |
28 } | |
29 | |
30 | |
31 elsif ($LANG eq "--help" || "$LANG" eq "-H"){ | |
32 print "Usage: ./update.pl [OPTIONS] ...LANGCODE\n"; | |
33 print "Updates pot files and merge them with the translations.\n\n"; | |
34 print " -V, --version shows the version\n"; | |
35 print " -H, --help shows this help page\n"; | |
36 print " -P, --pot only generates the potfile\n"; | |
37 print " -M, --maintain search for missing files in POTFILES.in\n"; | |
38 print "\nExamples of use:\n"; | |
39 print "update.sh --pot just creates a new pot file from the source\n"; | |
40 print "update.sh da created new pot file and updated the da.po file\n\n"; | |
41 print "Report bugs to <kenneth\@gnome.org>.\n"; | |
42 exit; | |
43 } | |
44 | |
45 elsif($LANG eq "--pot" || "$LANG" eq "-P"){ | |
46 | |
47 print "Building the $PACKAGE.pot ..."; | |
48 | |
49 $b="xgettext --default-domain\=$PACKAGE --directory\=\.\." | |
50 ." --add-comments --keyword\=\_ --keyword\=N\_" | |
51 ." --files-from\=\.\/POTFILES\.in "; | |
52 $b1="test \! -f $PACKAGE\.po \|\| \( rm -f \.\/$PACKAGE\.pot " | |
53 ."&& mv $PACKAGE\.po \.\/$PACKAGE\.pot \)"; | |
54 | |
55 `$b`; | |
56 `$b1`; | |
57 | |
58 print "...done\n"; | |
59 | |
60 exit; | |
61 } | |
62 | |
63 elsif ($LANG eq "--maintain" || "$LANG" eq "-M"){ | |
64 | |
65 $a="find ../ -print | egrep '.*\\.(c|y|cc|c++|h|gob)' "; | |
66 | |
67 open(BUF2, "POTFILES.in") || die "update.pl: there's not POTFILES.in!!!\n"; | |
68 print "Searching for missing _(\" \") entries...\n"; | |
69 open(BUF1, "$a|"); | |
70 | |
71 | |
72 @buf2 = <BUF2>; | |
73 @buf1 = <BUF1>; | |
74 | |
75 if (-s "POTFILES.ignore"){ | |
76 open FILE, "POTFILES.ignore"; | |
77 while (<FILE>) { | |
78 if ($_=~/^[^#]/o){ | |
79 push @bup, $_; | |
80 } | |
81 } | |
82 print "POTFILES.ignore found! Ignoring files...\n"; | |
83 @buf2 = (@bup, @buf2); | |
84 } | |
85 | |
86 foreach my $file (@buf1){ | |
87 open FILE, "<$file"; | |
88 while (<FILE>) { | |
89 if ($_=~/_\(\"/o){ | |
90 $file = unpack("x3 A*",$file) . "\n"; | |
91 push @buff1, $file; | |
92 last; | |
93 } | |
94 } | |
95 } | |
96 | |
97 @bufff1 = sort (@buff1); | |
98 | |
99 @bufff2 = sort (@buf2); | |
100 | |
101 my %in2; | |
102 foreach (@bufff2) { | |
103 $in2{$_} = 1; | |
104 } | |
105 | |
106 foreach (@bufff1){ | |
107 if (!exists($in2{$_})){ | |
108 push @result, $_ } | |
109 } | |
110 | |
111 if(@result){ | |
112 open OUT, ">POTFILES.in.missing"; | |
113 print OUT @result; | |
114 print "\nHere are the results:\n\n", @result, "\n"; | |
115 print "File POTFILES.in.missing is being placed in directory...\n"; | |
116 print "Please add the files that should be ignored in POTFILES.ignore\n"; | |
117 } | |
118 else{ | |
119 print "\nWell, it's all perfect! Congratulation!\n"; | |
120 } | |
121 } | |
122 | |
123 | |
124 else{ | |
125 print "update.pl: invalid option -- $LANG\n"; | |
126 print "Try `update.pl --help' for more information.\n"; | |
127 } | |
128 exit; | |
129 } | |
130 | |
131 elsif(-s "$LANG.po"){ | |
132 | |
133 print "Building the $PACKAGE.pot ..."; | |
134 | |
135 $c="xgettext --default-domain\=$PACKAGE --directory\=\.\." | |
136 ." --add-comments --keyword\=\_ --keyword\=N\_" | |
137 ." --files-from\=\.\/POTFILES\.in "; | |
138 $c1="test \! -f $PACKAGE\.po \|\| \( rm -f \.\/$PACKAGE\.pot " | |
139 ."&& mv $PACKAGE\.po \.\/$PACKAGE\.pot \)"; | |
140 | |
141 `$c`; | |
142 `$c1`; | |
143 | |
144 print "...done"; | |
145 | |
146 print "\nNow merging $LANG.po with $PACKAGE.pot, and creating an updated $LANG.po ...\n"; | |
147 | |
148 | |
149 $d="mv $LANG.po $LANG.po.old && msgmerge $LANG.po.old $PACKAGE.pot -o $LANG.po"; | |
150 | |
151 $f="msgfmt --statistics $LANG.po"; | |
152 | |
153 `$d`; | |
154 `$f`; | |
155 | |
156 unlink "messages"; | |
157 unlink "$LANG.po.old"; | |
158 | |
159 exit; | |
160 } | |
161 | |
162 else{ | |
163 print "update.pl: sorry $LANG.po does not exist!\n"; | |
164 print "Try `update.pl --help' for more information.\n"; | |
165 exit; | |
166 } |