QFileDialog本地化

mac*_*.ma 2 qt

QFileDialog 在我的代码中使用如下:

QFileDialog fileDlg;
fileDlg.setFileMode(QFileDialog::AnyFile);
fileDlg.setViewMode(QFileDialog::List);
fileDlg.setNameFilter("Excel Files(*.csv)");
fileDlg.setDefaultSuffix("csv");
fileDlg.setAcceptMode(QFileDialog::AcceptSave);
fileDlg.exec();
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不使用用户当前语言环境中的文本。我希望保存按钮为“ ??”。此外,当我单击对话框时,按钮的文本设置为“打开”,而应为“ ??”。在我的语言环境中。

如何提供本地化字符串QFileDialog

Shi*_*rin 5

我知道这已经得到了回答和接受,但是正确的方法不是手动翻译Qt已经提供的内容,而是像这样加载Qt中包含的翻译

 /* load the system translations provided by Qt */
 QTranslator qtTranslator;
 qtTranslator.load("qt_" + QLocale::system().name(),
         QLibraryInfo::location(QLibraryInfo::TranslationsPath));
 app.installTranslator(&qtTranslator);

 /* load our custom translations for this application */
 QTranslator myappTranslator;
 myappTranslator.load("myapp_" + QLocale::system().name());
 app.installTranslator(&myappTranslator);
Run Code Online (Sandbox Code Playgroud)

这样,Qt将翻译它已经知道的内容(例如它自己的窗口小部件),并使用其余应用程序提供的自定义翻译。