po: Add support for mo files in underlays
authorJoey Hess <joey@gnu.kitenet.net>
Tue, 21 Jul 2009 09:31:51 +0000 (11:31 +0200)
committerJoey Hess <joey@gnu.kitenet.net>
Tue, 21 Jul 2009 09:31:51 +0000 (11:31 +0200)
commiteca2dbe67f7c2ce9f5a53765ea73227fdad0ad28
treef1be1e4f398e2a191d38a20ad1c53cb280da257c
parenteeeda1295f08337f1321860d2b839732a46786e4
po: Add support for mo files in underlays

In order to support translated basewiki and other underlays, we need
support for mo files in underlays.

The code did not allow this before, because if a mo file was in an
underlay, then it might try to update it, and its pot, and write to the
underlay, which is guaranteed to either fail due to permissions, or be
undesirable.

To fix, my approach is to just detect if a mo or pot file that is about to
be updated is in an underlay, and skip updating it. This seems to work
well:

- If the mo is out of date in the underlay, it won't get updated, but this
  would probably be due to a problem in the underlay, or more likely,
  the wiki is being rebuilt and so it *thinks* the mo is out of date,
  but it's really not (and it would be a waste of time to rebuild it
  anyway).
- If a page from the basewiki is edited, it is saved to the srcdir,
  which causes generation of an updated mo and pot also in the srcdir;
  the underlay stops being used for that page, and everything seems
  to work.

Note that I am not including an underlay search directory for pot files.
They *seem* to be unnecessary for the underlay, since the mo files
in there never need to be updated.
IkiWiki/Plugin/po.pm
doc/plugins/po.mdwn