0

qt アプリケーション (Windows では qt 4.7.4) の翻訳で奇妙な問題があります。何が起こるかは次のとおりです。

1.- lupdate を実行し、.ts ファイルを生成します。

2.- 生成された .ts ファイルを qt linguist で編集します。

3.- 前の .ts ファイルで lrelease を実行します。

4.- Netbeans から、プロジェクトをクリーンアップしてビルドし、実行します。

アプリケーションを実行すると、ほとんどのウィジェット (ラベル、プッシュボタン、タイトル、メニュー アクション、メニュー) が、以前に生成した翻訳ファイルに従って翻訳されます。問題は、翻訳ファイルでそれらの翻訳を提供したにもかかわらず、一部の要素が翻訳されていないことです (Qt Linguist はそれらを認識しました)。

私の質問は次のとおりです。一部のテキストが翻訳され、他のテキストが無視されているのには理由がありますか?

すべてのテキストが tr() 内にあることを確認しました。(前に言ったように、それらはすべて Qt Linguist に表示されます)。

すべての助けをありがとう。

4

1 に答える 1

0

そのため、Linuxでのみ機能し、mingw32/mingw64では機能しません

main.cpp

#include <QtGui/QApplication>
#include "test_w32.h"
#include <QTranslator>
#include <QLocale>


int main(int argc, char** argv)
{
    QApplication app(argc, argv);
    QString locale = QLocale::system().name();
    QTranslator translator;
    translator.load(QString("test_w32_") +locale);
    app.installTranslator(&translator);
    test_w32 foo;
    foo.show();
    return app.exec();
}

test_w32.h

#ifndef test_w32_H
#define test_w32_H

#include <QtGui/QMainWindow>

class test_w32 : public QMainWindow
{
Q_OBJECT
public:
    test_w32();
    virtual ~test_w32();
};

#endif // test_w32_H

test_w32.cpp

#include "test_w32.h"

#include <QtGui/QLabel>
#include <QtGui/QMenu>
#include <QtGui/QMenuBar>
#include <QtGui/QAction>


test_w32::test_w32()
{
    QLabel* l = new QLabel( this );
    l->setText(trUtf8( "Hello World!" ));
    setCentralWidget( l );
    QAction* a = new QAction(this);
    a->setText(trUtf8( "Quit" ));
    connect(a, SIGNAL(triggered()), SLOT(close()) );
    menuBar()->addMenu(trUtf8( "File" ))->addAction( a );
}

test_w32::~test_w32()
{}

#include "test_w32.moc"

どうしたの ?ありがとう

于 2013-07-10T07:45:24.887 に答える