[GRASS-dev] Managing the translations with Transifex

Hi,

AFAIK we are still not feeding back the .po files updates from
transifex into SVN.
While this could become a cronjob on grass.osgeo.org, there are still
some issues to be solved.

I found that
grass-addons/tools/transifex_merge.sh

empties all "fuzzy" state messages. Good or bad?

This related discussion is from 2011:
https://groups.google.com/forum/#!topic/transifex-updates/zICBvn-823o

perhaps it became this:
https://docs.transifex.com/setup/translation-memory
?

Please let's get it done, ideas?

Markus

On Sun, May 7, 2017 at 7:14 PM, Markus Neteler <neteler@osgeo.org> wrote:

Hi,

AFAIK we are still not feeding back the .po files updates from
transifex into SVN.
While this could become a cronjob on grass.osgeo.org, there are still
some issues to be solved.

I found that
grass-addons/tools/transifex_merge.sh

empties all "fuzzy" state messages. Good or bad?

... checking again it doesn't look so bad.

I have now
- renamed grass*_pt_br.po to grass*_pt_BR.po for transifex
compatibility (all G7 branches + trunk)
- updated grass-addons/tools/transifex_merge.sh to fix the headers of
newly arrived translations (r71124)
- added newly arrived translations in r71121 (came in from transifex)

TODO:
- upload many translations fetched through that transifex_merge.sh
script to SVN.

Objections?

Markus

--
Markus Neteler, PhD
http://www.mundialis.de - free data with free software
http://grass.osgeo.org
http://courses.neteler.org/blog

On 7 May 2017 at 19:14, Markus Neteler <neteler@osgeo.org> wrote:

Hi,

Hi,

AFAIK we are still not feeding back the .po files updates from
transifex into SVN.
While this could become a cronjob on grass.osgeo.org, there are still
some issues to be solved.

I found that
grass-addons/tools/transifex_merge.sh

empties all "fuzzy" state messages. Good or bad?

it is no transifex_merge.sh but it was the import of po files into
Transifex, for my point of view is good, there was a lot of mess in
the translations, some seems to automatically translated using some
software...

Markus

--
ciao
Luca

www.lucadelu.org

On 23 May 2017 at 21:30, Markus Neteler <neteler@osgeo.org> wrote:

... checking again it doesn't look so bad.

I have now
- renamed grass*_pt_br.po to grass*_pt_BR.po for transifex
compatibility (all G7 branches + trunk)
- updated grass-addons/tools/transifex_merge.sh to fix the headers of
newly arrived translations (r71124)
- added newly arrived translations in r71121 (came in from transifex)

TODO:
- upload many translations fetched through that transifex_merge.sh
script to SVN.

Objections?

no from my side....

Markus

--
ciao
Luca

www.lucadelu.org

Hi,

I have merged back the translations fetched from transifex to SVN in r71148.

Some issues to be fixed (how?):

[neteler@oboe locale]$ make verify
...
grasslibs_ja.po:6472: number of format specifications in
'msgid_plural' and 'msgstr[0]' does not match
grasslibs_ja.po:6479: number of format specifications in
'msgid_plural' and 'msgstr[0]' does not match
grasslibs_ja.po:6489: number of format specifications in
'msgid_plural' and 'msgstr[0]' does not match
grasslibs_ja.po:6495: number of format specifications in
'msgid_plural' and 'msgstr[0]' does not match
msgfmt: found 4 fatal errors
...
grassmods_ar.po:29132: format specifications in 'msgid' and 'msgstr'
for argument 1 are not the same
msgfmt: found 1 fatal error
----- grassmods_cs.po:
grassmods_cs.po:38116: number of format specifications in
'msgid_plural' and 'msgstr[2]' does not match
msgfmt: found 1 fatal error

Final question:
Merge back to relbr72 using my good old msgmerge scripts or the
transifex_merge.sh ?

Markus

The most easy solution is to just nuke (empty) offending translations
in any text editor as those errors make them unusable anyway.

