GNOME Bugzilla – Bug 316148
Possible errors and old strings in, plus suggestions regarding, the PO file
Last modified: 2005-09-13 16:32:15 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
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.
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.
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.