]> sipb.mit.edu Git - ikiwiki.git/blobdiff - po/po2wiki
test doesn't work live. damnit. try varying pagespec
[ikiwiki.git] / po / po2wiki
index 031c906cb766cb3107caa94908adfeb1ef883097..126aa8e17d0949d0c9a55477268464936092ff33 100755 (executable)
@@ -22,16 +22,21 @@ foreach my $file (@$files) {
        $pagesources{$page}=$file; # used by po plugin functions
 }
 
-foreach my $ll (keys %{$config{po_slave_languages}}) {
-       $config{destdir}="po/out.$ll";
+foreach my $lang (@{$config{po_slave_languages}}) {
+       my ($ll, $name)=IkiWiki::Plugin::po::splitlangpair($lang);
+       $config{destdir}="../underlays/locale/$ll";
 
        foreach my $file (@$files) {
                my $page=pagename($file);
                my ($masterpage, $lang) = IkiWiki::Plugin::po::_istranslation($page);
                next unless defined $lang && $lang eq $ll;
                
-               my $content=readfile(srcfile($file));
-               $content=IkiWiki::Plugin::po::po_to_markup($page, $content);
-               writefile($masterpage.".".$config{default_pageext}, $config{destdir}, $content);
+               my $content=IkiWiki::Plugin::po::po_to_markup($page, readfile(srcfile($file)));
+               # avoid wasting space if the page is not translated at all
+               my $mastercontent=readfile(srcfile($pagesources{$masterpage}));
+               if ($content ne $mastercontent) {
+                       writefile($masterpage.".".$config{default_pageext},
+                               $config{destdir}, $content);
+               }
        }
 }