From: intrigeri Date: Fri, 10 Oct 2008 13:48:35 +0000 (+0200) Subject: po plugin: implemented po_link_to=negotiated X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/commitdiff_plain/fdc7974b2ac995b4ff12dfa208741189ff4bd274 po plugin: implemented po_link_to=negotiated Signed-off-by: intrigeri --- 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; diff --git a/doc/plugins/po.mdwn b/doc/plugins/po.mdwn index d2f572706..0d93aadda 100644 --- a/doc/plugins/po.mdwn +++ b/doc/plugins/po.mdwn @@ -98,7 +98,8 @@ negotiated preferred language, *i.e.* `foo/page/`. (In)compatibility notes: - `po_link_to => negotiated` provides no useful behavior if `usedirs` - is disabled: + is disabled; this option combination is neither implemented nor + allowed - `po_link_to => negotiated` provides no useful behavior if the web server does not support Content Negotiation