summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IkiWiki/Plugin/po.pm11
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)};
}
}
}