Māris.

2017-05-30 12:05 GMT+03:00 Markus Neteler <neteler@osgeo.org>:

Hi,

I have merged back the translations fetched from transifex to SVN in r71148.

Some issues to be fixed (how?):

[neteler@oboe locale]$ make verify
...
grasslibs_ja.po:6472: number of format specifications in
'msgid_plural' and 'msgstr[0]' does not match
grasslibs_ja.po:6479: number of format specifications in
'msgid_plural' and 'msgstr[0]' does not match
grasslibs_ja.po:6489: number of format specifications in
'msgid_plural' and 'msgstr[0]' does not match
grasslibs_ja.po:6495: number of format specifications in
'msgid_plural' and 'msgstr[0]' does not match
msgfmt: found 4 fatal errors
...
grassmods_ar.po:29132: format specifications in 'msgid' and 'msgstr'
for argument 1 are not the same
msgfmt: found 1 fatal error
----- grassmods_cs.po:
grassmods_cs.po:38116: number of format specifications in
'msgid_plural' and 'msgstr[2]' does not match
msgfmt: found 1 fatal error

Final question:
Merge back to relbr72 using my good old msgmerge scripts or the
transifex_merge.sh ?

Markus
_______________________________________________
grass-dev mailing list
grass-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-dev

2017-05-30 12:05 GMT+03:00 Markus Neteler <neteler@osgeo.org>:

Hi,

I have merged back the translations fetched from transifex to SVN in r71148.

... apparently no issues since nobody complained.
So I can make it a cronjob at this point?

On Wed, May 31, 2017 at 8:48 AM, Maris Nartiss <maris.gis@gmail.com> wrote:

The most easy solution is to just nuke (empty) offending translations
in any text editor as those errors make them unusable anyway.

ok, hope someone will take care.

Final question:
Merge back to relbr72 using my good old msgmerge scripts or the
transifex_merge.sh ?

Opinions concerning this backport are still desired, thanks.

Markus

On Jun 13, 2017 11:44 PM, “Markus Neteler” <neteler@osgeo.org> wrote:

2017-05-30 12:05 GMT+03:00 Markus Neteler <neteler@osgeo.org>:

Hi,

I have merged back the translations fetched from transifex to SVN in r71148.

… apparently no issues since nobody complained.
So I can make it a cronjob at this point?

?

On Wed, May 31, 2017 at 8:48 AM, Maris Nartiss <maris.gis@gmail.com> wrote:

The most easy solution is to just nuke (empty) offending translations
in any text editor as those errors make them unusable anyway.

ok, hope someone will take care.

?

Final question:
Merge back to relbr72 using my good old msgmerge scripts or the
transifex_merge.sh ?

Opinions concerning this backport are still desired, thanks.

?

I think it would be nice to get answers here in order to use (as planned) the translation work done through transifex…

Markus

On 26/06/17 20:37, Markus Neteler wrote:

On Jun 13, 2017 11:44 PM, "Markus Neteler" <neteler@osgeo.org
<mailto:neteler@osgeo.org>> wrote:

> 2017-05-30 12:05 GMT+03:00 Markus Neteler <neteler@osgeo.org

<mailto:neteler@osgeo.org>>:

>> Hi,
>>
>> I have merged back the translations fetched from transifex to SVN

in r71148.

... apparently no issues since nobody complained.
So I can make it a cronjob at this point?

?

On Wed, May 31, 2017 at 8:48 AM, Maris Nartiss <maris.gis@gmail.com

<mailto:maris.gis@gmail.com>> wrote:

> The most easy solution is to just nuke (empty) offending translations
> in any text editor as those errors make them unusable anyway.

ok, hope someone will take care.

?

>> Final question:
>> Merge back to relbr72 using my good old msgmerge scripts or the
>> transifex_merge.sh ?

Opinions concerning this backport are still desired, thanks.

?

I think it would be nice to get answers here in order to use (as
planned) the translation work done through transifex...

