]> git.deb.at Git - deb/packages.git/blobdiff - bin/translate_static_page
Make static pages translatable via templates.pot and convert homepage to use it
[deb/packages.git] / bin / translate_static_page
diff --git a/bin/translate_static_page b/bin/translate_static_page
new file mode 100755 (executable)
index 0000000..e62bbb9
--- /dev/null
@@ -0,0 +1,42 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use POSIX;
+use File::Basename;
+
+use lib './lib';
+
+use Packages::CommonCode qw(:all);
+use Packages::Config qw( $TOPDIR $DBDIR @ARCHIVES @SUITES @LANGUAGES );
+use Packages::Template;
+use Packages::I18N::Locale;
+&Packages::Config::init( './' );
+
+my $template = new Packages::Template( "$TOPDIR/templates", 'html');
+
+if( @ARGV % 2 ){
+    die "usage: translate_static_page [[template outputfile]...]\n";
+}
+my %pages = @ARGV;
+print "translate static pages ...\n";
+while( my ($tmpl, $output) = each %pages ) {
+    my $outdir = dirname($output);
+    my $outfile = basename($output);
+    mkdirp ( $outdir );
+    foreach my $lang (@LANGUAGES) {
+       my $charset = 'UTF-8';
+       my $cat = Packages::I18N::Locale->get_handle($lang)
+           or die "get_handle failed for $lang";
+       print "writing $outfile (lang=$lang)...\n";
+
+       my %content = ( po_lang => $lang, ddtp_lang => $lang,
+                       charset => $charset, cat => $cat,
+                       used_langs => \@LANGUAGES );
+
+       $template->page( $tmpl, \%content,
+                        "$TOPDIR/$output.$lang.html.new");
+       activate( "$TOPDIR/$output.$lang.html" );
+    }
+}