Utility: Better fix for the translation of minutes, seconds, ...
authorOlivier Goffart <ogoffart@woboq.com>
Thu, 26 May 2016 10:15:53 +0000 (12:15 +0200)
committerOlivier Goffart <ogoffart@woboq.com>
Thu, 26 May 2016 10:17:16 +0000 (12:17 +0200)
The plural was not translated because of QTBUG-3945. Work around it.
Issue #4855

src/libsync/utility.cpp

index 6a4b0359b5d2459acb79d1104273382cc52a3ea6..a80f2d7e22097cfd0ba1cbfc8f467bb721dfdfad 100644 (file)
@@ -310,13 +310,18 @@ namespace {
                     value);
         }
     };
+// QTBUG-3945 and issue #4855: QT_TRANSLATE_NOOP does not work with plural form because lupdate
+// limitation unless we fake more arguments
+// (it must be in the form ("context", "source", "comment", n)
+#undef QT_TRANSLATE_NOOP
+#define QT_TRANSLATE_NOOP(ctx, str, ...) str
     Q_DECL_CONSTEXPR Period periods[] = {
-        { QT_TRANSLATE_NOOP("Utility", "%n year(s)") , 365*24*3600*1000LL },
-        { QT_TRANSLATE_NOOP("Utility", "%n month(s)") , 30*24*3600*1000LL },
-        { QT_TRANSLATE_NOOP("Utility", "%n day(s)") , 24*3600*1000LL },
-        { QT_TRANSLATE_NOOP("Utility", "%n hour(s)") , 3600*1000LL },
-        { QT_TRANSLATE_NOOP("Utility", "%n minute(s)") , 60*1000LL },
-        { QT_TRANSLATE_NOOP("Utility", "%n second(s)", 1000LL },
+        { QT_TRANSLATE_NOOP("Utility", "%n year(s)" , 0, _) , 365*24*3600*1000LL },
+        { QT_TRANSLATE_NOOP("Utility", "%n month(s)", 0, _) , 30*24*3600*1000LL },
+        { QT_TRANSLATE_NOOP("Utility", "%n day(s)", 0, _) , 24*3600*1000LL },
+        { QT_TRANSLATE_NOOP("Utility", "%n hour(s)", 0, _) , 3600*1000LL },
+        { QT_TRANSLATE_NOOP("Utility", "%n minute(s)", 0, _) , 60*1000LL },
+        { QT_TRANSLATE_NOOP("Utility", "%n second(s)", 0, _ ), 1000LL },
         { 0, 0 }
     };
 } // anonymous namespace