After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 316148 - Possible errors and old strings in, plus suggestions regarding, the PO file
Possible errors and old strings in, plus suggestions regarding, the PO file
Status: RESOLVED FIXED
Product: GIMP
Classification: Other
Component: Internationalisation
unspecified
Other All
: Normal minor
: 2.4
Assigned To: GIMP Bugs
GIMP Bugs
Depends on:
Blocks:
 
 
Reported: 2005-09-13 06:37 UTC by Clytie Siddall
Modified: 2005-09-13 16:32 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Clytie Siddall 2005-09-13 06:37:32 UTC
Version details: Gnome HEAD

1.
Please use the gettext plurals facility throughout the file: it makes it possible for the translators for 
each language to use 
the appropriate number of plural fields for that language. For example, my language has no plurals in 
that sense, and some European languages have _several_ plurals. So one string saying "inch" and 
another saying "inches" doesn't allow us to translate accurately.

Please see this node in he gettext manual:

http://www.gnu.org/software/gettext/manual/html_mono/gettext.html#SEC150

Example strings from gimp.po

#. pseudo unit
#: ../app/core/gimpunit.c:55
msgid "pixel"

#: ../app/core/gimpunit.c:55 ../app/tools/gimpmeasuretool.c:800
#: ../app/tools/gimpmeasuretool.c:915 ../app/tools/gimpmeasuretool.c:967
#: ../app/tools/gimpmeasuretool.c:993 ../app/tools/gimppainttool.c:688
msgid "pixels"

#. standard units
#: ../app/core/gimpunit.c:58
msgid "inch"

#: ../app/core/gimpunit.c:58
msgid "inches"

#: ../app/core/gimpunit.c:59
msgid "millimeter"

#: ../app/core/gimpunit.c:59
msgid "millimeters"

#. professional units
#: ../app/core/gimpunit.c:62
msgid "point"

#: ../app/core/gimpunit.c:62
msgid "points"

#: ../app/core/gimpunit.c:63
msgid "pica"

#: ../app/core/gimpunit.c:63
msgid "picas"

#. one second, the time period
#: ../app/display/gimpdisplayshell-close.c:279
msgid "second"

#: ../app/display/gimpdisplayshell-close.c:282
#, c-format
msgid "%d seconds"

#: ../app/display/gimpdisplayshell-close.c:288
msgid "minute"

#: ../app/display/gimpdisplayshell-close.c:290
#, c-format
msgid "%d minutes"

#: ../app/display/gimpdisplayshell-title.c:314
msgid "1 layer"

#: ../app/display/gimpdisplayshell-title.c:314
#, c-format
msgid "%d layers"

2.
#: ../app/dialogs/user-install-dialog.c:154
msgid ""
"Key shortcuts can be dynamically redefined. The menurc is a dump of your "
"configuration so it can. be remembered for the next session.  You may edit "
"this file if you wish, but it is much easier to define the keys from within "
"GIMP.  Deleting this file will restore the default shortcuts."

"can. be"

so you might want to remove that full stop.


3. Sven mentioned on gnome-i18n that the word "drawable" should be removed:

#: ../app/pdb/internal_procs.c:111
msgid "Drawable procedures"


4. There are quite a few strings where there are two spaces between the words on the left, and the final 
variable, as in this string:

#. the pick FG/BG frame
#: ../app/tools/gimpcolorpickeroptions.c:182
#, c-format
msgid "Pick Mode  %s"

Is this deliberate? Do you think the two spaces are useful in some way?


5. There is a l-o-n-g list (32 strings) like this:

#: ../app/widgets/gimpcontrollerkeyboard.c:69
msgid "Cursor Up (Shift + Control + Alt)"

in which the only change is the name of the modifier key, or the direction of the cursor. Couldn't you 
simply get us to translate this using variables?

e.g.

# Translators: this string reads something like "Cursor up (Shift + Control + Alt)
msgid "Cursor %s (%s + %s + %s)

(assigning variables as appropriate)

Then we only need to translate one of these (or one for three options, one for two and one for one 
option), plus strings for Up, Down, Shift, Control and Alt, as opposed to this long and very repetitive 
list.

