Ot翻译:原始QString文字

时间:2016-01-27 13:43:14

标签: c++ qt qt-linguist

有没有办法获得标记为翻译的QString的原始语言独立文本? 这是我的代码的简化:

function add(a, b, c) {
    var args = Array.prototype.slice.call(arguments);

    return function () {
        var secondArgs = Array.prototype.slice.call(arguments);
        var totalArguments = secondArgs.concat(args);

        var sum = 0;

        for (i = 0; i < totalArguments.length; i++) {
            sum += totalArguments[0];
        }

        return sum;
    }
}

问题在于:

QString MyClass::getError()
{
   QString errorText = tr("hardError1");
   return errorText;
}
如果用户更改语言,

将无法正常工作!

3 个答案:

答案 0 :(得分:3)

plt.savefig(destination2, format='png', dpi=700) 应该为您提供错误代码和错误字符串。对于程序逻辑,请使用错误代码。对于UI,请使用错误字符串。

答案 1 :(得分:1)

因此,在进一步阅读文档后,我找到了一个似乎有效的解决方案,并希望发布我的发现以供将来参考:

1)可以使用以下字符标记字符串进行翻译:{{1​​}}

2)要显式获取翻译,请使用QT_TRANSLATE_NOOP(context, text)表示c ++,QCoreApplication::translate()表示QML。然后将在定义的上下文中搜索翻译文件以寻找合适的翻译。如果未找到匹配项,或者未使用这两项功能,您将获得原始文本。

这是我在问题中发布的示例:

qsTranslate()

答案 2 :(得分:0)

  

有没有办法获得标记为翻译的QString的原始语言独立文本?

不,没有。字符串翻译后,它只是一个常规字符串。

如果你必须使用字符串,那么你的类应该返回未翻译的字符串,并且在输出之前应该进行转换。

错误通常不是字符串,因此该方法可能希望返回某种错误对象或错误代码。