Sorry, Markus, but on my side, I'm just currently completely ignorant about translation procedures and issues in GRASS. I didn't even know we had a solution via transifex (which is great BTW !)...

With this ignorance in mind, I would say:

- Activate the cron job. If it fails, we'll repair.

- I don't know what the issue concerning empty translations is about.

- I don't know what the issue concerning the choice between msgmerge and transifex_merge.sh, and the backport, is about. I don't even know where to find these files.

So, in short: if you want feedback on such issues from all of us a bit more explanation of the issues might be necessary.

And from my ignorance a question: why don't we "just" move all translation to transifex and so avoid the need for merges between translations from different sources.

Moritz

On Tue, Jun 27, 2017 at 9:08 AM, Moritz Lennert
<mlennert@club.worldonline.be> wrote:

On 26/06/17 20:37, Markus Neteler wrote:

...

Sorry, Markus, but on my side, I'm just currently completely ignorant about
translation procedures and issues in GRASS. I didn't even know we had a
solution via transifex (which is great BTW !)...

NP, it was loosely discussed here and there in the list.

With this ignorance in mind, I would say:

- Activate the cron job. If it fails, we'll repair.

Yep - do-ocracy matters.

- I don't know what the issue concerning empty translations is about.

The current (new) flow is [Luca, correct me if I am wrong]:

1. messages are extracted from the source code in trunk with the
common gettext mechanism (done by the transifex portal)
2. folks translate in the transifex portal
3. I or any other developer sometimes merges the translations back
using this script:
    grass-addons/tools/transifex_merge.sh
4. start from 1.

Issue:
- how to get messages intro relbranch72
- can step 3 be done with a cronjob? which frequency?

- I don't know what the issue concerning the choice between msgmerge and
transifex_merge.sh, and the backport, is about. I don't even know where to
find these files.

In a nutshell (see previous discussions in the archive):
The transifex_merge.sh is based on a script I wrote long time back and
enhanced by Luca to deal with the transifex part.

So, in short: if you want feedback on such issues from all of us a bit more
explanation of the issues might be necessary.

Well, it has been discussion, but with too much time in between.
I just want to avoid to break stuff on the transifex portal.

And from my ignorance a question: why don't we "just" move all translation
to transifex and so avoid the need for merges between translations from
different sources.

This is how it is! But of course we must feed our .po files in the
source code somehow.
How this clarifies it for you.

Markus

On 27/06/17 12:06, Markus Neteler wrote:

On Tue, Jun 27, 2017 at 9:08 AM, Moritz Lennert
<mlennert@club.worldonline.be> wrote:

On 26/06/17 20:37, Markus Neteler wrote:

...

Sorry, Markus, but on my side, I'm just currently completely ignorant about
translation procedures and issues in GRASS. I didn't even know we had a
solution via transifex (which is great BTW !)...

NP, it was loosely discussed here and there in the list.

Must have missed it, sorry. I think some of the discussion went on in the translation list...

- I don't know what the issue concerning empty translations is about.

The current (new) flow is [Luca, correct me if I am wrong]:

1. messages are extracted from the source code in trunk with the
common gettext mechanism (done by the transifex portal)
2. folks translate in the transifex portal
3. I or any other developer sometimes merges the translations back
using this script:
    grass-addons/tools/transifex_merge.sh
4. start from 1.

Issue:
- how to get messages intro relbranch72

Does transifex allow comparison and merge between projects ? I.e. would it be possible to create a relbranch72 project that imports from trunk, except for those strings that are different between the two ?

- can step 3 be done with a cronjob? which frequency?

That obviously depends on its reliability, but as said, if you think that it +/- works maybe we should just take the risk and activate it. You should probably include a distinctive keyword in the svn message when comitting the merged files, so we can always reverse if necessary.

- I don't know what the issue concerning the choice between msgmerge and
transifex_merge.sh, and the backport, is about. I don't even know where to
find these files.

Sorry, my local grass-addons/tools directory was not up to date. That's why I didn't see the script.

