use IkiWiki 2.00;
use Encode;
use Locale::Po4a::Chooser;
+use Locale::Po4a::Po;
use File::Basename;
use File::Copy;
use File::Spec;
$doc->{TT}{utf_mode} = 1;
$doc->{TT}{file_in_charset} = 'utf-8';
$doc->{TT}{file_out_charset} = 'utf-8';
+ # let's cheat a bit to force porefs option to be passed to Locale::Po4a::Po;
+ # this is undocument use of internal Locale::Po4a::TransTractor's data,
+ # compulsory since this module prevents us from using the porefs option.
+ my %po_options = ('porefs' => 'none');
+ $doc->{TT}{po_out}=Locale::Po4a::Po->new(\%po_options);
+ # do the actual work
$doc->parse;
$doc->writepo($potfile);
} #}}}
foreach my $pofile (@pofiles) {
if (-e $pofile) {
- my $cmd = "msgmerge -U $pofile $potfile";
+ my $cmd = "msgmerge -U --backup=none $pofile $potfile";
system ($cmd) == 0
or error("[po/refreshpofiles:$pofile] failed to update");
}
}
IkiWiki::refresh();
IkiWiki::saveindex();
+ # refresh module's private variables
%filtered=undef;
+ %translations=undef;
+ foreach my $page (keys %pagesources) {
+ istranslation($page);
+ }
}
- # refresh %translations, using istranslation's side-effect
- # (not needed yet, but when newly created POT/PO files are
- # added to %pagesources and other data structures, we'll need
- # this)
- foreach my $page (keys %pagesources) {
- istranslation($page);
- }
# make existing translations depend on the corresponding master page
foreach my $master (keys %translations) {
if (istranslation($page) && $template->query(name => "percenttranslated")) {
$template->param(percenttranslated => percenttranslated($page));
}
+ if ($template->query(name => "istranslation")) {
+ $template->param(istranslation => istranslation($page));
+ }
+ if ($template->query(name => "istranslatable")) {
+ $template->param(istranslatable => istranslatable($page));
+ }
if ($template->query(name => "otherlanguages")) {
$template->param(otherlanguages => [otherlanguages($page)]);
if (istranslatable($page)) {