[Freeipa-devel] [PATCH] 0066 Arrange stripping .po files

John Dennis jdennis at redhat.com
Fri Jul 20 17:14:20 UTC 2012


On 07/20/2012 12:28 PM, Petr Viktorin wrote:
> On 07/20/2012 05:39 PM, John Dennis wrote:
>> Great I agree with everything you said.
>>
>> I'm happy to have the file list be derived from the directory contents.
>> Are you planning on doing that in another patch?
>
> Yes, I want to do it in a new patch.
> It's a bit more complicated than it looks: creating a new translation
> will work differently than just adding it to LINGUAS and running
> create-po. The ticket is for beta 2 so I'd rather not start a new round
> of reviews.

Fine with me to do that in another patch.

As for create-po, I think that's also holdover from pre-Transifex days. 
With Transifex I'd don't ever see a need to create an empty po file. Do 
you? Maybe we should just nuke the po creation in the Makefile.

>
>> FWIW the LINGUAS file was a holdover from when we first set this up
>> based exclusively on GNU gettext suggested examples. As things have
>> evolved it no longer makes sense. Also the contributing translators file
>> is now out of date and was from an earlier era when translators emailed
>> .po files to us, so it was easy to maintain. Now that everything is TX
>> based we should probably nuke that file or figure out someway to extract
>> the contributors from either TX or the po files. I'm not sure we're even
>> giving credit to the translators anymore, but we should.
>
> Noted; when the discussion's done I'll file a ticket.
>
>> But... I do have one final issue/question. I missed this in the first
>> review. po_files is now dependent on update-pot instead of the pot file.
>> We had decided that we were only going to regenerate the pot file on
>> demand at specific times. Won't this dependency change cause the pot
>> file to be updated frequently? (I realize only in the local tree). Note
>> that when we run the validations we generate a temporary pot file from
>> the current contents of the tree specifically to avoid overwriting the
>> pot file.
>
> Are the po files updated more often? I don't really see a reason to
> merge the po files with an old pot.

What merge are you referring to? The only merge I'm aware of at the 
moment is during validation, but that merge is done from a temporary 
updated pot file that is current with the tree.

Any other merging is done by Transifex at the time we pull a po file.

The frequency of po update doesn't seem relevant, what is your concern 
in this regard?

>
>> I suppose having a conversation about when the pot file gets updated is
>> a good one to have, we don't do it often enough IMHO. But I'm not sure
>> it's correct to modify a file under SCM control if it wasn't intentional.
>
> How is Transifex set up here? If it automatically picks up changes when
> the pot file is modified, then we should back up the translations before
> changing the pot, so we can't do it automatically.
> Another wart is the line number cruft in the pot file -- any time it's
> updated we'll get a huge diff, so it makes sense to update sparingly.

Transifex gives you two options for your pot file, either you tell TX 
the location of your pot file in a public SCM and it watches for updates 
and automatically pulls it when it changes in SCM -or- you manually push 
the pot file to TX.

We've been using the "watch the pot file in git" option. Thus whenever 
we commit a new version of the pot file all developers and TX get it 
simultaneously (well sort of).

If we do the manual push method the maintainer has to *both* commit to 
git *and* push to TX, so the former seems less error prone and more 
automated.

The idea was we would have a string freeze prior to release and/or 
periodic intervals during branch development to update the pot. But we 
haven't been good about hitting these. However, note a manual push 
suffers from the same "somebody has to do it at the right moment" problem.

>
> If Transifex is not wired to the pot, we could even go as far as
> removing it from SCM entirely -- it's entirely generated, and rebuilding
> it takes less than a second.
> We'd just have to update Transifex manually.

It currently is wired to the pot. You make a valid point about currently 
not needing to maintain the pot in SCM. When we first set up 
translations we weren't using TX so having the pot file in SCM was a 
necessity.

Personally I don't trust TX's data storage and I think there is value in 
having each pot we push to TX be recoverable from our SCM. When things 
blow up (and they do) it's really nice to be able to reassemble the 
pieces or at lease follow the trail of how things changed. In the past 
I've had to answer questions like "How the heck did this string get into 
this po file?" Such questions can only be answered if we have the pot 
file we gave the translator. TX doesn't maintain it so we have to (or at 
least I think there is value in it).

Perhaps you can read between the lines and detect I don't view TX as the 
epitome of stability and robustness. It's still young and they are still 
adding features and changing how it works (kinda like IPA :-)

> Oh, one thing I'll ask about: the Makefile is not automatically rebuilt
> when I change Makefile.in, so every time I run an autogen invocation I
> found in the main Makefile. Is there an easier way to do this?
>

Ugh ... autotools :-(

The Makefile is generated via configure and I thought autoregen had the 
smarts to detect the dependencies. I too noticed I had to manually 
re-run configure. Are we running autoregen? If so and it's not working I 
don't have an answer, sorry.

-- 
John Dennis <jdennis at redhat.com>

Looking to carve out IT costs?
www.redhat.com/carveoutcosts/





More information about the Freeipa-devel mailing list