On Apr 5, 2007, at 2:47 PM, Philippe Bossut wrote:

Hi Brian,

Brian Kirsch wrote:
1. Define a key in code i.e.. new_message = _("osaf.new.message")
2. Merge the new translation with the existing en.po file for Chandler
3. Rebuild the en.mo gettext readable file
4. Restart the app and confirm the string was correctly translated to English 5. Check in the updated en.po and the Python code containing the new string "osaf.new.message"

Asking developers to do the 5 steps above instead of one line of Python code i.e..
new_message = _(u"New Mail Message") is a bit much.
I agree that would be really annoying if that had to be done systematically. Using for instance abstract made up messages as in your example would bring us back to the sad days of resource editing which is a step backward...

However, I think that when you introduce a new string, you don't have to modify the po file immediately. The UI will display with the string you defined in the code by default if no translation is found. In 99% of the cases, that's fine.

So, the developers will never have to edit the po file. They'll be perfectly happy running in "geek speak" (a fairly good approximation of English...) and let the UI specialists fiddle with the po for those stray strings really hard to word smith.

The only moment devs would have to edit the po is for those rare cases where they want 2 separate messages while the English wording is identical (the "from" example I gave).

So I'm advocating we change nothing in our coding habits and that we additionally consider creating "en" resources so that Mimi and PPD edit that instead of logging bugs when fiddling with strings. This will also give us a solution for those rare "homocryptic" (same writing - different meaning) cases.

Does this make more sense?

Ok, I think I might have misunderstood your original proposal.

So to sum up.

Keep English strings in Python but allow the creation of an en.po for
making changes during code freeze points. i.e. Mimi wants to refine the
language on a dialog without editing the code.

The keys (Unicode strings in Python) remain the same so as
not to disturb other localization .po files. Using a en.po would allow us
to make subtle changes easily with out generating a rebuild of Chandler.

If I have correctly summarized your proposal then I would give a +1.

The most important thing is not changing the keys (English) that are
used by localizers to create .po translations. Your suggestion accomplishes
this.

-Brian

Brian Kirsch
Internationalization Architect / Mail Service Engineer
Open Source Applications Foundation
543 Howard Street 5th Floor
San Francisco, CA 94105
http://www.osafoundation.org









Cheers,
- Philippe
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Open Source Applications Foundation "chandler-dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/chandler-dev

B


_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Open Source Applications Foundation "chandler-dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/chandler-dev

Reply via email to