From fd9d08b328207c8360fa8931f16edbf9d204b32f Mon Sep 17 00:00:00 2001 From: gfdgd_xi <3025613752@qq.com> Date: Sat, 25 Nov 2023 16:38:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E6=AD=A5=E5=A4=9A=E8=AF=AD=E8=A8=80?= =?UTF-8?q?=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LANG/deepin-wine-runner-en_US.qm | Bin 13387 -> 493 bytes VM-source/en_US.qm | Bin 5781 -> 11814 bytes VM-source/en_US.ts | 210 +++++++++++++++++++++++++++++++ VM-source/mainwindow.cpp | 66 +++++----- VM-source/zh_CN.ts | 205 ++++++++++++++++++++++++++++++ 5 files changed, 448 insertions(+), 33 deletions(-) diff --git a/LANG/deepin-wine-runner-en_US.qm b/LANG/deepin-wine-runner-en_US.qm index 64ce5e47dd155c9bd53eff4f6c01eee6b9b58d8f..dd74939fb98f1267b661c1e87e8e153c4f14d1d4 100755 GIT binary patch literal 493 zcmcE7ks@*G{hX<16=n7(EZlo{IRgU&YieG6Xs{EI6~W-Xu9AU)(T2f~Yb%h?z*xR& zC6Fp$d9Z#Hkd|h7u&D@0o3r*_mju!$I2^(B3ywYWO@RDfuD)kFKwTU>&g(mY{8fD1 z2HZe8I1?zC#rz)#IDlLRHXvqo&n!tzWe2htLm5$}*nm<QrAavDauTu2u><wxWaedK z)yVGaVydC$tBGAQC^bDeBfkWzBuB7^qajYMTtHbPQ!@><VC+VN<V_8YkmZ4X7GVfu z@MH*L2xSOn2x0ICVn+rac-U}-c?N|Bhxms$`oLTS)FZ$U&XCEF$B@dP!Jr0YYr@rY UglFcZYN&<7T+jhj&BVwE0Qxy<4gdfE literal 13387 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 diff --git a/VM-source/en_US.qm b/VM-source/en_US.qm index a6af8846f9aca96a283cdb3064c4b9794860008a..5a2feaee1f14d2c078c38450b994d46a44e59fea 100644 GIT binary patch literal 11814 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 delta 488 zcmZ1$GgWtjNIg?(o)ZHD;{pcphI|GF{;Q0-yLK=z@SJB1n&`>Ez~RPtPtA*gLCBl& z$p=dY2EKfzSF*wk48n(*4{!p-1y3@6%PnVM;Qh_~({n2W19ujS_3KCm26k6glgBH7 z;#sUdlly`Cud({hILW}kbb^iNNfl6E8=GS!P#tsqF1GfiI~f=_tJpdkPcSfuu(KD= zm<e<c5Bq{;9zciWv!BpV2lAJ)KL?336m#h0)d6V+4nH0apoK>`UTdymU=XO`_^JnV z5bsvbvdvOJkGOJfUAYXX-+)U|`5#dJ2-m}vEI@}#bKCw62YTc>cVyZU28Mc(KJHeQ zR0al?C)}HF{s5Zm#eFdp=peRK?q{Vyn)Nsj^G`XTi<NmiQuhLVP{gzFIM65T%sf}7 z0xjm1;}iJ%5~xm%&w3It<hZ5zrf#^#z`(VF@1cSoQ2k84mw_*UA+Us>y$KjXEF1Yb z4`cxOvi#iZv=|H+xL)x~ywd`@(4SxWd?`?aCBFfaA<(4-{8pENKILBop+%xHfx&Zj z@);KI$?9x6n-8!ZW1K9@nXtK*pPys%Mez>C$y1f)Pd=yOzj>poA@gKaP2J6xG(%Vb DfTn}< diff --git a/VM-source/en_US.ts b/VM-source/en_US.ts index a3f201e..911eae6 100644 --- a/VM-source/en_US.ts +++ b/VM-source/en_US.ts @@ -288,11 +288,13 @@ p, li { white-space: pre-wrap; } </message> <message> <location filename="mainwindow.ui" line="497"/> + <location filename="mainwindow.cpp" line="442"/> <source>虚拟机安装日志</source> <translation>Virtual Machine log (Installing)</translation> </message> <message> <location filename="mainwindow.ui" line="502"/> + <location filename="mainwindow.cpp" line="408"/> <source>虚拟机运行日志</source> <translation>Virtual Machine log (Running)</translation> </message> @@ -311,6 +313,214 @@ p, li { white-space: pre-wrap; } <source>强制停止 Qemu</source> <translation>Stop Qemu with forced</translation> </message> + <message> + <location filename="mainwindow.cpp" line="88"/> + <source>Wine 运行器虚拟机安装工具 </source> + <translation>Wine Runner Virtual Machine Install Tools </translation> + </message> + <message> + <location filename="mainwindow.cpp" line="90"/> + <source><p>程序版本号:</source> + <translation><p>Program Version:</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="90"/> + <source></p><p>安装包构建时间:</source> + <translation></p><p>Package build time:</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="90"/> + <source></p><p>该组件构建时间:</source> + <translation></p><p>Tools builded time:</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="92"/> + <source><hr/><h1>谢明列表</h1></source> + <translation><hr/><h1>Thank</h1></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="179"/> + <location filename="mainwindow.cpp" line="186"/> + <location filename="mainwindow.cpp" line="193"/> + <location filename="mainwindow.cpp" line="200"/> + <location filename="mainwindow.cpp" line="215"/> + <location filename="mainwindow.cpp" line="222"/> + <location filename="mainwindow.cpp" line="229"/> + <location filename="mainwindow.cpp" line="248"/> + <location filename="mainwindow.cpp" line="254"/> + <location filename="mainwindow.cpp" line="263"/> + <location filename="mainwindow.cpp" line="307"/> + <location filename="mainwindow.cpp" line="322"/> + <location filename="mainwindow.cpp" line="328"/> + <location filename="mainwindow.cpp" line="332"/> + <location filename="mainwindow.cpp" line="338"/> + <location filename="mainwindow.cpp" line="357"/> + <location filename="mainwindow.cpp" line="360"/> + <location filename="mainwindow.cpp" line="364"/> + <location filename="mainwindow.cpp" line="367"/> + <location filename="mainwindow.cpp" line="392"/> + <location filename="mainwindow.cpp" line="404"/> + <location filename="mainwindow.cpp" line="438"/> + <source>提示</source> + <translation>Tips</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="179"/> + <source>您似乎没有安装 Qemu,是否继续创建虚拟机?</source> + <translation>Can't find qemu, do you want to countinue to create the virtual machine?</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="186"/> + <source>您似乎没有安装 VBox,是否继续创建虚拟机?</source> + <translation>Can't find VirtualBox, do you want to countinue to create the virtual machine?</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="193"/> + <source>无法检测到 qemu-system-arm,是否继续创建虚拟机?</source> + <translation>Can't find the qemu-system-arm, do you want to countinue to create the virtual machine?</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="200"/> + <source>无法检测到 qemu-system-aarch64,是否继续创建虚拟机?</source> + <translation>Can't find the qemu-system-aarch64, do you want to countinue to create the virtual machine?</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="215"/> + <source>似乎无法找到 Windows7X86Auto.iso,是否继续创建虚拟机? +缺少该文件可能会导致虚拟机无法正常启动,尝试重新安装 Wine 运行器再试试?</source> + <translation>Can't find the Windows7X86Auto.iso, do you want to countinue to create the virtual machine?</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="222"/> + <source>似乎无法找到 Windows7X64Auto.iso,是否继续创建虚拟机? +缺少该文件可能会导致虚拟机无法正常启动,尝试重新安装 Wine 运行器再试试?</source> + <translation>Can't find the Windows7X64Auto.iso, do you want to countinue to create the virtual machine?</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="229"/> + <source>似乎无法找到 UEFI 固件,是否继续创建虚拟机? +Qemu 固件可以在“安装 Qemu”处安装</source> + <translation>Can't find the UEFI boot, do you want to countinue to create the virtual machine? +You can get qemu efi from "Install Qemu" button</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="248"/> + <source>Qemu 不支持该选项!</source> + <translation>Qemu unsupport it</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="254"/> + <location filename="mainwindow.cpp" line="263"/> + <source>VirtualBox 不支持该选项!</source> + <translation>VirtualBox unsupport it</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="278"/> + <source>提示:目前已经尝试开启虚拟机,如果在一段时间后依旧还没看到虚拟机窗口开启,请在菜单栏查看虚拟机日志</source> + <translation>Tips: It trying to start virtualbox now, you should view the log in the tools menu if you can't see the virtual machine window a few time late</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="307"/> + <source>磁盘文件已存在,是否覆盖? +覆盖后将无法恢复!</source> + <translation>Qemu Disk is exist. Do you want to replace? +You will not recovery after you replacing!</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="311"/> + <source>选择 Qemu 镜像</source> + <translation>Choose Qemu Disk</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="311"/> + <source>Qemu镜像(*.qcow2 *.img *.raw *.qcow *.qed *.vdi *.vhdx *.vmdk);;所有文件(*.*)</source> + <translation>Qemu Disk(*.qcow2 *.img *.raw *.qcow *.qed *.vdi *.vhdx *.vmdk);;All files(*.*)</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="322"/> + <location filename="mainwindow.cpp" line="328"/> + <source>添加错误!</source> + <translation>Add error!</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="332"/> + <source>添加完成!</source> + <translation>Add finishing!</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="338"/> + <source>不存在磁盘文件,无法导出</source> + <translation>Can't export because can't find the qemu disk</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="357"/> + <source>不存在磁盘文件,无法移除</source> + <translation>Can't delete because can't find the qemu disk</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="360"/> + <source>是否删除? +删除后将无法恢复!</source> + <translation>Do you want to delete? +It can't recovery after you deleting!</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="364"/> + <source>移除失败</source> + <translation>Delete error</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="367"/> + <source>移除成功</source> + <translation>Delete successfully</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="373"/> + <location filename="mainwindow.cpp" line="389"/> + <source>错误</source> + <translation>Error</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="373"/> + <source>未识别到命令 kvm-ok +可以使用命令 sudo apt install cpu-checker 安装</source> + <translation>Can't find the command "kvm-ok" and you can use command "sudo apt install cpu-checker" to install</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="383"/> + <source>使用</source> + <translation>Use</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="389"/> + <source>您的系统不支持使用 kvm: +</source> + <translation>Your system can't use kvm: +</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="392"/> + <source>您的系统支持使用 kvm: +</source> + <translation>Your system can use kvm: +</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="404"/> + <location filename="mainwindow.cpp" line="438"/> + <source>没有日志文件</source> + <translation>Can't find the log file</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="408"/> + <source>运行日志</source> + <translation>Running file</translation> + </message> + <message> + <location filename="mainwindow.cpp" line="442"/> + <source>安装日志</source> + <translation>Installed log</translation> + </message> </context> <context> <name>QemuSetting</name> diff --git a/VM-source/mainwindow.cpp b/VM-source/mainwindow.cpp index ce6cb6b..ac64fc8 100755 --- a/VM-source/mainwindow.cpp +++ b/VM-source/mainwindow.cpp @@ -48,7 +48,7 @@ MainWindow::MainWindow(QWidget *parent) : QLoggingCategory::defaultCategory()->setEnabled(QtDebugMsg, true); // 判断是否安装 vbox(无需判断) /*if(system("which VBoxManage")){ - if(QMessageBox::question(this, "提示", "检测到您似乎没有安装 VirtualBox,立即安装?") == QMessageBox::Yes){ + if(QMessageBox::question(this, tr("提示"), "检测到您似乎没有安装 VirtualBox,立即安装?") == QMessageBox::Yes){ system("xdg-open https://www.virtualbox.org/wiki/Linux_Downloads"); } }*/ @@ -85,11 +85,11 @@ MainWindow::MainWindow(QWidget *parent) : } // 设置程序标题 - this->setWindowTitle("Wine 运行器虚拟机安装工具 " + versionValue.toString()); + this->setWindowTitle(tr("Wine 运行器虚拟机安装工具 ") + versionValue.toString()); // 读取谢明列表 - ui->textBrowser_2->setHtml("<p>程序版本号:" + versionValue.toString() + ", " + GetRunCommand("arch") + "</p><p>安装包构建时间:" + buildTime.toString() + "</p><p>该组件构建时间:" + ui->textBrowser_2->setHtml(tr("<p>程序版本号:") + versionValue.toString() + ", " + GetRunCommand("arch") + tr("</p><p>安装包构建时间:") + buildTime.toString() + tr("</p><p>该组件构建时间:") + __DATE__ + " " + __TIME__ + "</p>" + ui->textBrowser_2->toHtml() + - "<hr/><h1>谢明列表</h1>" + thankText); + tr("<hr/><h1>谢明列表</h1>") + thankText); connect(ui->textBrowser_2, &QTextBrowser::anchorClicked, this, [=](const QUrl &link){ QDesktopServices::openUrl(link); }); @@ -176,28 +176,28 @@ void MainWindow::on_install_clicked() switch (ui->vmChooser->currentIndex()) { case 0: if(system("which qemu-system-x86_64")){ - if(QMessageBox::question(this, "提示", "您似乎没有安装 Qemu,是否继续创建虚拟机?") == QMessageBox::No){ + if(QMessageBox::question(this, tr("提示"), tr("您似乎没有安装 Qemu,是否继续创建虚拟机?")) == QMessageBox::No){ return; } } break; case 1: if(system("which vboxmanage")){ - if(QMessageBox::question(this, "提示", "您似乎没有安装 VBox,是否继续创建虚拟机?") == QMessageBox::No){ + if(QMessageBox::question(this, tr("提示"), tr("您似乎没有安装 VBox,是否继续创建虚拟机?")) == QMessageBox::No){ return; } } break; case 8: if(system("which qemu-system-arm")){ - if(QMessageBox::question(this, "提示", "无法检测到 qemu-system-arm,是否继续创建虚拟机?") == QMessageBox::No){ + if(QMessageBox::question(this, tr("提示"), tr("无法检测到 qemu-system-arm,是否继续创建虚拟机?")) == QMessageBox::No){ return; } } break; case 9: if(system("which qemu-system-aarch64")){ - if(QMessageBox::question(this, "提示", "无法检测到 qemu-system-aarch64,是否继续创建虚拟机?") == QMessageBox::No){ + if(QMessageBox::question(this, tr("提示"), tr("无法检测到 qemu-system-aarch64,是否继续创建虚拟机?")) == QMessageBox::No){ return; } } @@ -212,21 +212,21 @@ void MainWindow::on_install_clicked() switch (ui->systemVersion->currentIndex()) { case 0: if(!QFile::exists(QCoreApplication::applicationDirPath() + "/Windows7X86Auto.iso")){ - if(QMessageBox::question(this, "提示", "似乎无法找到 Windows7X86Auto.iso,是否继续创建虚拟机?\n缺少该文件可能会导致虚拟机无法正常启动,尝试重新安装 Wine 运行器再试试?") == QMessageBox::No){ + if(QMessageBox::question(this, tr("提示"), tr("似乎无法找到 Windows7X86Auto.iso,是否继续创建虚拟机?\n缺少该文件可能会导致虚拟机无法正常启动,尝试重新安装 Wine 运行器再试试?")) == QMessageBox::No){ return; } } break; case 1: if(!QFile::exists(QCoreApplication::applicationDirPath() + "/Windows7X64Auto.iso")){ - if(QMessageBox::question(this, "提示", "似乎无法找到 Windows7X64Auto.iso,是否继续创建虚拟机?\n缺少该文件可能会导致虚拟机无法正常启动,尝试重新安装 Wine 运行器再试试?") == QMessageBox::No){ + if(QMessageBox::question(this, tr("提示"), tr("似乎无法找到 Windows7X64Auto.iso,是否继续创建虚拟机?\n缺少该文件可能会导致虚拟机无法正常启动,尝试重新安装 Wine 运行器再试试?")) == QMessageBox::No){ return; } } break; case 3: if(!QFile::exists("/usr/share/qemu/OVMF.fd") && !QFile::exists(QCoreApplication::applicationDirPath() + "/OVMF.fd") && ui->vmChooser->currentIndex() == 0){ - if(QMessageBox::question(this, "提示", "似乎无法找到 UEFI 固件,是否继续创建虚拟机?\nQemu 固件可以在“安装 Qemu”处安装") == QMessageBox::No){ + if(QMessageBox::question(this, tr("提示"), tr("似乎无法找到 UEFI 固件,是否继续创建虚拟机?\nQemu 固件可以在“安装 Qemu”处安装")) == QMessageBox::No){ return; } } @@ -245,13 +245,13 @@ void MainWindow::on_install_clicked() case 6: case 7: if(ui->vmChooser->currentIndex() == 0){ - QMessageBox::warning(this, "提示", "Qemu 不支持该选项!"); + QMessageBox::warning(this, tr("提示"), tr("Qemu 不支持该选项!")); return; } break; case 8: if(ui->vmChooser->currentIndex() == 1){ - QMessageBox::warning(this, "提示", "VirtualBox 不支持该选项!"); + QMessageBox::warning(this, tr("提示"), tr("VirtualBox 不支持该选项!")); return; } archFile.open(QIODevice::WriteOnly); @@ -260,7 +260,7 @@ void MainWindow::on_install_clicked() break; case 9: if(ui->vmChooser->currentIndex() == 1){ - QMessageBox::warning(this, "提示", "VirtualBox 不支持该选项!"); + QMessageBox::warning(this, tr("提示"), tr("VirtualBox 不支持该选项!")); return; } archFile.open(QIODevice::WriteOnly); @@ -275,7 +275,7 @@ void MainWindow::on_install_clicked() buildvbox(ui->isoPath->text(), ui->systemVersion->currentIndex(), ui->vmChooser->currentIndex()); ui->tabWidget->setCurrentIndex(1); stopShowTime = 1; - ui->CPUValue->showMessage("提示:目前已经尝试开启虚拟机,如果在一段时间后依旧还没看到虚拟机窗口开启,请在菜单栏查看虚拟机日志", 10000); + ui->CPUValue->showMessage(tr("提示:目前已经尝试开启虚拟机,如果在一段时间后依旧还没看到虚拟机窗口开启,请在菜单栏查看虚拟机日志"), 10000); return; } @@ -304,11 +304,11 @@ void MainWindow::on_qemuSetting_clicked() void MainWindow::on_addQemuDisk_triggered() { if(QFile::exists(QDir::homePath() + "/Qemu/Windows/Windows.qcow2")){ - if(QMessageBox::question(this, "提示", "磁盘文件已存在,是否覆盖?\n覆盖后将无法恢复!") == QMessageBox::No){ + if(QMessageBox::question(this, tr("提示"), tr("磁盘文件已存在,是否覆盖?\n覆盖后将无法恢复!")) == QMessageBox::No){ return; } } - QString path = QFileDialog::getOpenFileName(this, "选择 Qemu 镜像", QDir::homePath(), "Qemu镜像(*.qcow2 *.img *.raw *.qcow *.qed *.vdi *.vhdx *.vmdk);;所有文件(*.*)"); + QString path = QFileDialog::getOpenFileName(this, tr("选择 Qemu 镜像"), QDir::homePath(), tr("Qemu镜像(*.qcow2 *.img *.raw *.qcow *.qed *.vdi *.vhdx *.vmdk);;所有文件(*.*)")); qDebug() << path; if(path == ""){ return; @@ -319,23 +319,23 @@ void MainWindow::on_addQemuDisk_triggered() } if(QFile::exists(QDir::homePath() + "/Qemu/Windows/Windows.qcow2")){ if(!QFile::remove(QDir::homePath() + "/Qemu/Windows/Windows.qcow2") | !QFile::copy(path, QDir::homePath() + "/Qemu/Windows/Windows.qcow2")){ - QMessageBox::critical(this, "提示", "添加错误!"); + QMessageBox::critical(this, tr("提示"), tr("添加错误!")); return; } } else{ if(!QFile::copy(path, QDir::homePath() + "/Qemu/Windows/Windows.qcow2")){ - QMessageBox::critical(this, "提示", "添加错误!"); + QMessageBox::critical(this, tr("提示"), tr("添加错误!")); return; } } - QMessageBox::information(this, "提示", "添加完成!"); + QMessageBox::information(this, tr("提示"), tr("添加完成!")); } void MainWindow::on_delQemuDisk_triggered() { if(!QFile::exists(QDir::homePath() + "/Qemu/Windows/Windows.qcow2")){ - QMessageBox::information(this, "提示", "不存在磁盘文件,无法导出"); + QMessageBox::information(this, tr("提示"), tr("不存在磁盘文件,无法导出")); return; } std::system(("xdg-open \"" + QDir::homePath() + "/Qemu/Windows/\"").toUtf8()); @@ -354,23 +354,23 @@ void MainWindow::on_saveQemuDiskButton_clicked() void MainWindow::on_delQemuDiskButton_clicked() { if(!QFile::exists(QDir::homePath() + "/Qemu/Windows/Windows.qcow2")){ - QMessageBox::information(this, "提示", "不存在磁盘文件,无法移除"); + QMessageBox::information(this, tr("提示"), tr("不存在磁盘文件,无法移除")); return; } - if(QMessageBox::question(this, "提示", "是否删除?\n删除后将无法恢复!") == QMessageBox::No){ + if(QMessageBox::question(this, tr("提示"), tr("是否删除?\n删除后将无法恢复!")) == QMessageBox::No){ return; } if(!QFile::remove(QDir::homePath() + "/Qemu/Windows/Windows.qcow2")){ - QMessageBox::critical(this, "提示", "移除失败"); + QMessageBox::critical(this, tr("提示"), tr("移除失败")); return; } - QMessageBox::information(this, "提示", "移除成功"); + QMessageBox::information(this, tr("提示"), tr("移除成功")); } void MainWindow::on_kvmTest_clicked() { if(system("which kvm-ok")&& !QFile::exists(QCoreApplication::applicationDirPath() + "/kvm-ok")){ - QMessageBox::critical(this, "错误", "未识别到命令 kvm-ok\n可以使用命令 sudo apt install cpu-checker 安装"); + QMessageBox::critical(this, tr("错误"), tr("未识别到命令 kvm-ok\n可以使用命令 sudo apt install cpu-checker 安装")); return; } QString kvm_ok_path = "kvm-ok"; @@ -380,16 +380,16 @@ void MainWindow::on_kvmTest_clicked() else if(QFile::exists(QCoreApplication::applicationDirPath() + "/kvm-ok")){ kvm_ok_path = QCoreApplication::applicationDirPath() + "/kvm-ok"; } - qDebug() << "使用" << kvm_ok_path; + qDebug() << tr("使用") << kvm_ok_path; QProcess process; process.start(kvm_ok_path); process.waitForStarted(); process.waitForFinished(); if(process.exitCode()){ - QMessageBox::critical(this, "错误", "您的系统不支持使用 kvm:\n" + process.readAll()); + QMessageBox::critical(this, tr("错误"), tr("您的系统不支持使用 kvm:\n") + process.readAll()); return; } - QMessageBox::information(this, "提示", "您的系统支持使用 kvm:\n" + process.readAll()); + QMessageBox::information(this, tr("提示"), tr("您的系统支持使用 kvm:\n") + process.readAll()); } @@ -401,11 +401,11 @@ void MainWindow::on_actionVMRunlLog_triggered() { QFile file("/tmp/windows-virtual-machine-installer-for-wine-runner-run.log"); if(!file.exists()){ - QMessageBox::information(this, "提示", "没有日志文件"); + QMessageBox::information(this, tr("提示"), tr("没有日志文件")); return; } file.open(QIODevice::ReadOnly); - QInputDialog::getMultiLineText(this, "运行日志", "虚拟机运行日志",file.readAll()); + QInputDialog::getMultiLineText(this, tr("运行日志"), tr("虚拟机运行日志"), file.readAll()); file.close(); } @@ -435,11 +435,11 @@ void MainWindow::on_actionVMInstallLog_triggered() { QFile file("/tmp/windows-virtual-machine-installer-for-wine-runner-install.log"); if(!file.exists()){ - QMessageBox::information(this, "提示", "没有日志文件"); + QMessageBox::information(this, tr("提示"), tr("没有日志文件")); return; } file.open(QIODevice::ReadOnly); - QInputDialog::getMultiLineText(this, "安装日志", "虚拟机安装日志",file.readAll()); + QInputDialog::getMultiLineText(this, tr("安装日志"), tr("虚拟机安装日志"),file.readAll()); file.close(); } diff --git a/VM-source/zh_CN.ts b/VM-source/zh_CN.ts index 8a9992e..df00a56 100755 --- a/VM-source/zh_CN.ts +++ b/VM-source/zh_CN.ts @@ -257,11 +257,13 @@ p, li { white-space: pre-wrap; } </message> <message> <location filename="mainwindow.ui" line="497"/> + <location filename="mainwindow.cpp" line="442"/> <source>虚拟机安装日志</source> <translation type="unfinished"></translation> </message> <message> <location filename="mainwindow.ui" line="502"/> + <location filename="mainwindow.cpp" line="408"/> <source>虚拟机运行日志</source> <translation type="unfinished"></translation> </message> @@ -312,6 +314,209 @@ p, li { white-space: pre-wrap; } <source>退出</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="mainwindow.cpp" line="88"/> + <source>Wine 运行器虚拟机安装工具 </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="90"/> + <source><p>程序版本号:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="90"/> + <source></p><p>安装包构建时间:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="90"/> + <source></p><p>该组件构建时间:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="92"/> + <source><hr/><h1>谢明列表</h1></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="179"/> + <location filename="mainwindow.cpp" line="186"/> + <location filename="mainwindow.cpp" line="193"/> + <location filename="mainwindow.cpp" line="200"/> + <location filename="mainwindow.cpp" line="215"/> + <location filename="mainwindow.cpp" line="222"/> + <location filename="mainwindow.cpp" line="229"/> + <location filename="mainwindow.cpp" line="248"/> + <location filename="mainwindow.cpp" line="254"/> + <location filename="mainwindow.cpp" line="263"/> + <location filename="mainwindow.cpp" line="307"/> + <location filename="mainwindow.cpp" line="322"/> + <location filename="mainwindow.cpp" line="328"/> + <location filename="mainwindow.cpp" line="332"/> + <location filename="mainwindow.cpp" line="338"/> + <location filename="mainwindow.cpp" line="357"/> + <location filename="mainwindow.cpp" line="360"/> + <location filename="mainwindow.cpp" line="364"/> + <location filename="mainwindow.cpp" line="367"/> + <location filename="mainwindow.cpp" line="392"/> + <location filename="mainwindow.cpp" line="404"/> + <location filename="mainwindow.cpp" line="438"/> + <source>提示</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="179"/> + <source>您似乎没有安装 Qemu,是否继续创建虚拟机?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="186"/> + <source>您似乎没有安装 VBox,是否继续创建虚拟机?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="193"/> + <source>无法检测到 qemu-system-arm,是否继续创建虚拟机?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="200"/> + <source>无法检测到 qemu-system-aarch64,是否继续创建虚拟机?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="215"/> + <source>似乎无法找到 Windows7X86Auto.iso,是否继续创建虚拟机? +缺少该文件可能会导致虚拟机无法正常启动,尝试重新安装 Wine 运行器再试试?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="222"/> + <source>似乎无法找到 Windows7X64Auto.iso,是否继续创建虚拟机? +缺少该文件可能会导致虚拟机无法正常启动,尝试重新安装 Wine 运行器再试试?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="229"/> + <source>似乎无法找到 UEFI 固件,是否继续创建虚拟机? +Qemu 固件可以在“安装 Qemu”处安装</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="248"/> + <source>Qemu 不支持该选项!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="254"/> + <location filename="mainwindow.cpp" line="263"/> + <source>VirtualBox 不支持该选项!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="278"/> + <source>提示:目前已经尝试开启虚拟机,如果在一段时间后依旧还没看到虚拟机窗口开启,请在菜单栏查看虚拟机日志</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="307"/> + <source>磁盘文件已存在,是否覆盖? +覆盖后将无法恢复!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="311"/> + <source>选择 Qemu 镜像</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="311"/> + <source>Qemu镜像(*.qcow2 *.img *.raw *.qcow *.qed *.vdi *.vhdx *.vmdk);;所有文件(*.*)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="322"/> + <location filename="mainwindow.cpp" line="328"/> + <source>添加错误!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="332"/> + <source>添加完成!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="338"/> + <source>不存在磁盘文件,无法导出</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="357"/> + <source>不存在磁盘文件,无法移除</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="360"/> + <source>是否删除? +删除后将无法恢复!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="364"/> + <source>移除失败</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="367"/> + <source>移除成功</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="373"/> + <location filename="mainwindow.cpp" line="389"/> + <source>错误</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="373"/> + <source>未识别到命令 kvm-ok +可以使用命令 sudo apt install cpu-checker 安装</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="383"/> + <source>使用</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="389"/> + <source>您的系统不支持使用 kvm: +</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="392"/> + <source>您的系统支持使用 kvm: +</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="404"/> + <location filename="mainwindow.cpp" line="438"/> + <source>没有日志文件</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="408"/> + <source>运行日志</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="442"/> + <source>安装日志</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QemuSetting</name>