Well, it has been discussion, but with too much time in between.
I just want to avoid to break stuff on the transifex portal.

How will the cron job risk breaking stuff in the portal ? I thought the it was just extracting from the portal and merging into svn ? Is there a risk of breakage when transifex then reads the po files from svn again ?

And from my ignorance a question: why don't we "just" move all translation
to transifex and so avoid the need for merges between translations from
different sources.

This is how it is! But of course we must feed our .po files in the
source code somehow.
How this clarifies it for you.

It does, somewhat, thank you !

How does QGIS handle this issue ?

And is the integration between github and transifex easier than between svn and transifex ? That would make the case for migration even stronger.

One thing I take from this is that once this is ready, we should make a big call for translation, announcing the possibility to use transifex and very easily translate a few messages online.

Moritz

On 27 June 2017 at 12:06, Markus Neteler <neteler@osgeo.org> wrote:

- I don't know what the issue concerning empty translations is about.

The current (new) flow is [Luca, correct me if I am wrong]:

1. messages are extracted from the source code in trunk with the
common gettext mechanism (done by the transifex portal)
2. folks translate in the transifex portal
3. I or any other developer sometimes merges the translations back
using this script:
    grass-addons/tools/transifex_merge.sh
4. start from 1.

correct

Issue:
- how to get messages intro relbranch72

probably msgmerge could be enough

- can step 3 be done with a cronjob? which frequency?

yes it could be done using a cronjob, maybe daily updates could be
fine, I don't have an answer if something went wrong.
In other case I could do the monkey job to update the languages...

Markus

--
ciao
Luca

www.lucadelu.org

On 27 June 2017 at 13:01, Moritz Lennert <mlennert@club.worldonline.be> wrote:

Does transifex allow comparison and merge between projects ? I.e. would it
be possible to create a relbranch72 project that imports from trunk, except
for those strings that are different between the two ?

I don't think is able to do this.
We should also avoid to create to many projects on transifex

It does, somewhat, thank you !

How does QGIS handle this issue ?

Werner Macho is the person doing the job, I can ask him

And is the integration between github and transifex easier than between svn
and transifex ? That would make the case for migration even stronger.

I don't think so...

One thing I take from this is that once this is ready, we should make a big
call for translation, announcing the possibility to use transifex and very
easily translate a few messages online.

+1, already some people is using Trnasifex since some months....

Moritz

--
ciao
Luca

www.lucadelu.org

Hi,

for the upcoming 7.2.2RC1 release I have updated the translation files
in relbranch72:

On Tue, Jun 27, 2017 at 2:58 PM, Luca Delucchi <lucadeluge@gmail.com> wrote:

On 27 June 2017 at 12:06, Markus Neteler <neteler@osgeo.org> wrote:

The current (new) flow is [Luca, correct me if I am wrong]:

1. messages are extracted from the source code in trunk with the
    common gettext mechanism (done by the transifex portal)
2. folks translate in the transifex portal
3. I or any other developer sometimes merges the translations back
    using this script:
    grass-addons/tools/transifex_merge.sh
4. start from 1.

correct

Issue:
- how to get messages intro relbranch72

probably msgmerge could be enough

Here my steps (job for the release manager or a dev):

a) updated .po files from source code:
cd locale/
make pot
make update-po

b) next merged in transifex translations with
grass-addons/tools/transifex_merge.sh
  --> .po files got updated, several new languages added from Transifex

c) make verify
  --> with subsequent manual cleanup

Submitted as r71345.

@Translators: please continue to translate at
    https://www.transifex.com/grass-gis/

- can step 3 be done with a cronjob? which frequency?

yes it could be done using a cronjob, maybe daily updates could be
fine, I don't have an answer if something went wrong.
In other case I could do the monkey job to update the languages...

For now I have done it...

Enjoy,
Markus

--
Markus Neteler, PhD
http://www.mundialis.de - free data with free software
http://grass.osgeo.org
http://courses.neteler.org/blog