# Update *.po with git.pot?

3 messages from 2016-03-18 to 2016-03-20. Participants: Ralf Thielow, Peter Krefting, Jiang Xin.
Thread: https://gitlist.dev/t/41741

## Ralf Thielow, 2016-03-18 20:19

Subject: Update *.po with git.pot?
Message-ID: <CAN0XMO+8PQNXPRgROd9oVqHzTsgLo_k1yP-MLpqK5N44+1ShDQ@mail.gmail.com>
URL: https://gitlist.dev/e/CAN0XMO%2B8PQNXPRgROd9oVqHzTsgLo_k1yP-MLpqK5N44%2B1ShDQ%40mail.gmail.com

```
When a translation round starts for a Git release, the
git.pot file will be updated and translators msgmerge
their .po-files accordingly before translating. This results
in a huge change to the .po-file as line numbers and
stuff gets updated.

Since translations are made in one commit, this commit
is messed up with the msgmerge update so when you
look at the commit later, you'll have a hard time to find
out what the actual changes in translations were.

We could improve this by making git.pot-updates update
the *.po files as well, so further updates from translators
will only contain actual translations. I think this is what the
gitk project does. It will make the history of *.po-files much
more readable.

Ralf

```

## Peter Krefting, 2016-03-19 06:53

Subject: Re: Update *.po with git.pot?
Message-ID: <alpine.DEB.2.11.1603190750550.16189@perkele.intern.softwolves.pp.se>
URL: https://gitlist.dev/e/alpine.DEB.2.11.1603190750550.16189%40perkele.intern.softwolves.pp.se
In-Reply-To: <CAN0XMO+8PQNXPRgROd9oVqHzTsgLo_k1yP-MLpqK5N44+1ShDQ@mail.gmail.com>

```
Ralf Thielow:

> Since translations are made in one commit, this commit is messed up 
> with the msgmerge update so when you look at the commit later, 
> you'll have a hard time to find out what the actual changes in 
> translations were.

You can always use something like podiff 
<http://man.gnu.org.ua/manpage/?1+podiff> to find the actual changes 
in each update.

> It will make the history of *.po-files much more readable.

Unfortunately, it also makes merging changes more difficult. I sometimes 
queue up bugfixes between translation runs, and having the po file be 
reformatted in commits I do not control means I would have to manually 
re-add those as there is no good merge driver than can handle that 
reformatting.

-- 
\\// Peter - http://www.softwolves.pp.se/

```

## Jiang Xin, 2016-03-20 07:29

Subject: Re: Update *.po with git.pot?
Message-ID: <CANYiYbFYrMiPWrAA0Fj4Gor4q_vTnCZqufm92dYCGpEJeNTTUA@mail.gmail.com>
URL: https://gitlist.dev/e/CANYiYbFYrMiPWrAA0Fj4Gor4q_vTnCZqufm92dYCGpEJeNTTUA%40mail.gmail.com
In-Reply-To: <alpine.DEB.2.11.1603190750550.16189@perkele.intern.softwolves.pp.se>

```
2016-03-19 14:53 GMT+08:00 Peter Krefting <peter@softwolves.pp.se>:
> Ralf Thielow:
>
>> Since translations are made in one commit, this commit is messed up with
>> the msgmerge update so when you look at the commit later, you'll have a hard
>> time to find out what the actual changes in translations were.
>
>
> You can always use something like podiff
> <http://man.gnu.org.ua/manpage/?1+podiff> to find the actual changes in each
> update.

In my worktree, I have defined some attributes and a diff driver, which can
make a clear diff on po/pot files.

First, add these two lines in .git/info/attributes:

        *.po diff=gettext-uniq
        *.pot diff=gettext-uniq

Then, define diff driver named "gettext-uniq":

        git config --global diff.gettext-uniq.textconv  "msguniq -i
--no-location --strict -s"
        git config --global diff.gettext-uniq.cachetextconv   true

And the settings above will make clean output for `git diff`, `git
show` commands.

>> It will make the history of *.po-files much more readable.
>
> Unfortunately, it also makes merging changes more difficult. I sometimes
> queue up bugfixes between translation runs, and having the po file be
> reformatted in commits I do not control means I would have to manually
> re-add those as there is no good merge driver than can handle that
> reformatting.
>

If we update "po" files with "pot” file in one commit, l10n guys
can not merge directly, but have to use msgmerge instead of
using "po-helper.sh update XX.po".

And some translations could not been updated, e.g. "is.po"
is used for testing, and "it.po" and "pt_PT.po" have stopped
maintenance for years.

-- 
Jiang Xin

```
