po: change a bit the way links are generated

This will soon enable usage of translated page titles in link.

Signed-off-by: intrigeri <intrigeri@boum.org>
master
intrigeri 2008-11-11 22:26:01 +01:00
parent b7a4e5a51c
commit 2b4e76a961
2 changed files with 10 additions and 6 deletions

View File

@ -385,14 +385,14 @@ sub editcontent () { #{{{
# | Injected functions
# `----
# Implement po_link_to=current
# Implement po_link_to 'current' and 'negotiated' settings.
sub mybestlink ($$) { #{{{
my $page=shift;
my $link=shift;
my $res=$origsubs{'bestlink'}->($page, $link);
if (length $res
&& $config{po_link_to} eq "current"
&& ($config{po_link_to} eq "current" || $config{po_link_to} eq "negotiated")
&& istranslatable($res)
&& istranslation($page)) {
return $res . "." . lang($page);
@ -407,6 +407,9 @@ sub mybeautify_urlpath ($) { #{{{
if ($config{po_link_to} eq "negotiated") {
$res =~ s!/\Qindex.$config{po_master_language}{code}.$config{htmlext}\E$!/!;
$res =~ s!/\Qindex.$config{htmlext}\E$!/!;
map {
$res =~ s!/\Qindex.$_.$config{htmlext}\E$!/!;
} (keys %{$config{po_slave_languages}});
}
return $res;
} #}}}
@ -699,7 +702,7 @@ sub otherlanguagesloop ($) { #{{{
}
else {
push @ret, {
url => urlto($otherpage, $page),
url => urlto_with_orig_beautiful_urlpath($otherpage, $page),
code => $lang,
language => languagename($lang),
percent => percenttranslated($otherpage),

7
t/po.t
View File

@ -17,7 +17,7 @@ BEGIN {
}
}
use Test::More tests => 58;
use Test::More tests => 59;
BEGIN { use_ok("IkiWiki"); }
@ -163,7 +163,7 @@ is(bestlink('test1.fr', 'test2'), 'test2.fr', "$msgprefix test1.fr -> test2");
is(bestlink('test1.fr', 'test2.es'), 'test2.es', "$msgprefix test1.fr -> test2.es");
$config{po_link_to}='negotiated';
$msgprefix="bestlink (po_link_to=negotiated)";
is(bestlink('test1.fr', 'test2'), 'test2', "$msgprefix test1.fr -> test2");
is(bestlink('test1.fr', 'test2'), 'test2.fr', "$msgprefix test1.fr -> test2");
is(bestlink('test1.fr', 'test2.es'), 'test2.es', "$msgprefix test1.fr -> test2.es");
### beautify_urlpath
@ -173,5 +173,6 @@ is(IkiWiki::beautify_urlpath('test1/index.en.html'), './test1/index.en.html', "$
is(IkiWiki::beautify_urlpath('test1/index.fr.html'), './test1/index.fr.html', "$msgprefix test1/index.fr.html");
$config{po_link_to}='negotiated';
$msgprefix="beautify_urlpath (po_link_to=negotiated)";
is(IkiWiki::beautify_urlpath('test1/index.html'), './test1/', "$msgprefix test1/index.html");
is(IkiWiki::beautify_urlpath('test1/index.en.html'), './test1/', "$msgprefix test1/index.en.html");
is(IkiWiki::beautify_urlpath('test1/index.fr.html'), './test1/index.fr.html', "$msgprefix test1/index.fr.html");
is(IkiWiki::beautify_urlpath('test1/index.fr.html'), './test1/', "$msgprefix test1/index.fr.html");