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