X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/458ccebdd3f47dbae79d4129c043e049e954d7cc..1e874b3f0a396ba99ebf7ab8bad3d7eed1a846f2:/IkiWiki/Plugin/po.pm diff --git a/IkiWiki/Plugin/po.pm b/IkiWiki/Plugin/po.pm index d60ade499..0698b2488 100644 --- a/IkiWiki/Plugin/po.pm +++ b/IkiWiki/Plugin/po.pm @@ -140,16 +140,18 @@ sub tweakbestlink ($$) { #{{{ return $link; } #}}} +our %filtered; # We use filter to convert PO to the master page's type, # since other plugins should not work on PO files sub filter (@) { #{{{ my %params = @_; my $page = $params{page}; + my $destpage = $params{destpage}; my $content = decode_utf8(encode_utf8($params{content})); # decide if this is a PO file that should be converted into a translated document, # and perform various sanity checks - if (! istranslation($page)) { + if (! istranslation($page) || $filtered{$page}{$destpage}) { return $content; } @@ -174,6 +176,7 @@ sub filter (@) { #{{{ my $tmpout = $tmpfh->filename; $doc->write($tmpout) or error("[po/filter:$file] could not write $tmpout"); $content = readfile($tmpout) or error("[po/filter:$file] could not read $tmpout"); + $filtered{$page}{$destpage}=1; return $content; } #}}} @@ -233,7 +236,7 @@ use IkiWiki 2.00; sub match_istranslation ($;@) { #{{{ my $page=shift; - if (IkiWiki::Plugins::po::istranslation($page)) { + if (IkiWiki::Plugin::po::istranslation($page)) { return IkiWiki::SuccessReason->new("is a translation page"); } else { @@ -243,7 +246,7 @@ sub match_istranslation ($;@) { #{{{ sub match_istranslatable ($;@) { #{{{ my $page=shift; - if (IkiWiki::Plugins::po::istranslatable($page)) { + if (IkiWiki::Plugin::po::istranslatable($page)) { return IkiWiki::SuccessReason->new("is set as translatable in po_translatable_pages"); } else {