2 # Copyright (C) 2011 Laurentian University
3 # Author: Dan Scott <dscott@laurentian.ca>
5 # This program is free software; you can redistribute it and/or
6 # modify it under the terms of the GNU General Public License
7 # as published by the Free Software Foundation; either version 2
8 # of the License, or (at your option) any later version.
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
14 # ---------------------------------------------------------------
20 use Pod::Usage qw/ pod2usage /;
27 'launchpad-base-dir=s' => \$lp_base_dir,
28 'evergreen-base-dir=s' => \$eg_base_dir,
75 multiclass_search_help.html
101 foreach my $pofile (@pofiles) {
102 foreach my $lang (keys %locs) {
103 my $src_file = File::Spec->catfile(
104 ($lp_base_dir, 'build/i18n/po', $pofile), "$lang.po"
106 my $dest_file = File::Spec->catfile(
107 ($eg_base_dir, 'build/i18n/po', $pofile), "$locs{$lang}.po"
110 # If the source file doesn't exist, move on
111 next if ! -f $src_file;
113 # Check for actual changed strings
115 my $diff = `diff -u $dest_file $src_file`;
117 # Ignore changes to the PO header
118 $diff =~ s/^\+#.*?$//ms;
119 $diff =~ s/^\+"PO-Revision-Date:.*?$//ms;
120 $diff =~ s/^\+"Report-Msgid-Bugs-To:.*?$//ms;
121 $diff =~ s/^\+"X-Launchpad-Export-Date:.*?$//ms;
122 $diff =~ s/^\+"X-Generator:.*?$//ms;
124 if ($diff =~ /^\+/sm) {
125 `cp $src_file $dest_file`;
128 # Copy brand new translations into place
129 `cp $src_file $dest_file`;
135 if (!($lp_base_dir && $eg_base_dir)) {
139 if (!-d $lp_base_dir) {
140 print STDERR "$lp_base_dir does not exist; exiting\n";
144 if (!-d $eg_base_dir) {
145 print STDERR "$eg_base_dir does not exist; exiting\n";
149 if (!-d File::Spec->catdir($lp_base_dir, '.bzr')) {
150 print STDERR "$lp_base_dir is not a bzr branch; exiting\n";
154 if (!-f File::Spec->catfile(($eg_base_dir, '.git'), 'config')) {
155 print STDERR "$eg_base_dir is not a git clone; exiting\n";
164 update_pofiles - Updates translations from Launchpad
168 B<update_pofile> B<--launchpad-base-dir>=I<translation-export-directory>
169 B<--evergreen-base-dir>=I<evergreen-git-clone-directory>
173 Assuming that you have an updated bzr checkout of the translation-export
174 to satisfy the 'launchpad-base-dir' argument, and an updated git clone
175 of Evergreen master to satisfy the 'evergreen-base-dir' argument,
176 this script attempts to copy only the new or changed translations
177 from the Launchpad directory into the Evergreen directory. It
178 converts the Launchpad I<ll> and I<ll_LL> locale names into Evergreen's
179 I<ll-LL> locale names.
181 Note that the user is still required to build, test, and check in the
182 updated translations.
188 =item * B<-l> I<translation-export-directory>, B<--launchpad-base-dir>=I<translation-export-directory>
190 Specifies the directory holding the updated bzr checkout of
191 https://code.launchpad.net/~denials/evergreen/translation-export - which
192 you can create via "bzr lp:~denials/evergreen/translation-export".
194 =item * B<-e> I<evergreen-directory>, B<--evergreen-base-dir>=I<evergreen-directory>
196 Specifies the directory holding the updated git clone of Evergreen, which you
197 can create via "git clone git://git.evergreen-ils.org/Evergreen.git".
203 Dan Scott <dscott@laurentian.ca>
205 =head1 COPYRIGHT AND LICENSE
207 Copyright 2011 by Dan Scott
209 This program is free software; you can redistribute it and/or
210 modify it under the terms of the GNU General Public License
211 as published by the Free Software Foundation; either version 2
212 of the License, or (at your option) any later version.
214 This program is distributed in the hope that it will be useful,
215 but WITHOUT ANY WARRANTY; without even the implied warranty of
216 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
217 GNU General Public License for more details.
219 You should have received a copy of the GNU General Public License
220 along with this program; if not, write to the Free Software
221 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.