OSDN Git Service

fix translation of messages with context
authorIvailo Monev <xakepa10@gmail.com>
Mon, 30 May 2022 14:30:15 +0000 (17:30 +0300)
committerIvailo Monev <xakepa10@gmail.com>
Mon, 30 May 2022 14:30:15 +0000 (17:30 +0300)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
src/core/kernel/qtranslator.cpp

index 76c0eff..6013240 100644 (file)
@@ -156,8 +156,15 @@ bool QTranslator::load(const QString &domain)
 */
 QString QTranslator::translate(const char *context, const char *sourceText) const
 {
-    Q_UNUSED(context);
     Q_D(const QTranslator);
+    if (context) {
+        // for reference:
+        // https://github.com/autotools-mirror/gettext/blob/master/gnulib-local/lib/gettext.h
+        QByteArray msgwithctx(context);
+        msgwithctx.append('\004');
+        msgwithctx.append(sourceText);
+        return QString::fromUtf8(dgettext(d->domain.constData(), msgwithctx.constData()));
+    }
     return QString::fromUtf8(dgettext(d->domain.constData(), sourceText));
 }