升级app增加通过命令行设置语言的功能

This commit is contained in:
luoliangyi 2023-01-28 17:45:13 +08:00
parent 72f5b5dee9
commit b0fb3498bb
3 changed files with 35 additions and 13 deletions

View File

@ -4,11 +4,14 @@
#include <QTranslator> #include <QTranslator>
#include <QScreen> #include <QScreen>
#include "app_cfg.h" #include "app_cfg.h"
#include "lang/app_language.h"
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
QApplication a(argc, argv); QApplication a(argc, argv);
lang_initialize(nullptr);
QString appLang = getCfgValue("global", "language", QString("Chinese")); QString appLang = getCfgValue("global", "language", QString("Chinese"));
for (int i = 1; i < argc; i++) for (int i = 1; i < argc; i++)
{ {
@ -18,19 +21,21 @@ int main(int argc, char *argv[])
appLang = z + strlen("-language="); appLang = z + strlen("-language=");
} }
if (appLang != "English") if (appLang != "english")
{ {
appLang = "Chinese"; appLang = "chinese";
} }
while (1) while (1)
{ {
QString translator_qt_name = ":translation/qt_zh_CN.qm"; QString translator_qt_name = ":translation/qt_zh_CN.qm";
QString translator_scanner_name = ":translation/Scanner_zh_CN.qm"; QString translator_scanner_name = ":translation/Scanner_zh_CN.qm";
if (appLang == "English") int cp = 936;
if (appLang == "english")
{ {
translator_qt_name = ":translation/qt_zh_CN.qm"; translator_qt_name = ":translation/qt_zh_CN.qm";
translator_scanner_name = ":translation/Scanner_zh_EN.qm"; translator_scanner_name = ":translation/Scanner_zh_EN.qm";
cp = 1252;
} }
QTranslator translator_qt; QTranslator translator_qt;
@ -40,6 +45,8 @@ int main(int argc, char *argv[])
if (translator_scanner.load(translator_scanner_name)) if (translator_scanner.load(translator_scanner_name))
a.installTranslator(&translator_scanner); a.installTranslator(&translator_scanner);
lang_set_code_page(cp);
MainWindow w(appLang); MainWindow w(appLang);
QScreen *screen = QGuiApplication::primaryScreen(); QScreen *screen = QGuiApplication::primaryScreen();
w.move((screen->size().width() - w.width()) / 2, (screen->size().height() - w.height()) / 2); w.move((screen->size().width() - w.width()) / 2, (screen->size().height() - w.height()) / 2);

View File

@ -171,7 +171,7 @@ MainWindow::MainWindow(QString& appLang, QWidget *parent)
m_menu_language->addAction(m_act_simpCN); m_menu_language->addAction(m_act_simpCN);
m_menu_language->addAction(m_act_English); m_menu_language->addAction(m_act_English);
if (m_currLang == "English") if (m_currLang == "english")
{ {
m_act_simpCN->setChecked(false); m_act_simpCN->setChecked(false);
m_act_English->setChecked(true); m_act_English->setChecked(true);
@ -3714,6 +3714,7 @@ void MainWindow::upgradeApp(QString pkgPath)
argList.push_back(QString("-appName=%1").arg(HGVERSION_APPNAME_SCANNER)); argList.push_back(QString("-appName=%1").arg(HGVERSION_APPNAME_SCANNER));
argList.push_back(QString("-pkgpath=%1").arg(pkgPath.toStdString().c_str())); argList.push_back(QString("-pkgpath=%1").arg(pkgPath.toStdString().c_str()));
argList.push_back(QString("-type=%1").arg("upgrade")); argList.push_back(QString("-type=%1").arg("upgrade"));
argList.push_back(QString("-language=%1").arg(m_currLang.toStdString().c_str()));
#if defined(HG_CMP_MSC) #if defined(HG_CMP_MSC)
#if defined(OEM_HANWANG) #if defined(OEM_HANWANG)
@ -4226,7 +4227,7 @@ void MainWindow::on_act_device_log_triggered()
void MainWindow::on_act_simpCN_triggered() void MainWindow::on_act_simpCN_triggered()
{ {
if (m_currLang == "English") if (m_currLang == "english")
{ {
m_act_simpCN->setChecked(false); m_act_simpCN->setChecked(false);
m_act_English->setChecked(true); m_act_English->setChecked(true);
@ -4237,12 +4238,12 @@ void MainWindow::on_act_simpCN_triggered()
m_act_English->setChecked(false); m_act_English->setChecked(false);
} }
if (m_currLang == "Chinese") if (m_currLang == "chinese")
{ {
return; return;
} }
m_appLang = "Chinese"; m_appLang = "chinese";
m_closeTip = false; m_closeTip = false;
m_isContinue = true; m_isContinue = true;
close(); close();
@ -4250,7 +4251,7 @@ void MainWindow::on_act_simpCN_triggered()
void MainWindow::on_act_English_triggered() void MainWindow::on_act_English_triggered()
{ {
if (m_currLang == "English") if (m_currLang == "english")
{ {
m_act_simpCN->setChecked(false); m_act_simpCN->setChecked(false);
m_act_English->setChecked(true); m_act_English->setChecked(true);
@ -4261,12 +4262,12 @@ void MainWindow::on_act_English_triggered()
m_act_English->setChecked(false); m_act_English->setChecked(false);
} }
if (m_currLang == "English") if (m_currLang == "english")
{ {
return; return;
} }
m_appLang = "English"; m_appLang = "english";
m_closeTip = false; m_closeTip = false;
m_isContinue = true; m_isContinue = true;
close(); close();

View File

@ -15,6 +15,7 @@ int main(int argc, char *argv[])
std::string appName; std::string appName;
std::string desc; std::string desc;
std::string pkgPath; std::string pkgPath;
std::string appLang;
for (int i = 1; i < argc; i++) for (int i = 1; i < argc; i++)
{ {
@ -28,6 +29,13 @@ int main(int argc, char *argv[])
desc = z + strlen("-desc="); desc = z + strlen("-desc=");
else if (z == strstr(z, "-pkgpath=")) else if (z == strstr(z, "-pkgpath="))
pkgPath = z + strlen("-pkgpath="); pkgPath = z + strlen("-pkgpath=");
else if (z == strstr(z, "-language="))
appLang = z + strlen("-language=");
}
if (appLang != "english")
{
appLang = "chinese";
} }
const HGChar *oemName = nullptr; const HGChar *oemName = nullptr;
@ -70,9 +78,15 @@ int main(int argc, char *argv[])
while (AppIsRun(appName)) while (AppIsRun(appName))
QThread::msleep(20); QThread::msleep(20);
QTranslator translator_upgrade_; QString translator_upgrade_name = ":translation/Upgrade_zh_CN.qm";
if (translator_upgrade_.load(":translation/Upgrade_zh_CN.qm")) if (appLang == "english")
a.installTranslator(&translator_upgrade_); {
translator_upgrade_name = ":translation/Upgrade_zh_EN.qm";
}
QTranslator translator_upgrade;
if (translator_upgrade.load(translator_upgrade_name))
a.installTranslator(&translator_upgrade);
MainWindow w(appName, pkgPath); MainWindow w(appName, pkgPath);
QScreen *screen = QGuiApplication::primaryScreen(); QScreen *screen = QGuiApplication::primaryScreen();