Code

Extended messages to make full use of plurals
authormfloryan <mfloryan@users.sourceforge.net>
Tue, 19 Feb 2008 22:44:06 +0000 (22:44 +0000)
committermfloryan <mfloryan@users.sourceforge.net>
Tue, 19 Feb 2008 22:44:06 +0000 (22:44 +0000)
src/gradient-context.cpp

index da211661c6f5d7eceabc251a53e9c1669402b9cf..230072e645b5624b35f54946395c280cdfe64a14 100644 (file)
@@ -154,20 +154,37 @@ gradient_selection_changed (Inkscape::Selection *, gpointer data)
     guint n_tot = drag->numDraggers();
     guint n_sel = drag->numSelected();
 
+    //The use of ngettext in the following code is intentional even if the English singular form would never be used
     if (n_sel == 1) {
         if (drag->singleSelectedDraggerNumDraggables() == 1) {
-            rc->_message_context->setF(Inkscape::NORMAL_MESSAGE,
-                    ngettext("%s selected out of %d gradient handles on %d selected object","%s selected out of %d gradient handles on %d selected objects",n_obj), _(gr_handle_descr[drag->singleSelectedDraggerSingleDraggableType()]), n_tot, n_obj);
+               gchar * message = g_strconcat(
+                       //TRANSLATORS: %s will be substituted with the point name (see previous messages); This is part of a compound message
+                       _("%s selected"),
+                       //TRANSLATORS: Mind the space in front. This is part of a compound message
+                       ngettext(" out of %d gradient handle"," out of %d gradient handles",n_tot),
+                       ngettext(" on %d selected object"," on %d selected objects",n_obj),NULL);
+               rc->_message_context->setF(Inkscape::NORMAL_MESSAGE,
+                       message,_(gr_handle_descr[drag->singleSelectedDraggerSingleDraggableType()]), n_tot, n_obj);
         } else {
-            rc->_message_context->setF(Inkscape::NORMAL_MESSAGE,
-                    _("One handle merging %d stops (drag with <b>Shift</b> to separate) selected out of %d gradient handles on %d selected object(s)"), drag->singleSelectedDraggerNumDraggables(), n_tot, n_obj);
+               gchar * message = g_strconcat(
+                       //TRANSLATORS: This is a part of a compound message (out of two more indicating: grandint handle count & object count)
+                       ngettext("One handle merging %d stop (drag with <b>Shift</b> to separate) selected",
+                               "One handle merging %d stops (drag with <b>Shift</b> to separate) selected",drag->singleSelectedDraggerNumDraggables()),
+                       ngettext(" out of %d gradient handle"," out of %d gradient handles",n_tot),
+                       ngettext(" on %d selected object"," on %d selected objects",n_obj),NULL);
+               rc->_message_context->setF(Inkscape::NORMAL_MESSAGE,message,drag->singleSelectedDraggerNumDraggables(), n_tot, n_obj);
         }
     } else if (n_sel > 1) {
-        rc->_message_context->setF(Inkscape::NORMAL_MESSAGE,
-                                   _("<b>%d</b> gradient handles selected out of %d on %d selected object(s)"), n_sel, n_tot, n_obj);
+       //TRANSLATORS: The plural refers to number of selected gradient handles. This is part of a compound message (part two indicates selected object count)
+       gchar * message = g_strconcat(ngettext("<b>%d</b> gradient handle selected out of %d","<b>%d</b> gradient handles selected out of %d",n_sel),
+                                     //TRANSLATORS: Mind the space in front. (Refers to gradient handles selected). This is part of a compound message
+                                     ngettext(" on %d selected object"," on %d selected objects",n_obj),NULL);
+        rc->_message_context->setF(Inkscape::NORMAL_MESSAGE,message, n_sel, n_tot, n_obj);
     } else if (n_sel == 0) {
         rc->_message_context->setF(Inkscape::NORMAL_MESSAGE,
-                                   _("<b>No</b> gradient handles selected out of %d on %d selected object(s)"), n_tot, n_obj);
+               //TRANSLATORS: The plural refers to number of selected objects
+                ngettext("<b>No</b> gradient handles selected out of %d on %d selected object",
+                        "<b>No</b> gradient handles selected out of %d on %d selected objects",n_obj), n_tot, n_obj);
     }
 }