我的代码中使用了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();不幸的是,这不使用来自用户当前区域设置的文本。我希望保存按钮是"保存“。此外,当我单击对话框时,按钮的文本被设置为"打开“,而在我的区域设置中它应该是”打开“。
如何向QFileDialog提供本地化字符串
发布于 2012-05-24 17:33:32
我知道这已经被回答和接受了,但是正确的方法不是手动翻译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);通过这种方式,Qt将翻译它已经知道的内容(比如它自己的小部件),并将使用应用程序提供的自定义翻译来完成其余的工作。
发布于 2012-01-18 18:33:39
"Open“字符串是硬编码的,但已转换为QFileDialog格式
void QFileDialogPrivate::_q_updateOkButton()
{
// ...
if (acceptMode == QFileDialog::AcceptSave)
button->setText(isOpenDirectory ? QFileDialog::tr("&Open") : acceptLabel);您需要安装一个QTranslator来将QFileDialog上下文中的&Open转换为您想要的内容。
另请参阅Internationalization in Qt docs了解更多信息。
发布于 2012-01-19 03:13:02
您可以在QFileDialog中使用其中一个static functions。它们使用操作系统中的本机文件对话框,该对话框将采用正确的区域设置和翻译。
https://stackoverflow.com/questions/8906944
复制相似问题