Re: Update *.po with git.pot?
2016-03-19 14:53 GMT+08:00 Peter Krefting <peter@softwolves.pp.se>:
Show 10 quoted lines
> 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-uniqThen, 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 trueAnd the settings above will make clean output for `git diff`, `git show` commands.
Show 8 quoted lines
>> 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