+sub otherlanguages ($) { #{{{
+ my $page=shift;
+ my @ret;
+ if (istranslatable($page)) {
+ foreach my $lang (sort keys %{$translations{$page}}) {
+ push @ret, {
+ url => urlto($translations{$page}{$lang}, $page),
+ code => $lang,
+ language => $config{po_slave_languages}{$lang},
+ master => 0,
+ };
+ }
+ }
+ elsif (istranslation($page)) {
+ my ($masterpage, $curlang) = ($page =~ /(.*)[.]([a-z]{2})$/);
+ push @ret, {
+ url => urlto($masterpage, $page),
+ code => $config{po_master_language}{code},
+ language => $config{po_master_language}{name},
+ master => 1,
+ };
+ foreach my $lang (sort keys %{$translations{$masterpage}}) {
+ push @ret, {
+ url => urlto($translations{$masterpage}{$lang}, $page),
+ code => $lang,
+ language => $config{po_slave_languages}{$lang},
+ master => 0,
+ } unless ($lang eq $curlang);
+ }
+ }
+ return @ret;
+} #}}}
+
+sub pagetemplate (@) { #{{{
+ my %params=@_;
+ my $page=$params{page};
+ my $template=$params{template};
+
+ if ($template->query(name => "otherlanguages")) {
+ $template->param(otherlanguages => [otherlanguages($page)]);
+ }
+} # }}}
+