X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/44e72fab1db7e2a5b7419dea93a25793b27df951..83480665c256a344900fc817bcb4618f8db9aeee:/IkiWiki/Plugin/po.pm?ds=inline diff --git a/IkiWiki/Plugin/po.pm b/IkiWiki/Plugin/po.pm index 8f169fda5..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); } } @@ -441,8 +441,8 @@ sub canremove (@) { my %params = @_; if (istranslation($params{page})) { - return gettext("Can not remove a translation. Removing the master page, ". - "though, removes its translations as well."); + return gettext("Can not remove a translation. If the master page is removed, ". + "however, its translations will be removed as well."); } return undef; } @@ -461,8 +461,8 @@ sub canrename (@) { # saved early in the renaming process. my $orig_torename = $session->param("po_orig_torename"); unless (grep { $_ eq $masterpage } @{$orig_torename}) { - return gettext("Can not rename a translation. Renaming the master page, ". - "though, renames its translations as well."); + return gettext("Can not rename a translation. If the master page is renamed, ". + "however, its translations will be renamed as well."); } } return undef; @@ -827,6 +827,21 @@ 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", "--previous", "-q", "-U", "--backup=none", $pofile, $potfile) == 0 or error("po(refreshpofiles) ".