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 96844 - Don't split sentences into several messages
Don't split sentences into several messages
Status: RESOLVED FIXED
Product: mergeant
Classification: Deprecated
Component: General
unspecified
Other All
: Normal normal
: ---
Assigned To: malerba
gnome-db Maintainers
Depends on:
Blocks:
 
 
Reported: 2002-10-25 23:29 UTC by Christian Rose
Modified: 2004-12-22 21:47 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Christian Rose 2002-10-25 23:29:29 UTC
#: src/query-env-editor.c:538
msgid ""
")\n"
"form layout is now used"

#: src/query-env-editor.c:538
msgid "The default (provided by "


Please DON'T split sentences into several messages. The rationale for this
is as follows:
------
Never split sentences in several gettext calls. This splits the sentence
into several messages, and a sentence can only be properly translated in
its entirety, since word order, proper terminology and grammar vary a lot
between languages. Unfortunately, it's too common to see something like
these frightening fictual examples in the source code:

   printf (_("There are "),
          NO_FROBNICATORS,
          _(" frobnicators available."));
   

   printf (_("You chose a yellow "));
   if (choice == FISH_CHOICE) {
     printf (_("fish."));
   } else {
     printf (_("cat."));
   }
   

Remember that each and every call to _() will result in a message that can
end up at any place and in any order in the po file. " frobnicators
available." and "There are " won't make much sense for themselves and can
easily be accidentally mistranslated when out of context. Even though these
messages may look suspicious, putting together this puzzle of which message
belongs to which other one is a form of source code reverse engineering
that most translators don't want to spend time on. Even worse, sometimes
these splitups make proper translation not only extremely difficult but
even impossible. This can be the case if the splitup results in the same
sentence fragments used in several places but the words need different
tenses or gender in the different cases, which may not be the case in English.

The proper solution is, as stated previously, to change the code so that
the sentences can be marked for translation in their entirety:

   printf (_("There are %d frobnicators available."),
           NO_FROBNICATORS);
   

   if (choice == FISH_CHOICE) {
     printf (_("You chose a yellow fish."));
   } else {
     printf (_("You chose a yellow cat."));
   }
   

------
Comment 1 Rodrigo Moya 2002-10-26 10:40:28 UTC
Fixed in CVS
Comment 2 Christian Rose 2002-10-26 13:56:35 UTC
#: src/query-env-editor.c:538
msgid ""
"The default (provider by Mergeant)\n"
"form layout is now used"

"provider by Mergeant"? Shouldn't it be "provided by Mergeant"?
Comment 3 Rodrigo Moya 2002-10-28 12:36:15 UTC
yes, right