+ po_translatable_pages => {
+ type => "pagespec",
+ example => "!*/Discussion",
+ description => "PageSpec controlling which pages are translatable",
+ link => "ikiwiki/PageSpec",
+ safe => 1,
+ rebuild => 1,
+ },
+ po_link_to => {
+ type => "string",
+ example => "current",
+ description => "internal linking behavior (default/current/negotiated)",
+ safe => 1,
+ rebuild => 1,
+ },
+} #}}}
+
+sub checkconfig () { #{{{
+ foreach my $field (qw{po_master_language po_slave_languages}) {
+ if (! exists $config{$field} || ! defined $config{$field}) {
+ error(sprintf(gettext("Must specify %s"), $field));
+ }
+ }
+ if (! exists $config{po_link_to} ||
+ ! defined $config{po_link_to}) {
+ $config{po_link_to}="default";
+ }
+ if (! exists $config{po_translatable_pages} ||
+ ! defined $config{po_translatable_pages}) {
+ $config{po_translatable_pages}="";
+ }
+ if ($config{po_link_to} eq "negotiated" && ! $config{usedirs}) {
+ error(gettext("po_link_to=negotiated requires usedirs to be set"));
+ }
+ push @{$config{wiki_file_prune_regexps}}, qr/\.pot$/;
+} #}}}
+
+sub scan (@) { #{{{
+ my %params=@_;
+ my $page=$params{page};
+ # let's build %translations, using istranslation's
+ # side-effect, so that we can consider it is complete at
+ # preprocess time
+ istranslation($page);