To: Inkscape Translators' list Cc: Christian Perrier, Debian-Installer co-ordinator (FYI ;) )
On 18/08/2007, at 12:53 AM, Xavier Conde Rueda wrote:
Hi all,
many thanks for your help! Anyway, I think developers should add comments explaining the meaning of these terms, so I'll open a bugzilla case for it too.
Actually, the Inkscape PO file explains a lot more terms than any other graphics package I've translated.
The Best and the Worst in i18n Context _________________________________________
BEST: The Debian Installer Level 1 file has excellent, detailed use of contextual information.
WORST: GIMP is notorious for its cryptic strings and complete lack of context. When I queried some strings which were one character long and had no explanation whatsoever, the developer responded curtly, "You should know what it means." Gee, I should be an expert on all aspects of software. _________________________________________
Inkscape ranks close to the top. :)
However, that's because most PO files don't supply contextual information. They should, if they want accurate translations.
I suggest Inkscape starts using the msgctxt [1] feature in the more recent gettext packages. This feature has been created specifically for contextual information, and works with translation memory, so we don't have the context all mixed up with the string IDs.
Instead of:
msgid "action|Clone"
msgid "object|Clone"
(context should _never_ be quoted in the original string)
or
#, This is an action msgid "Clone"
#, This is an object msgid "Clone"
You have:
msgctxt "Action" msgid "Clone" msgstr ""
msgctxt "Object" msgid "Clone" msgstr ""
This is a much easier to manipulate with translation memory and merging, and much less confusing, in every way.
Xavier, please quote your bug link here, and I'll add the info on msgctxt. :)
from Clytie (vi-VN, Vietnamese free-software translation team / nhóm Việt hóa phần mềm tự do) http://groups-beta.google.com/group/vi-VN
[1] GUI program support: - PO files can now contain messages constrained to a certain context. Most often such a context is a menu, dialog or panel identification. The syntax in the PO file is msgctxt "context" msgid "original" msgstr "translation" - The xgettext program can be told through the --keyword flag which function/macro argument has the role of a context. - The (non-public) include file gettext.h defines macros pgettext, dpgettext etc. that take a context argument. For more information, see the node "Contexts" in the manual.
http://www.gnu.org/software/gettext/manual/
I also recommend using msgid-previous, which allows you to diff changed strings. D-I uses that, too. They set an excellent example for the rest of free-software i18n.