summaryrefslogtreecommitdiff
path: root/IkiWiki
diff options
context:
space:
mode:
authorintrigeri <intrigeri@boum.org>2008-10-10 15:48:35 +0200
committerintrigeri <intrigeri@boum.org>2008-10-18 15:49:09 +0200
commitfdc7974b2ac995b4ff12dfa208741189ff4bd274 (patch)
tree3d4b8858cdecbba7172afcf5d7f1044c1ef3af1a /IkiWiki
parent9c25f5cfe93899f6ac7da3c8c8d0939cff9a20b6 (diff)
po plugin: implemented po_link_to=negotiated
Signed-off-by: intrigeri <intrigeri@boum.org>
Diffstat (limited to 'IkiWiki')
-rw-r--r--IkiWiki/Plugin/po.pm19
1 files changed, 11 insertions, 8 deletions
diff --git a/IkiWiki/Plugin/po.pm b/IkiWiki/Plugin/po.pm
index 63be0e389..7b9945b0a 100644
--- a/IkiWiki/Plugin/po.pm
+++ b/IkiWiki/Plugin/po.pm
@@ -47,10 +47,10 @@ sub getsetup () { #{{{
safe => 1,
rebuild => 1,
},
- po_link_to_current_language => {
- type => "boolean",
- example => 1,
- description => "internal links point to pages in the current language (useful if Content Negotiation is not supported)",
+ po_link_to => {
+ type => "string",
+ example => "current",
+ description => "internal linking behavior (default/current/negotiated)",
safe => 1,
rebuild => 1,
},
@@ -62,9 +62,12 @@ sub checkconfig () { #{{{
error(sprintf(gettext("Must specify %s"), $field));
}
}
- if (! exists $config{po_link_to_current_language} ||
- ! defined $config{po_link_to_current_language}) {
- $config{po_link_to_current_language}=0;
+ if (! exists $config{po_link_to} ||
+ ! defined $config{po_link_to}) {
+ $config{po_link_to}="default";
+ }
+ if ($config{po_link_to} eq "negotiated" && ! $config{usedirs}) {
+ error(gettext("po_link_to=negotiated requires usedirs to be set"));
}
} #}}}
@@ -95,7 +98,7 @@ sub targetpage (@) { #{{{
sub tweakurlpath ($) { #{{{
my %params = @_;
my $url=$params{url};
- if (! $config{po_link_to_current_language} && $config{usedirs}) {
+ if ($config{po_link_to} eq "negotiated") {
$url =~ s!/index.$config{po_master_language}{code}.$config{htmlext}$!/!;
}
return $url;