The same expression may be translated in many ways, depending on the context. GNOME already had its hack to specify context for original messages, but in the future GNOME will use GNU Gettext’s msgctxt. This way it will be much easier to understand the context in original messages, and we’ll be adopting the same syntax as (I believe) KDE 4.
Nowadays, GNOME message catalogs can specify the original message context in the beginning of the original message itself. The context is written before a pipe, and the translator ought to ommit the context and the pipe in the translated message. This is far from being intuitive, and is very error prone. That’s why developers usually warn inexperienced translators with comments, as in this example from GTK+ translation:
#. translators, strip the prefix up to and including the first |
msgid "print operation status|Printing"
KDE translation also has its peculiarities, among which is the way context is specified. KDE message catalogs also inform context in the beginning of original messages, although in a different way. Let’s see this example from the official documentation:
"_: beginning (of line)n"
This divergence exists because GNU Gettext started supporting context only in version 0.15, in June 2006. Today it even supports GNOME’s context syntax, but Gettext’s own context syntax is much cleaner and easier to understand. As a demonstration, let’s rewrite the previous examples. The GTK+ translation would become:
msgctxt "print operation status"
And KDE’s example would look like:
msgctxt "beginning (of line)"
Much better, isn’t it? Lucas Rocha already said GNOME 2.22 will rock; as a translator, I believe the next versions will be even better!