use strict;
use IkiWiki 3.00;
use Encode;
-use Locale::Po4a::Common qw(nowrapi18n !/.*/);
+eval q{use Locale::Po4a::Common qw(nowrapi18n !/.*/)};
+if ($@) {
+ print STDERR gettext("warning: Old po4a detected! Recommend upgrade to 0.35.")."\n";
+ eval q{use Locale::Po4a::Common qw(!/.*/)};
+ die $@ if $@;
+}
use Locale::Po4a::Chooser;
use Locale::Po4a::Po;
use File::Basename;
type => "string",
example => {
'fr' => 'Français',
- 'es' => 'Castellano',
+ 'es' => 'Español',
'de' => 'Deutsch'
},
description => "slave languages (PO files)",
# Underlays containing the po files for slave languages.
foreach my $ll (keys %{$config{po_slave_languages}}) {
- add_underlay("locale/po/$ll/$underlay")
- if -d "$config{underlaydirbase}/locale/po/$ll/$underlay";
+ add_underlay("po/$ll/$underlay")
+ if -d "$config{underlaydirbase}/po/$ll/$underlay";
}
if ($config{po_master_language}{code} ne 'en') {
map add_depends($page, $_), (values %{otherlanguages($page)});
}
if ($config{discussion} && istranslation($page)) {
- my $discussionlink=gettext("discussion");
- if ($page !~ /.*\/\Q$discussionlink\E$/i &&
+ if ($page !~ /.*\/\Q$config{discussionpage}\E$/i &&
(length $config{cgiurl} ||
- exists $links{$masterpage."/".$discussionlink})) {
+ exists $links{$masterpage."/".lc($config{discussionpage})})) {
$template->param('discussionlink' => htmllink(
$page,
$destpage,
- $masterpage . '/' . gettext("Discussion"),
+ $masterpage . '/' . $config{discussionpage},
noimageinline => 1,
forcesubpage => 0,
- linktext => gettext("Discussion"),
+ linktext => $config{discussionpage},
));
}
}
&& exists $config{meta_overrides_page_title}
&& defined $config{meta_overrides_page_title}
&& $config{meta_overrides_page_title}) {
- debug(sprintf(gettext("re-rendering all pages to fix meta titles")));
+ debug(sprintf(gettext("rebuilding all pages to fix meta titles")));
resetalreadyfiltered();
require IkiWiki::Render;
foreach my $file (@rendered) {
- debug(sprintf(gettext("rendering %s"), $file));
+ debug(sprintf(gettext("building %s"), $file));
IkiWiki::render($file);
}
}
my %params = @_;
if (istranslation($params{page})) {
- return gettext("Can not remove a translation. Removing the master page, ".
- "though, removes its translations as well.");
+ return gettext("Can not remove a translation. If the master page is removed, ".
+ "however, its translations will be removed as well.");
}
return undef;
}
# saved early in the renaming process.
my $orig_torename = $session->param("po_orig_torename");
unless (grep { $_ eq $masterpage } @{$orig_torename}) {
- return gettext("Can not rename a translation. Renaming the master page, ".
- "though, renames its translations as well.");
+ return gettext("Can not rename a translation. If the master page is renamed, ".
+ "however, its translations will be renamed as well.");
}
}
return undef;
foreach my $pofile (@pofiles) {
IkiWiki::prep_writefile(basename($pofile),dirname($pofile));
+
+ if (! -e $pofile) {
+ # If the po file exists in an underlay, copy it
+ # from there.
+ my ($pobase)=$pofile=~/^\Q$config{srcdir}\E\/?(.*)$/;
+ foreach my $dir (@{$config{underlaydirs}}) {
+ if (-e "$dir/$pobase") {
+ File::Copy::syscopy("$dir/$pobase",$pofile)
+ or error("po(refreshpofiles) ".
+ sprintf(gettext("failed to copy underlay PO file to %s"),
+ $pofile));
+ }
+ }
+ }
+
if (-e $pofile) {
- system("msgmerge", "-q", "-U", "--backup=none", $pofile, $potfile) == 0
+ system("msgmerge", "--previous", "-q", "-U", "--backup=none", $pofile, $potfile) == 0
or error("po(refreshpofiles) ".
sprintf(gettext("failed to update %s"),
$pofile));
master => 1,
};
}
- else {
+ elsif (istranslation($otherpage)) {
push @ret, {
url => urlto_with_orig_beautiful_urlpath($otherpage, $page),
code => $lang,