将通知移至专用函数,并更新中文翻译ts文件

This commit is contained in:
RigoLigoRLC 2020-10-01 02:49:27 +08:00
parent e89c14b5ca
commit 678a4229f7
10 changed files with 601 additions and 342 deletions

View File

@ -1,5 +1,6 @@
#include "downloadlist.h" #include "downloadlist.h"
#include "ui_downloadlist.h" #include "ui_downloadlist.h"
#include "widget.h"
#include <QDebug> #include <QDebug>
#include <QIcon> #include <QIcon>
#include <QPixmap> #include <QPixmap>
@ -20,9 +21,9 @@ downloadlist::downloadlist(QWidget *parent) :
ui->pushButton_3->hide(); ui->pushButton_3->hide();
ui->widget_spinner->start(); ui->widget_spinner->start();
ui->widget_spinner->hide(); ui->widget_spinner->hide();
action_dpkg->setText(QObject::tr("dpkg")); action_dpkg->setText(tr("dpkg"));
action_gdebi->setText(QObject::tr("gdebi")); action_gdebi->setText(tr("gdebi"));
action_deepin->setText(QObject::tr("deepin deb installer")); action_deepin->setText(tr("deepin deb installer"));
connect(action_dpkg,&QAction::triggered,[=](){downloadlist::install(1);}); connect(action_dpkg,&QAction::triggered,[=](){downloadlist::install(1);});
connect(action_gdebi,&QAction::triggered,[=](){downloadlist::install(0);}); connect(action_gdebi,&QAction::triggered,[=](){downloadlist::install(0);});
connect(action_deepin,&QAction::triggered,[=](){downloadlist::install(2);}); connect(action_deepin,&QAction::triggered,[=](){downloadlist::install(2);});
@ -51,7 +52,7 @@ void downloadlist::setValue(long long value)
ui->progressBar->setValue(int(value)); ui->progressBar->setValue(int(value));
ui->label_2->setText(QString::number(double(value)/100)+"% ("+speed+")"); ui->label_2->setText(QString::number(double(value)/100)+"% ("+speed+")");
if(ui->label_2->text().left(4)=="100%"){ if(ui->label_2->text().left(4)=="100%"){
ui->label_2->setText(QObject::tr("Downloaded,waiting to Install")); ui->label_2->setText(tr("Downloaded, waiting to install"));
} }
} }
@ -76,8 +77,9 @@ void downloadlist::readyInstall()
ui->progressBar->hide(); ui->progressBar->hide();
ui->pushButton_install->show(); ui->pushButton_install->show();
ui->pushButton_2->hide(); ui->pushButton_2->hide();
system("notify-send \""+ui->label->text().toUtf8()+"Download Failed\"" +" --icon=/tmp/spark-store/icon_"+QString::number(num).toUtf8()+".png"); Widget::sendNotification(tr("Failed to download %1").arg(ui->label->text()), 5000,
ui->label_2->setText(QObject::tr("Download FailedCheck Your Connection")); "/tmp/spark-store/icon_"+QString::number(num).toUtf8()+".png");
ui->label_2->setText(tr("Download FailedCheck Your Connection"));
ui->pushButton_install->setEnabled(false); ui->pushButton_install->setEnabled(false);
return; return;
@ -87,7 +89,8 @@ void downloadlist::readyInstall()
ui->pushButton_install->setEnabled(true); ui->pushButton_install->setEnabled(true);
ui->pushButton_install->show(); ui->pushButton_install->show();
ui->pushButton_2->hide(); ui->pushButton_2->hide();
system("notify-send \""+ui->label->text().toUtf8()+"Download Finished,waiting to Install\"" +" --icon=/tmp/spark-store/icon_"+QString::number(num).toUtf8()+".png"); Widget::sendNotification(tr("Finished downloading %1, awaiting to install").arg(ui->label->text()), 5000,
"/tmp/spark-store/icon_"+QString::number(num).toUtf8()+".png");
} }
} }
@ -119,7 +122,7 @@ void downloadlist::install(int t)
ui->pushButton_install->hide(); ui->pushButton_install->hide();
ui->widget_spinner->show(); ui->widget_spinner->show();
qDebug()<<"/tmp/spark-store/"+ui->label_filename->text().toUtf8(); qDebug()<<"/tmp/spark-store/"+ui->label_filename->text().toUtf8();
ui->label_2->setText(QObject::tr("Installing...")); ui->label_2->setText(tr("Installing..."));
QtConcurrent::run([=](){ QtConcurrent::run([=](){
QProcess installer; QProcess installer;
if(!reinstall){ if(!reinstall){
@ -166,16 +169,16 @@ void downloadlist::install(int t)
int error=QString::fromStdString(isInstall.readAllStandardError().toStdString()).length(); int error=QString::fromStdString(isInstall.readAllStandardError().toStdString()).length();
if(error==0){ if(error==0){
ui->pushButton_install->hide(); ui->pushButton_install->hide();
ui->label_2->setText(QObject::tr("Finish")); ui->label_2->setText(tr("Finish"));
ui->pushButton_3->show(); ui->pushButton_3->show();
}else { }else {
ui->pushButton_install->show(); ui->pushButton_install->show();
ui->pushButton_install->setText(QObject::tr("Retry")); ui->pushButton_install->setText(tr("Retry"));
ui->label_2->setText(QObject::tr("Error happened in dpkg progress , you can try it again")); ui->label_2->setText(tr("Error happened in dpkg progress , you can try it again"));
ui->pushButton_3->show(); ui->pushButton_3->show();
} }
if(notRoot){ if(notRoot){
ui->label_2->setText(QObject::tr("dpkg progress had been abortedyou can retry installation")); ui->label_2->setText(tr("dpkg progress had been abortedyou can retry installation"));
ui->pushButton_install->show(); ui->pushButton_install->show();
ui->pushButton_3->hide(); ui->pushButton_3->hide();
} }
@ -197,7 +200,7 @@ void downloadlist::on_pushButton_install_clicked()
void downloadlist::on_pushButton_2_clicked() void downloadlist::on_pushButton_2_clicked()
{ {
ui->label_2->setText(QObject::tr("Download Canceled")); ui->label_2->setText(tr("Download canceled"));
ui->pushButton_2->setEnabled(false); ui->pushButton_2->setEnabled(false);
ui->progressBar->hide(); ui->progressBar->hide();
close=true; close=true;

View File

@ -31,6 +31,7 @@ int main(int argc, char *argv[])
dialog.setCompanyLogo(QPixmap(":/Logo-Spark.png")); dialog.setCompanyLogo(QPixmap(":/Logo-Spark.png"));
dialog.setWebsiteName(QObject::tr("The Spark Project")); dialog.setWebsiteName(QObject::tr("The Spark Project"));
dialog.setWebsiteLink("https://gitee.com/deepin-community-store"); dialog.setWebsiteLink("https://gitee.com/deepin-community-store");
Widget w; Widget w;
QDesktopWidget *s=DApplication::desktop(); QDesktopWidget *s=DApplication::desktop();
int d_w=s->width(); int d_w=s->width();

View File

@ -7,8 +7,8 @@
QT += core gui network concurrent webenginewidgets QT += core gui network concurrent webenginewidgets
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TRANSLATIONS = ./trans/lang_English.ts \ TRANSLATIONS = ./trans/spark-store_en.ts \
./trans/lang_Chinses.ts ./trans/spark-store_zh_CN.ts
CONFIG += link_pkgconfig CONFIG += link_pkgconfig
PKGCONFIG += dtkwidget PKGCONFIG += dtkwidget

View File

@ -1 +0,0 @@
<クd<>箆!ソ`。スン

Binary file not shown.

View File

@ -3,24 +3,42 @@
<TS version="2.1" language="en"> <TS version="2.1" language="en">
<context> <context>
<name>QLabel</name> <name>QLabel</name>
<message>
<source>Spark应用商店</source>
<translation type="vanished">Spark Store</translation>
</message>
<message>
<source>
GPL第三版开源</source>
<translation type="vanished">A 3-rd party app store powered by deepin community
Spark Store is published under GPL V3
We born for change.</translation>
</message>
<message> <message>
<location filename="../main.cpp" line="22"/> <location filename="../main.cpp" line="22"/>
<location filename="../main.cpp" line="28"/> <location filename="../main.cpp" line="30"/>
<source>Spark Store</source> <source>Spark Store</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>QObject</name>
<message>
<location filename="../main.cpp" line="16"/>
<source>We publish this program under GPL V3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.cpp" line="17"/>
<source>Version 2.0+2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.cpp" line="19"/>
<location filename="../main.cpp" line="20"/>
<source>https://gitee.com/deepin-community-store/spark-store</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.cpp" line="24"/>
<source>&lt;span style=&apos; font-size:10pt;font-weight:60;&apos;&gt;An appstore powered by deepin community&lt;/span&gt;&lt;br/&gt;&lt;a href=&apos;https://www.spark-app.store/&apos;&gt;https://www.spark-app.store&lt;/a&gt;&lt;br/&gt;&lt;span style=&apos; font-size:12pt;&apos;&gt;Spark developers&lt;/span&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.cpp" line="32"/>
<source>The Spark Project</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>Widget</name> <name>Widget</name>
<message> <message>
@ -68,11 +86,6 @@ We born for change.</translation>
<source>Office</source> <source>Office</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../widget.ui" line="173"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location filename="../widget.ui" line="200"/> <location filename="../widget.ui" line="200"/>
<source>Translate</source> <source>Translate</source>
@ -108,16 +121,6 @@ We born for change.</translation>
<source>Network</source> <source>Network</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../widget.ui" line="290"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.ui" line="380"/>
<source>The List is empty now.Go and Download some software!</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location filename="../widget.ui" line="486"/> <location filename="../widget.ui" line="486"/>
<source>Name</source> <source>Name</source>
@ -130,6 +133,7 @@ We born for change.</translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="584"/> <location filename="../widget.ui" line="584"/>
<location filename="../widget.cpp" line="534"/>
<source>Install</source> <source>Install</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -162,7 +166,12 @@ We born for change.</translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="727"/> <location filename="../widget.ui" line="727"/>
<source>UB</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;img src=&quot;:/tags/ubuntu-small.png&quot;/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.ui" line="765"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;img src=&quot;:/tags/uos-small.png&quot;/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -171,6 +180,26 @@ We born for change.</translation>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Capable to deepin 20&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Capable to deepin 20&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../widget.ui" line="173"/>
<source>Back to category</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.ui" line="290"/>
<source>Reload</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.ui" line="380"/>
<source>The list is currently empty. Go and download some softwares!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.ui" line="412"/>
<source>Open download directory</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location filename="../widget.ui" line="746"/> <location filename="../widget.ui" line="746"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;img src=&quot;:/tags/deepin-small.png&quot;/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;img src=&quot;:/tags/deepin-small.png&quot;/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
@ -182,11 +211,6 @@ We born for change.</translation>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Capable to UOS home 20&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Capable to UOS home 20&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../widget.ui" line="765"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;img src=&quot;:/tags/uos.svg&quot;/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location filename="../widget.ui" line="778"/> <location filename="../widget.ui" line="778"/>
<location filename="../widget.ui" line="781"/> <location filename="../widget.ui" line="781"/>
@ -230,9 +254,14 @@ We born for change.</translation>
<source>Info</source> <source>Info</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../widget.ui" line="883"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;An app store developed by community enthusiasts&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location filename="../widget.ui" line="922"/> <location filename="../widget.ui" line="922"/>
<source>ScreenShots</source> <source>Screenshots</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -310,194 +339,152 @@ We born for change.</translation>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;We are &lt;span style=&quot; font-weight:600;&quot;&gt;NOT&lt;/span&gt; the official team, just like you, we are just one of the many Linux/deepin system enthusiasts and users, we develop and run the &amp;quot;Spark Store&amp;quot;! &amp;quot;, is to bring the community together to share useful software, or to participate in development together, so that we all use the latest and greatest software. &lt;/p&gt;&lt;p&gt;We don&apos;t make a profit from this, all developers and maintainers don&apos;t get paid, and we rely on the community&apos;s donations to us for most of our expenses, which we are grateful for and which allow us not to spend too much energy worrying about funding. &lt;/p&gt;&lt;p&gt;Our service and software are free for everyone to use, communicate, and learn, but you must comply with local laws and regulations in the process of your use, otherwise any problems have nothing to do with us. &lt;/p&gt;&lt;p&gt;If any part of the store infringes your rights, please tell us &amp;lt;jifengshenmo@outlook.com&amp;gt; we will remove the infringing content as soon as possible. &lt;/p&gt;&lt;p&gt;If you&apos;d like to get involved with us too, whether you&apos;re involved in development, design, pitching or submitting work, we welcome you to join us. &lt;/p&gt;&lt;p&gt;QQ group:872690351&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;We are &lt;span style=&quot; font-weight:600;&quot;&gt;NOT&lt;/span&gt; the official team, just like you, we are just one of the many Linux/deepin system enthusiasts and users, we develop and run the &amp;quot;Spark Store&amp;quot;! &amp;quot;, is to bring the community together to share useful software, or to participate in development together, so that we all use the latest and greatest software. &lt;/p&gt;&lt;p&gt;We don&apos;t make a profit from this, all developers and maintainers don&apos;t get paid, and we rely on the community&apos;s donations to us for most of our expenses, which we are grateful for and which allow us not to spend too much energy worrying about funding. &lt;/p&gt;&lt;p&gt;Our service and software are free for everyone to use, communicate, and learn, but you must comply with local laws and regulations in the process of your use, otherwise any problems have nothing to do with us. &lt;/p&gt;&lt;p&gt;If any part of the store infringes your rights, please tell us &amp;lt;jifengshenmo@outlook.com&amp;gt; we will remove the infringing content as soon as possible. &lt;/p&gt;&lt;p&gt;If you&apos;d like to get involved with us too, whether you&apos;re involved in development, design, pitching or submitting work, we welcome you to join us. &lt;/p&gt;&lt;p&gt;QQ group:872690351&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source></source>
<translatorcomment>Video Players and Video Makers</translatorcomment>
<translation type="vanished">Video</translation>
</message>
<message>
<source></source>
<translation type="vanished">Download list</translation>
</message>
<message>
<source></source>
<translation type="vanished">Tools</translation>
</message>
<message>
<source></source>
<translatorcomment>Icon theme and other </translatorcomment>
<translation type="vanished">Themes</translation>
</message>
<message>
<source></source>
<translation type="vanished">Music</translation>
</message>
<message> <message>
<location filename="../widget.ui" line="114"/> <location filename="../widget.ui" line="114"/>
<source>icon</source> <source>icon</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source></source>
<translation type="vanished">Development</translation>
</message>
<message>
<source></source>
<translation type="vanished">Office</translation>
</message>
<message>
<source></source>
<translation type="vanished">Translate</translation>
</message>
<message>
<source></source>
<translation type="vanished">Others</translation>
</message>
<message>
<source></source>
<translation type="vanished">Home</translation>
</message>
<message>
<source></source>
<translation type="vanished">Images</translation>
</message>
<message>
<source></source>
<translation type="vanished">Games</translation>
</message>
<message>
<source></source>
<translation type="vanished">Chat</translation>
</message>
<message>
<source></source>
<translation type="obsolete">Network</translation>
</message>
<message> <message>
<location filename="../widget.ui" line="339"/> <location filename="../widget.ui" line="339"/>
<source>about:blank</source> <source>about:blank</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source></source>
<translation type="vanished">The Download list is empty</translation>
</message>
<message>
<location filename="../widget.ui" line="412"/>
<source></source>
<translation>Open in File Manager</translation>
</message>
<message>
<source></source>
<translation type="vanished">Install</translation>
</message>
<message>
<source></source>
<translation type="vanished">Remove</translation>
</message>
<message>
<source></source>
<translation type="vanished">Site</translation>
</message>
<message>
<source></source>
<translation type="vanished">Name</translation>
</message>
<message> <message>
<location filename="../widget.ui" line="498"/> <location filename="../widget.ui" line="498"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source></source>
<translation type="vanished">Icon</translation>
</message>
<message>
<source></source>
<translation type="vanished">Share</translation>
</message>
<message> <message>
<location filename="../widget.ui" line="797"/> <location filename="../widget.ui" line="797"/>
<source>TextLabel</source> <source>TextLabel</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source></source>
<translation type="obsolete">Details</translation>
</message>
<message>
<location filename="../widget.ui" line="883"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;software store developed by community enthusiasts&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source></source>
<translation type="vanished">Screen Shots</translation>
</message>
<message>
<source>线</source>
<translation type="vanished">Line Settings</translation>
</message>
<message>
<source>线</source>
<translation type="obsolete">Choose</translation>
</message>
<message>
<source></source>
<translation type="vanished">Update</translation>
</message>
<message>
<source> </source>
<translation type="vanished">Restart to take effect</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;使apt工具获取软件使线&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="obsolete">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The role of the source server is to ensure that the software is updated, and supports the use of the apt tool to get the software. We usually prefer that you use the first line as the update source, which is generally the most stable. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source></source>
<translation type="vanished">Update APT Source</translation>
</message>
<message>
<source></source>
<translation type="obsolete">APT Source</translation>
</message>
<message>
<source></source>
<translation type="obsolete">server</translation>
</message>
<message>
<source></source>
<translation type="vanished">Temp</translation>
</message>
<message>
<source></source>
<translation type="vanished">Clean</translation>
</message>
<message>
<source>/tmp下使</source>
<translation type="vanished">Since the dictionary is at /tmp,It would be cleaned automatically when system reboot.</translation>
</message>
<message>
<source></source>
<translation type="obsolete">Size: </translation>
</message>
<message> <message>
<location filename="../widget.ui" line="1277"/> <location filename="../widget.ui" line="1277"/>
<source>0B</source> <source>0B</source>
<translation type="unfinished">0B</translation> <translation type="unfinished">0B</translation>
</message> </message>
<message> <message>
<source>/tmp/spark-store</source> <location filename="../widget.cpp" line="145"/>
<translation type="obsolete">Location:/tmp/spark-store</translation> <source>Spark Store</source>
<translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source></source> <location filename="../widget.cpp" line="146"/>
<translation type="obsolete">About us</translation> <source>Search or enter spk://</source>
<translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Linux/deepin系统爱好者和用户之中的一员Spark应用商店&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;使使&lt;/p&gt;&lt;p&gt;&amp;lt;jifengshenmo@outlook.com&amp;gt;&lt;/p&gt;&lt;p&gt;稿&lt;/p&gt;&lt;p&gt;QQ872690351&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <location filename="../widget.cpp" line="152"/>
<translation type="obsolete">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;We are not the official team, just like you, we are just one of the many Linux/deepin system enthusiasts and users, we develop and run the &quot;Spark Store&quot;! &quot;, is to bring the community together to share useful software, or to participate in development together, so that we all use the latest and greatest software. &lt;/p&gt;&lt;p&gt; We don&apos;t make a profit from this, all developers and maintainers don&apos;t get paid, and we rely on the community&apos;s donations to us for most of our expenses, which we are grateful for and which allow us not to spend too much energy worrying about funding. &lt;/p&gt;&lt;p&gt;Our service and software are free for everyone to use, communicate, and learn, but you must comply with local laws and regulations in the process of your use, otherwise any problems have nothing to do with us. &lt;/p&gt;&lt;p&gt;If any part of the store infringes your rights, please tell us &amp;lt;jifengshenmo@outlook.com&amp;gt; we will remove the infringing content as soon as possible. &lt;/p&gt;&lt;p&gt;If you&apos;d like to get involved with us too, whether you&apos;re involved in development, design, pitching or submitting work, we welcome you to join us. &lt;/p&gt;&lt;p&gt;QQ group:872690351&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation> <source>Submit App</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.cpp" line="153"/>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.cpp" line="245"/>
<source>Not Exist</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.cpp" line="297"/>
<location filename="../widget.cpp" line="305"/>
<source>Spark\ Store</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.cpp" line="478"/>
<source>Failed to download app info. Please check internet connection.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.cpp" line="508"/>
<source>PkgName: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.cpp" line="509"/>
<source>Version: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.cpp" line="511"/>
<source>Author: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.cpp" line="515"/>
<source>Official Site: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.cpp" line="519"/>
<source>Contributor: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.cpp" line="520"/>
<source>Update Time: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.cpp" line="521"/>
<source>Installed Size: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.cpp" line="530"/>
<location filename="../widget.cpp" line="637"/>
<source>Reinstall</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.cpp" line="566"/>
<source>Failed to load application icon.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.cpp" line="612"/>
<source>Failed to get the name to the file to be downloaded.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.cpp" line="660"/>
<source>Spark store could only process spk:// links for now. The search feature is coming soon!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.cpp" line="780"/>
<source>Updating, please wait...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.cpp" line="809"/>
<source>Apt has reported an error. Please use apt update in terminal to locate the problem.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.cpp" line="812"/>
<source>Unknown server error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.cpp" line="832"/>
<source>Uninstall succeeded</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.cpp" line="846"/>
<source>Temporary cache was cleaned</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.cpp" line="913"/>
<source>The URL has been copied to the clipboard</source>
<translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>
@ -543,25 +530,69 @@ We born for change.</translation>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source></source> <location filename="../downloadlist.cpp" line="24"/>
<translation type="vanished">Name</translation> <source>dpkg</source>
<translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source></source> <location filename="../downloadlist.cpp" line="25"/>
<translatorcomment>Wait to download</translatorcomment> <source>gdebi</source>
<translation type="vanished">Wait to download</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source></source> <location filename="../downloadlist.cpp" line="26"/>
<translation type="vanished">Install</translation> <source>deepin deb installer</source>
<translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source></source> <location filename="../downloadlist.cpp" line="55"/>
<translation type="vanished">Cancel</translation> <source>Downloaded, waiting to install</source>
<translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source></source> <location filename="../downloadlist.cpp" line="80"/>
<translation type="vanished">Detail</translation> <source>Failed to download %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../downloadlist.cpp" line="82"/>
<source>Download FailedCheck Your Connection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../downloadlist.cpp" line="92"/>
<source>Finished downloading %1, awaiting to install</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../downloadlist.cpp" line="125"/>
<source>Installing...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../downloadlist.cpp" line="172"/>
<source>Finish</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../downloadlist.cpp" line="176"/>
<source>Retry</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../downloadlist.cpp" line="177"/>
<source>Error happened in dpkg progress , you can try it again</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../downloadlist.cpp" line="181"/>
<source>dpkg progress had been abortedyou can retry installation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../downloadlist.cpp" line="203"/>
<source>Download canceled</source>
<translation type="unfinished"></translation>
</message> </message>
</context> </context>
</TS> </TS>

View File

@ -5,10 +5,39 @@
<name>QLabel</name> <name>QLabel</name>
<message> <message>
<location filename="../main.cpp" line="22"/> <location filename="../main.cpp" line="22"/>
<location filename="../main.cpp" line="28"/> <location filename="../main.cpp" line="30"/>
<source>Spark Store</source> <source>Spark Store</source>
<translation>Spark </translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main.cpp" line="16"/>
<source>We publish this program under GPL V3</source>
<translation>GPL v3开源</translation>
</message>
<message>
<location filename="../main.cpp" line="17"/>
<source>Version 2.0+2</source>
<translation> 2.0+2</translation>
</message>
<message>
<location filename="../main.cpp" line="19"/>
<location filename="../main.cpp" line="20"/>
<source>https://gitee.com/deepin-community-store/spark-store</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../main.cpp" line="24"/>
<source>&lt;span style=&apos; font-size:10pt;font-weight:60;&apos;&gt;An appstore powered by deepin community&lt;/span&gt;&lt;br/&gt;&lt;a href=&apos;https://www.spark-app.store/&apos;&gt;https://www.spark-app.store&lt;/a&gt;&lt;br/&gt;&lt;span style=&apos; font-size:12pt;&apos;&gt;Spark developers&lt;/span&gt;</source>
<translation>&lt;span style=&apos; font-size:10pt;font-weight:60;&apos;&gt; Deepin &lt;/span&gt;&lt;br/&gt;&lt;a href=&apos;https://www.spark-app.store/&apos;&gt;https://www.spark-app.store&lt;/a&gt;&lt;br/&gt;&lt;span style=&apos; font-size:12pt;&apos;&gt;Spark developers&lt;/span&gt;</translation>
</message>
<message>
<location filename="../main.cpp" line="32"/>
<source>The Spark Project</source>
<translation></translation>
</message>
</context> </context>
<context> <context>
<name>Widget</name> <name>Widget</name>
@ -25,87 +54,82 @@
<message> <message>
<location filename="../widget.ui" line="67"/> <location filename="../widget.ui" line="67"/>
<source>Videos</source> <source>Videos</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="74"/> <location filename="../widget.ui" line="74"/>
<source>Download List</source> <source>Download List</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="81"/> <location filename="../widget.ui" line="81"/>
<source>Tools</source> <source>Tools</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="88"/> <location filename="../widget.ui" line="88"/>
<source>Beautify</source> <source>Beautify</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="95"/> <location filename="../widget.ui" line="95"/>
<source>Music</source> <source>Music</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="153"/> <location filename="../widget.ui" line="153"/>
<source>Coding</source> <source>Coding</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="160"/> <location filename="../widget.ui" line="160"/>
<source>Office</source> <source>Office</source>
<translation type="unfinished"></translation> <translation></translation>
</message>
<message>
<location filename="../widget.ui" line="173"/>
<source></source>
<translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="200"/> <location filename="../widget.ui" line="200"/>
<source>Translate</source> <source>Translate</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="207"/> <location filename="../widget.ui" line="207"/>
<source>Others</source> <source>Others</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="217"/> <location filename="../widget.ui" line="217"/>
<source>FrontPage</source> <source>FrontPage</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="224"/> <location filename="../widget.ui" line="224"/>
<source>Images</source> <source>Images</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="231"/> <location filename="../widget.ui" line="231"/>
<source>Games</source> <source>Games</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="238"/> <location filename="../widget.ui" line="238"/>
<source>Chatting</source> <source>Chatting</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="245"/> <location filename="../widget.ui" line="245"/>
<source>Network</source> <source>Network</source>
<translation type="unfinished"></translation> <translation></translation>
</message>
<message>
<location filename="../widget.ui" line="290"/>
<source></source>
<translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="380"/> <location filename="../widget.ui" line="380"/>
<source>The List is empty now.Go and Download some software!</source> <source>The list is currently empty. Go and download some softwares!</source>
<translation type="unfinished"></translation> <translation></translation>
</message>
<message>
<location filename="../widget.ui" line="412"/>
<source>Open download directory</source>
<translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="486"/> <location filename="../widget.ui" line="486"/>
@ -119,18 +143,19 @@
</message> </message>
<message> <message>
<location filename="../widget.ui" line="584"/> <location filename="../widget.ui" line="584"/>
<location filename="../widget.cpp" line="534"/>
<source>Install</source> <source>Install</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="620"/> <location filename="../widget.ui" line="620"/>
<source>Uninstall</source> <source>Uninstall</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="636"/> <location filename="../widget.ui" line="636"/>
<source>Site</source> <source>Site</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="702"/> <location filename="../widget.ui" line="702"/>
@ -149,11 +174,6 @@
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Capable to Ubuntu 20.04&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Capable to Ubuntu 20.04&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../widget.ui" line="727"/>
<source>UB</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location filename="../widget.ui" line="740"/> <location filename="../widget.ui" line="740"/>
<location filename="../widget.ui" line="743"/> <location filename="../widget.ui" line="743"/>
@ -171,11 +191,6 @@
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Capable to UOS home 20&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Capable to UOS home 20&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../widget.ui" line="765"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;img src=&quot;:/tags/uos.svg&quot;/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location filename="../widget.ui" line="778"/> <location filename="../widget.ui" line="778"/>
<location filename="../widget.ui" line="781"/> <location filename="../widget.ui" line="781"/>
@ -212,52 +227,57 @@
<message> <message>
<location filename="../widget.ui" line="858"/> <location filename="../widget.ui" line="858"/>
<source>Share</source> <source>Share</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="876"/> <location filename="../widget.ui" line="876"/>
<source>Info</source> <source>Info</source>
<translation type="unfinished"></translation> <translation></translation>
</message>
<message>
<location filename="../widget.ui" line="883"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;An app store developed by community enthusiasts&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="922"/> <location filename="../widget.ui" line="922"/>
<source>ScreenShots</source> <source>Screenshots</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="1085"/> <location filename="../widget.ui" line="1085"/>
<source>Line Settings</source> <source>Line Settings</source>
<translation type="unfinished"></translation> <translation>线</translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="1101"/> <location filename="../widget.ui" line="1101"/>
<source>Choose Line:</source> <source>Choose Line:</source>
<translation type="unfinished"></translation> <translation>线</translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="1124"/> <location filename="../widget.ui" line="1124"/>
<source>Refresh</source> <source>Refresh</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="1137"/> <location filename="../widget.ui" line="1137"/>
<source>Take effect when restart </source> <source>Take effect when restart </source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="1166"/> <location filename="../widget.ui" line="1166"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The role of the source server is to ensure that the software is updated, and supports the use of the apt tool to get the software. We usually prefer that you use the first line as the update source, which is generally the most stable. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The role of the source server is to ensure that the software is updated, and supports the use of the apt tool to get the software. We usually prefer that you use the first line as the update source, which is generally the most stable. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation> <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;使apt工具获取软件使线&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="1176"/> <location filename="../widget.ui" line="1176"/>
<source>Update</source> <source>Update</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="1183"/> <location filename="../widget.ui" line="1183"/>
<source>Source Server</source> <source>Source Server</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="1203"/> <location filename="../widget.ui" line="1203"/>
@ -267,37 +287,37 @@
<message> <message>
<location filename="../widget.ui" line="1224"/> <location filename="../widget.ui" line="1224"/>
<source>Temp</source> <source>Temp</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="1247"/> <location filename="../widget.ui" line="1247"/>
<source>Clean</source> <source>Clean</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="1257"/> <location filename="../widget.ui" line="1257"/>
<source>Since the dictionary is at /tmp,It would be cleaned automatically when system reboot.</source> <source>Since the dictionary is at /tmp,It would be cleaned automatically when system reboot.</source>
<translation type="unfinished"></translation> <translation>/tmp下使</translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="1270"/> <location filename="../widget.ui" line="1270"/>
<source>Size:</source> <source>Size:</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="1284"/> <location filename="../widget.ui" line="1284"/>
<source>Location/tmp/spark-store</source> <source>Location/tmp/spark-store</source>
<translation type="unfinished"></translation> <translation>/tmp/spark-store</translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="1305"/> <location filename="../widget.ui" line="1305"/>
<source>About us</source> <source>About us</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="1312"/> <location filename="../widget.ui" line="1312"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;We are &lt;span style=&quot; font-weight:600;&quot;&gt;NOT&lt;/span&gt; the official team, just like you, we are just one of the many Linux/deepin system enthusiasts and users, we develop and run the &amp;quot;Spark Store&amp;quot;! &amp;quot;, is to bring the community together to share useful software, or to participate in development together, so that we all use the latest and greatest software. &lt;/p&gt;&lt;p&gt;We don&apos;t make a profit from this, all developers and maintainers don&apos;t get paid, and we rely on the community&apos;s donations to us for most of our expenses, which we are grateful for and which allow us not to spend too much energy worrying about funding. &lt;/p&gt;&lt;p&gt;Our service and software are free for everyone to use, communicate, and learn, but you must comply with local laws and regulations in the process of your use, otherwise any problems have nothing to do with us. &lt;/p&gt;&lt;p&gt;If any part of the store infringes your rights, please tell us &amp;lt;jifengshenmo@outlook.com&amp;gt; we will remove the infringing content as soon as possible. &lt;/p&gt;&lt;p&gt;If you&apos;d like to get involved with us too, whether you&apos;re involved in development, design, pitching or submitting work, we welcome you to join us. &lt;/p&gt;&lt;p&gt;QQ group:872690351&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;We are &lt;span style=&quot; font-weight:600;&quot;&gt;NOT&lt;/span&gt; the official team, just like you, we are just one of the many Linux/deepin system enthusiasts and users, we develop and run the &amp;quot;Spark Store&amp;quot;! &amp;quot;, is to bring the community together to share useful software, or to participate in development together, so that we all use the latest and greatest software. &lt;/p&gt;&lt;p&gt;We don&apos;t make a profit from this, all developers and maintainers don&apos;t get paid, and we rely on the community&apos;s donations to us for most of our expenses, which we are grateful for and which allow us not to spend too much energy worrying about funding. &lt;/p&gt;&lt;p&gt;Our service and software are free for everyone to use, communicate, and learn, but you must comply with local laws and regulations in the process of your use, otherwise any problems have nothing to do with us. &lt;/p&gt;&lt;p&gt;If any part of the store infringes your rights, please tell us &amp;lt;jifengshenmo@outlook.com&amp;gt; we will remove the infringing content as soon as possible. &lt;/p&gt;&lt;p&gt;If you&apos;d like to get involved with us too, whether you&apos;re involved in development, design, pitching or submitting work, we welcome you to join us. &lt;/p&gt;&lt;p&gt;QQ group:872690351&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation> <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;&lt;/span&gt;Linux/deepinSpark&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;使使&lt;/p&gt;&lt;p&gt; &amp;lt;jifengshenmo@outlook.com&amp;gt;&lt;/p&gt;&lt;p&gt;稿&lt;/p&gt;&lt;p&gt;QQ 872690351&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="114"/> <location filename="../widget.ui" line="114"/>
@ -305,13 +325,18 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="339"/> <location filename="../widget.ui" line="173"/>
<source>about:blank</source> <source>Back to category</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="412"/> <location filename="../widget.ui" line="290"/>
<source></source> <source>Reload</source>
<translation></translation>
</message>
<message>
<location filename="../widget.ui" line="339"/>
<source>about:blank</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -320,13 +345,18 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="797"/> <location filename="../widget.ui" line="727"/>
<source>TextLabel</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;img src=&quot;:/tags/ubuntu-small.png&quot;/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../widget.ui" line="883"/> <location filename="../widget.ui" line="765"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;img src=&quot;:/tags/uos-small.png&quot;/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../widget.ui" line="797"/>
<source>TextLabel</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -334,18 +364,140 @@
<source>0B</source> <source>0B</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../widget.cpp" line="145"/>
<source>Spark Store</source>
<translation>Spark </translation>
</message>
<message>
<location filename="../widget.cpp" line="146"/>
<source>Search or enter spk://</source>
<translation></translation>
</message>
<message>
<location filename="../widget.cpp" line="152"/>
<source>Submit App</source>
<translation>稿</translation>
</message>
<message>
<location filename="../widget.cpp" line="153"/>
<source>Settings</source>
<translation></translation>
</message>
<message>
<location filename="../widget.cpp" line="245"/>
<source>Not Exist</source>
<translation></translation>
</message>
<message>
<location filename="../widget.cpp" line="297"/>
<location filename="../widget.cpp" line="305"/>
<source>Spark\ Store</source>
<translation></translation>
</message>
<message>
<location filename="../widget.cpp" line="478"/>
<source>Failed to download app info. Please check internet connection.</source>
<translation></translation>
</message>
<message>
<location filename="../widget.cpp" line="508"/>
<source>PkgName: </source>
<translation></translation>
</message>
<message>
<location filename="../widget.cpp" line="509"/>
<source>Version: </source>
<translation></translation>
</message>
<message>
<location filename="../widget.cpp" line="511"/>
<source>Author: </source>
<translation></translation>
</message>
<message>
<location filename="../widget.cpp" line="515"/>
<source>Official Site: </source>
<translation></translation>
</message>
<message>
<location filename="../widget.cpp" line="519"/>
<source>Contributor: </source>
<translation>稿</translation>
</message>
<message>
<location filename="../widget.cpp" line="520"/>
<source>Update Time: </source>
<translation></translation>
</message>
<message>
<location filename="../widget.cpp" line="521"/>
<source>Installed Size: </source>
<translation></translation>
</message>
<message>
<location filename="../widget.cpp" line="530"/>
<location filename="../widget.cpp" line="637"/>
<source>Reinstall</source>
<translation></translation>
</message>
<message>
<location filename="../widget.cpp" line="566"/>
<source>Failed to load application icon.</source>
<translation></translation>
</message>
<message>
<location filename="../widget.cpp" line="612"/>
<source>Failed to get the name to the file to be downloaded.</source>
<translation></translation>
</message>
<message>
<location filename="../widget.cpp" line="660"/>
<source>Spark store could only process spk:// links for now. The search feature is coming soon!</source>
<translation></translation>
</message>
<message>
<location filename="../widget.cpp" line="780"/>
<source>Updating, please wait...</source>
<translation></translation>
</message>
<message>
<location filename="../widget.cpp" line="809"/>
<source>Apt has reported an error. Please use apt update in terminal to locate the problem.</source>
<translation>使apt update来查看错误原因</translation>
</message>
<message>
<location filename="../widget.cpp" line="812"/>
<source>Unknown server error!</source>
<translation></translation>
</message>
<message>
<location filename="../widget.cpp" line="832"/>
<source>Uninstall succeeded</source>
<translation></translation>
</message>
<message>
<location filename="../widget.cpp" line="846"/>
<source>Temporary cache was cleaned</source>
<translation></translation>
</message>
<message>
<location filename="../widget.cpp" line="913"/>
<source>The URL has been copied to the clipboard</source>
<translation></translation>
</message>
</context> </context>
<context> <context>
<name>downloadlist</name> <name>downloadlist</name>
<message> <message>
<location filename="../downloadlist.ui" line="20"/> <location filename="../downloadlist.ui" line="20"/>
<source>Form</source> <source>Form</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../downloadlist.ui" line="50"/> <location filename="../downloadlist.ui" line="50"/>
<source>icon</source> <source>icon</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../downloadlist.ui" line="82"/> <location filename="../downloadlist.ui" line="82"/>
@ -360,22 +512,87 @@
<message> <message>
<location filename="../downloadlist.ui" line="189"/> <location filename="../downloadlist.ui" line="189"/>
<source>Waiting to download</source> <source>Waiting to download</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../downloadlist.ui" line="240"/> <location filename="../downloadlist.ui" line="240"/>
<source>Install</source> <source>Install</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../downloadlist.ui" line="259"/> <location filename="../downloadlist.ui" line="259"/>
<source>Cancel</source> <source>Cancel</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../downloadlist.ui" line="278"/> <location filename="../downloadlist.ui" line="278"/>
<source>Info</source> <source>Info</source>
<translation></translation>
</message>
<message>
<location filename="../downloadlist.cpp" line="24"/>
<source>dpkg</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../downloadlist.cpp" line="25"/>
<source>gdebi</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../downloadlist.cpp" line="26"/>
<source>deepin deb installer</source>
<translation></translation>
</message>
<message>
<location filename="../downloadlist.cpp" line="55"/>
<source>Downloaded, waiting to install</source>
<translation></translation>
</message>
<message>
<location filename="../downloadlist.cpp" line="80"/>
<source>Failed to download %1</source>
<translation> %1 </translation>
</message>
<message>
<location filename="../downloadlist.cpp" line="82"/>
<source>Download FailedCheck Your Connection</source>
<translation></translation>
</message>
<message>
<location filename="../downloadlist.cpp" line="92"/>
<source>Finished downloading %1, awaiting to install</source>
<translation>%1 </translation>
</message>
<message>
<location filename="../downloadlist.cpp" line="125"/>
<source>Installing...</source>
<translation></translation>
</message>
<message>
<location filename="../downloadlist.cpp" line="172"/>
<source>Finish</source>
<translation></translation>
</message>
<message>
<location filename="../downloadlist.cpp" line="176"/>
<source>Retry</source>
<translation></translation>
</message>
<message>
<location filename="../downloadlist.cpp" line="177"/>
<source>Error happened in dpkg progress , you can try it again</source>
<translation>dpkg出现错误</translation>
</message>
<message>
<location filename="../downloadlist.cpp" line="181"/>
<source>dpkg progress had been abortedyou can retry installation</source>
<translation>dpkg </translation>
</message>
<message>
<location filename="../downloadlist.cpp" line="203"/>
<source>Download canceled</source>
<translation></translation>
</message>
</context> </context>
</TS> </TS>

View File

@ -142,15 +142,15 @@ void Widget::initUI()
titlebar=ui->titlebar; titlebar=ui->titlebar;
titlebar->setCustomWidget(w_titlebar); titlebar->setCustomWidget(w_titlebar);
// titlebar->setIcon(QIcon::fromTheme("spark-store")); // titlebar->setIcon(QIcon::fromTheme("spark-store"));
titlebar->setTitle(QObject::tr("Spark Store")); titlebar->setTitle(tr("Spark Store"));
searchEdit->setPlaceholderText(QObject::tr("Search or enter spk://")); searchEdit->setPlaceholderText(tr("Search or enter spk://"));
searchEdit->setFixedWidth(300); searchEdit->setFixedWidth(300);
titlebar->setSeparatorVisible(false); titlebar->setSeparatorVisible(false);
// titlebar->setAutoHideOnFullscreen(true); // titlebar->setAutoHideOnFullscreen(true);
// 添加菜单项 // 添加菜单项
QAction *actionSubmission = new QAction(QObject::tr("Submit App"), this); QAction *actionSubmission = new QAction(tr("Submit App"), this);
QAction *setting=new QAction(QObject::tr("Settings")); QAction *setting=new QAction(tr("Settings"));
QMenu *menu=new QMenu; QMenu *menu=new QMenu;
@ -242,7 +242,7 @@ void Widget::initConfig()
if(aptserver.isOpen()){ if(aptserver.isOpen()){
ui->label_aptserver->setText(aptserver.readAll()); ui->label_aptserver->setText(aptserver.readAll());
}else { }else {
ui->label_aptserver->setText(QObject::tr("Not Exist")); ui->label_aptserver->setText(tr("Not Exist"));
} }
aptserver.close(); aptserver.close();
@ -288,7 +288,23 @@ void Widget::setTheme(bool isDark,QColor color)
DTitlebar* Widget::getTitlebar() DTitlebar* Widget::getTitlebar()
{ {
return ui->titlebar; return ui->titlebar;
}
void Widget::sendNotification(const QString &message, const int msTimeout, const QString &icon)
{
system((QString("notify-send --icon=%1 --expire-time=%2 --app-name=").arg(icon).arg(msTimeout) +
tr("Spark\\ Store") +
" '" + message + "'"
).toUtf8());
}
void Widget::sendNotification(const char *message, const int msTimeout, const QString &icon)
{
system((QString("notify-send --icon=%1 --expire-time=%2 --app-name=").arg(icon).arg(msTimeout) +
tr("Spark\\ Store") +
" '" + message + "'"
).toUtf8());
} }
void Widget::updateUI() void Widget::updateUI()
@ -458,7 +474,9 @@ int Widget::loadappinfo(QUrl arg1)
get_json.start("curl -o app.json "+arg1.toString()); get_json.start("curl -o app.json "+arg1.toString());
get_json.waitForFinished(); get_json.waitForFinished();
if(get_json.exitCode()) if(get_json.exitCode())
return 2; {
sendNotification(tr("Failed to download app info. Please check internet connection."));
}
QFile app_json("app.json"); QFile app_json("app.json");
if(app_json.open(QIODevice::ReadOnly)){ if(app_json.open(QIODevice::ReadOnly)){
@ -487,20 +505,20 @@ int Widget::loadappinfo(QUrl arg1)
ui->label_show->show(); ui->label_show->show();
// 软件信息加载 // 软件信息加载
QString info; QString info;
info= QObject::tr("PkgName ")+json["Pkgname"].toString()+"\n"; info= tr("PkgName: ")+json["Pkgname"].toString()+"\n";
info+=QObject::tr("Version ")+json["Version"].toString()+"\n"; info+=tr("Version: ")+json["Version"].toString()+"\n";
if(json["Author"].toString()!="" && json["Author"].toString()!=" "){ if(json["Author"].toString()!="" && json["Author"].toString()!=" "){
info+=QObject::tr("Author ")+json["Author"].toString()+"\n"; info+=tr("Author: ")+json["Author"].toString()+"\n";
} }
if(json["Website"].toString()!="" && json["Website"].toString()!=" "){ if(json["Website"].toString()!="" && json["Website"].toString()!=" "){
info+=QObject::tr("Official Site ")+json["Website"].toString()+"\n"; info+=tr("Official Site: ")+json["Website"].toString()+"\n";
ui->pushButton_website->show(); ui->pushButton_website->show();
appweb=json["Website"].toString(); appweb=json["Website"].toString();
} }
info+=QObject::tr("Contributor ")+json["Contributor"].toString()+"\n"; info+=tr("Contributor: ")+json["Contributor"].toString()+"\n";
info+=QObject::tr("Update Time ")+json["Update"].toString()+"\n"; info+=tr("Update Time: ")+json["Update"].toString()+"\n";
info+=QObject::tr("Installed Size ")+json["Size"].toString()+"\n"; info+=tr("Installed Size: ")+json["Size"].toString()+"\n";
ui->label_info->setText(info); ui->label_info->setText(info);
ui->label_more->setText(json["More"].toString()); ui->label_more->setText(json["More"].toString());
QProcess isInstall; QProcess isInstall;
@ -509,11 +527,11 @@ int Widget::loadappinfo(QUrl arg1)
isInstall.waitForFinished(); isInstall.waitForFinished();
int error=QString::fromStdString(isInstall.readAllStandardError().toStdString()).length(); int error=QString::fromStdString(isInstall.readAllStandardError().toStdString()).length();
if(error==0){ if(error==0){
ui->pushButton_download->setText(QObject::tr("Reinstall")); ui->pushButton_download->setText(tr("Reinstall"));
ui->pushButton_uninstall->show(); ui->pushButton_uninstall->show();
}else { }else {
ui->pushButton_download->setText(QObject::tr("Install")); ui->pushButton_download->setText(tr("Install"));
} }
//tag加载 //tag加载
QString tags=json["Tags"].toString(); QString tags=json["Tags"].toString();
@ -545,7 +563,7 @@ int Widget::loadappinfo(QUrl arg1)
ui->pushButton_download->setEnabled(true); ui->pushButton_download->setEnabled(true);
} }
else else
system("notify-send Failed to load App icon --icon=spark-store");//这一句怎么翻译? sendNotification(tr("Failed to load application icon."));
// 截图展示加载 // 截图展示加载
@ -591,7 +609,7 @@ void Widget::on_pushButton_download_clicked()
download_list[allDownload-1].pkgName=pkgName; download_list[allDownload-1].pkgName=pkgName;
if(fileName.isEmpty()) if(fileName.isEmpty())
{ {
system("notify-send Failed to get file name --icon=spark-store");//??这玩意怎么翻译 sendNotification(tr("Failed to get the name to the file to be downloaded."));
return; return;
} }
download_list[allDownload-1].setParent(ui->listWidget); download_list[allDownload-1].setParent(ui->listWidget);
@ -616,7 +634,7 @@ void Widget::on_pushButton_download_clicked()
nowDownload+=1; nowDownload+=1;
startRequest(urList.at(nowDownload-1)); // 进行链接请求 startRequest(urList.at(nowDownload-1)); // 进行链接请求
} }
if(ui->pushButton_download->text()==QObject::tr("Reinstall")){ if(ui->pushButton_download->text()==tr("Reinstall")){
download_list[allDownload-1].reinstall=true; download_list[allDownload-1].reinstall=true;
} }
} }
@ -639,7 +657,7 @@ void Widget::searchApp(QString text)
if(text.left(6)=="spk://"){ if(text.left(6)=="spk://"){
openUrl(text); openUrl(text);
}else { }else {
system("notify-send The store can only process spk:// url now.Please look forward to later version! --icon=spark-store"); sendNotification(tr("Spark store could only process spk:// links for now. The search feature is coming soon!"));
// ui->webView->setUrl(QUrl("http://www.baidu.com/s?wd="+text));//这东西对接百度 // ui->webView->setUrl(QUrl("http://www.baidu.com/s?wd="+text));//这东西对接百度
// ui->stackedWidget->setCurrentIndex(0); // ui->stackedWidget->setCurrentIndex(0);
} }
@ -759,7 +777,7 @@ void Widget::on_pushButton_updateApt_clicked()
{ {
QtConcurrent::run([=](){ QtConcurrent::run([=](){
ui->pushButton_updateApt->setEnabled(false); ui->pushButton_updateApt->setEnabled(false);
ui->label_aptserver->setText(QObject::tr("Updating,PLease wait")); ui->label_aptserver->setText(tr("Updating, please wait..."));
std::fstream sourcesList; std::fstream sourcesList;
QDir tmpdir("/tmp"); QDir tmpdir("/tmp");
tmpdir.mkpath("spark-store"); tmpdir.mkpath("spark-store");
@ -788,10 +806,10 @@ void Widget::on_pushButton_updateApt_clicked()
if(!haveError){ if(!haveError){
ui->label_aptserver->setText("deb [by-hash=force] "+ui->comboBox_server->currentText().toUtf8()+" /"); ui->label_aptserver->setText("deb [by-hash=force] "+ui->comboBox_server->currentText().toUtf8()+" /");
}else { }else {
ui->label_aptserver->setText(QObject::tr("An error occured during the apt process.Please use apt update in terminal to locate problem")); ui->label_aptserver->setText(tr("Apt has reported an error. Please use apt update in terminal to locate the problem."));
} }
}else { }else {
ui->label_aptserver->setText(QObject::tr("Unknwon server error!")); ui->label_aptserver->setText(tr("Unknown server error!"));
} }
ui->pushButton_updateApt->setEnabled(true); ui->pushButton_updateApt->setEnabled(true);
@ -811,7 +829,7 @@ void Widget::on_pushButton_uninstall_clicked()
ui->pushButton_uninstall->hide(); ui->pushButton_uninstall->hide();
ui->pushButton_uninstall->setEnabled(true); ui->pushButton_uninstall->setEnabled(true);
updatesEnabled(); updatesEnabled();
system("notify-send Uninstall Successed --icon=spark-store"); sendNotification(tr("Uninstall succeeded"));
}); });
} }
@ -825,7 +843,7 @@ void Widget::on_pushButton_clear_clicked() // 清空临时缓存目录
for (int i=0;i<quantity;i++) { for (int i=0;i<quantity;i++) {
tmpdir.remove(tmpdir[i]); tmpdir.remove(tmpdir[i]);
} }
system("notify-send Temp cleaned --icon=spark-store"); sendNotification(tr("Temporary cache was cleaned"));
ui->pushButton_clear->setEnabled(true); ui->pushButton_clear->setEnabled(true);
Widget::opensetting(); Widget::opensetting();
}); });
@ -891,8 +909,8 @@ void Widget::on_pushButton_clicked()
share_url="spk://store/"+type_name+"/"+pkgName; share_url="spk://store/"+type_name+"/"+pkgName;
qDebug()<<"Share"<<share_url; qDebug()<<"Share"<<share_url;
QClipboard *clipboard=QApplication::clipboard(); QClipboard *clipboard=QApplication::clipboard();
system("notify-send The url has already been copied to the clipboard --icon=spark-store");
clipboard->setText(share_url); clipboard->setText(share_url);
sendNotification(tr("The URL has been copied to the clipboard"));
} }
void Widget::on_btn_openDir_clicked() void Widget::on_btn_openDir_clicked()
@ -933,19 +951,6 @@ void Widget::on_webEngineView_urlChanged(const QUrl &arg1)
load = QtConcurrent::run([=](){ load = QtConcurrent::run([=](){
int loadresult = loadappinfo(arg1); int loadresult = loadappinfo(arg1);
if(!loadresult)
return;
else {
switch(loadresult)
{
case 1: // 空的arg1
//此处不应通知用户
break;
case 2: // curl下载app.json失败
system("notify-send Failed to get app infoPlease Check your connection to Internet --icon=spark-store");
break;
}
}
}); });
} }
} }

View File

@ -47,6 +47,9 @@ public:
void setTheme(bool,QColor); void setTheme(bool,QColor);
DTitlebar* getTitlebar(); DTitlebar* getTitlebar();
static void sendNotification(const QString &message, const int msTimeout = 5000, const QString &icon = "spark-store");
static void sendNotification(const char *message, const int msTimeout = 5000, const QString &icon = "spark-store");
private slots: private slots:
void httpFinished(); void httpFinished();

View File

@ -170,7 +170,7 @@
</size> </size>
</property> </property>
<property name="toolTip"> <property name="toolTip">
<string>回到分类</string> <string>Back to category</string>
</property> </property>
<property name="text"> <property name="text">
<string/> <string/>
@ -287,7 +287,7 @@
</size> </size>
</property> </property>
<property name="toolTip"> <property name="toolTip">
<string>重新加载</string> <string>Reload</string>
</property> </property>
<property name="text"> <property name="text">
<string/> <string/>
@ -377,7 +377,7 @@
<number>0</number> <number>0</number>
</property> </property>
<property name="text"> <property name="text">
<string>The List is empty now.Go and Download some software!</string> <string>The list is currently empty. Go and download some softwares!</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignCenter</set> <set>Qt::AlignCenter</set>
@ -409,7 +409,7 @@
<enum>Qt::NoFocus</enum> <enum>Qt::NoFocus</enum>
</property> </property>
<property name="text"> <property name="text">
<string>打开文件夹</string> <string>Open download directory</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -454,8 +454,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>903</width> <width>889</width>
<height>849</height> <height>854</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_17"> <layout class="QVBoxLayout" name="verticalLayout_17">
@ -880,7 +880,7 @@
<item> <item>
<widget class="QLabel" name="label_more"> <widget class="QLabel" name="label_more">
<property name="text"> <property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;由社区爱好者开发的软件商店&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;An app store developed by community enthusiasts&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
@ -919,7 +919,7 @@
</font> </font>
</property> </property>
<property name="text"> <property name="text">
<string>ScreenShots</string> <string>Screenshots</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -936,8 +936,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>869</width> <width>851</width>
<height>325</height> <height>323</height>
</rect> </rect>
</property> </property>
<layout class="QHBoxLayout" name="horizontalLayout_4"> <layout class="QHBoxLayout" name="horizontalLayout_4">
@ -1066,8 +1066,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>738</width> <width>889</width>
<height>896</height> <height>858</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_23"> <layout class="QVBoxLayout" name="verticalLayout_23">