如何为Qt Linguist QTranslator输入静态方法

时间:2015-11-02 16:14:04

标签: qt qt5 qtranslate qt5.5 qt-linguist

我有一个Qt Linguist * .ts文件,如:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="de_DE" sourcelanguage="en_GB">
<context>
    <name></name>
    <message>
        <location filename="classWithStaticMethod.cpp" line="60"/>
        <source>File</source>
        <translation>Datei</translation>
    </message>
</context>
</TS>

如何使用静态方法输入转换对象。

ClassWithStaticMethod.cpp has a static method where a QT_TR_NOOP("File")

例如,

出现在第60行。将名称标签留空不起作用。

1 个答案:

答案 0 :(得分:1)

在运行int main函数之前,实例化静态变量(因此运行构造函数代码)。转换代码在QApplication构造函数中设置(我相信),在输入int main函数之前,它不会运行。因此,您试图在支持它的代码初始化之前获取字符串的转换。

为避免这种情况,您可以接受给定的字符串未被翻译并在每次使用时显式转换它,或者使用Construct on First Use idiom而不是静态成员变量。