I find this happens again in this file: thirty-odd strings again, like:

#: ../app/widgets/gimpcontrollerwheel.c:68
msgid "Scroll Up (Shift + Control + Alt)"

in fact, you might have part of the suggested structure here:

#. The format string which is used to display modifier names
#. *  <Shift>, <Ctrl> and <Alt>
#.
#: ../app/widgets/gimpwidgets-utils.c:382
#, c-format
msgid "<%s>"


6. Do we really need both these strings?

msgid ""
"Selection to path\n"
"%s  Advanced options"

msgid ""
"Selection to Path\n"
"%s  Advanced Options"


7.
Isn't this a conflict of accelerator keys?

msgid "/Layer/Mask/_Add Layer Mask..."

msgid "/Layer/Mask/_Add to Selection"

I've been extremely careful not to have any conflicts, so this is confusing for me. Do I deliberately 
create a conflict by assigning the same key to two items in the same menu?


8. Here's another of those strings Sven wanted to exclude:

msgid "Channel Mod"


9. This is an extreme example of lack of context. If these strings are indeed useful, could we please 
have an explanation of what they stand for?

msgid "R:"

msgid "G:"

msgid "B:"

I'm guessing those first three are Red, Green and Blue, but for all I know, they could mean something 
else.

msgid "H:"

horizontal? hue?

msgid "S:"

saturation? shape?

msgid "V:"

vertical? view?

msgid "A:"

airbrush? active? amplitude? agony of not knowing what these dratted things mean?

Here are some more:

msgid "H"

msgid "S"

msgid "V"

msgid "R"

msgid "A"


10. I don't know how many of the completely bare strings towards the end of the file are actually 
current and useful, but they seem disorganized, and many appear to repeat other strings in some form. 
This string, additionally, probably needs rewriting, since abbreviations are liable to misinterpretation:

msgid "Keep Trans."


11. Again in this tail of odd strings, these structures:

msgid "does not exist.  Cannot install."

msgid "has invalid permissions.  Cannot install."

msgid "parsing \"%s\"\n"

msgid "  at line %d column %d\n"

msgid "  unexpected token: %s\n"

are dodgy. Without knowing the subject of the string, we can't ensure an accurate translation. Even 
though a pattern like this might work in English, it may not work in other languages.

from Clytie, Vietnamese translator
Comment 1 Sven Neumann 2005-09-13 12:11:10 UTC
Filing a single bug report for multiple, unrelated issues is rather rude and
makes it difficult for us to deal with the problems. Some of the problems you
mentioned have also been reported already and are fixed in the development branch.
Comment 2 Sven Neumann 2005-09-13 12:39:44 UTC
I have fixed the string in user-install-dialog.c and one of the plural forms
that we missed eariler.

However I don't think we can do much about the other points you raised. Either
the problem has already been addressed in CVS or they are basically unavoidable.
The fact that your bug report mixes lots of different issues makes it rather
difficult to give detailed explanations. Will leave the bug report open for a
while so that we can review the other suggestions in more detail. Next time,
please try to base your bug report on a recent CVS checkout.
Comment 3 Sven Neumann 2005-09-13 16:32:15 UTC
I have now added comments in a few more places but it is not always possible to
do that. A lot of these strings are in generated code and I don't see any way to
add comments to it.

Actually, if you need to ask what RGB and HSV mean, then you should perhaps not
be translating an image manipulation program. Your best bet is to leave such
strings untranslated. They are only marked for translation for the very few
languages that actually use their own abbrevations for common color spaces.

The use of plural forms in the unit system should be OK. ngettext() isn't
suitable here. The plural form is actually a general plural, not refering to any
specific number of items. It is mainly being used in drop-down menus in order to
specify the unit of a numerical entry.

The list of similar strings in app/widgets/gimpcontrollerkeyboard.c cannot
easily be avoided because these are static constant strings. Fortunately the
typical translator tools handle such repetitions quite nicely and take most of
the work away from the translator.

Closing as FIXED. Feel free to open individual bug reports for any remaining
issues.