//获取当前系统语言环境,并设置语言 static QString find_translation_file() { QString locale = QLocale::system().name(); // language code + country code (xx_XX) QString language = locale.mid(0, 2); // language code (first two chars of locale) QString translation_file_basename = //QDir(Paths::translationPath()).absoluteFilePath("mystiq_"); QDir(":/translations/").absoluteFilePath("mystiq_");
// look for mystiq_xx_XX.qm in the translation directory QString translation_language_country = translation_file_basename + locale + ".qm"; if (QFile(translation_language_country).exists()) return translation_language_country;
// look for mystiq_xx.qm in the translation directory QString translation_language = translation_file_basename + language + ".qm"; if (QFile(translation_language).exists()) return translation_language;
// translation for current locale not found, return empty string return ""; } //使用环境 // Setup translation QTranslator translator; //使用获取到的环境并设置 QString translation_filename = find_translation_file(); if (!translation_filename.isEmpty()) { qDebug() << "Translation file: " << translation_filename; translator.load(translation_filename); app.installTranslator(&translator); }
|