[Freeipa-devel] i18n infrastructure improvements
Petr Viktorin
pviktori at redhat.com
Fri Jan 11 15:04:29 UTC 2013
Hello list,
This discussion was started in private; I'll continue it here.
On 01/10/2013 05:41 PM, John Dennis wrote:
> On 01/10/2013 04:27 AM, Petr Viktorin wrote:
>> On 01/09/2013 03:55 PM, John Dennis wrote:
>
>>>> And I could work on improving the i18n/translations infrastructure,
>>>> starting by writing up a RFE+design.
>
>>> Could you elaborate as to what you perceive as the current problems and
>>> what this work would address.
>
>> Here are my notes:
>
>> - Use fake translations for tests
>
> We already do (but perhaps not sufficiently).
I mean use it in *all* tests, to ensure all the right things are
translated and weird characters are handled well.
See https://www.redhat.com/archives/freeipa-devel/2012-October/msg00278.html
>> - Split up huge strings so the entire text doesn't have to be
>> retranslated each time something changes/is added
>
> Good idea. But one question I have is should we be optimizing for our
> programmers time or the translators time? The Transifex tool should make
> available to translators similar existing translations (in fact it
> might, I seem to recall some functionality in this area). Wouldn't it be
> better to address this issue in Transifex where all projects would benefit?
>
> Also the exact same functionality is needed to support release versions.
> The strings between releases are often close but not identical. The
> Transifex tool should make available a close match from a previous
> version to the translator working on a new version (or visa versa). See
> your issue below concerning versions.
>
> IMHO this is a Transifex issue which needs to be solved there, not
> something we should be investing precious IPA programmers time on. Plus
> if it's solved in Transifex it's a *huge* win for *everyone*, not just IPA.
Huh? Splitting the strings provides additional information
(paragraph/context boundaries) that Transifex can't get otherwise. From
what I hear it's a pretty standard technique when working with gettext.
For typos, gettext has the "fuzzy" functionality that we explicitly turn
off. I think we're on our own here.
>> - Keep a history/repo of the translations, since Transifex only stores
>> the latest version
>
> We already do keep a history, it's in git.
It's not updated often enough. If I mess something up before a release
and Transifex gets wiped, or if a rogue translator deletes some
translations, the work is gone.
>> - Update the source strings on Transifex more often (ideally as soon as
>> patches are pushed)
>
> Yes, great idea, this would be really useful and is necessary.
>
>> - Break Git dependencies: make it possible generate the POT in an
>> unpacked tarball
>
> Are you talking about the fact our scripts invoke git to determine what
> files to process? If so then yes, this would be a good dependency to get
> rid of. However it does mean we somehow have to maintain a manifest list
> of some sort somewhere.
A directory listing is fine IMO. We use it for more critical things,
like loading plugins, without any trouble.
Also, when run in a Git repo the Makefile can compare the file list with
what Git says and warn accordingly.
>> - Figure out how to best share messages across versions (2.x vs. 3.x) so
>> they only have to be translated once
>
> There is a crying need for this, but isn't this a Transifex issue? Why
> would we solving this in IPA? What about SSSD and every other project,
> they all have identical issues. As far as I can tell Transifex has never
> addressed this issue sufficiently (see above) and the onus is on them to
> do so.
I don't think waiting for Transifex will solve the problem.
>> - Clean up checked-in PO files even more, for nicer diffs
>
> A nice feature, but I'm wondering to extent we're currently suffering
> because of this. It's rare that we have to compare PO files. Plus diff
> is not well suited for comparing PO's because PO files with equivalent
> data can be formatted differently. That's why I wrote some tools to read
> PO files, normalize the contents and then do a comparison. Anyway my top
> level question is is this something we really need at this point?
You're right that files have to be normalized to diff well.That's
actually the point here :)
Anyway I'm just thinking of sorting the PO alphabetically - an extra
option to msgattrib should do it.
>> - Automate & document the process so any dev can do it
>
> Excellent goal, we're not too far from it now, but of all the things on
> the list this is the most important.
--
Petr³
More information about the Freeipa-devel
mailing list