Qt Linguist防止显示源代码

时间:2013-09-25 18:50:01

标签: qt translation

我有一个Qt应用程序,我想用几种语言翻译。我创建.ts文件但是一些源代码是可见的(当然包含要翻译的文本)。我想阻止显示这个源代码,在生成的.ts文件中可用,因为我会将它们发送给其他人进行翻译,我不希望他们看到源代码(工作机密性)。那么是否可以生成.ts文件而不会出现源代码?感谢。

1 个答案:

答案 0 :(得分:0)

事实并非如此。复制到.ts文件的唯一“源代码”是直接使用tr()以冒号开头的注释,如下面的代码所示。 <source>元素包含要翻译的字符串不是源代码!

如您所见,没有源代码进入.ts文件。我不认为人们可以真正声称包含文件名和行号等同于泄漏源代码,如果这是你想说的话。

如果您确实有源代码进入.ts文件,那么您在lupdate中发现了一个错误,您应该创建一个最小的测试用例并编辑您的问题以演示源代码,当通过lupdate运行,泄漏到.ts文件中。

#include <QString>
#include <QObject>

class Foo : public QObject {
  Q_OBJECT
  void a() {
    //: comment
    QString text = tr("foo");
  }
};

此代码生成以下.ts文件:

<!DOCTYPE TS>
<TS version="2.0">
<context>
    <name>Foo</name>
    <message>
        <location filename="q.cpp" line="8"/>
        <source>foo</source>
        <extracomment>comment</extracomment>
        <translation type="unfinished"></translation>
    </message>
</context>
</TS>