X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/646d7bf6a3c9d4f153f8129400a24ad147dcd67c..6fc898df75223b93eba827847fd67934a65d7bee:/IkiWiki/Plugin/po.pm diff --git a/IkiWiki/Plugin/po.pm b/IkiWiki/Plugin/po.pm index 7bc702eca..9967e4158 100644 --- a/IkiWiki/Plugin/po.pm +++ b/IkiWiki/Plugin/po.pm @@ -496,7 +496,7 @@ sub pagetemplate (@) { #{{{ elsif (istranslation($page)) { add_depends($page, $masterpage); foreach my $translation (values %{$translations{$masterpage}}) { - add_depends($page, $translation); + add_depends($page, $translation) unless $page eq $translation; } } } @@ -517,7 +517,9 @@ sub pagetemplate (@) { #{{{ linktext => gettext("Discussion"), )); } - # remove broken parentlink to ./index.html on home page's translations + # Remove broken parentlink to ./index.html on home page's translations. + # It works because this hook has the "last" parameter set, to ensure it + # runs after parentlinks' own pagetemplate hook. if ($template->param('parentlinks') && istranslation($page) && $masterpage eq "index") { @@ -535,6 +537,9 @@ sub change(@) { #{{{ next unless istranslatable($page); my $file=srcfile($pagesources{$page}); my $updated_pot_file=0; + # Only refresh Pot file if it does not exist, or if + # $pagesources{$page} was changed: don't if only the HTML was + # refreshed, e.g. because of a dependency. if ((grep { $_ eq $pagesources{$page} } @origneedsbuild) || ! -e potfile($file)) { refreshpot($file);