use strict;
use IkiWiki 3.00;
use Encode;
-use Locale::Po4a::Common qw(nowrapi18n);
+use Locale::Po4a::Common qw(nowrapi18n !/.*/);
use Locale::Po4a::Chooser;
use Locale::Po4a::Po;
use File::Basename;
$template->param(otherlanguages => [otherlanguagesloop($page)]);
map add_depends($page, $_), (values %{otherlanguages($page)});
}
- # Rely on IkiWiki::Render's genpage() to decide wether
- # a discussion link should appear on $page; this is not
- # totally accurate, though: some broken links may be generated
- # when cgiurl is disabled.
- # This compromise avoids some code duplication, and will probably
- # prevent future breakage when ikiwiki internals change.
- # Known limitations are preferred to future random bugs.
- if ($template->param('discussionlink') && istranslation($page)) {
- $template->param('discussionlink' => htmllink(
- $page,
- $destpage,
- $masterpage . '/' . gettext("Discussion"),
- noimageinline => 1,
- forcesubpage => 0,
- linktext => gettext("Discussion"),
+ if ($config{discussion} && istranslation($page)) {
+ my $discussionlink=gettext("discussion");
+ if ($page !~ /.*\/\Q$discussionlink\E$/i &&
+ (length $config{cgiurl} ||
+ exists $links{$masterpage."/".$discussionlink})) {
+ $template->param('discussionlink' => htmllink(
+ $page,
+ $destpage,
+ $masterpage . '/' . gettext("Discussion"),
+ noimageinline => 1,
+ forcesubpage => 0,
+ linktext => gettext("Discussion"),
));
+ }
}
# Remove broken parentlink to ./index.html on home page's translations.
# It works because this hook has the "last" parameter set, to ensure it
my $file=shift;
return 0 unless defined $file;
- return 0 if defined pagetype($file) && pagetype($file) eq 'po';
+ my $type=pagetype($file);
+ return 0 if ! defined $type || $type eq 'po';
return 0 if $file =~ /\.pot$/;
return 0 unless -e "$config{srcdir}/$file"; # underlay dirs may be read-only
return 1 if pagespec_match(pagename($file), $config{po_translatable_pages});
foreach my $pofile (@pofiles) {
IkiWiki::prep_writefile(basename($pofile),dirname($pofile));
if (-e $pofile) {
- system("msgmerge", "-U", "--backup=none", $pofile, $potfile) == 0
+ system("msgmerge", "-q", "-U", "--backup=none", $pofile, $potfile) == 0
or error("po(refreshpofiles) ".
sprintf(gettext("failed to update %s"),
$pofile));