X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/28b572a61e71187ecc01ed476e37fbafead11163..83480665c256a344900fc817bcb4618f8db9aeee:/IkiWiki/Plugin/po.pm?ds=sidebyside diff --git a/IkiWiki/Plugin/po.pm b/IkiWiki/Plugin/po.pm index 434d9cf4f..e9dc9dd8c 100644 --- a/IkiWiki/Plugin/po.pm +++ b/IkiWiki/Plugin/po.pm @@ -376,11 +376,11 @@ sub change (@) { && exists $config{meta_overrides_page_title} && defined $config{meta_overrides_page_title} && $config{meta_overrides_page_title}) { - debug(sprintf(gettext("re-rendering all pages to fix meta titles"))); + debug(sprintf(gettext("rebuilding all pages to fix meta titles"))); resetalreadyfiltered(); require IkiWiki::Render; foreach my $file (@rendered) { - debug(sprintf(gettext("rendering %s"), $file)); + debug(sprintf(gettext("building %s"), $file)); IkiWiki::render($file); } } @@ -827,8 +827,23 @@ sub refreshpofiles ($@) { foreach my $pofile (@pofiles) { IkiWiki::prep_writefile(basename($pofile),dirname($pofile)); + + if (! -e $pofile) { + # If the po file exists in an underlay, copy it + # from there. + my ($pobase)=$pofile=~/^\Q$config{srcdir}\E\/?(.*)$/; + foreach my $dir (@{$config{underlaydirs}}) { + if (-e "$dir/$pobase") { + File::Copy::syscopy("$dir/$pobase",$pofile) + or error("po(refreshpofiles) ". + sprintf(gettext("failed to copy underlay PO file to %s"), + $pofile)); + } + } + } + if (-e $pofile) { - system("msgmerge", "-q", "-U", "--backup=none", $pofile, $potfile) == 0 + system("msgmerge", "--previous", "-q", "-U", "--backup=none", $pofile, $potfile) == 0 or error("po(refreshpofiles) ". sprintf(gettext("failed to update %s"), $pofile));