以下は、QPrintDialog をローカライズするためにうまく機能します。
#include <QtGui/QApplication>
#include <QTranslator>
#include <QPrintDialog>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTranslator translator;
if (translator.load("./translations/qt_de.qm")) {
a.installTranslator(&translator);
}
QPrintDialog printdialog;
printdialog.exec();
}
しかし、QPrintDialog の [Choose file] ボタン (3 つのドット) をクリックすると、必要なドイツ語のダイアログではなく英語版のファイル ダイアログが表示されます。
また、コンソールに次の警告があります。
KGlobal::locale::Warning your global KLocale is being recreateing with a valid main component instead of a fake component. これは通常、メイン コンポーネントが作成される前に i18n 関連の関数を呼び出そうとしたことを意味します。うまくいかない可能性が高いため、これを行うべきではありません
どこを見ればいいですか?
ここに記載されている回避策について: 一部の QDialogs は ::DontUseNativeDialog フラグをサポートしていますが、QPrintDialog はサポートしていません。
(Linux でテストしましたが、他のプラットフォームでの結果はわかりません)