po: Fix copy of po file from underlay when editing

When first editing a page that was in the underlay, avoid losing
the translation by copying the po file over from the underlay.
master
Joey Hess 2009-08-10 15:59:32 -04:00
parent 8c4325d2ce
commit 83480665c2
2 changed files with 15 additions and 11 deletions

View File

@ -827,6 +827,21 @@ sub refreshpofiles ($@) {
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", "--previous", "-q", "-U", "--backup=none", $pofile, $potfile) == 0
or error("po(refreshpofiles) ".

View File

@ -277,17 +277,6 @@ That used to be so, but the bug was fixed. Does this mean
that po might be replacing the only link on a page, in error?
--[[Joey]]
Bug when editing underlay file
------------------------------
While I've gotten translated underlays working, there is a bug
if the wiki is currently using a page from the underlay, and the master
language version is edited. This causes the edited page to be saved
to srcdir.. and all the translations get set to 0% and their
po files have the translated strings "emptied". What's really going on
is that these are entirely new po files not based on the old ones
in the basewiki, and thus lacking translations. --[[Joey]]
Documentation
-------------