Qt translation get original string

  • Hi,
    I want to log a message without translating it and also I want to display translated message to user. Is it possible to achieve this and at the same time register the string to Qt translating system?

    Bad - This causes message not to be registered by Qt translating system:

    QString message = "Message";

    Bad - This duplicates the string


    Bad - This logs translated version of the message - I want non translated.

    QString message = tr("Message");

  • Qt Champions 2016

    As far as I know, the second "bad" is the least bad of all as it actually works. I think you're stuck with it.

  • Moderators

    It's not as convenient as the tr() function but you can use the QT_TRANSLATE_NOOP macro for this. For example:

    void logIt(const char* str)
       showMessageToUser(qApp->translate("", str));

    Use it like this:

    logIt(QT_TRANSLATE_NOOP("", "Hello world!"));

  • @Chris-Kawa That works well in both c++ and qml. Thanks

Log in to reply

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.