Re: Updating po files on make dist



Janne <jan.moren@lucs.lu.se> wrote:

> I have resigned to doing just a
> few dozen strings at a time out of fear of cvs collisions. And as my
> grip on the cvs tools are less than complete, my recourse whenever this
> happens is generally to move my local po file, check out the cvs version
> again and redo all translations that were lost.

It's sad that noone told you how to avoid this painful task: When such a
conflict appears, you can do these steps:

  * remove the sv.po containing the conflicts (hope you still have it
    in your editor),
  * save it as sv.po.tmp
  * cvs update *.pot sv.po
  * msgmerge -o sv.po sv.po.tmp *.pot
  * cvs commit sv.po

The rationale for this is that msgmerge is not only a tool for the
developer (via "make update-po") but also for the translator.

Christian Rose writes in
http://developer.gnome.org/doc/tutorials/gnome-i18n/translator.html :

> How to update an existing translation
> ...
> 9. Commit everything (don't forget to add ChangeLog-style commit comment):
>    cvs commit

I think this step is incomplete. It should read as follows:

  9. Check if the POT file was updated by the translators meanwhile.
     cvs update *.pot
     If this command reports "U" or "P", the POT file has changed, and
     you need to update your PO file accordingly:

     mv xy.po xy.po.tmp
     cvs update xy.po
     msgmerge -o xy.po xy.po.tmp *.pot

  10. Commit everything.
      cvs commit


Furthermore, you can improve another step in this tutorial:

> How to add a new translation
> ...
> 4. Rename the pot file to xy.po:
>    mv GConf2.pot xy.po

The 'msginit' program has been created to streamline this step for the
translators, filling in most of the header entry. So you can write
this step as follows:

  4. Create the initial xy.po:
     msginit -l xy


Bruno



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]