]> sipb.mit.edu Git - ikiwiki.git/commitdiff
po plugin: implemented po_link_to=negotiated
authorintrigeri <intrigeri@boum.org>
Fri, 10 Oct 2008 13:48:35 +0000 (15:48 +0200)
committerintrigeri <intrigeri@boum.org>
Sat, 18 Oct 2008 13:49:09 +0000 (15:49 +0200)
Signed-off-by: intrigeri <intrigeri@boum.org>
IkiWiki/Plugin/po.pm
doc/plugins/po.mdwn

index 63be0e38979d23a972843ba283f5d55ab76af201..7b9945b0a52ae197f8c96da180da0e4240be3a19 100644 (file)
@@ -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;
index d2f572706eaf3d5c268ba4e445a683b017961f5e..0d93aaddac1be32d4cbd0d26ea3418bada31a863 100644 (file)
@@ -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