diff options
Diffstat (limited to 'IkiWiki/Plugin')
-rw-r--r-- | IkiWiki/Plugin/po.pm | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/IkiWiki/Plugin/po.pm b/IkiWiki/Plugin/po.pm index 389d4e940..7deddf9ab 100644 --- a/IkiWiki/Plugin/po.pm +++ b/IkiWiki/Plugin/po.pm @@ -157,6 +157,10 @@ sub needsbuild () { #{{{ } } #}}} +# Massage the recorded state of internal links so that: +# - it matches the actually generated links, rather than the links as written +# in the pages' source +# - backlinks are consistent in all cases sub scan (@) { #{{{ my %params=@_; my $page=$params{page}; @@ -183,9 +187,10 @@ sub scan (@) { #{{{ elsif (! istranslatable($page) && ! istranslation($page)) { foreach my $destpage (@{$links{$page}}) { if (istranslatable($destpage)) { - map { - push @{$links{$page}}, $destpage . '.' . $_; - } (keys %{$config{po_slave_languages}}); + # make sure any destpage's translations has + # $page in its backlinks + push @{$links{$page}}, + values %{otherlanguages($destpage)}; } } } |