mirror of
https://gitee.com/spark-store-project/spark-store
synced 2025-12-15 21:32:05 +08:00
Compare commits
26 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 398cd512d7 | |||
| 0c0ff452ae | |||
| 5e88f7c1eb | |||
| b639a9d726 | |||
| e2f6a2b3c2 | |||
| c826a3927c | |||
| 0c367799b7 | |||
| 114b5cdfe5 | |||
| a563d99bc4 | |||
| b1cb765b6e | |||
| 49c5583ea9 | |||
| b0dfd6a3da | |||
| a63c1202bd | |||
| dfe30f9d6d | |||
| b00f3fa501 | |||
| 03f35782c6 | |||
| 8f192d17ec | |||
| 0dc594b3f1 | |||
| 198384c552 | |||
| 958988d93c | |||
| 5f9599c47d | |||
| 766dc8b88a | |||
| 20d34a7369 | |||
| a0c14e7397 | |||
| f24565804d | |||
| 244176098c |
53
debian/changelog
vendored
53
debian/changelog
vendored
@@ -1,3 +1,56 @@
|
|||||||
|
spark-store (3.1.5) stable; urgency=medium
|
||||||
|
|
||||||
|
* 改变更新策略,现在支持应用在更新时引入新依赖
|
||||||
|
* ss-apt-fast现在默认允许降级,以与apt使用体验一致
|
||||||
|
|
||||||
|
|
||||||
|
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||||
|
|
||||||
|
spark-store (3.1.4-2) stable; urgency=medium
|
||||||
|
|
||||||
|
* 客户端下载使用metalink来支持bt下载加速
|
||||||
|
* 修复使用更新和安装设置更新商店本体时出错
|
||||||
|
|
||||||
|
|
||||||
|
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||||
|
|
||||||
|
spark-store (3.1.4-1) stable; urgency=medium
|
||||||
|
|
||||||
|
* 安装脚本和检测更新脚本检查网络时间超时时间延长至5s
|
||||||
|
* 修复:ssinstall在没有安装apt-fast的情况下首次安装需要依赖的软件时安装失败
|
||||||
|
|
||||||
|
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||||
|
|
||||||
|
spark-store (3.1.4) stable; urgency=medium
|
||||||
|
|
||||||
|
* 发布正式版,同步到官网
|
||||||
|
* 修复安装时使用wget的问题
|
||||||
|
* 合并3.1.3-1和3.1.3-2的更改
|
||||||
|
* 屏蔽了ssinstall之外的安装方式
|
||||||
|
* 调整了报错框的形式
|
||||||
|
* 修复pkexec下ssinstall不处理依赖
|
||||||
|
|
||||||
|
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||||
|
|
||||||
|
spark-store (3.1.3-2) stable; urgency=medium
|
||||||
|
|
||||||
|
* 调整 现在与系统更新分开,不再导致更新失败
|
||||||
|
* 支持直接更新软件源文件,不再让d.吃全部更新流量
|
||||||
|
* ss-apt-fast不再强制root权限
|
||||||
|
* 修改ss-apt-fast的策略,现在除了安装,下载和更新都改用apt
|
||||||
|
* ssinstall 现在也会在不适用ss-apt-fast的时候模拟源了(针对UOS)
|
||||||
|
|
||||||
|
|
||||||
|
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||||
|
|
||||||
|
spark-store (3.1.3-1) stable; urgency=medium
|
||||||
|
|
||||||
|
* 修复 下载提前退出
|
||||||
|
* 移除 下载量显示
|
||||||
|
|
||||||
|
|
||||||
|
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||||
|
|
||||||
spark-store (3.1.3) stable; urgency=medium
|
spark-store (3.1.3) stable; urgency=medium
|
||||||
|
|
||||||
* Now uses aria2 to download softwares form all mirrors
|
* Now uses aria2 to download softwares form all mirrors
|
||||||
|
|||||||
17
debian/spark-store.postinst
vendored
17
debian/spark-store.postinst
vendored
@@ -16,12 +16,23 @@ case "$1" in
|
|||||||
|
|
||||||
|
|
||||||
# Download and install key
|
# Download and install key
|
||||||
wget -O /tmp/spark-store-install/spark-store.asc https://d.store.deepinos.org.cn/dcs-repo.gpg-key.asc
|
curl --progress-bar -o /tmp/spark-store-install/spark-store.asc https://d.store.deepinos.org.cn/dcs-repo.gpg-key.asc
|
||||||
gpg --dearmor /tmp/spark-store-install/spark-store.asc
|
gpg --dearmor /tmp/spark-store-install/spark-store.asc
|
||||||
cp -f /tmp/spark-store-install/spark-store.asc.gpg /etc/apt/trusted.gpg.d/spark-store.gpg
|
cp -f /tmp/spark-store-install/spark-store.asc.gpg /etc/apt/trusted.gpg.d/spark-store.gpg
|
||||||
|
|
||||||
|
|
||||||
|
# Remove existing source file
|
||||||
|
rm -f /etc/apt/preferences.d/sparkstore
|
||||||
|
rm -f /etc/apt/sources.list.d/sparkstore.list
|
||||||
|
|
||||||
|
|
||||||
# Run apt update to avoid users being fucked up by the non-exist dependency problem
|
# Run apt update to avoid users being fucked up by the non-exist dependency problem
|
||||||
apt update -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
|
|
||||||
|
curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/sources.list.d/sparkstore.list"
|
||||||
|
# 下载源列表
|
||||||
|
bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt update -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
|
||||||
|
# 更新
|
||||||
|
|
||||||
|
|
||||||
# Create symbo links to start upgrade detect
|
# Create symbo links to start upgrade detect
|
||||||
ln -s /opt/durapps/spark-store/bin/update-upgrade/autostart/spark-update-notifier.desktop /etc/xdg/autostart/spark-update-notifier.desktop
|
ln -s /opt/durapps/spark-store/bin/update-upgrade/autostart/spark-update-notifier.desktop /etc/xdg/autostart/spark-update-notifier.desktop
|
||||||
@@ -42,6 +53,8 @@ case "$1" in
|
|||||||
|
|
||||||
# Remove temp dir
|
# Remove temp dir
|
||||||
rm -rf /tmp/spark-store-install
|
rm -rf /tmp/spark-store-install
|
||||||
|
|
||||||
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
triggered)
|
triggered)
|
||||||
|
|||||||
2
debian/spark-store.preinst
vendored
2
debian/spark-store.preinst
vendored
@@ -3,7 +3,7 @@
|
|||||||
function network-check()
|
function network-check()
|
||||||
{
|
{
|
||||||
#超时时间
|
#超时时间
|
||||||
local timeout=1
|
local timeout=5
|
||||||
|
|
||||||
#目标网站
|
#目标网站
|
||||||
local target=www.baidu.com
|
local target=www.baidu.com
|
||||||
|
|||||||
1
debian/spark-store.prerm
vendored
1
debian/spark-store.prerm
vendored
@@ -8,6 +8,7 @@ rm /usr/local/bin/ussinstall
|
|||||||
rm /usr/local/bin/ussremove
|
rm /usr/local/bin/ussremove
|
||||||
rm /usr/local/bin/ss-apt-fast
|
rm /usr/local/bin/ss-apt-fast
|
||||||
|
|
||||||
|
|
||||||
# Remove residual symbol links to stop upgrade detect if exist
|
# Remove residual symbol links to stop upgrade detect if exist
|
||||||
if [ -f /etc/xdg/autostart/spark-update-notifier.desktop ];then
|
if [ -f /etc/xdg/autostart/spark-update-notifier.desktop ];then
|
||||||
rm /etc/xdg/autostart/spark-update-notifier.desktop
|
rm /etc/xdg/autostart/spark-update-notifier.desktop
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
Package: *
|
|
||||||
Pin: origin *.deepinos.org.cn
|
|
||||||
Pin-Priority: 400
|
|
||||||
@@ -45,18 +45,18 @@ downloadlist::downloadlist(QWidget *parent) :
|
|||||||
menu_install->addAction(action_dpkg);
|
menu_install->addAction(action_dpkg);
|
||||||
}
|
}
|
||||||
|
|
||||||
QFile deepin("/usr/bin/deepin-deb-installer");
|
// QFile deepin("/usr/bin/deepin-deb-installer");
|
||||||
deepin.open(QIODevice::ReadOnly);
|
// deepin.open(QIODevice::ReadOnly);
|
||||||
if(deepin.isOpen())
|
// if(deepin.isOpen())
|
||||||
{
|
// {
|
||||||
menu_install->addAction(action_deepin);
|
// menu_install->addAction(action_deepin);
|
||||||
}
|
// }
|
||||||
QFile gdebi("/usr/bin/gdebi");
|
// QFile gdebi("/usr/bin/gdebi");
|
||||||
gdebi.open(QIODevice::ReadOnly);
|
// gdebi.open(QIODevice::ReadOnly);
|
||||||
if(gdebi.isOpen())
|
// if(gdebi.isOpen())
|
||||||
{
|
// {
|
||||||
menu_install->addAction(action_gdebi);
|
// menu_install->addAction(action_gdebi);
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -219,6 +219,7 @@ void downloadlist::on_pushButton_3_clicked()
|
|||||||
{
|
{
|
||||||
textbrowser->setLineWidth(0);
|
textbrowser->setLineWidth(0);
|
||||||
textbrowser->setText(out);
|
textbrowser->setText(out);
|
||||||
|
textbrowser->setMinimumHeight(500);
|
||||||
|
|
||||||
output_w->setMinimumHeight(600);
|
output_w->setMinimumHeight(600);
|
||||||
output_w->setAttribute(Qt::WA_TranslucentBackground);
|
output_w->setAttribute(Qt::WA_TranslucentBackground);
|
||||||
|
|||||||
@@ -19,8 +19,6 @@ DownloadController::DownloadController(QObject *parent)
|
|||||||
domains.clear();
|
domains.clear();
|
||||||
domains.append("d.store.deepinos.org.cn");
|
domains.append("d.store.deepinos.org.cn");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
domains = {
|
domains = {
|
||||||
"d1.store.deepinos.org.cn",
|
"d1.store.deepinos.org.cn",
|
||||||
@@ -33,14 +31,11 @@ DownloadController::DownloadController(QObject *parent)
|
|||||||
this->threadNum = domains.size();
|
this->threadNum = domains.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void DownloadController::setFilename(QString filename)
|
void DownloadController::setFilename(QString filename)
|
||||||
{
|
{
|
||||||
this->filename = filename;
|
this->filename = filename;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void timeSleeper(int time)
|
void timeSleeper(int time)
|
||||||
{
|
{
|
||||||
QElapsedTimer t1;
|
QElapsedTimer t1;
|
||||||
@@ -49,18 +44,48 @@ void timeSleeper(int time)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//int checkPID(QString pidCommand){
|
bool checkMeatlink(QString metaUrl)
|
||||||
// system(pidCommand.toUtf8());
|
{
|
||||||
// timeSleeper(10);
|
QFile metaStatus("/tmp/spark-store/metaStatus.txt");
|
||||||
// QFile downloadStatus("/tmp/spark-store/downloadStatus.txt");
|
if (metaStatus.exists())
|
||||||
// downloadStatus.open(QFile::ReadOnly);
|
{
|
||||||
// auto temp = QString(downloadStatus.readAll()).toUtf8();
|
metaStatus.remove();
|
||||||
// downloadStatus.close();
|
}
|
||||||
// if (temp!=""){
|
system("curl -I -s --connect-timeout 5 " + metaUrl.toUtf8() + " -w %{http_code} |tail -n1 > /tmp/spark-store/metaStatus.txt");
|
||||||
// return 1;
|
if (metaStatus.open(QFile::ReadOnly) && QString(metaStatus.readAll()).toUtf8() == "200")
|
||||||
// }
|
{
|
||||||
// return 0;
|
metaStatus.remove();
|
||||||
//}
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void gennerateDomain(QVector<QString> &domains)
|
||||||
|
{
|
||||||
|
QFile serverList(QDir::homePath().toUtf8() + "/.config/spark-store/server.list");
|
||||||
|
if (serverList.open(QFile::ReadOnly))
|
||||||
|
{
|
||||||
|
QStringList list = QString(serverList.readAll()).trimmed().split("\n");
|
||||||
|
qDebug() << list << list.size();
|
||||||
|
domains.clear();
|
||||||
|
|
||||||
|
for (int i = 0; i < list.size(); i++)
|
||||||
|
{
|
||||||
|
if (list.at(i).contains("镜像源 Download only") && i + 1 < list.size())
|
||||||
|
{
|
||||||
|
for (int j = i + 1; j < list.size(); j++)
|
||||||
|
{
|
||||||
|
domains.append(list.at(j));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (domains.size() == 0)
|
||||||
|
{
|
||||||
|
domains.append("d.store.deepinos.org.cn");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief 开始下载
|
* @brief 开始下载
|
||||||
@@ -69,49 +94,44 @@ void DownloadController::startDownload(const QString &url)
|
|||||||
{
|
{
|
||||||
// 获取下载任务信息
|
// 获取下载任务信息
|
||||||
fileSize = getFileSize(url);
|
fileSize = getFileSize(url);
|
||||||
if(fileSize == 0)
|
if (fileSize == 0)
|
||||||
{
|
{
|
||||||
emit errorOccur("文件大小获取失败");
|
emit errorOccur("文件大小获取失败");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QtConcurrent::run([=]()
|
||||||
QtConcurrent::run([=](){
|
|
||||||
QFile serverList(QDir::homePath().toUtf8() + "/.config/spark-store/server.list");
|
|
||||||
if(serverList.open(QFile::ReadOnly))
|
|
||||||
{
|
{
|
||||||
QStringList list = QString(serverList.readAll()).trimmed().split("\n");
|
QString metaUrl = url + ".metalink";
|
||||||
qDebug() << list << list.size();
|
qDebug() << "metalink" << metaUrl;
|
||||||
|
bool useMetalink = false;
|
||||||
for (int i = 0; i < list.size(); i++) {
|
if (checkMeatlink(metaUrl)){
|
||||||
if (list.at(i).contains("镜像源 Download only") && i + 1 < list.size()) {
|
useMetalink = true;
|
||||||
for (int j = i + 1; j < list.size(); j++) {
|
qDebug() << "useMetalink:" << useMetalink;
|
||||||
system("curl -I -s --connect-timeout 5 https://" + list.at(j).toUtf8()
|
}else{
|
||||||
+ "/dcs-repo.gpg-key.asc -w %{http_code} |tail -n1 > /tmp/spark-store/cdnStatus.txt");
|
gennerateDomain(domains);
|
||||||
QFile cdnStatus("/tmp/spark-store/cdnStatus.txt");
|
// qDebug() << domains << domains.size();
|
||||||
if(cdnStatus.open(QFile::ReadOnly) && QString(cdnStatus.readAll()).toUtf8()=="200"){
|
|
||||||
qDebug() << list.at(j);
|
|
||||||
domains.append(list.at(j));
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
qDebug() << domains << domains.size();
|
|
||||||
QDir tmpdir("/tmp/spark-store/");
|
QDir tmpdir("/tmp/spark-store/");
|
||||||
QString aria2Command = "-d";
|
QString aria2Command = "-d";
|
||||||
QString aria2Urls = "";
|
QString aria2Urls = "";
|
||||||
QString aria2Verbose = "--summary-interval=1";
|
QString aria2Verbose = "--summary-interval=1";
|
||||||
QString aria2Threads = "-s " + QString::number(domains.size());
|
QString aria2Threads = "--split=16";
|
||||||
|
QString aria2NoConfig = "--no-conf";
|
||||||
|
QString aria2NoSeeds = "--seed-time=0";
|
||||||
QStringList command;
|
QStringList command;
|
||||||
QString downloadDir = "/tmp/spark-store/";
|
QString downloadDir = "/tmp/spark-store/";
|
||||||
for(int i = 0; i < domains.size(); i ++)
|
|
||||||
|
if (useMetalink){
|
||||||
|
command.append(metaUrl.toUtf8());
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
for (int i = 0; i < domains.size(); i++)
|
||||||
{
|
{
|
||||||
command.append(replaceDomain(url, domains.at(i)).toUtf8());
|
command.append(replaceDomain(url, domains.at(i)).toUtf8());
|
||||||
aria2Urls += replaceDomain(url, domains.at(i));
|
|
||||||
aria2Urls += " ";
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
qint64 downloadSizeRecord = 0;
|
qint64 downloadSizeRecord = 0;
|
||||||
QString speedInfo = "";
|
QString speedInfo = "";
|
||||||
@@ -119,7 +139,11 @@ void DownloadController::startDownload(const QString &url)
|
|||||||
command.append(aria2Command.toUtf8());
|
command.append(aria2Command.toUtf8());
|
||||||
command.append(downloadDir.toUtf8());
|
command.append(downloadDir.toUtf8());
|
||||||
command.append(aria2Verbose.toUtf8());
|
command.append(aria2Verbose.toUtf8());
|
||||||
|
command.append(aria2NoConfig.toUtf8());
|
||||||
command.append(aria2Threads.toUtf8());
|
command.append(aria2Threads.toUtf8());
|
||||||
|
if (useMetalink){
|
||||||
|
command.append(aria2NoSeeds.toUtf8());
|
||||||
|
}
|
||||||
qDebug() << command;
|
qDebug() << command;
|
||||||
auto cmd = new QProcess();
|
auto cmd = new QProcess();
|
||||||
cmd->setProcessChannelMode(QProcess::MergedChannels);
|
cmd->setProcessChannelMode(QProcess::MergedChannels);
|
||||||
@@ -128,67 +152,66 @@ void DownloadController::startDownload(const QString &url)
|
|||||||
cmd->start();
|
cmd->start();
|
||||||
cmd->waitForStarted(); //等待启动完成
|
cmd->waitForStarted(); //等待启动完成
|
||||||
|
|
||||||
QObject::connect(cmd,&QProcess::readyReadStandardOutput,
|
QObject::connect(cmd, &QProcess::readyReadStandardOutput,
|
||||||
[&](){
|
[&]()
|
||||||
|
{
|
||||||
//通过读取输出计算下载速度
|
//通过读取输出计算下载速度
|
||||||
QFileInfo info(tmpdir.absoluteFilePath(filename));
|
QFileInfo info(tmpdir.absoluteFilePath(filename));
|
||||||
QString message = cmd->readAllStandardOutput().data();
|
QString message = cmd->readAllStandardOutput().data();
|
||||||
message = message.replace(" ","").replace("\n","").replace("-","");
|
//qDebug() << message;
|
||||||
message = message.replace("*","").replace("=","");
|
message = message.replace(" ", "").replace("\n", "").replace("-", "");
|
||||||
|
message = message.replace("*", "").replace("=", "");
|
||||||
QStringList list;
|
QStringList list;
|
||||||
qint64 downloadSize = 0;
|
qint64 downloadSize = 0;
|
||||||
int downloadSizePlace1 = message.indexOf("(");
|
int downloadSizePlace1 = message.indexOf("(");
|
||||||
int downloadSizePlace2 = message.indexOf(")");
|
int downloadSizePlace2 = message.indexOf(")");
|
||||||
int speedPlace1 = message.indexOf("DL:");
|
int speedPlace1 = message.indexOf("DL:");
|
||||||
int speedPlace2 = message.indexOf("ETA");
|
int speedPlace2 = message.indexOf("ETA");
|
||||||
if (downloadSizePlace1 != -1 && downloadSizePlace2 != -1){
|
if (downloadSizePlace1 != -1 && downloadSizePlace2 != -1)
|
||||||
percentInfo = message.mid(downloadSizePlace1+1, downloadSizePlace2-downloadSizePlace1-1).replace("%","");
|
{
|
||||||
if (percentInfo != "s"){
|
percentInfo = message.mid(downloadSizePlace1 + 1, downloadSizePlace2 - downloadSizePlace1 - 1).replace("%", "");
|
||||||
|
if (percentInfo != "s")
|
||||||
|
{
|
||||||
int percentInfoNumber = percentInfo.toUInt();
|
int percentInfoNumber = percentInfo.toUInt();
|
||||||
|
|
||||||
downloadSize = (percentInfoNumber+1) * fileSize / 100;
|
downloadSize = (percentInfoNumber + 1) * fileSize / 100;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (speedPlace1 != -1 && speedPlace2 != -1){
|
if (speedPlace1 != -1 && speedPlace2 != -1)
|
||||||
speedInfo = message.mid(speedPlace1+3, speedPlace2-speedPlace1-3);
|
{
|
||||||
|
speedInfo = message.mid(speedPlace1 + 3, speedPlace2 - speedPlace1 - 3);
|
||||||
speedInfo += "/s";
|
speedInfo += "/s";
|
||||||
|
|
||||||
}
|
}
|
||||||
qDebug() << percentInfo << speedInfo;
|
// qDebug() << percentInfo << speedInfo;
|
||||||
if(downloadSize >= downloadSizeRecord)
|
if (downloadSize >= downloadSizeRecord)
|
||||||
{
|
{
|
||||||
downloadSizeRecord = downloadSize;
|
downloadSizeRecord = downloadSize;
|
||||||
}
|
}
|
||||||
if(percentInfo=="OK"){
|
if (percentInfo == "OK")
|
||||||
|
{
|
||||||
finished = true;
|
finished = true;
|
||||||
emit downloadProcess("", fileSize, fileSize);
|
emit downloadProcess("", fileSize, fileSize);
|
||||||
qDebug() <<"finished:"<< finished;
|
qDebug() << "finished:" << finished;
|
||||||
}
|
}
|
||||||
else{
|
else
|
||||||
|
{
|
||||||
emit downloadProcess(speedInfo, downloadSizeRecord, fileSize);
|
emit downloadProcess(speedInfo, downloadSizeRecord, fileSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
QObject::connect(cmd,&QProcess::readyReadStandardError,
|
QObject::connect(cmd, &QProcess::readyReadStandardError,
|
||||||
[&](){
|
[&]()
|
||||||
|
{
|
||||||
emit errorOccur(cmd->readAllStandardError().data());
|
emit errorOccur(cmd->readAllStandardError().data());
|
||||||
return;
|
return;
|
||||||
});
|
});
|
||||||
|
|
||||||
auto pidNumber = cmd->processId();
|
auto pidNumber = cmd->processId();
|
||||||
this->pidNumber = pidNumber;
|
this->pidNumber = pidNumber;
|
||||||
int statusSum = 0;
|
while (cmd->waitForFinished(-1))
|
||||||
while(statusSum > -20)
|
|
||||||
{
|
{
|
||||||
auto status = cmd->waitForFinished() - 1;
|
continue;
|
||||||
statusSum += status;
|
|
||||||
}
|
}
|
||||||
emit downloadFinished();
|
emit downloadFinished(); });
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -199,12 +222,10 @@ void DownloadController::stopDownload()
|
|||||||
// 实现下载进程退出
|
// 实现下载进程退出
|
||||||
QString killCmd = QString("kill -9 %1").arg(pidNumber);
|
QString killCmd = QString("kill -9 %1").arg(pidNumber);
|
||||||
system(killCmd.toUtf8());
|
system(killCmd.toUtf8());
|
||||||
qDebug()<<"kill aria2!";
|
qDebug() << "kill aria2!";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qint64 DownloadController::getFileSize(const QString &url)
|
||||||
qint64 DownloadController::getFileSize(const QString& url)
|
|
||||||
{
|
{
|
||||||
QEventLoop event;
|
QEventLoop event;
|
||||||
QNetworkAccessManager requestManager;
|
QNetworkAccessManager requestManager;
|
||||||
@@ -212,10 +233,10 @@ qint64 DownloadController::getFileSize(const QString& url)
|
|||||||
request.setUrl(QUrl(url));
|
request.setUrl(QUrl(url));
|
||||||
request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
|
request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
|
||||||
QNetworkReply *reply = requestManager.head(request);
|
QNetworkReply *reply = requestManager.head(request);
|
||||||
connect(reply, static_cast<void(QNetworkReply::*)(QNetworkReply::NetworkError) > (&QNetworkReply::error),
|
connect(reply, static_cast<void (QNetworkReply::*)(QNetworkReply::NetworkError)>(&QNetworkReply::error),
|
||||||
[this, reply](QNetworkReply::NetworkError error)
|
[this, reply](QNetworkReply::NetworkError error)
|
||||||
{
|
{
|
||||||
if(error != QNetworkReply::NoError)
|
if (error != QNetworkReply::NoError)
|
||||||
{
|
{
|
||||||
emit errorOccur(reply->errorString());
|
emit errorOccur(reply->errorString());
|
||||||
}
|
}
|
||||||
@@ -224,8 +245,7 @@ qint64 DownloadController::getFileSize(const QString& url)
|
|||||||
event.exec();
|
event.exec();
|
||||||
|
|
||||||
qint64 fileSize = 0;
|
qint64 fileSize = 0;
|
||||||
if(reply->rawHeader("Accept-Ranges") == QByteArrayLiteral("bytes")
|
if (reply->rawHeader("Accept-Ranges") == QByteArrayLiteral("bytes") && reply->hasRawHeader(QString("Content-Length").toLocal8Bit()))
|
||||||
&& reply->hasRawHeader(QString("Content-Length").toLocal8Bit()))
|
|
||||||
{
|
{
|
||||||
fileSize = reply->header(QNetworkRequest::ContentLengthHeader).toUInt();
|
fileSize = reply->header(QNetworkRequest::ContentLengthHeader).toUInt();
|
||||||
}
|
}
|
||||||
@@ -234,10 +254,10 @@ qint64 DownloadController::getFileSize(const QString& url)
|
|||||||
return fileSize;
|
return fileSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString DownloadController::replaceDomain(const QString& url, const QString domain)
|
QString DownloadController::replaceDomain(const QString &url, const QString domain)
|
||||||
{
|
{
|
||||||
QRegularExpression regex(R"((?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9])");
|
QRegularExpression regex(R"((?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9])");
|
||||||
if(regex.match(url).hasMatch())
|
if (regex.match(url).hasMatch())
|
||||||
{
|
{
|
||||||
return QString(url).replace(regex.match(url).captured(), domain);
|
return QString(url).replace(regex.match(url).captured(), domain);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ int main(int argc, char *argv[])
|
|||||||
DAboutDialog dialog;
|
DAboutDialog dialog;
|
||||||
a.setAboutDialog(&dialog);
|
a.setAboutDialog(&dialog);
|
||||||
dialog.setLicense(QObject::tr("We publish this program under GPL V3"));
|
dialog.setLicense(QObject::tr("We publish this program under GPL V3"));
|
||||||
dialog.setVersion(DApplication::buildVersion("Version 3.1.3"));
|
dialog.setVersion(DApplication::buildVersion("Version 3.1.5"));
|
||||||
dialog.setProductIcon(QIcon::fromTheme("spark-store")); // 设置Logo
|
dialog.setProductIcon(QIcon::fromTheme("spark-store")); // 设置Logo
|
||||||
dialog.setProductName(QLabel::tr("Spark Store"));
|
dialog.setProductName(QLabel::tr("Spark Store"));
|
||||||
dialog.setDescription(
|
dialog.setDescription(
|
||||||
@@ -51,7 +51,7 @@ int main(int argc, char *argv[])
|
|||||||
a.setOrganizationName("spark-union");
|
a.setOrganizationName("spark-union");
|
||||||
a.setOrganizationDomain("https://www.deepinos.org/");
|
a.setOrganizationDomain("https://www.deepinos.org/");
|
||||||
a.setApplicationName("Spark Store"); //不需要翻译,否则 ~/.local/share/ 下文件夹名称也被翻译为中文
|
a.setApplicationName("Spark Store"); //不需要翻译,否则 ~/.local/share/ 下文件夹名称也被翻译为中文
|
||||||
a.setApplicationVersion(DApplication::buildVersion("3.2"));
|
a.setApplicationVersion(DApplication::buildVersion("3.1.5"));
|
||||||
a.setApplicationAcknowledgementPage("https://gitee.com/deepin-community-store/spark-store");
|
a.setApplicationAcknowledgementPage("https://gitee.com/deepin-community-store/spark-store");
|
||||||
a.setApplicationDescription(
|
a.setApplicationDescription(
|
||||||
QObject::tr(
|
QObject::tr(
|
||||||
|
|||||||
@@ -834,7 +834,6 @@ void Widget::sltAppinfoResetUi()
|
|||||||
ui->pushButton_update->setEnabled(false);
|
ui->pushButton_update->setEnabled(false);
|
||||||
ui->label_show->setText("Loading...");
|
ui->label_show->setText("Loading...");
|
||||||
ui->label_show->show();
|
ui->label_show->show();
|
||||||
ui->label_downloadCount->clear();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Widget::sltAppinfoTags(QStringList *tagList)
|
void Widget::sltAppinfoTags(QStringList *tagList)
|
||||||
@@ -878,7 +877,7 @@ void Widget::sltAppinfoTags(QStringList *tagList)
|
|||||||
|
|
||||||
void Widget::sltAppinfoDetails(QString *name, QString *details, QString *info,
|
void Widget::sltAppinfoDetails(QString *name, QString *details, QString *info,
|
||||||
QString *website, QString *packageName, QUrl *fileUrl,
|
QString *website, QString *packageName, QUrl *fileUrl,
|
||||||
int downloadCount, bool isInstalled, bool isUpdated)
|
bool isInstalled, bool isUpdated)
|
||||||
{
|
{
|
||||||
ui->label_appname->setText(appName = *name);
|
ui->label_appname->setText(appName = *name);
|
||||||
ui->label_appname->show();
|
ui->label_appname->show();
|
||||||
@@ -886,7 +885,6 @@ void Widget::sltAppinfoDetails(QString *name, QString *details, QString *info,
|
|||||||
ui->label_info->show();
|
ui->label_info->show();
|
||||||
ui->label_more->setText(*info);
|
ui->label_more->setText(*info);
|
||||||
ui->label_more->show();
|
ui->label_more->show();
|
||||||
ui->label_downloadCount->setText(tr("Total downloads: %1").arg(downloadCount));
|
|
||||||
|
|
||||||
pkgName = *packageName;
|
pkgName = *packageName;
|
||||||
url = *fileUrl;
|
url = *fileUrl;
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ private slots:
|
|||||||
void sltAppinfoTags(QStringList *tagList);
|
void sltAppinfoTags(QStringList *tagList);
|
||||||
void sltAppinfoDetails(QString *name, QString *details, QString *info,
|
void sltAppinfoDetails(QString *name, QString *details, QString *info,
|
||||||
QString *website, QString *packageName,
|
QString *website, QString *packageName,
|
||||||
QUrl *fileUrl, int downloadCount, bool isInstalled,
|
QUrl *fileUrl, bool isInstalled,
|
||||||
bool isUpdated);
|
bool isUpdated);
|
||||||
void sltAppinfoIcon(QPixmap *icon);
|
void sltAppinfoIcon(QPixmap *icon);
|
||||||
void sltAppinfoScreenshot(QPixmap *picture, int index);
|
void sltAppinfoScreenshot(QPixmap *picture, int index);
|
||||||
|
|||||||
273
src/widget.ui
273
src/widget.ui
@@ -489,8 +489,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>889</width>
|
<width>903</width>
|
||||||
<height>846</height>
|
<height>849</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_17">
|
<layout class="QVBoxLayout" name="verticalLayout_17">
|
||||||
@@ -509,7 +509,23 @@
|
|||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<item row="4" column="2">
|
<item row="3" column="0">
|
||||||
|
<spacer name="horizontalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Maximum</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>70</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="2">
|
||||||
<spacer name="horizontalSpacer_2">
|
<spacer name="horizontalSpacer_2">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
@@ -525,7 +541,30 @@
|
|||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="3" rowspan="5" colspan="8">
|
<item row="5" column="1">
|
||||||
|
<widget class="QPushButton" name="pushButton_download">
|
||||||
|
<property name="text">
|
||||||
|
<string>Install</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="3" colspan="2">
|
||||||
|
<widget class="QLabel" name="label_appname">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<family>Bitstream Charter</family>
|
||||||
|
<pointsize>22</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Name</string>
|
||||||
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="3" rowspan="5" colspan="8">
|
||||||
<widget class="QLabel" name="label_info">
|
<widget class="QLabel" name="label_info">
|
||||||
<property name="font">
|
<property name="font">
|
||||||
<font>
|
<font>
|
||||||
@@ -546,76 +585,7 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="0">
|
<item row="3" column="1">
|
||||||
<spacer name="horizontalSpacer">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeType">
|
|
||||||
<enum>QSizePolicy::Maximum</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>70</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="6">
|
|
||||||
<widget class="QPushButton" name="pushButton_website">
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>70</width>
|
|
||||||
<height>16777215</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="styleSheet">
|
|
||||||
<string notr="true"/>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Site</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="6" column="1">
|
|
||||||
<widget class="QPushButton" name="pushButton_download">
|
|
||||||
<property name="text">
|
|
||||||
<string>Install</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="7" column="1">
|
|
||||||
<widget class="QPushButton" name="pushButton_uninstall">
|
|
||||||
<property name="text">
|
|
||||||
<string>Uninstall</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="3">
|
|
||||||
<spacer name="verticalSpacer_6">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeType">
|
|
||||||
<enum>QSizePolicy::Fixed</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>20</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="8">
|
|
||||||
<widget class="QPushButton" name="pushButton">
|
|
||||||
<property name="text">
|
|
||||||
<string>Share</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="1">
|
|
||||||
<widget class="QLabel" name="label_appicon">
|
<widget class="QLabel" name="label_appicon">
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
@@ -643,19 +613,6 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="8" column="1" rowspan="2">
|
|
||||||
<spacer name="verticalSpacer_2">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>20</width>
|
|
||||||
<height>40</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="10">
|
<item row="0" column="10">
|
||||||
<spacer name="horizontalSpacer_6">
|
<spacer name="horizontalSpacer_6">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
@@ -669,19 +626,94 @@
|
|||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="3" colspan="2">
|
<item row="7" column="1" rowspan="2">
|
||||||
<widget class="QLabel" name="label_appname">
|
<spacer name="verticalSpacer_2">
|
||||||
<property name="font">
|
<property name="orientation">
|
||||||
<font>
|
<enum>Qt::Vertical</enum>
|
||||||
<family>Bitstream Charter</family>
|
</property>
|
||||||
<pointsize>22</pointsize>
|
<property name="sizeHint" stdset="0">
|
||||||
</font>
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="1">
|
||||||
|
<spacer name="verticalSpacer_3">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Fixed</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="1">
|
||||||
|
<widget class="QPushButton" name="pushButton_uninstall">
|
||||||
|
<property name="text">
|
||||||
|
<string>Uninstall</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="6">
|
||||||
|
<widget class="QPushButton" name="pushButton_website">
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>70</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true"/>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Name</string>
|
<string>Site</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="textInteractionFlags">
|
</widget>
|
||||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
</item>
|
||||||
|
<item row="2" column="3">
|
||||||
|
<spacer name="verticalSpacer_6">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Fixed</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="5">
|
||||||
|
<spacer name="horizontalSpacer_7">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Fixed</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>10</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="8">
|
||||||
|
<widget class="QPushButton" name="pushButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>Share</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@@ -881,45 +913,6 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="5">
|
|
||||||
<spacer name="horizontalSpacer_7">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeType">
|
|
||||||
<enum>QSizePolicy::Fixed</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>10</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="1">
|
|
||||||
<spacer name="verticalSpacer_3">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeType">
|
|
||||||
<enum>QSizePolicy::Fixed</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>20</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="3">
|
|
||||||
<widget class="QLabel" name="label_downloadCount">
|
|
||||||
<property name="text">
|
|
||||||
<string>Total downloads</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@@ -1000,8 +993,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>851</width>
|
<width>869</width>
|
||||||
<height>327</height>
|
<height>325</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||||
@@ -1130,8 +1123,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>697</width>
|
<width>738</width>
|
||||||
<height>805</height>
|
<height>886</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_23">
|
<layout class="QVBoxLayout" name="verticalLayout_23">
|
||||||
|
|||||||
@@ -11,19 +11,12 @@
|
|||||||
void SpkAppInfoLoaderThread::run()
|
void SpkAppInfoLoaderThread::run()
|
||||||
{
|
{
|
||||||
emit requestResetUi();
|
emit requestResetUi();
|
||||||
int downloadCount = 0;
|
|
||||||
|
|
||||||
httpClient = new AeaQt::HttpClient;
|
httpClient = new AeaQt::HttpClient;
|
||||||
|
|
||||||
httpClient->get(targetUrl.toString().replace("app.json", "download-times.txt"))
|
|
||||||
.onResponse([&downloadCount](QByteArray text)
|
|
||||||
{
|
|
||||||
downloadCount = QString(text).toInt();
|
|
||||||
});
|
|
||||||
|
|
||||||
httpClient->get(targetUrl.toString())
|
httpClient->get(targetUrl.toString())
|
||||||
.header("content-type", "application/json")
|
.header("content-type", "application/json")
|
||||||
.onResponse([&](QByteArray json_array)
|
.onResponse([this](QByteArray json_array)
|
||||||
{
|
{
|
||||||
qDebug() << "请求应用信息 " << json_array;
|
qDebug() << "请求应用信息 " << json_array;
|
||||||
QString urladdress, deatils, more, packagename, appweb;
|
QString urladdress, deatils, more, packagename, appweb;
|
||||||
@@ -102,7 +95,7 @@ void SpkAppInfoLoaderThread::run()
|
|||||||
isUpdated = false;
|
isUpdated = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
emit requestSetAppInformation(&appName, &details, &more, &appweb, &packagename, &fileUrl, downloadCount, isInstalled, isUpdated);
|
emit requestSetAppInformation(&appName, &details, &more, &appweb, &packagename, &fileUrl, isInstalled, isUpdated);
|
||||||
|
|
||||||
// tag 加载
|
// tag 加载
|
||||||
QString tags = json["Tags"].toString();
|
QString tags = json["Tags"].toString();
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ signals:
|
|||||||
void requestSetTags(QStringList *tagList);
|
void requestSetTags(QStringList *tagList);
|
||||||
void requestSetAppInformation(QString *name, QString *details, QString *info,
|
void requestSetAppInformation(QString *name, QString *details, QString *info,
|
||||||
QString *website, QString *packageName,
|
QString *website, QString *packageName,
|
||||||
QUrl *fileUrl, int downloadCount, bool isInstalled,
|
QUrl *fileUrl, bool isInstalled,
|
||||||
bool isUpdated);
|
bool isUpdated);
|
||||||
void finishedIconLoad(QPixmap *icon);
|
void finishedIconLoad(QPixmap *icon);
|
||||||
void finishedScreenshotLoad(QPixmap *icon, int index); // 该信号必须以 BlockingQueued 方式连接
|
void finishedScreenshotLoad(QPixmap *icon, int index); // 该信号必须以 BlockingQueued 方式连接
|
||||||
|
|||||||
0
tool/apt-fast-conf/sources.list.d/.keep
Normal file
0
tool/apt-fast-conf/sources.list.d/.keep
Normal file
@@ -1,19 +1,42 @@
|
|||||||
#/bin/bash
|
#/bin/bash
|
||||||
|
|
||||||
if [ "$(id -u)" != "0" ]
|
|
||||||
then
|
|
||||||
echo "ss-apt-fast需要在root下运行"
|
|
||||||
exit
|
if [ "$1" = "install" ] || [ "$1" = "upgrade" ] || [ "$1" = "full-upgrade" ] || [ "$1" = "download" ] ; then
|
||||||
fi
|
|
||||||
|
###刷新apt-fast配置
|
||||||
|
mkdir -p /tmp/ss-apt-fast-conf/sources.list.d
|
||||||
|
# 创建文件夹
|
||||||
|
echo "从服务器获取配置和镜像列表..."
|
||||||
|
echo "Getting server and mirror lists..."
|
||||||
|
echo
|
||||||
|
curl --progress-bar -o /tmp/ss-apt-fast-conf/apt-fast.conf "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/apt-fast.conf"
|
||||||
|
chmod -R 755 /tmp/ss-apt-fast-conf
|
||||||
|
|
||||||
|
|
||||||
DEPEND=`which apt-fast`
|
DEPEND=`which apt-fast`
|
||||||
if [ "$DEPEND" = "" ] ; then
|
if [ "$DEPEND" = "" ] ; then
|
||||||
echo "未安装依赖:apt-fast 开始安装"
|
echo "未安装依赖:apt-fast 开始安装"
|
||||||
apt install apt-fast -y
|
sudo ss-apt-fast ssupdate && sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt install apt-fast -y
|
||||||
|
fi
|
||||||
|
###执行安装
|
||||||
|
bwrap --dev-bind / / \
|
||||||
|
--bind '/tmp/ss-apt-fast-conf/apt-fast.conf' /etc/apt-fast.conf \
|
||||||
|
--bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list \
|
||||||
|
apt-fast "$@" --allow-downgrades
|
||||||
|
|
||||||
|
rm -rf /tmp/ss-apt-fast-conf
|
||||||
|
|
||||||
|
elif [ "$1" = "ssupdate" ];then
|
||||||
|
sudo curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/sources.list.d/sparkstore.list"
|
||||||
|
sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt update -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
|
||||||
|
#只更新星火源
|
||||||
|
|
||||||
|
else
|
||||||
|
bwrap --dev-bind / / \
|
||||||
|
--bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list \
|
||||||
|
apt "$@"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm /opt/durapps/spark-store/bin/apt-fast-conf/apt-fast.conf
|
|
||||||
echo "从服务器获取配置和镜像列表..."
|
|
||||||
curl -s --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/apt-fast.conf "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/apt-fast.conf"
|
|
||||||
|
|
||||||
bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/apt-fast.conf' /etc/apt-fast.conf apt-fast "$@"
|
|
||||||
@@ -46,61 +46,53 @@ isuos=`cat /etc/os-release | grep UnionTech`
|
|||||||
##############判断是否是root运行,如果是,则正常走;如果不是,则代输密码
|
##############判断是否是root运行,如果是,则正常走;如果不是,则代输密码
|
||||||
if [ "$(id -u)" != "0" ];then
|
if [ "$(id -u)" != "0" ];then
|
||||||
#############################无root权限时
|
#############################无root权限时
|
||||||
#临时提升星火源的优先级
|
|
||||||
echo "$upass" | sudo -S sed -i 's/400/500/g' /etc/apt/preferences.d/sparkstore
|
|
||||||
|
|
||||||
IS_INSTALLED=`which apt-fast`
|
IS_INSTALLED=`which apt-fast`
|
||||||
if [ "$IS_INSTALLED" = "" ] ; then
|
if [ "$IS_INSTALLED" = "" ] ; then
|
||||||
echo "未安装依赖:apt-fast 开始安装"
|
echo "未安装依赖:apt-fast 开始安装"
|
||||||
echo "$upass" | sudo -S apt install apt-fast -y
|
echo "$upass" | sudo -S /usr/local/bin/ss-apt-fast ssupdate && echo "$upass" | sudo -S bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt install apt-fast -y
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if [ "$DEPEND" != "" ] && [ "$isuos" != "" ]; then
|
if [ "$DEPEND" != "" ] && [ "$isuos" != "" ]; then
|
||||||
echo "UOS中系统依赖无法使用第三方下载工具,放弃使用apt-fast"
|
echo "UOS中系统依赖无法使用第三方下载工具,放弃使用apt-fast"
|
||||||
echo ----------------------------------------------------------------------------------
|
echo ----------------------------------------------------------------------------------
|
||||||
echo "$upass" | sudo -S dpkg -i $1 || sudo apt install -yf
|
echo "$upass" | sudo -S dpkg -i $1 || sudo /usr/local/bin/ss-apt-fast ssupdate && sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt install -yf
|
||||||
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$DEPEND" != "" ] && [ "$isuos" = "" ]; then
|
if [ "$DEPEND" != "" ] && [ "$isuos" = "" ]; then
|
||||||
echo "检测到apt-fast,使用ss-apt-fast进行多线程下载加速"
|
echo "检测到apt-fast,使用/usr/local/bin/ss-apt-fast进行多线程下载加速"
|
||||||
echo ----------------------------------------------------------------------------------
|
echo ----------------------------------------------------------------------------------
|
||||||
echo "$upass" | sudo -S dpkg -i $1 || sudo ss-apt-fast install -yf
|
echo "$upass" | sudo -S dpkg -i $1 || sudo /usr/local/bin/ss-apt-fast ssupdate && sudo /usr/local/bin/ss-apt-fast install -yf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "$upass" | sudo -S sed -i 's/500/400/g' /etc/apt/preferences.d/sparkstore
|
|
||||||
#恢复优先级
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
else
|
else
|
||||||
###########################有root权限时
|
###########################有root权限时
|
||||||
|
|
||||||
#临时提升星火源的优先级
|
|
||||||
sed -i 's/400/500/g' /etc/apt/preferences.d/sparkstore
|
|
||||||
|
|
||||||
IS_INSTALLED=`which apt-fast`
|
IS_INSTALLED=`which apt-fast`
|
||||||
if [ "$IS_INSTALLED" = "" ] ; then
|
if [ "$IS_INSTALLED" = "" ] ; then
|
||||||
echo "未安装依赖:apt-fast 开始安装"
|
echo "未安装依赖:apt-fast 开始安装"
|
||||||
apt install apt-fast -y
|
/usr/local/bin/ss-apt-fast ssupdate && bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt install apt-fast -y
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
if [ "$DEPEND" != "" ] && [ "$isuos" != "" ]; then
|
if [ "$DEPEND" != "" ] && [ "$isuos" != "" ]; then
|
||||||
echo "UOS中系统依赖无法使用第三方下载工具,放弃使用apt-fast"
|
echo "UOS中系统依赖无法使用第三方下载工具,放弃使用apt-fast"
|
||||||
echo ----------------------------------------------------------------------------------
|
echo ----------------------------------------------------------------------------------
|
||||||
dpkg -i $1 || apt install -yf
|
dpkg -i $1 || /usr/local/bin/ss-apt-fast ssupdate && bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt update && sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt install -yf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$DEPEND" != "" ] && [ "$isuos" = "" ]; then
|
if [ "$DEPEND" != "" ] && [ "$isuos" = "" ]; then
|
||||||
echo "检测到apt-fast,使用ss-apt-fast进行多线程下载加速"
|
echo "检测到apt-fast,使用/usr/local/bin/ss-apt-fast进行多线程下载加速"
|
||||||
echo ----------------------------------------------------------------------------------
|
echo ----------------------------------------------------------------------------------
|
||||||
dpkg -i $1 || ss-apt-fast install -yf
|
dpkg -i $1 || /usr/local/bin/ss-apt-fast ssupdate && /usr/local/bin/ss-apt-fast install -yf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
sed -i 's/500/400/g' /etc/apt/preferences.d/sparkstore
|
|
||||||
#恢复优先级
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,41 @@
|
|||||||
|
|
||||||
echo "以上可升级,是否升级?[y/n]"
|
echo "以上可升级,是否升级?[y/n]"
|
||||||
read yes_or_no
|
read yes_or_no
|
||||||
if [ "$yes_or_no" = "y" ];then
|
if [ "$yes_or_no" = "y" ];then ###这是确定是否同意
|
||||||
sudo ss-apt-fast upgrade -y -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
|
|
||||||
else
|
echo "获取更新列表..."
|
||||||
exit
|
PKG_LIST="$(bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt list --upgradable -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0" | awk 'BEGIN {FS="/"} {print $1}' | awk NR\>1)"
|
||||||
fi
|
|
||||||
|
|
||||||
|
isuos=`cat /etc/os-release | grep UnionTech`
|
||||||
|
if [ "$isuos" != "" ]; then ###这是确定是否为UOS
|
||||||
|
echo "UOS中系统依赖无法使用第三方下载工具,放弃使用apt-fast"
|
||||||
|
|
||||||
|
for PKG_NAME in $PKG_LIST;
|
||||||
|
do
|
||||||
|
echo "$PKG_NAME 正在准备更新..."
|
||||||
|
if sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt install "$PKG_NAME" -y >/dev/null 2>&1;
|
||||||
|
then
|
||||||
|
echo "$PKG_NAME 已更新"
|
||||||
|
else
|
||||||
|
echo "WARNING: $PKG_NAME 无法更新"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
else ###这是确定是否为UOS
|
||||||
|
|
||||||
|
for PKG_NAME in $PKG_LIST;
|
||||||
|
do
|
||||||
|
echo "$PKG_NAME 正在准备更新..."
|
||||||
|
if sudo /usr/local/bin/ss-apt-fast install "$PKG_NAME" -y >/dev/null 2>&1;
|
||||||
|
then
|
||||||
|
echo "$PKG_NAME 已更新"
|
||||||
|
else
|
||||||
|
echo "WARNING: $PKG_NAME 无法更新"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
fi ###这是确定是否为UOS
|
||||||
|
|
||||||
|
fi ###这是确定是否同意
|
||||||
@@ -71,8 +71,8 @@ case $option in
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
2)
|
2)
|
||||||
echo "请注意:如果有些更新需要从系统获取更多依赖,你将需要手动操作 sudo ss-apt-fast upgrade"
|
|
||||||
echo "执行以下操作需要授权..."
|
echo "执行以下操作需要授权..."
|
||||||
|
sudo ss-apt-fast ssupdate
|
||||||
/opt/durapps/spark-store/bin/update-upgrade/ss-upgrade-list.sh
|
/opt/durapps/spark-store/bin/update-upgrade/ss-upgrade-list.sh
|
||||||
/opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade.sh
|
/opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade.sh
|
||||||
echo "---请按回车返回"
|
echo "---请按回车返回"
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ LANG=en.US
|
|||||||
function network()
|
function network()
|
||||||
{
|
{
|
||||||
#超时时间
|
#超时时间
|
||||||
local timeout=1
|
local timeout=5
|
||||||
|
|
||||||
#目标网站
|
#目标网站
|
||||||
local target=www.baidu.com
|
local target=www.baidu.com
|
||||||
@@ -36,8 +36,11 @@ fi
|
|||||||
|
|
||||||
#The code above is modified from https://blog.csdn.net/yaxuan88521/article/details/120516298
|
#The code above is modified from https://blog.csdn.net/yaxuan88521/article/details/120516298
|
||||||
|
|
||||||
|
curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/sources.list.d/sparkstore.list"
|
||||||
|
# 每日更新星火源文件
|
||||||
|
|
||||||
|
updatetext=`ss-apt-fast ssupdate`
|
||||||
|
|
||||||
updatetext=`sudo apt update -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"`
|
|
||||||
|
|
||||||
mkdir -p /tmp/spark-store-updatenum/
|
mkdir -p /tmp/spark-store-updatenum/
|
||||||
|
|
||||||
|
|||||||
@@ -3,4 +3,4 @@ set -e
|
|||||||
|
|
||||||
|
|
||||||
echo "---可更新的应用有:"
|
echo "---可更新的应用有:"
|
||||||
sudo apt list --upgradable -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
|
bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt list --upgradable -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
|
||||||
|
|||||||
@@ -45,47 +45,47 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>SpkAppInfoLoaderThread</name>
|
<name>SpkAppInfoLoaderThread</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="174"/>
|
<location filename="../src/workerthreads.cpp" line="167"/>
|
||||||
<source>Failed to download app info. Please check internet connection.</source>
|
<source>Failed to download app info. Please check internet connection.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="55"/>
|
<location filename="../src/workerthreads.cpp" line="48"/>
|
||||||
<source>PkgName: </source>
|
<source>PkgName: </source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="56"/>
|
<location filename="../src/workerthreads.cpp" line="49"/>
|
||||||
<source>Version: </source>
|
<source>Version: </source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="59"/>
|
<location filename="../src/workerthreads.cpp" line="52"/>
|
||||||
<source>Author: </source>
|
<source>Author: </source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="64"/>
|
<location filename="../src/workerthreads.cpp" line="57"/>
|
||||||
<source>Official Site: </source>
|
<source>Official Site: </source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="68"/>
|
<location filename="../src/workerthreads.cpp" line="61"/>
|
||||||
<source>Contributor: </source>
|
<source>Contributor: </source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="69"/>
|
<location filename="../src/workerthreads.cpp" line="62"/>
|
||||||
<source>Update Time: </source>
|
<source>Update Time: </source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="70"/>
|
<location filename="../src/workerthreads.cpp" line="63"/>
|
||||||
<source>Installed Size: </source>
|
<source>Installed Size: </source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="130"/>
|
<location filename="../src/workerthreads.cpp" line="123"/>
|
||||||
<source>Failed to load application icon.</source>
|
<source>Failed to load application icon.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -133,56 +133,56 @@
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="681"/>
|
<location filename="../src/widget.ui" line="560"/>
|
||||||
<source>Name</source>
|
<source>Name</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="636"/>
|
<location filename="../src/widget.ui" line="606"/>
|
||||||
<source>ICON</source>
|
<source>ICON</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="584"/>
|
<location filename="../src/widget.ui" line="547"/>
|
||||||
<location filename="../src/widget.cpp" line="908"/>
|
<location filename="../src/widget.cpp" line="906"/>
|
||||||
<location filename="../src/widget.cpp" line="1177"/>
|
<location filename="../src/widget.cpp" line="1175"/>
|
||||||
<source>Install</source>
|
<source>Install</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="591"/>
|
<location filename="../src/widget.ui" line="661"/>
|
||||||
<source>Uninstall</source>
|
<source>Uninstall</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="577"/>
|
<location filename="../src/widget.ui" line="677"/>
|
||||||
<source>Site</source>
|
<source>Site</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="718"/>
|
<location filename="../src/widget.ui" line="750"/>
|
||||||
<location filename="../src/widget.ui" line="721"/>
|
<location filename="../src/widget.ui" line="753"/>
|
||||||
<source><html><head/><body><p>This app is developed by community user,we give this tag to honor those who contribute to the Linux Ecology</p></body></html></source>
|
<source><html><head/><body><p>This app is developed by community user,we give this tag to honor those who contribute to the Linux Ecology</p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="724"/>
|
<location filename="../src/widget.ui" line="756"/>
|
||||||
<source><html><head/><body><p><img src=":/tags/community-small.png"/></p></body></html></source>
|
<source><html><head/><body><p><img src=":/tags/community-small.png"/></p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="743"/>
|
<location filename="../src/widget.ui" line="775"/>
|
||||||
<source><html><head/><body><p><img src=":/tags/ubuntu-small.png"/></p></body></html></source>
|
<source><html><head/><body><p><img src=":/tags/ubuntu-small.png"/></p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="781"/>
|
<location filename="../src/widget.ui" line="813"/>
|
||||||
<source><html><head/><body><p><img src=":/tags/uos-small.png"/></p></body></html></source>
|
<source><html><head/><body><p><img src=":/tags/uos-small.png"/></p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="756"/>
|
<location filename="../src/widget.ui" line="788"/>
|
||||||
<location filename="../src/widget.ui" line="759"/>
|
<location filename="../src/widget.ui" line="791"/>
|
||||||
<source><html><head/><body><p>Capable to deepin 20</p></body></html></source>
|
<source><html><head/><body><p>Capable to deepin 20</p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -227,46 +227,46 @@
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="762"/>
|
<location filename="../src/widget.ui" line="794"/>
|
||||||
<source><html><head/><body><p><img src=":/tags/deepin-small.png"/></p></body></html></source>
|
<source><html><head/><body><p><img src=":/tags/deepin-small.png"/></p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="775"/>
|
<location filename="../src/widget.ui" line="807"/>
|
||||||
<location filename="../src/widget.ui" line="778"/>
|
<location filename="../src/widget.ui" line="810"/>
|
||||||
<source><html><head/><body><p>Capable to UOS home 20</p></body></html></source>
|
<source><html><head/><body><p>Capable to UOS home 20</p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="794"/>
|
<location filename="../src/widget.ui" line="826"/>
|
||||||
<location filename="../src/widget.ui" line="797"/>
|
<location filename="../src/widget.ui" line="829"/>
|
||||||
<source><html><head/><body><p>This is a DTK5 app,which means it would have better effect on Deepin Desktop Environment</p></body></html></source>
|
<source><html><head/><body><p>This is a DTK5 app,which means it would have better effect on Deepin Desktop Environment</p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="800"/>
|
<location filename="../src/widget.ui" line="832"/>
|
||||||
<source><html><head/><body><p><img src=":/tags/dtk-small.png"/></p></body></html></source>
|
<source><html><head/><body><p><img src=":/tags/dtk-small.png"/></p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="832"/>
|
<location filename="../src/widget.ui" line="864"/>
|
||||||
<location filename="../src/widget.ui" line="835"/>
|
<location filename="../src/widget.ui" line="867"/>
|
||||||
<source><html><head/><body><p>A deepin-wine5 app.If you are using ubuntu or other non-deepin distro,you should deploy deepin-wine5 by your self.</p></body></html></source>
|
<source><html><head/><body><p>A deepin-wine5 app.If you are using ubuntu or other non-deepin distro,you should deploy deepin-wine5 by your self.</p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="851"/>
|
<location filename="../src/widget.ui" line="883"/>
|
||||||
<location filename="../src/widget.ui" line="854"/>
|
<location filename="../src/widget.ui" line="886"/>
|
||||||
<source><html><head/><body><p>An Appimage to deb app.</p></body></html></source>
|
<source><html><head/><body><p>An Appimage to deb app.</p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="857"/>
|
<location filename="../src/widget.ui" line="889"/>
|
||||||
<source><html><head/><body><p><img src=":/tags/a2d-small.png"/></p></body></html></source>
|
<source><html><head/><body><p><img src=":/tags/a2d-small.png"/></p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="614"/>
|
<location filename="../src/widget.ui" line="716"/>
|
||||||
<source>Share</source>
|
<source>Share</source>
|
||||||
<translation type="unfinished">Spk share link</translation>
|
<translation type="unfinished">Spk share link</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -291,114 +291,109 @@
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="737"/>
|
<location filename="../src/widget.ui" line="769"/>
|
||||||
<location filename="../src/widget.ui" line="740"/>
|
<location filename="../src/widget.ui" line="772"/>
|
||||||
<source><html><head/><body><p>Capable to Ubuntu 22.04</p></body></html></source>
|
<source><html><head/><body><p>Capable to Ubuntu 22.04</p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="813"/>
|
<location filename="../src/widget.ui" line="845"/>
|
||||||
<location filename="../src/widget.ui" line="816"/>
|
<location filename="../src/widget.ui" line="848"/>
|
||||||
<source><html><head/><body><p>A deepin-wine2 app.If you are using ubuntu or other non-deepin distro,you should deploy deepin-wine2 by your self.</p></body></html></source>
|
<source><html><head/><body><p>A deepin-wine2 app.If you are using ubuntu or other non-deepin distro,you should deploy deepin-wine2 by your self.</p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="819"/>
|
<location filename="../src/widget.ui" line="851"/>
|
||||||
<source><html><head/><body><p><img src=":/tags/dwine2-small.png"/></p></body></html></source>
|
<source><html><head/><body><p><img src=":/tags/dwine2-small.png"/></p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="838"/>
|
<location filename="../src/widget.ui" line="870"/>
|
||||||
<source><html><head/><body><p><img src=":/tags/dwine5-small.png"/></p></body></html></source>
|
<source><html><head/><body><p><img src=":/tags/dwine5-small.png"/></p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="919"/>
|
<location filename="../src/widget.ui" line="930"/>
|
||||||
<source>Total downloads</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/widget.ui" line="937"/>
|
|
||||||
<source>Info</source>
|
<source>Info</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="944"/>
|
<location filename="../src/widget.ui" line="937"/>
|
||||||
<source><html><head/><body><p>An app store developed by community enthusiasts</p></body></html></source>
|
<source><html><head/><body><p>An app store developed by community enthusiasts</p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="986"/>
|
<location filename="../src/widget.ui" line="979"/>
|
||||||
<source>Screenshots</source>
|
<source>Screenshots</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1149"/>
|
<location filename="../src/widget.ui" line="1142"/>
|
||||||
<source>Line Settings</source>
|
<source>Line Settings</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1165"/>
|
<location filename="../src/widget.ui" line="1158"/>
|
||||||
<source>Choose Line:</source>
|
<source>Choose Line:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1188"/>
|
<location filename="../src/widget.ui" line="1181"/>
|
||||||
<source>Refresh</source>
|
<source>Refresh</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1230"/>
|
<location filename="../src/widget.ui" line="1223"/>
|
||||||
<source><html><head/><body><p>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. </p></body></html></source>
|
<source><html><head/><body><p>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. </p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1240"/>
|
<location filename="../src/widget.ui" line="1233"/>
|
||||||
<source>Update</source>
|
<source>Update</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1247"/>
|
<location filename="../src/widget.ui" line="1240"/>
|
||||||
<source>Source Server</source>
|
<source>Source Server</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1267"/>
|
<location filename="../src/widget.ui" line="1260"/>
|
||||||
<source>Server</source>
|
<source>Server</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1288"/>
|
<location filename="../src/widget.ui" line="1281"/>
|
||||||
<source>Temp</source>
|
<source>Temp</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1311"/>
|
<location filename="../src/widget.ui" line="1304"/>
|
||||||
<source>Clean</source>
|
<source>Clean</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1321"/>
|
<location filename="../src/widget.ui" line="1314"/>
|
||||||
<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 type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1334"/>
|
<location filename="../src/widget.ui" line="1327"/>
|
||||||
<source>Size:</source>
|
<source>Size:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1348"/>
|
<location filename="../src/widget.ui" line="1341"/>
|
||||||
<source>Location:/tmp/spark-store</source>
|
<source>Location:/tmp/spark-store</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1369"/>
|
<location filename="../src/widget.ui" line="1362"/>
|
||||||
<source>About us</source>
|
<source>About us</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1376"/>
|
<location filename="../src/widget.ui" line="1369"/>
|
||||||
<source><html><head/><body><p>We are <span style=" font-weight:600;">NOT</span> 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. </p><p>We don't make a profit from this, all developers and maintainers don't get paid, and we rely on the community'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. </p><p>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. </p><p>If any part of the store infringes your rights, please tell us &lt;jifengshenmo@outlook.com&gt; we will remove the infringing content as soon as possible. </p><p>If you'd like to get involved with us too, whether you're involved in development, design, pitching or submitting work, we welcome you to join us. </p><p>QQ group:872690351<br/></p></body></html></source>
|
<source><html><head/><body><p>We are <span style=" font-weight:600;">NOT</span> 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. </p><p>We don't make a profit from this, all developers and maintainers don't get paid, and we rely on the community'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. </p><p>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. </p><p>If any part of the store infringes your rights, please tell us &lt;jifengshenmo@outlook.com&gt; we will remove the infringing content as soon as possible. </p><p>If you'd like to get involved with us too, whether you're involved in development, design, pitching or submitting work, we welcome you to join us. </p><p>QQ group:872690351<br/></p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -413,22 +408,22 @@
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="536"/>
|
<location filename="../src/widget.ui" line="575"/>
|
||||||
<source><html><head/><body><p><br/></p></body></html></source>
|
<source><html><head/><body><p><br/></p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="880"/>
|
<location filename="../src/widget.ui" line="912"/>
|
||||||
<source>Request Update</source>
|
<source>Request Update</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1201"/>
|
<location filename="../src/widget.ui" line="1194"/>
|
||||||
<source>Take effect when restart</source>
|
<source>Take effect when restart</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1341"/>
|
<location filename="../src/widget.ui" line="1334"/>
|
||||||
<source>0B</source>
|
<source>0B</source>
|
||||||
<translation type="unfinished">0B</translation>
|
<translation type="unfinished">0B</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -473,7 +468,7 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.cpp" line="656"/>
|
<location filename="../src/widget.cpp" line="656"/>
|
||||||
<location filename="../src/widget.cpp" line="897"/>
|
<location filename="../src/widget.cpp" line="895"/>
|
||||||
<source>Reinstall</source>
|
<source>Reinstall</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -483,32 +478,27 @@
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.cpp" line="887"/>
|
<location filename="../src/widget.cpp" line="900"/>
|
||||||
<source>Total downloads: %1</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/widget.cpp" line="902"/>
|
|
||||||
<source>Upgrade</source>
|
<source>Upgrade</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.cpp" line="1085"/>
|
<location filename="../src/widget.cpp" line="1083"/>
|
||||||
<source>Updating, please wait...</source>
|
<source>Updating, please wait...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.cpp" line="1146"/>
|
<location filename="../src/widget.cpp" line="1144"/>
|
||||||
<source>Apt has reported an error. Please use apt update in terminal to locate the problem.</source>
|
<source>Apt has reported an error. Please use apt update in terminal to locate the problem.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.cpp" line="1153"/>
|
<location filename="../src/widget.cpp" line="1151"/>
|
||||||
<source>Unknown error!</source>
|
<source>Unknown error!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.cpp" line="1181"/>
|
<location filename="../src/widget.cpp" line="1179"/>
|
||||||
<source>Uninstall succeeded</source>
|
<source>Uninstall succeeded</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -523,12 +513,12 @@
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.cpp" line="1203"/>
|
<location filename="../src/widget.cpp" line="1201"/>
|
||||||
<source>Temporary cache was cleaned</source>
|
<source>Temporary cache was cleaned</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.cpp" line="1285"/>
|
<location filename="../src/widget.cpp" line="1283"/>
|
||||||
<source>The URL has been copied to the clipboard</source>
|
<source>The URL has been copied to the clipboard</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|||||||
@@ -56,47 +56,47 @@ Nous sommes nés pour le changement.</translation>
|
|||||||
<context>
|
<context>
|
||||||
<name>SpkAppInfoLoaderThread</name>
|
<name>SpkAppInfoLoaderThread</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="174"/>
|
<location filename="../src/workerthreads.cpp" line="167"/>
|
||||||
<source>Failed to download app info. Please check internet connection.</source>
|
<source>Failed to download app info. Please check internet connection.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="55"/>
|
<location filename="../src/workerthreads.cpp" line="48"/>
|
||||||
<source>PkgName: </source>
|
<source>PkgName: </source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="56"/>
|
<location filename="../src/workerthreads.cpp" line="49"/>
|
||||||
<source>Version: </source>
|
<source>Version: </source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="59"/>
|
<location filename="../src/workerthreads.cpp" line="52"/>
|
||||||
<source>Author: </source>
|
<source>Author: </source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="64"/>
|
<location filename="../src/workerthreads.cpp" line="57"/>
|
||||||
<source>Official Site: </source>
|
<source>Official Site: </source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="68"/>
|
<location filename="../src/workerthreads.cpp" line="61"/>
|
||||||
<source>Contributor: </source>
|
<source>Contributor: </source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="69"/>
|
<location filename="../src/workerthreads.cpp" line="62"/>
|
||||||
<source>Update Time: </source>
|
<source>Update Time: </source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="70"/>
|
<location filename="../src/workerthreads.cpp" line="63"/>
|
||||||
<source>Installed Size: </source>
|
<source>Installed Size: </source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="130"/>
|
<location filename="../src/workerthreads.cpp" line="123"/>
|
||||||
<source>Failed to load application icon.</source>
|
<source>Failed to load application icon.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -204,222 +204,217 @@ Nous sommes nés pour le changement.</translation>
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="584"/>
|
<location filename="../src/widget.ui" line="547"/>
|
||||||
<location filename="../src/widget.cpp" line="908"/>
|
<location filename="../src/widget.cpp" line="906"/>
|
||||||
<location filename="../src/widget.cpp" line="1177"/>
|
<location filename="../src/widget.cpp" line="1175"/>
|
||||||
<source>Install</source>
|
<source>Install</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="681"/>
|
<location filename="../src/widget.ui" line="560"/>
|
||||||
<source>Name</source>
|
<source>Name</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="636"/>
|
<location filename="../src/widget.ui" line="606"/>
|
||||||
<source>ICON</source>
|
<source>ICON</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="591"/>
|
<location filename="../src/widget.ui" line="661"/>
|
||||||
<source>Uninstall</source>
|
<source>Uninstall</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="577"/>
|
<location filename="../src/widget.ui" line="677"/>
|
||||||
<source>Site</source>
|
<source>Site</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="614"/>
|
<location filename="../src/widget.ui" line="716"/>
|
||||||
<source>Share</source>
|
<source>Share</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="718"/>
|
<location filename="../src/widget.ui" line="750"/>
|
||||||
<location filename="../src/widget.ui" line="721"/>
|
<location filename="../src/widget.ui" line="753"/>
|
||||||
<source><html><head/><body><p>This app is developed by community user,we give this tag to honor those who contribute to the Linux Ecology</p></body></html></source>
|
<source><html><head/><body><p>This app is developed by community user,we give this tag to honor those who contribute to the Linux Ecology</p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="724"/>
|
<location filename="../src/widget.ui" line="756"/>
|
||||||
<source><html><head/><body><p><img src=":/tags/community-small.png"/></p></body></html></source>
|
<source><html><head/><body><p><img src=":/tags/community-small.png"/></p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="737"/>
|
<location filename="../src/widget.ui" line="769"/>
|
||||||
<location filename="../src/widget.ui" line="740"/>
|
<location filename="../src/widget.ui" line="772"/>
|
||||||
<source><html><head/><body><p>Capable to Ubuntu 22.04</p></body></html></source>
|
<source><html><head/><body><p>Capable to Ubuntu 22.04</p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="743"/>
|
<location filename="../src/widget.ui" line="775"/>
|
||||||
<source><html><head/><body><p><img src=":/tags/ubuntu-small.png"/></p></body></html></source>
|
<source><html><head/><body><p><img src=":/tags/ubuntu-small.png"/></p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="756"/>
|
<location filename="../src/widget.ui" line="788"/>
|
||||||
<location filename="../src/widget.ui" line="759"/>
|
<location filename="../src/widget.ui" line="791"/>
|
||||||
<source><html><head/><body><p>Capable to deepin 20</p></body></html></source>
|
<source><html><head/><body><p>Capable to deepin 20</p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="762"/>
|
<location filename="../src/widget.ui" line="794"/>
|
||||||
<source><html><head/><body><p><img src=":/tags/deepin-small.png"/></p></body></html></source>
|
<source><html><head/><body><p><img src=":/tags/deepin-small.png"/></p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="775"/>
|
<location filename="../src/widget.ui" line="807"/>
|
||||||
<location filename="../src/widget.ui" line="778"/>
|
<location filename="../src/widget.ui" line="810"/>
|
||||||
<source><html><head/><body><p>Capable to UOS home 20</p></body></html></source>
|
<source><html><head/><body><p>Capable to UOS home 20</p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="781"/>
|
<location filename="../src/widget.ui" line="813"/>
|
||||||
<source><html><head/><body><p><img src=":/tags/uos-small.png"/></p></body></html></source>
|
<source><html><head/><body><p><img src=":/tags/uos-small.png"/></p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="794"/>
|
<location filename="../src/widget.ui" line="826"/>
|
||||||
<location filename="../src/widget.ui" line="797"/>
|
<location filename="../src/widget.ui" line="829"/>
|
||||||
<source><html><head/><body><p>This is a DTK5 app,which means it would have better effect on Deepin Desktop Environment</p></body></html></source>
|
<source><html><head/><body><p>This is a DTK5 app,which means it would have better effect on Deepin Desktop Environment</p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="800"/>
|
<location filename="../src/widget.ui" line="832"/>
|
||||||
<source><html><head/><body><p><img src=":/tags/dtk-small.png"/></p></body></html></source>
|
<source><html><head/><body><p><img src=":/tags/dtk-small.png"/></p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="813"/>
|
<location filename="../src/widget.ui" line="845"/>
|
||||||
<location filename="../src/widget.ui" line="816"/>
|
<location filename="../src/widget.ui" line="848"/>
|
||||||
<source><html><head/><body><p>A deepin-wine2 app.If you are using ubuntu or other non-deepin distro,you should deploy deepin-wine2 by your self.</p></body></html></source>
|
<source><html><head/><body><p>A deepin-wine2 app.If you are using ubuntu or other non-deepin distro,you should deploy deepin-wine2 by your self.</p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="819"/>
|
<location filename="../src/widget.ui" line="851"/>
|
||||||
<source><html><head/><body><p><img src=":/tags/dwine2-small.png"/></p></body></html></source>
|
<source><html><head/><body><p><img src=":/tags/dwine2-small.png"/></p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="832"/>
|
<location filename="../src/widget.ui" line="864"/>
|
||||||
<location filename="../src/widget.ui" line="835"/>
|
<location filename="../src/widget.ui" line="867"/>
|
||||||
<source><html><head/><body><p>A deepin-wine5 app.If you are using ubuntu or other non-deepin distro,you should deploy deepin-wine5 by your self.</p></body></html></source>
|
<source><html><head/><body><p>A deepin-wine5 app.If you are using ubuntu or other non-deepin distro,you should deploy deepin-wine5 by your self.</p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="838"/>
|
<location filename="../src/widget.ui" line="870"/>
|
||||||
<source><html><head/><body><p><img src=":/tags/dwine5-small.png"/></p></body></html></source>
|
<source><html><head/><body><p><img src=":/tags/dwine5-small.png"/></p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="851"/>
|
<location filename="../src/widget.ui" line="883"/>
|
||||||
<location filename="../src/widget.ui" line="854"/>
|
<location filename="../src/widget.ui" line="886"/>
|
||||||
<source><html><head/><body><p>An Appimage to deb app.</p></body></html></source>
|
<source><html><head/><body><p>An Appimage to deb app.</p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="857"/>
|
<location filename="../src/widget.ui" line="889"/>
|
||||||
<source><html><head/><body><p><img src=":/tags/a2d-small.png"/></p></body></html></source>
|
<source><html><head/><body><p><img src=":/tags/a2d-small.png"/></p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="880"/>
|
<location filename="../src/widget.ui" line="912"/>
|
||||||
<source>Request Update</source>
|
<source>Request Update</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="919"/>
|
<location filename="../src/widget.ui" line="930"/>
|
||||||
<source>Total downloads</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/widget.ui" line="937"/>
|
|
||||||
<source>Info</source>
|
<source>Info</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="944"/>
|
<location filename="../src/widget.ui" line="937"/>
|
||||||
<source><html><head/><body><p>An app store developed by community enthusiasts</p></body></html></source>
|
<source><html><head/><body><p>An app store developed by community enthusiasts</p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="986"/>
|
<location filename="../src/widget.ui" line="979"/>
|
||||||
<source>Screenshots</source>
|
<source>Screenshots</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1149"/>
|
<location filename="../src/widget.ui" line="1142"/>
|
||||||
<source>Line Settings</source>
|
<source>Line Settings</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1165"/>
|
<location filename="../src/widget.ui" line="1158"/>
|
||||||
<source>Choose Line:</source>
|
<source>Choose Line:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1188"/>
|
<location filename="../src/widget.ui" line="1181"/>
|
||||||
<source>Refresh</source>
|
<source>Refresh</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1201"/>
|
<location filename="../src/widget.ui" line="1194"/>
|
||||||
<source>Take effect when restart</source>
|
<source>Take effect when restart</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1230"/>
|
<location filename="../src/widget.ui" line="1223"/>
|
||||||
<source><html><head/><body><p>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. </p></body></html></source>
|
<source><html><head/><body><p>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. </p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1240"/>
|
<location filename="../src/widget.ui" line="1233"/>
|
||||||
<source>Update</source>
|
<source>Update</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1247"/>
|
<location filename="../src/widget.ui" line="1240"/>
|
||||||
<source>Source Server</source>
|
<source>Source Server</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1267"/>
|
<location filename="../src/widget.ui" line="1260"/>
|
||||||
<source>Server</source>
|
<source>Server</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1288"/>
|
<location filename="../src/widget.ui" line="1281"/>
|
||||||
<source>Temp</source>
|
<source>Temp</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1311"/>
|
<location filename="../src/widget.ui" line="1304"/>
|
||||||
<source>Clean</source>
|
<source>Clean</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1321"/>
|
<location filename="../src/widget.ui" line="1314"/>
|
||||||
<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 type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1334"/>
|
<location filename="../src/widget.ui" line="1327"/>
|
||||||
<source>Size:</source>
|
<source>Size:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1348"/>
|
<location filename="../src/widget.ui" line="1341"/>
|
||||||
<source>Location:/tmp/spark-store</source>
|
<source>Location:/tmp/spark-store</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1369"/>
|
<location filename="../src/widget.ui" line="1362"/>
|
||||||
<source>About us</source>
|
<source>About us</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1376"/>
|
<location filename="../src/widget.ui" line="1369"/>
|
||||||
<source><html><head/><body><p>We are <span style=" font-weight:600;">NOT</span> 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. </p><p>We don't make a profit from this, all developers and maintainers don't get paid, and we rely on the community'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. </p><p>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. </p><p>If any part of the store infringes your rights, please tell us &lt;jifengshenmo@outlook.com&gt; we will remove the infringing content as soon as possible. </p><p>If you'd like to get involved with us too, whether you're involved in development, design, pitching or submitting work, we welcome you to join us. </p><p>QQ group:872690351<br/></p></body></html></source>
|
<source><html><head/><body><p>We are <span style=" font-weight:600;">NOT</span> 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. </p><p>We don't make a profit from this, all developers and maintainers don't get paid, and we rely on the community'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. </p><p>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. </p><p>If any part of the store infringes your rights, please tell us &lt;jifengshenmo@outlook.com&gt; we will remove the infringing content as soon as possible. </p><p>If you'd like to get involved with us too, whether you're involved in development, design, pitching or submitting work, we welcome you to join us. </p><p>QQ group:872690351<br/></p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -516,7 +511,7 @@ Nous sommes nés pour le changement.</translation>
|
|||||||
<translation type="vanished">Nom</translation>
|
<translation type="vanished">Nom</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="536"/>
|
<location filename="../src/widget.ui" line="575"/>
|
||||||
<source><html><head/><body><p><br/></p></body></html></source>
|
<source><html><head/><body><p><br/></p></body></html></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -589,7 +584,7 @@ Nous sommes nés pour le changement.</translation>
|
|||||||
<translation type="vanished">Taille: </translation>
|
<translation type="vanished">Taille: </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1341"/>
|
<location filename="../src/widget.ui" line="1334"/>
|
||||||
<source>0B</source>
|
<source>0B</source>
|
||||||
<translation type="unfinished">0B</translation>
|
<translation type="unfinished">0B</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -646,7 +641,7 @@ Nous sommes nés pour le changement.</translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.cpp" line="656"/>
|
<location filename="../src/widget.cpp" line="656"/>
|
||||||
<location filename="../src/widget.cpp" line="897"/>
|
<location filename="../src/widget.cpp" line="895"/>
|
||||||
<source>Reinstall</source>
|
<source>Reinstall</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -666,42 +661,37 @@ Nous sommes nés pour le changement.</translation>
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.cpp" line="887"/>
|
<location filename="../src/widget.cpp" line="900"/>
|
||||||
<source>Total downloads: %1</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/widget.cpp" line="902"/>
|
|
||||||
<source>Upgrade</source>
|
<source>Upgrade</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.cpp" line="1085"/>
|
<location filename="../src/widget.cpp" line="1083"/>
|
||||||
<source>Updating, please wait...</source>
|
<source>Updating, please wait...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.cpp" line="1146"/>
|
<location filename="../src/widget.cpp" line="1144"/>
|
||||||
<source>Apt has reported an error. Please use apt update in terminal to locate the problem.</source>
|
<source>Apt has reported an error. Please use apt update in terminal to locate the problem.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.cpp" line="1153"/>
|
<location filename="../src/widget.cpp" line="1151"/>
|
||||||
<source>Unknown error!</source>
|
<source>Unknown error!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.cpp" line="1181"/>
|
<location filename="../src/widget.cpp" line="1179"/>
|
||||||
<source>Uninstall succeeded</source>
|
<source>Uninstall succeeded</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.cpp" line="1203"/>
|
<location filename="../src/widget.cpp" line="1201"/>
|
||||||
<source>Temporary cache was cleaned</source>
|
<source>Temporary cache was cleaned</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.cpp" line="1285"/>
|
<location filename="../src/widget.cpp" line="1283"/>
|
||||||
<source>The URL has been copied to the clipboard</source>
|
<source>The URL has been copied to the clipboard</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/main.cpp" line="37"/>
|
<location filename="../src/main.cpp" line="37"/>
|
||||||
<source><span style=' font-size:10pt;font-weight:60;'>An appstore powered by community</span><br/><a href='https://www.spark-app.store/'>https://www.spark-app.store</a><br/><span style=' font-size:12pt;'>Spark developers</span></source>
|
<source><span style=' font-size:10pt;font-weight:60;'>An appstore powered by community</span><br/><a href='https://www.spark-app.store/'>https://www.spark-app.store</a><br/><span style=' font-size:12pt;'>Spark developers</span></source>
|
||||||
<translation><span style=' font-size:10pt;font-weight:60;'>一款社区维护的应用商店</span><br/><a href='https://www.spark-app.store/'>https://www.spark-app.store</a><br/><span style=' font-size:12pt;'>星火计划开发者</span></translation>
|
<translation type="unfinished"><span style=' font-size:10pt;font-weight:60;'>一款社区维护的应用商店</span><br/><a href='https://www.spark-app.store/'>https://www.spark-app.store</a><br/><span style=' font-size:12pt;'>星火计划开发者</span></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Version 2.0+2</source>
|
<source>Version 2.0+2</source>
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/main.cpp" line="45"/>
|
<location filename="../src/main.cpp" line="45"/>
|
||||||
<source>The Spark Project</source>
|
<source>The Spark Project</source>
|
||||||
<translation>星火计划 The Spark Project</translation>
|
<translation type="unfinished">星火计划 The Spark Project</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source><span style=' font-size:10pt;font-weight:60;'>An appstore powered by deepin community</span><br/><a href='https://www.spark-app.store/'>https://www.spark-app.store</a><br/><span style=' font-size:12pt;'>Spark developers</span><br/>We publish this program under GPL V3</source>
|
<source><span style=' font-size:10pt;font-weight:60;'>An appstore powered by deepin community</span><br/><a href='https://www.spark-app.store/'>https://www.spark-app.store</a><br/><span style=' font-size:12pt;'>Spark developers</span><br/>We publish this program under GPL V3</source>
|
||||||
@@ -57,47 +57,47 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>SpkAppInfoLoaderThread</name>
|
<name>SpkAppInfoLoaderThread</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="174"/>
|
<location filename="../src/workerthreads.cpp" line="167"/>
|
||||||
<source>Failed to download app info. Please check internet connection.</source>
|
<source>Failed to download app info. Please check internet connection.</source>
|
||||||
<translation>下载应用程序详细信息失败,请检查网络连接。</translation>
|
<translation>下载应用程序详细信息失败,请检查网络连接。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="55"/>
|
<location filename="../src/workerthreads.cpp" line="48"/>
|
||||||
<source>PkgName: </source>
|
<source>PkgName: </source>
|
||||||
<translation>包名: </translation>
|
<translation>包名: </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="56"/>
|
<location filename="../src/workerthreads.cpp" line="49"/>
|
||||||
<source>Version: </source>
|
<source>Version: </source>
|
||||||
<translation>版本: </translation>
|
<translation>版本: </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="59"/>
|
<location filename="../src/workerthreads.cpp" line="52"/>
|
||||||
<source>Author: </source>
|
<source>Author: </source>
|
||||||
<translation>作者: </translation>
|
<translation>作者: </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="64"/>
|
<location filename="../src/workerthreads.cpp" line="57"/>
|
||||||
<source>Official Site: </source>
|
<source>Official Site: </source>
|
||||||
<translation>官网: </translation>
|
<translation>官网: </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="68"/>
|
<location filename="../src/workerthreads.cpp" line="61"/>
|
||||||
<source>Contributor: </source>
|
<source>Contributor: </source>
|
||||||
<translation>投稿者: </translation>
|
<translation>投稿者: </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="69"/>
|
<location filename="../src/workerthreads.cpp" line="62"/>
|
||||||
<source>Update Time: </source>
|
<source>Update Time: </source>
|
||||||
<translation>更新时间: </translation>
|
<translation>更新时间: </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="70"/>
|
<location filename="../src/workerthreads.cpp" line="63"/>
|
||||||
<source>Installed Size: </source>
|
<source>Installed Size: </source>
|
||||||
<translation>大小: </translation>
|
<translation>大小: </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/workerthreads.cpp" line="130"/>
|
<location filename="../src/workerthreads.cpp" line="123"/>
|
||||||
<source>Failed to load application icon.</source>
|
<source>Failed to load application icon.</source>
|
||||||
<translation>加载应用程序图标失败。</translation>
|
<translation>加载应用程序图标失败。</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -188,19 +188,19 @@
|
|||||||
<translation>打开下载文件夹</translation>
|
<translation>打开下载文件夹</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="681"/>
|
<location filename="../src/widget.ui" line="560"/>
|
||||||
<source>Name</source>
|
<source>Name</source>
|
||||||
<translation>软件名</translation>
|
<translation>软件名</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="636"/>
|
<location filename="../src/widget.ui" line="606"/>
|
||||||
<source>ICON</source>
|
<source>ICON</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="584"/>
|
<location filename="../src/widget.ui" line="547"/>
|
||||||
<location filename="../src/widget.cpp" line="908"/>
|
<location filename="../src/widget.cpp" line="906"/>
|
||||||
<location filename="../src/widget.cpp" line="1177"/>
|
<location filename="../src/widget.cpp" line="1175"/>
|
||||||
<source>Install</source>
|
<source>Install</source>
|
||||||
<translation>安装</translation>
|
<translation>安装</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -225,79 +225,79 @@
|
|||||||
<translation>社交沟通</translation>
|
<translation>社交沟通</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="591"/>
|
<location filename="../src/widget.ui" line="661"/>
|
||||||
<source>Uninstall</source>
|
<source>Uninstall</source>
|
||||||
<translation>卸载</translation>
|
<translation>卸载</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="577"/>
|
<location filename="../src/widget.ui" line="677"/>
|
||||||
<source>Site</source>
|
<source>Site</source>
|
||||||
<translation>官网</translation>
|
<translation>官网</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="718"/>
|
<location filename="../src/widget.ui" line="750"/>
|
||||||
<location filename="../src/widget.ui" line="721"/>
|
<location filename="../src/widget.ui" line="753"/>
|
||||||
<source><html><head/><body><p>This app is developed by community user,we give this tag to honor those who contribute to the Linux Ecology</p></body></html></source>
|
<source><html><head/><body><p>This app is developed by community user,we give this tag to honor those who contribute to the Linux Ecology</p></body></html></source>
|
||||||
<translation><html><head/><body><p>这款应用是社区开发者开发的,我们为社区开发者颁发这款勋章以表彰他们对Linux生态的贡献</p></body></html></translation>
|
<translation><html><head/><body><p>这款应用是社区开发者开发的,我们为社区开发者颁发这款勋章以表彰他们对Linux生态的贡献</p></body></html></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="724"/>
|
<location filename="../src/widget.ui" line="756"/>
|
||||||
<source><html><head/><body><p><img src=":/tags/community-small.png"/></p></body></html></source>
|
<source><html><head/><body><p><img src=":/tags/community-small.png"/></p></body></html></source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="737"/>
|
<location filename="../src/widget.ui" line="769"/>
|
||||||
<location filename="../src/widget.ui" line="740"/>
|
<location filename="../src/widget.ui" line="772"/>
|
||||||
<source><html><head/><body><p>Capable to Ubuntu 22.04</p></body></html></source>
|
<source><html><head/><body><p>Capable to Ubuntu 22.04</p></body></html></source>
|
||||||
<translation><html><head/><body><p>支持Ubuntu 22.04</p></body></html></translation>
|
<translation><html><head/><body><p>支持Ubuntu 22.04</p></body></html></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="756"/>
|
<location filename="../src/widget.ui" line="788"/>
|
||||||
<location filename="../src/widget.ui" line="759"/>
|
<location filename="../src/widget.ui" line="791"/>
|
||||||
<source><html><head/><body><p>Capable to deepin 20</p></body></html></source>
|
<source><html><head/><body><p>Capable to deepin 20</p></body></html></source>
|
||||||
<translation><html><head/><body><p>支持deepin 20</p></body></html></translation>
|
<translation><html><head/><body><p>支持deepin 20</p></body></html></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="762"/>
|
<location filename="../src/widget.ui" line="794"/>
|
||||||
<source><html><head/><body><p><img src=":/tags/deepin-small.png"/></p></body></html></source>
|
<source><html><head/><body><p><img src=":/tags/deepin-small.png"/></p></body></html></source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="775"/>
|
<location filename="../src/widget.ui" line="807"/>
|
||||||
<location filename="../src/widget.ui" line="778"/>
|
<location filename="../src/widget.ui" line="810"/>
|
||||||
<source><html><head/><body><p>Capable to UOS home 20</p></body></html></source>
|
<source><html><head/><body><p>Capable to UOS home 20</p></body></html></source>
|
||||||
<translation><html><head/><body><p>支持UOS家庭版 20</p></body></html></translation>
|
<translation><html><head/><body><p>支持UOS家庭版 20</p></body></html></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="794"/>
|
<location filename="../src/widget.ui" line="826"/>
|
||||||
<location filename="../src/widget.ui" line="797"/>
|
<location filename="../src/widget.ui" line="829"/>
|
||||||
<source><html><head/><body><p>This is a DTK5 app,which means it would have better effect on Deepin Desktop Environment</p></body></html></source>
|
<source><html><head/><body><p>This is a DTK5 app,which means it would have better effect on Deepin Desktop Environment</p></body></html></source>
|
||||||
<translation><html><head/><body><p>这是一款DTK5应用,请使用深度桌面环境来获得最完美的体验</p></body></html></translation>
|
<translation><html><head/><body><p>这是一款DTK5应用,请使用深度桌面环境来获得最完美的体验</p></body></html></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="800"/>
|
<location filename="../src/widget.ui" line="832"/>
|
||||||
<source><html><head/><body><p><img src=":/tags/dtk-small.png"/></p></body></html></source>
|
<source><html><head/><body><p><img src=":/tags/dtk-small.png"/></p></body></html></source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="832"/>
|
<location filename="../src/widget.ui" line="864"/>
|
||||||
<location filename="../src/widget.ui" line="835"/>
|
<location filename="../src/widget.ui" line="867"/>
|
||||||
<source><html><head/><body><p>A deepin-wine5 app.If you are using ubuntu or other non-deepin distro,you should deploy deepin-wine5 by your self.</p></body></html></source>
|
<source><html><head/><body><p>A deepin-wine5 app.If you are using ubuntu or other non-deepin distro,you should deploy deepin-wine5 by your self.</p></body></html></source>
|
||||||
<translation><html><head/><body><p>这是一款deepin-wine5应用,如果你并没有在使用深度系列发行版(比如您在使用ubuntu),你需要自行配置deepin-wine5环境</p></body></html></translation>
|
<translation><html><head/><body><p>这是一款deepin-wine5应用,如果你并没有在使用深度系列发行版(比如您在使用ubuntu),你需要自行配置deepin-wine5环境</p></body></html></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="851"/>
|
<location filename="../src/widget.ui" line="883"/>
|
||||||
<location filename="../src/widget.ui" line="854"/>
|
<location filename="../src/widget.ui" line="886"/>
|
||||||
<source><html><head/><body><p>An Appimage to deb app.</p></body></html></source>
|
<source><html><head/><body><p>An Appimage to deb app.</p></body></html></source>
|
||||||
<translation><html><head/><body><p>这是一款Appimage转制应用.</p></body></html></translation>
|
<translation><html><head/><body><p>这是一款Appimage转制应用.</p></body></html></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="857"/>
|
<location filename="../src/widget.ui" line="889"/>
|
||||||
<source><html><head/><body><p><img src=":/tags/a2d-small.png"/></p></body></html></source>
|
<source><html><head/><body><p><img src=":/tags/a2d-small.png"/></p></body></html></source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="614"/>
|
<location filename="../src/widget.ui" line="716"/>
|
||||||
<source>Share</source>
|
<source>Share</source>
|
||||||
<translation>Spk分享链接</translation>
|
<translation>Spk分享链接</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -320,18 +320,18 @@
|
|||||||
<translation type="vanished">社交沟通</translation>
|
<translation type="vanished">社交沟通</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="813"/>
|
<location filename="../src/widget.ui" line="845"/>
|
||||||
<location filename="../src/widget.ui" line="816"/>
|
<location filename="../src/widget.ui" line="848"/>
|
||||||
<source><html><head/><body><p>A deepin-wine2 app.If you are using ubuntu or other non-deepin distro,you should deploy deepin-wine2 by your self.</p></body></html></source>
|
<source><html><head/><body><p>A deepin-wine2 app.If you are using ubuntu or other non-deepin distro,you should deploy deepin-wine2 by your self.</p></body></html></source>
|
||||||
<translation><html><head/><body><p>这是一款 deepin-wine2 应用,如果你并没有在使用深度系列发行版(比如您在使用ubuntu),你需要自行配置 deepin-wine2 环境</p></body></html></translation>
|
<translation><html><head/><body><p>这是一款 deepin-wine2 应用,如果你并没有在使用深度系列发行版(比如您在使用ubuntu),你需要自行配置 deepin-wine2 环境</p></body></html></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="819"/>
|
<location filename="../src/widget.ui" line="851"/>
|
||||||
<source><html><head/><body><p><img src=":/tags/dwine2-small.png"/></p></body></html></source>
|
<source><html><head/><body><p><img src=":/tags/dwine2-small.png"/></p></body></html></source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="838"/>
|
<location filename="../src/widget.ui" line="870"/>
|
||||||
<source><html><head/><body><p><img src=":/tags/dwine5-small.png"/></p></body></html></source>
|
<source><html><head/><body><p><img src=":/tags/dwine5-small.png"/></p></body></html></source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -340,32 +340,32 @@
|
|||||||
<translation type="vanished">贡献翻译/应用反馈</translation>
|
<translation type="vanished">贡献翻译/应用反馈</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="937"/>
|
<location filename="../src/widget.ui" line="930"/>
|
||||||
<source>Info</source>
|
<source>Info</source>
|
||||||
<translation>详细</translation>
|
<translation>详细</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="944"/>
|
<location filename="../src/widget.ui" line="937"/>
|
||||||
<source><html><head/><body><p>An app store developed by community enthusiasts</p></body></html></source>
|
<source><html><head/><body><p>An app store developed by community enthusiasts</p></body></html></source>
|
||||||
<translation><html><head/><body><p>由社区爱好者开发的一款应用商店</p></body></html></translation>
|
<translation><html><head/><body><p>由社区爱好者开发的一款应用商店</p></body></html></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="986"/>
|
<location filename="../src/widget.ui" line="979"/>
|
||||||
<source>Screenshots</source>
|
<source>Screenshots</source>
|
||||||
<translation>屏幕截图</translation>
|
<translation>屏幕截图</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1149"/>
|
<location filename="../src/widget.ui" line="1142"/>
|
||||||
<source>Line Settings</source>
|
<source>Line Settings</source>
|
||||||
<translation>线路设置</translation>
|
<translation>线路设置</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1165"/>
|
<location filename="../src/widget.ui" line="1158"/>
|
||||||
<source>Choose Line:</source>
|
<source>Choose Line:</source>
|
||||||
<translation>线路选择:</translation>
|
<translation>线路选择:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1188"/>
|
<location filename="../src/widget.ui" line="1181"/>
|
||||||
<source>Refresh</source>
|
<source>Refresh</source>
|
||||||
<translation>刷新</translation>
|
<translation>刷新</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -374,57 +374,57 @@
|
|||||||
<translation type="vanished">重启商店后生效</translation>
|
<translation type="vanished">重启商店后生效</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1230"/>
|
<location filename="../src/widget.ui" line="1223"/>
|
||||||
<source><html><head/><body><p>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. </p></body></html></source>
|
<source><html><head/><body><p>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. </p></body></html></source>
|
||||||
<translation><html><head/><body><p>源服务器的作用是保证软件更新,并且支持使用apt工具获取软件。通常我们更建议你使用第一个线路作为更新源,一般是最稳定的。</p></body></html></translation>
|
<translation><html><head/><body><p>源服务器的作用是保证软件更新,并且支持使用apt工具获取软件。通常我们更建议你使用第一个线路作为更新源,一般是最稳定的。</p></body></html></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1240"/>
|
<location filename="../src/widget.ui" line="1233"/>
|
||||||
<source>Update</source>
|
<source>Update</source>
|
||||||
<translation>更新源</translation>
|
<translation>更新源</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1247"/>
|
<location filename="../src/widget.ui" line="1240"/>
|
||||||
<source>Source Server</source>
|
<source>Source Server</source>
|
||||||
<translation>更新源服务器</translation>
|
<translation>更新源服务器</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1267"/>
|
<location filename="../src/widget.ui" line="1260"/>
|
||||||
<source>Server</source>
|
<source>Server</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1288"/>
|
<location filename="../src/widget.ui" line="1281"/>
|
||||||
<source>Temp</source>
|
<source>Temp</source>
|
||||||
<translation>缓存目录</translation>
|
<translation>缓存目录</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1311"/>
|
<location filename="../src/widget.ui" line="1304"/>
|
||||||
<source>Clean</source>
|
<source>Clean</source>
|
||||||
<translation>清空</translation>
|
<translation>清空</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1321"/>
|
<location filename="../src/widget.ui" line="1314"/>
|
||||||
<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>因为这个目录位于/tmp下,所以即使你不手动清空的话,其也将在系统重启时自动清空。</translation>
|
<translation>因为这个目录位于/tmp下,所以即使你不手动清空的话,其也将在系统重启时自动清空。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1334"/>
|
<location filename="../src/widget.ui" line="1327"/>
|
||||||
<source>Size:</source>
|
<source>Size:</source>
|
||||||
<translation>目录大小:</translation>
|
<translation>目录大小:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1348"/>
|
<location filename="../src/widget.ui" line="1341"/>
|
||||||
<source>Location:/tmp/spark-store</source>
|
<source>Location:/tmp/spark-store</source>
|
||||||
<translation>目录位置:/tmp/spark-store</translation>
|
<translation>目录位置:/tmp/spark-store</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1369"/>
|
<location filename="../src/widget.ui" line="1362"/>
|
||||||
<source>About us</source>
|
<source>About us</source>
|
||||||
<translation>关于我们</translation>
|
<translation>关于我们</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1376"/>
|
<location filename="../src/widget.ui" line="1369"/>
|
||||||
<source><html><head/><body><p>We are <span style=" font-weight:600;">NOT</span> 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. </p><p>We don't make a profit from this, all developers and maintainers don't get paid, and we rely on the community'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. </p><p>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. </p><p>If any part of the store infringes your rights, please tell us &lt;jifengshenmo@outlook.com&gt; we will remove the infringing content as soon as possible. </p><p>If you'd like to get involved with us too, whether you're involved in development, design, pitching or submitting work, we welcome you to join us. </p><p>QQ group:872690351<br/></p></body></html></source>
|
<source><html><head/><body><p>We are <span style=" font-weight:600;">NOT</span> 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. </p><p>We don't make a profit from this, all developers and maintainers don't get paid, and we rely on the community'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. </p><p>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. </p><p>If any part of the store infringes your rights, please tell us &lt;jifengshenmo@outlook.com&gt; we will remove the infringing content as soon as possible. </p><p>If you'd like to get involved with us too, whether you're involved in development, design, pitching or submitting work, we welcome you to join us. </p><p>QQ group:872690351<br/></p></body></html></source>
|
||||||
<translation><html><head/><body><p>我们并<span style=" font-weight:600;">不是</span>官方团队,和你一样,我们也只是众多Linux/deepin系统爱好者和用户之中的一员,我们开发并且运营这个“Spark应用商店”,是为了让社区的朋友们一起分享好用的软件,或者一起参与开发,让大家都用到最新的,最优秀的软件。</p><p>我们并没有因此盈利,所有开发和维护人员都不会获得报酬,我们的主要支出大部分依赖于社区对我们的捐助,很感谢大家,这部分捐助让我们并不需要耗费太多精力去担心资金问题。</p><p>我们的服务和开发的软件都是免费供给大家使用,交流,学习的,但是在您的使用过程中一定要遵守当地的法律法规,否则出现任何问题和我们无关。</p><p>如果商店中任何一部分有侵犯您权益的行为,请告知我们 &lt;jifengshenmo@outlook.com&gt;,我们会第一时间删除侵权内容。</p><p>如果你也想参与我们,不管是参与开发,设计,投递还是投稿作品,我们都欢迎你的加入。</p><p>QQ 群:872690351<br/></p></body></html></translation>
|
<translation><html><head/><body><p>我们并<span style=" font-weight:600;">不是</span>官方团队,和你一样,我们也只是众多Linux/deepin系统爱好者和用户之中的一员,我们开发并且运营这个“Spark应用商店”,是为了让社区的朋友们一起分享好用的软件,或者一起参与开发,让大家都用到最新的,最优秀的软件。</p><p>我们并没有因此盈利,所有开发和维护人员都不会获得报酬,我们的主要支出大部分依赖于社区对我们的捐助,很感谢大家,这部分捐助让我们并不需要耗费太多精力去担心资金问题。</p><p>我们的服务和开发的软件都是免费供给大家使用,交流,学习的,但是在您的使用过程中一定要遵守当地的法律法规,否则出现任何问题和我们无关。</p><p>如果商店中任何一部分有侵犯您权益的行为,请告知我们 &lt;jifengshenmo@outlook.com&gt;,我们会第一时间删除侵权内容。</p><p>如果你也想参与我们,不管是参与开发,设计,投递还是投稿作品,我们都欢迎你的加入。</p><p>QQ 群:872690351<br/></p></body></html></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -454,37 +454,32 @@
|
|||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="536"/>
|
<location filename="../src/widget.ui" line="575"/>
|
||||||
<source><html><head/><body><p><br/></p></body></html></source>
|
<source><html><head/><body><p><br/></p></body></html></source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="743"/>
|
<location filename="../src/widget.ui" line="775"/>
|
||||||
<source><html><head/><body><p><img src=":/tags/ubuntu-small.png"/></p></body></html></source>
|
<source><html><head/><body><p><img src=":/tags/ubuntu-small.png"/></p></body></html></source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="781"/>
|
<location filename="../src/widget.ui" line="813"/>
|
||||||
<source><html><head/><body><p><img src=":/tags/uos-small.png"/></p></body></html></source>
|
<source><html><head/><body><p><img src=":/tags/uos-small.png"/></p></body></html></source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="880"/>
|
<location filename="../src/widget.ui" line="912"/>
|
||||||
<source>Request Update</source>
|
<source>Request Update</source>
|
||||||
<translation>软件催更/应用反馈</translation>
|
<translation type="unfinished">软件催更/应用反馈</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="919"/>
|
<location filename="../src/widget.ui" line="1194"/>
|
||||||
<source>Total downloads</source>
|
|
||||||
<translation>总下载量</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../src/widget.ui" line="1201"/>
|
|
||||||
<source>Take effect when restart</source>
|
<source>Take effect when restart</source>
|
||||||
<translation>重启商店后生效</translation>
|
<translation>重启商店后生效</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.ui" line="1341"/>
|
<location filename="../src/widget.ui" line="1334"/>
|
||||||
<source>0B</source>
|
<source>0B</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -518,11 +513,6 @@
|
|||||||
<source>Not Exist</source>
|
<source>Not Exist</source>
|
||||||
<translation>不存在</translation>
|
<translation>不存在</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<location filename="../src/widget.cpp" line="887"/>
|
|
||||||
<source>Total downloads: %1</source>
|
|
||||||
<translation>总下载量:%1</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.cpp" line="138"/>
|
<location filename="../src/widget.cpp" line="138"/>
|
||||||
<location filename="../src/widget.cpp" line="406"/>
|
<location filename="../src/widget.cpp" line="406"/>
|
||||||
@@ -566,7 +556,7 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.cpp" line="656"/>
|
<location filename="../src/widget.cpp" line="656"/>
|
||||||
<location filename="../src/widget.cpp" line="897"/>
|
<location filename="../src/widget.cpp" line="895"/>
|
||||||
<source>Reinstall</source>
|
<source>Reinstall</source>
|
||||||
<translation>重新安装</translation>
|
<translation>重新安装</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -594,22 +584,22 @@
|
|||||||
<translation type="vanished">目前仅支持商店专用链接的打开,搜索功能正在开发,请期待以后的版本!</translation>
|
<translation type="vanished">目前仅支持商店专用链接的打开,搜索功能正在开发,请期待以后的版本!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.cpp" line="902"/>
|
<location filename="../src/widget.cpp" line="900"/>
|
||||||
<source>Upgrade</source>
|
<source>Upgrade</source>
|
||||||
<translation>升级</translation>
|
<translation>升级</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.cpp" line="1085"/>
|
<location filename="../src/widget.cpp" line="1083"/>
|
||||||
<source>Updating, please wait...</source>
|
<source>Updating, please wait...</source>
|
||||||
<translation>正在更新,请稍候……</translation>
|
<translation>正在更新,请稍候……</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.cpp" line="1146"/>
|
<location filename="../src/widget.cpp" line="1144"/>
|
||||||
<source>Apt has reported an error. Please use apt update in terminal to locate the problem.</source>
|
<source>Apt has reported an error. Please use apt update in terminal to locate the problem.</source>
|
||||||
<translation>更新中发生错误,请在终端使用apt update来查看错误原因。</translation>
|
<translation>更新中发生错误,请在终端使用apt update来查看错误原因。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.cpp" line="1153"/>
|
<location filename="../src/widget.cpp" line="1151"/>
|
||||||
<source>Unknown error!</source>
|
<source>Unknown error!</source>
|
||||||
<translation>未知错误!</translation>
|
<translation>未知错误!</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -661,17 +651,17 @@ Click yes to continue.</source>
|
|||||||
<translation type="vanished">服务器未知错误</translation>
|
<translation type="vanished">服务器未知错误</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.cpp" line="1181"/>
|
<location filename="../src/widget.cpp" line="1179"/>
|
||||||
<source>Uninstall succeeded</source>
|
<source>Uninstall succeeded</source>
|
||||||
<translation>卸载成功</translation>
|
<translation>卸载成功</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.cpp" line="1203"/>
|
<location filename="../src/widget.cpp" line="1201"/>
|
||||||
<source>Temporary cache was cleaned</source>
|
<source>Temporary cache was cleaned</source>
|
||||||
<translation>缓存目录已清空</translation>
|
<translation>缓存目录已清空</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widget.cpp" line="1285"/>
|
<location filename="../src/widget.cpp" line="1283"/>
|
||||||
<source>The URL has been copied to the clipboard</source>
|
<source>The URL has been copied to the clipboard</source>
|
||||||
<translation>链接已复制到剪贴板</translation>
|
<translation>链接已复制到剪贴板</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -768,7 +758,7 @@ Click yes to continue.</source>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/downloadlist.cpp" line="74"/>
|
<location filename="../src/downloadlist.cpp" line="74"/>
|
||||||
<source>Downloaded. Open APP Upgrade and Install Settings to enable password-free installation</source>
|
<source>Downloaded. Open APP Upgrade and Install Settings to enable password-free installation</source>
|
||||||
<translation>下载完成 可进入应用更新和安装设置来启动免密码安装</translation>
|
<translation type="unfinished">下载完成 可进入应用更新和安装设置来启动免密码安装</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/downloadlist.cpp" line="190"/>
|
<location filename="../src/downloadlist.cpp" line="190"/>
|
||||||
|
|||||||
Reference in New Issue
Block a user