+ return $obj->generate($format, $env, map { $_ // '' } @args);
+ }
+
+ if ($r->method eq 'GET' || $r->method eq 'HEAD') {
+ my $article = $r->path eq '/' ? '/index' : $r->path;
+ $article = substr $article, 1;
+ $article =~ tr,/,_,;
+ my @variants = grep { !/\.title$/ } <a/$article.*>;
+ if (@variants) {
+ my $lang = choose [ map { [$_, 1, 'text/html', undef, undef, $_, undef] } map { /\.(.+)$/ } @variants ], $r->headers;
+ my $content = read_file "a/$article.$lang";
+ my $title = read_file "a/$article.$lang.title";
+ my $html = Gruntmaster::Page::Base::header($lang, $title) . $content . Gruntmaster::Page::Base::footer($lang);
+ return [200, ['Content-Type' => 'text/html', 'Content-Language' => $lang, 'Vary' => 'Accept-Language', 'X-Forever' => 1, 'Cache-Control' => 'max-age=300'], [$html] ]
+ }