Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Qt native file dialog not translated.
Qt 6.11 is out! See what's new in the release blog

Qt native file dialog not translated.

Scheduled Pinned Locked Moved General and Desktop
2 Posts 2 Posters 1.8k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ? Offline
    ? Offline
    A Former User
    wrote on last edited by
    #1

    Hello all, I googled around for this problem but still not succeed with a) use qt nataive translation file (qt_zh_CN.qm) and b) use QFileDialog::DontUseNativeDialog. Other parts of my application are translated well. Please advise.

    File dialog part:
    @
    QString result;

    QFileDialog *fileDialog = new QFileDialog(this, QString(tr(M_00B_BROWSE)));
    
    fileDialog->setDirectory(dirCurrent);
    fileDialog->setViewMode(QFileDialog::Detail);
    fileDialog->setFileMode(QFileDialog::Directory);
    fileDialog->setOption(QFileDialog::DontUseNativeDialog, true);
    
    int ret = fileDialog->exec();
    
    if(ret == QDialog::Accepted) {
        result = QDir::toNativeSeparators(fileDialog->selectedFiles()[0]);
    }
    
    delete fileDialog;
    
    return result;
    

    @

    Load translation part:
    @
    QString filter = "??.qm";
    QDir::Filters filters = QDir::Files | QDir::Readable;
    QDir::SortFlags sort = QDir::Name;
    QFileInfoList entries = dir.entryInfoList(
    QStringList() << filter, filters, sort);

    /* qt_zh_CN.qm was copied from $QT_DIR/translations */
    QFileInfo info = QFileInfo("C:/Users/User/Desktop/Virgo/qt_zh_CN.qm");
    QTranslator qtTranslator;
    if(qtTranslator.load(info.absoluteFilePath()) == false) {
        exit(1);
    }
    
    installTranslator(&qtTranslator);
    
    foreach (QFileInfo file, entries) {
        /* construct and load translator */
        QTranslator *translator = new QTranslator(instance());
        if (translator->load(file.absoluteFilePath())) {
            translators.insert(file.baseName(), translator);
        }
    }
    

    @

    1 Reply Last reply
    0
    • IamSumitI Offline
      IamSumitI Offline
      IamSumit
      wrote on last edited by
      #2

      Hi and welcome to devnet.

      You should not .qm file from Qt/translation folder.
      it will not translate any specific string inside tr();
      You should use make your own application specific .ts as well as .qm
      file by using Qt linguist tool.then you will see the changes.
      Hope this helps.

      Be Cute

      1 Reply Last reply
      0

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved