0

複数の言語に翻訳したい Qt アプリケーションがあります。.ts ファイルを作成しますが、一部のソース コードが表示されます (もちろん、翻訳するテキストを含むもの)。このソース コードが表示されないようにして、生成された .ts ファイルで利用できるようにしたいと考えています。翻訳を行うために他の人に送信し、ソース コードを見られたくないからです (作業の機密性)。ソースコードが含まれていない.tsファイルを生成することは可能ですか? ありがとう。

4

1 に答える 1

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>
于 2013-09-26T02:25:59.757 に答える