標準の保存ダイアログまたは開くダイアログのローカライズを設定しようとしましたが、ウィンドウ キャプション以外はすべて英語のままです。
Qt 4.7.4 と同じバージョンの KDE を使用しています。
次のアプリケーション例:
#include <QApplication>
#include <QFileDialog>
#include <QTranslator>
#include <QLibraryInfo>
#include <QDebug>
int main(int argc, char **argv)
{
QApplication app(argc,argv);
QTranslator qTranslator;
QString transPath=QLibraryInfo::location(QLibraryInfo::TranslationsPath);
qTranslator.load("qt_ru",transPath);
app.installTranslator(&qTranslator);
qDebug() << transPath;
QFileDialog fileDialog(0, 0/*default caption*/,
QDir::currentPath(), "All files (*.*)");
fileDialog.exec();
return 0;
}
出力"/usr/share/qt4/translations"
(翻訳へのパス) と警告:
KGlobal::locale::Warning your global KLocale is being recreated with a valid main
component instead of a fake component, this usually means you tried to call i18n related
functions before your main component was created. You should not do that since it most
likely will not work
ドイツ語 (qt_de)、フランス語 (qt_fr)、ポーランド語など、サポートされている他の言語も試しましたが、結果は同じで、キャプションのみが影響を受けました。
しかし、KDE と共にインストールされたアプリケーションで「保存」ダイアログを開くと、ダイアログ内のすべてのテキストがロシア語で表示され、警告はコンソールに出力されません。Kwrite、Firefox (デフォルトの KDE ダイアログを使用)、Konsole、および Kaffeine でダイアログを試しました。
上記のコードは翻訳の観点から正しいですか? アプリのローカリゼーションを設定する別の方法があるでしょうか? 他のアプリケーションのダイアログが翻訳されているのはなぜですか? /usr/share/qt4/translations
ディレクトリで提供されているファイル以外の翻訳ファイルを使用していますか?