mirror of
https://gitee.com/spark-store-project/spark-store
synced 2025-12-15 13:22:04 +08:00
Compare commits
94 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9acf7cc8d4 | |||
| 5136984343 | |||
| a8d82480e7 | |||
| efac507fed | |||
| 22532e0436 | |||
| 4de6b167da | |||
| 7bde95a65c | |||
| 9a47b5515c | |||
| 0db7fad640 | |||
| 1a98dae4f8 | |||
| 5cb1cff0ca | |||
| 8d4874d553 | |||
| c00d62c010 | |||
| 831bef8233 | |||
| 20e1763929 | |||
| 35218a917b | |||
| e5a2fd2d94 | |||
| 6946f20d64 | |||
| 3f9200bf01 | |||
| b2fc80215d | |||
| 74d4cc05d9 | |||
|
|
a7d86d9120 | ||
| fb21620880 | |||
| 985e7d829e | |||
| 5ceb8d78cb | |||
| dfce427891 | |||
| 75b73088b4 | |||
| c72885ff55 | |||
| beba54925c | |||
| aba67f19b4 | |||
| 9708db56d6 | |||
| 1ee5b412b8 | |||
| a14613018b | |||
| 086c490bb7 | |||
| 3db4cd8a62 | |||
| 104f8b798f | |||
| 5ede18a8d3 | |||
| 375a520a14 | |||
| d41364c063 | |||
| a6cd981a51 | |||
| 9660eaafd3 | |||
| 1cc9d3bdd6 | |||
| 6790283ace | |||
| 735e99d891 | |||
| 9b4dae382d | |||
| c1ccf51258 | |||
| 61a28b1d73 | |||
| 2a5e1280f9 | |||
| 72d1374503 | |||
| c791ad4afb | |||
| 1037330324 | |||
| 7acd2edbcc | |||
| 8392fbb64e | |||
| 24dbed8864 | |||
| 4330abdf0b | |||
| 72d8bf883b | |||
| dd0629bc8d | |||
| d33c85b5e6 | |||
| f557a0d341 | |||
| 56692bbdc3 | |||
| def03de995 | |||
| ebef968a65 | |||
| d832df6efd | |||
| cc3561777e | |||
| 39be4cdf6f | |||
| d085f3de73 | |||
| fc58de0325 | |||
| 407ec6b573 | |||
| 2803d4b8da | |||
| 48028076a8 | |||
| e435cf66dc | |||
| 766b7cd178 | |||
| 5d4ac6f523 | |||
| 29869dbb9d | |||
| ba00b208f0 | |||
| d07f2a5fa4 | |||
| 708d8866ac | |||
| 2115b1fb11 | |||
| 0e810cea87 | |||
|
|
9f32a02f35 | ||
|
|
9f23c2b381 | ||
| 2cca83a34b | |||
| 1f98c8df7c | |||
| da9f84d78a | |||
| 88cc3eb921 | |||
| f04130f902 | |||
| ea7baa9ab0 | |||
| e7e810ea2b | |||
| 1de46a8296 | |||
| c228706144 | |||
| 5ece2b2034 | |||
| 460dcfebed | |||
| fb257212b6 | |||
| 1436e35a49 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -53,3 +53,4 @@ debian/*.substvars
|
||||
debian/spark-store
|
||||
|
||||
.vscode/*
|
||||
src/spark-store
|
||||
|
||||
@@ -2,7 +2,7 @@ version: '1.0'
|
||||
name: dtk-build-release-tag-20220425
|
||||
displayName: dtk-build-release-tag
|
||||
triggers:
|
||||
trigger: auto
|
||||
trigger: manual
|
||||
push:
|
||||
tags:
|
||||
prefix:
|
||||
|
||||
@@ -25,10 +25,12 @@ stages:
|
||||
- apt update
|
||||
- export DEBIAN_FRONTEND=noninteractive
|
||||
- echo "安装wget qemu-user-static"
|
||||
- apt install wget qemu-user-static xz-utils -y
|
||||
- apt install git wget qemu-user-static xz-utils binfmt-support -y
|
||||
- mkdir ../spark-store-git
|
||||
- mv * ../spark-store-git
|
||||
- wget https://code.gitlink.org.cn/shenmo7192/debian-container-aarch64/raw/branch/master/DEBIANARM.tar.xz
|
||||
- git clone https://gitlink.org.cn/shenmo7192/debian-container-aarch64.git
|
||||
- mv debian-container-aarch64/DEBIANARM.tar.xz .
|
||||
- rm -rf debian-container-aarch64
|
||||
- tar -xf DEBIANARM.tar.xz
|
||||
- mkdir -p DEBIAN/root/build-spark
|
||||
- mv ../spark-store-git DEBIAN/root/build-spark/spark-store
|
||||
|
||||
48
DOCS/json-api-doc.md
Normal file
48
DOCS/json-api-doc.md
Normal file
@@ -0,0 +1,48 @@
|
||||
# 基本格式
|
||||
0. 应用信息
|
||||
|
||||
例子:https://cdn.d.store.deepinos.org.cn/store/tools/spark-store/app.json
|
||||
|
||||
```json
|
||||
{
|
||||
"Name": "星火应用商店",
|
||||
"Version": "4.2.7.1",
|
||||
"Filename": "spark-store_4.2.7.1_amd64.deb",
|
||||
"Torrent_address": "spark-store_4.2.7.1_amd64.deb.torrent",
|
||||
"Pkgname": "spark-store",
|
||||
"Author": "shenmo <shenmo@spark-app.store>",
|
||||
"Contributor": "shenmo <jifengshenmo@outlook.com>",
|
||||
"Website": "https://www.spark-app.store/",
|
||||
"Update": "2023-09-01 23:22:23",
|
||||
"Size": "590.5 KB",
|
||||
"More": "* 修复:aptss加锁失败现在会正常报错\n * 新增:在aptss的特定操作时添加了提示\n * 新增:在aptss提示加粗\n * 调整:ssinstall验证支持使用cdn.d.获取",
|
||||
"Tags": "community;ubuntu;deepin;uos;dtk5",
|
||||
"img_urls": "[\"https://examine-spark.oss-cn-shanghai.aliyuncs.com/images/2023/09/01/411c32fd691544bb985ecba87d151ea0.png\",\"https://examine-spark.oss-cn-shanghai.aliyuncs.com/images/2023/09/01/f44b3c2242c045e28f1161980d805e0d.png\",\"https://examine-spark.oss-cn-shanghai.aliyuncs.com/images/2023/09/01/00263ba857894667bd99240558bec69c.png\",\"https://examine-spark.oss-cn-shanghai.aliyuncs.com/images/2023/09/01/6fd248ad9eea4ef18c9c4acc2a9d372d.png\"]",
|
||||
"icons": "https://examine-spark.oss-cn-shanghai.aliyuncs.com/icons/2023/09/01/a88dd18cc1734396a02e7e3c6be59718.png"
|
||||
}
|
||||
```
|
||||
|
||||
*注意:img_urls和icons的信息不保证有效!大部分是有效的,少部分app.json可能缺失此项目!*
|
||||
|
||||
**对于icon和截图的获取需求请参考第三点**
|
||||
|
||||
1. 对于某分类下的所有应用信息
|
||||
`{SOURCE_URL}/{ARCH}/{CATOGARY}/applist.json`
|
||||
说明:SOURCE_URL:线路链接,目前推荐 https://cdn.d.store.deepinos.org.cn,你也可以使用其他的星火线路
|
||||
ARCH:架构文件夹 x86是store或amd64-store,arm是aarch64-store。特别的,如果你使用非https://cdn.d.store.deepinos.org.cn的线路,你可能会发现amd64-store会返回404,因为不是所有的服务器都支持软连接
|
||||
CATOGARY:分类目录。参考 https://gitee.com/deepin-community-store/spark-store/blob/dev/DOCS/spk-doc.md 中 store 直达的对应关系
|
||||
|
||||
例子:https://cdn.d.store.deepinos.org.cn/aarch64-store/tools/applist.json
|
||||
|
||||
2. 对于单个应用的应用信息
|
||||
`{SOURCE_URL}/{ARCH}/{CATOGARY}/{Package Name}/app.json`
|
||||
Package Name是包名。可从上级的applist.json读取
|
||||
|
||||
例子:https://cdn.d.store.deepinos.org.cn/store/tools/spark-store/app.json
|
||||
|
||||
3. 对应用截图和icon的获取
|
||||
|
||||
`{SOURCE_URL}/{ARCH}/{CATOGARY}/{Package Name}/icon.png`
|
||||
`{SOURCE_URL}/{ARCH}/{CATOGARY}/{Package Name}/screen_n.png`(n=1-5)(至少为1,不是所有的都有到5. 404是正常的)
|
||||
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
#### 调用参数(spk规则)
|
||||
|
||||
参数只有一个Url,该url应当遵循这种格式:`spk://<任意合法字符>/web分类/包名`
|
||||
* store直达
|
||||
|
||||
该url应当遵循这种格式:`spk://store/web分类/包名`
|
||||
|
||||
|
||||
目前第一字段不进行处理,以后可能会对此识别。在目前阶段,这个字段可以填写任意合法字符
|
||||
|
||||
例如:
|
||||
|
||||
[spk://abcdefg/games/store.spark-app.hmcl](spk://abcdefg/games/store.spark-app.hmcl)
|
||||
[spk://store/games/store.spark-app.hmcl](spk://store/games/store.spark-app.hmcl)
|
||||
|
||||
|
||||
可选的web分类:
|
||||
@@ -25,3 +27,8 @@
|
||||
| 工具 | tools |
|
||||
| 主题 | themes |
|
||||
| 其他 | others |
|
||||
|
||||
|
||||
* search搜索
|
||||
|
||||
spk://search/pkgname
|
||||
|
||||
91
FAQ.md
Normal file
91
FAQ.md
Normal file
@@ -0,0 +1,91 @@
|
||||
# FAQ
|
||||
## Spark App Store FAQ and Support Guide
|
||||
|
||||
### Introduction
|
||||
The Spark App Store is an application store aimed at Linux users and supports multiple Linux distributions. Below are some commonly asked questions and solutions. Please note that this document is primarily intended for ordinary users who are not familiar with Linux and the APT package management system.
|
||||
|
||||
---
|
||||
|
||||
### Communication and Feedback
|
||||
**Q: Where can I join the community group?**
|
||||
**A:** You can click [here](https://www.deepinos.org/) to enter the main communication platform of the Spark Store.
|
||||
> ⚠️ If the above link doesn't work, you can also join our QQ groups as an alternative. The group numbers are 872690351 and 865927727. We also offer forums for communication.
|
||||
|
||||
#### Differences Between arm64 and amd64
|
||||
|
||||
arm64
|
||||
|
||||
* Full Name: Advanced RISC Machine 64-bit
|
||||
* Main Use: Primarily used in mobile devices, embedded systems, and some new servers and desktop computers.
|
||||
* Advantages: Low power consumption, high efficiency, suitable for battery-driven and heat-sensitive devices.
|
||||
* Main Manufacturers: Apple, Qualcomm, HiSilicon, Phytium, etc.
|
||||
|
||||
amd64
|
||||
|
||||
* Full Name: AMD 64-bit, also known as x86_64
|
||||
* Main Use: Primarily used in desktop computers, laptops, and servers.
|
||||
* Advantages: High performance, suitable for computation-intensive applications.
|
||||
* Main Manufacturers: Intel and AMD.
|
||||
* The main differences between the two are in the instruction sets and application scenarios. amd64 is usually used for high-performance computers and servers, while arm64 is more commonly used in power-sensitive settings.
|
||||
|
||||
#### How to Check:
|
||||
|
||||
Linux:
|
||||
|
||||
- Open the terminal.
|
||||
- Type `uname -m` or `arch` and press Enter.
|
||||
- You will see your processor architecture (possibly x86_64, aarch64, etc.).
|
||||
|
||||
---
|
||||
|
||||
### Domestic Architecture Support
|
||||
**Q: I use a domestic chip architecture, how can I get applications?**
|
||||
**A:** Currently, Spark Store supports **arm** architecture for domestic chips. You can download deb packages suitable for arm64 architecture.
|
||||
> ⚠️ Please note that this is experimental support. If you encounter any issues, please provide feedback via Spark's communication platform, QQ group, or forums.
|
||||
|
||||
---
|
||||
|
||||
### Dependency Issues
|
||||
**Q: I get errors when installing dependencies**
|
||||
**A:** If you are using UOS or deepin, please do not install the dependency packages. For Kali Linux/Kdeneon etc., temporary support is not available, please compile and install yourself.
|
||||
> 💡 If errors occur, try running `sudo apt update` before attempting the installation again. If the issue persists, refer to the first question and seek help on the community platform.
|
||||
|
||||
---
|
||||
|
||||
### Submission and App Updates
|
||||
**Q: Where can I submit applications?**
|
||||
**A:** You can find the "Submit Application" option in the upper-right corner menu of the app store interface.
|
||||
|
||||
---
|
||||
|
||||
### Support for Non-deepin/UOS Users
|
||||
**Q: I'm not a deepin/UOS user; can I use the Spark App Store?**
|
||||
**A:** Yes, you can directly install if you're using Ubuntu 22.04. For Ubuntu 20.04/Debian10/Debian11, please install the dependencies first.
|
||||
|
||||
---
|
||||
|
||||
### Installation Methods
|
||||
**Q: Can I use dpkg -i for installation?**
|
||||
**A:** No! Use `sudo apt install ./xxxx.deb` to install, or use graphical installers like gdebi.
|
||||
> ⚠️ Using dpkg directly will not handle software dependencies, which is a common mistake.
|
||||
|
||||
---
|
||||
|
||||
### System Updates
|
||||
**Q: Will the Spark Store affect normal system updates?**
|
||||
**A:** No, the Spark Store has separated its application sources from system sources and will not affect regular system updates.
|
||||
|
||||
---
|
||||
|
||||
### Reporting Issues and Removing Apps
|
||||
**Q: Some apps are outdated or inactive, and I want them removed**
|
||||
**A:** You can report issues [here](https://gitee.com/deepin-community-store/software_-issue).
|
||||
|
||||
---
|
||||
|
||||
### Installing Spark App Store
|
||||
If you wish to install the Spark App Store, please visit the [Release page](https://gitee.com/deepin-community-store/spark-store/releases), find the latest version, and choose the package suitable for your current system.
|
||||
|
||||
> ⚠️ Special Note: If you are using Debian10/Debian11 or Ubuntu 20.04, you may need to download additional dependency packages. After downloading, unzip multiple times until you see the software user guide. For operating systems later than Ubuntu 22.04, you do not need to install dependency packages. Just follow the steps above to install the main program directly.
|
||||
|
||||
---
|
||||
90
FAQ.zh.md
Normal file
90
FAQ.zh.md
Normal file
@@ -0,0 +1,90 @@
|
||||
# FAQ
|
||||
## 星火应用商店FAQ与支持指南
|
||||
|
||||
### 简介
|
||||
星火应用商店是一个面向 Linux 用户的应用商店,支持多种不同的 Linux 发行版。以下是一些常见问题及解决方案。请注意,该文档主要面向对 Linux 和 APT 软件包管理系统不熟悉的普通用户。
|
||||
|
||||
---
|
||||
|
||||
### 交流与反馈
|
||||
**Q: 在哪进交流群?**
|
||||
**A:** 你可以点击[这里](https://www.deepinos.org/)进入星火商店的主交流平台。
|
||||
> ⚠️ 如果上面的链接无法使用,你还可以加入我们的 QQ 群作为备选方案,群号是 872690351 和 865927727。我们还提供论坛作为交流平台。
|
||||
|
||||
arm64与amd64的区别
|
||||
|
||||
arm64
|
||||
|
||||
* 全称: Advanced RISC Machine 64-bit
|
||||
* 主要用途: 主要应用于移动设备、嵌入式系统以及一些新型的服务器和桌面计算机。
|
||||
* 优势: 低功耗、高效率,适合用在电池驱动和热敏感的设备。
|
||||
* 主要生产商: 苹果、高通、海思、飞腾等。
|
||||
|
||||
amd64
|
||||
|
||||
* 全称: AMD 64-bit, 也被称为 x86_64
|
||||
* 主要用途: 主要应用于桌面计算机、笔记本以及服务器。
|
||||
* 优势: 高性能,适用于计算密集型应用。
|
||||
* 主要生产商: Intel和AMD。
|
||||
* 两者最主要的不同在于指令集和应用场景。amd64通常用于高性能需求的计算机和服务器,而arm64则更多应用于功耗要求更严格的场合。
|
||||
|
||||
查看方法:
|
||||
|
||||
Linux:
|
||||
|
||||
- 打开终端。
|
||||
- 输入 uname -m 或 arch 并按回车。
|
||||
- 你将看到你的处理器架构(可能是 x86_64, aarch64 等)。
|
||||
---
|
||||
|
||||
### 国产架构支持
|
||||
**Q: 我是国产架构,怎么获取应用?**
|
||||
**A:** 目前,星火商店支持**arm**架构的国产芯片。你可以下载适用于 arm64 架构的deb包(软件安装包)。
|
||||
> ⚠️ 请注意,这是实验性的支持。如果遇到问题,请在星火交流平台、QQ群或论坛向我们反馈。
|
||||
|
||||
---
|
||||
|
||||
### 安装依赖问题
|
||||
**Q: 安装依赖包出现错误**
|
||||
**A:** 如果你使用UOS或deepin,请不要安装依赖包。对于Kali Linux/Kdeneon等,暂时不支持,请自行编译安装。
|
||||
> 💡 出现错误时,尝试运行 `sudo apt update` 后再尝试安装。如果问题仍然存在,请参考第一条,进入交流平台寻求帮助。
|
||||
|
||||
---
|
||||
|
||||
### 投稿与应用更新
|
||||
**Q: 在哪里投稿?**
|
||||
**A:** 你可以在应用商店界面的右上角菜单找到“投递应用”的选项。
|
||||
|
||||
---
|
||||
|
||||
### 非deepin/UOS用户支持
|
||||
**Q: 我不是deepin/UOS用户,可以使用星火应用商店吗?**
|
||||
**A:** 可以,如果你是使用 Ubuntu 22.04,请直接安装。对于 Ubuntu 20.04/Debian10/Debian11,请先安装依赖包。
|
||||
|
||||
---
|
||||
|
||||
### 安装方法
|
||||
**Q: 我可以用dpkg -i安装吗?**
|
||||
**A:** 不可以!使用 `sudo apt install ./xxxx.deb` 来安装,或者使用gdebi等图形化的安装器。
|
||||
> ⚠️ 直接使用dpkg是不会处理软件依赖的,这是一个常见的错误。
|
||||
|
||||
---
|
||||
|
||||
### 系统更新
|
||||
**Q: 星火商店会影响系统正常更新吗?**
|
||||
**A:** 不会,星火商店已经将应用源与系统源分开,不会影响系统的正常更新。
|
||||
|
||||
---
|
||||
|
||||
### 报告问题和应用下架
|
||||
**Q: 有些应用已经过时或者失效了,我想让他下架**
|
||||
**A:** 你可以前往 [这里](https://gitee.com/deepin-community-store/software_-issue) 报告问题。
|
||||
|
||||
---
|
||||
|
||||
### 安装星火应用商店
|
||||
如果你想安装星火应用商店,请打开[Release页面](https://gitee.com/deepin-community-store/spark-store/releases),找到最新版本,并选择适用于当前系统的安装包下载。
|
||||
|
||||
> ⚠️ 特别提示: 如果你在使用 Debian10/Debian11 或 Ubuntu 20.04,你可能额外下载依赖补充包。您需要在下载完依赖包后,解压多次一直到看到内部的软件使用说明,对于 Ubuntu22.04 以后的操作系统版本,您无需安装依赖包,您需要按照上面的操作直接安装本体程序。
|
||||
|
||||
---
|
||||
187
README.md
187
README.md
@@ -1,87 +1,160 @@
|
||||
# Spark App Store
|
||||
[](https://gitee.com/deepin-community-store/spark-store/stargazers) [](https://gitee.com/deepin-community-store/spark-store/members)
|
||||
# Spark App Store
|
||||
[](https://gitee.com/deepin-community-store/spark-store/stargazers) [](https://gitee.com/deepin-community-store/spark-store/members)
|
||||
|
||||
## Branch: Flamescion
|
||||
## Introduction
|
||||
|
||||
This branch is the main branch of Spark Store
|
||||
Welcome to the Spark App Store! This is an app store designed for Linux users, aiming to solve the problem of dispersed and difficult-to-obtain applications in the Linux ecosystem. No matter what type of Linux distribution you are using, you may find suitable software packages here.
|
||||
|
||||
The number of Linux applications is relatively limited, and the availability of Wine software is also quite challenging. Excellent development and tool resources are scattered across various communities and forums, making it difficult for the entire ecosystem to improve comprehensively.
|
||||
|
||||
The construction of the ecosystem is not dependent on the isolated efforts of individuals but requires the participation of the entire community. Only when everyone's "sparks" gather together can they ignite a "prairie fire."
|
||||
|
||||
To improve this situation, we have launched this app store. We have broadly included various user-demand software packages, gathered high-quality tools, and actively adapted Wine applications, all stored in our software library for easy user access.
|
||||
|
||||
**Currently supported Linux distributions include:**
|
||||
|
||||
- **amd64 architecture:** deepin 20 / deepin 23 / Ubuntu 20.04 / Ubuntu 22.04 / UOS Home Edition 20
|
||||
- **arm64 architecture:** UOS Professional Edition 1060 / Ubuntu 22.04 / deepin 23
|
||||
|
||||
> Special Note: We also support all versions of Ubuntu operating systems higher than Ubuntu 22.04, such as Ubuntu 22.10, 23.04, 23.10, etc.
|
||||
|
||||
**Important Notice:** This software does not provide any form of warranty. If you plan to use it on UOS Professional Edition, please make sure to understand and enable Developer Mode. Make sure you have basic troubleshooting capabilities. It should be clear that we have not conducted extensive testing on the UOS operating system. Therefore, using the Spark client may lead to a series of issues like failed system updates, data loss, etc., all risks to be borne by the user.
|
||||
|
||||
## Team Collaboration: For detailed documentation related to branch management, please see [this link](https://deepin-community-store.gitee.io/spark-wiki/#/Dev/Spark-Store-Git-Repo).
|
||||
|
||||
We warmly welcome you to join our development team. Whether you want to participate in development or submit applications, you can find your place here to jointly promote the development of the Linux application ecosystem.
|
||||
|
||||
You can track our Issue handling status in real-time through the following link: [Gitee Issue Board](https://gitee.com/deepin-community-store/spark-store/board).
|
||||
|
||||
If you have a software package you'd like to submit, please [click here to submit](https://upload.deepinos.org/index).
|
||||
|
||||
## Contents
|
||||
|
||||
- [Determine your system architecture](#determine-your-system-architecture)
|
||||
- [System support and installation guide](#system-support-and-installation-guide)
|
||||
- [For Deepin / UOS Users](#for-deepin-users)
|
||||
- [For Ubuntu Users](#for-ubuntu-users)
|
||||
- [For Debian Users](#for-debian-users)
|
||||
- [Frequently Asked Questions (FAQ)](#frequently-asked-questions-faq)
|
||||
- [Contact and Feedback](#contact-and-feedback)
|
||||
|
||||
---
|
||||
## You are informed that the aarch64 support is EXPERIMENTAL and there is NO GUARANTEE that this branch will be supported in the future
|
||||
|
||||
Spark Store aims to collect Linux apps for the convieniece of Linux new comers
|
||||
## Determine your system architecture
|
||||
|
||||
The collecting process needs everyone's help
|
||||
Before installing any software, you need to know what architecture your computer runs on (such as x86_64/amd64 or aarch64/arm64).
|
||||
|
||||
We set up this APP Store and collect APPs/tools that everyone need widely. Also we pack Windows apps with wine.
|
||||
**How to check:**
|
||||
|
||||
All packages will be shared in our repository for users to get freely.
|
||||
1. Open a Linux terminal.
|
||||
2. Type `uname -m` or `arch` and press Enter.
|
||||
|
||||
Distrobution supported:Deepin 20 ; Ubuntu 22.04 LTS / Ubuntu 20.04 LTS(May stop support in the future) ; UniontechOS Home 21
|
||||
You will see an output, and that's your system architecture.
|
||||
|
||||
*About OpenKylin and deepin 23*
|
||||
|
||||
The adaptation work is scheduled after their official release.
|
||||
|
||||
You can track our Issue resoving progress here https://gitee.com/deepin-community-store/spark-store/board
|
||||
|
||||
|
||||
We hope people who see here can also join our team,development help or submit applications are welcomed
|
||||
|
||||
If you want to submit an APP to share with others,Please [Click here](https://upload.deepinos.org/index)
|
||||
|
||||
|
||||
## 🙌 A simple start
|
||||
|
||||
If you simply want to install the Spark Store,just enter the [Release] page, find the version you want and install.
|
||||
|
||||
If you are using Debian11/Ubuntu 20.04, you will need extra dependency package. Available [here](https://zunyun01.store.deepinos.org.cn/spark-store-dependencies-kylin.zip)
|
||||
- If you see `x86_64`, your system is AMD64 architecture.
|
||||
- If you see `aarch64`, your system is ARM64 architecture.
|
||||
|
||||
---
|
||||
#### Compile and developement
|
||||
|
||||
## System support and installation guide
|
||||
|
||||
For Deepin V20/UOS 21/ Debian 11
|
||||
### For Deepin Users
|
||||
|
||||
```shell
|
||||
sudo apt install git qt5-default debhelper pkg-config qtchooser libqt5core5a libqt5gui5 libqt5widgets5 libqt5network5 libqt5concurrent5 libdtkcore-dev libdtkgui-dev libdtkwidget-dev qttools5-private-dev libnotify-dev qtwebengine5-dev fakeroot qtwayland5 qtwayland5-dev-tools dde-qt5wayland-plugin libqt5svg5*
|
||||
#### For Deepin Users
|
||||
|
||||
```
|
||||
1. **Download and Install**
|
||||
|
||||
Ubuntu 22.04
|
||||
```shell
|
||||
sudo apt install git qtbase5-dev debhelper pkg-config qtchooser libqt5core5a libqt5gui5 libqt5widgets5 libqt5network5 libqt5concurrent5 libdtkcore-dev libdtkgui-dev libdtkwidget-dev qttools5-private-dev libnotify-dev qtwebengine5-dev qtwayland5 qtwayland5-dev-tools libqt5svg5*
|
||||
You can directly search for Spark App Store in the Deepin Store to install, or copy this link to open and install in your browser:
|
||||
|
||||
```
|
||||
> appstore://deepin-home-appstore-client?app_detail_info/spark-store
|
||||
|
||||
Then
|
||||
To use the latest version, please visit the [Spark App Store Release page](https://gitee.com/deepin-community-store/spark-store/releases) and download the latest version suitable for Deepin. Install to use.
|
||||
|
||||
```shell
|
||||
git clone https://gitee.com/deepin-community-store/spark-store.git
|
||||
cd spark-store
|
||||
dpkg-buildpackage -j
|
||||
```
|
||||
Assuming you've downloaded to the `Downloads` folder in your user directory, we recommend you use the APT tool to install:
|
||||
|
||||
Or:
|
||||
```shell
|
||||
git clone https://gitee.com/deepin-community-store/spark-store.git
|
||||
cd spark-store
|
||||
./build_and_install.sh
|
||||
```
|
||||
## EULA
|
||||
```shell
|
||||
cd ~/Downloads
|
||||
sudo apt install ./spark-store*.deb
|
||||
```
|
||||
|
||||
This is our [EULA](https://genshin-impact.fandom.com/wiki/Eula)
|
||||
### For Ubuntu Users
|
||||
|
||||
#### For Ubuntu 20.04 Users
|
||||
|
||||
## 🚀 Coorperation
|
||||
1. **Download Dependencies**
|
||||
* Please visit the [Spark App Store Dependency Download page](https://spark-app.store/download_dependencies_latest) and download the latest dependency package.
|
||||
* Unzip the dependency package multiple times until you see multiple installation packages ending with `.deb`.
|
||||
* Follow the instructions in the dependency package to install all the dependencies at once.
|
||||
|
||||
We use Gitee as our code hosting platform. Please click here to contact us.
|
||||
2. **Download and Install**
|
||||
|
||||
https://gitee.com/deepin-community-store/spark-store
|
||||
Visit the [Spark App Store Release page](https://gitee.com/deepin-community-store/spark-store/releases), download the installation package that matches your computer's architecture, and install it.
|
||||
|
||||
### Forum
|
||||
Assuming you've downloaded to the `Downloads` folder in your user directory, we recommend you use the APT tool to install:
|
||||
|
||||
https://www.deepinos.org/
|
||||
```shell
|
||||
cd ~/Downloads
|
||||
sudo apt install ./spark-store*.deb
|
||||
```
|
||||
|
||||
#### QQ Group
|
||||
#### For Ubuntu 22.04 and Higher Version Users
|
||||
|
||||
https://blog.shenmo.tech/post/%E6%95%85%E9%9A%9C%E5%85%AC%E5%91%8A/
|
||||
1. **No Need to Install Dependencies**
|
||||
|
||||
2. **Download and Install**
|
||||
|
||||
Visit the [Spark App Store Release page](https://gitee.com/deepin-community-store/spark-store/releases), download the installation package that matches your computer's architecture, and install it.
|
||||
|
||||
Assuming you've downloaded to the `Downloads` folder in your user directory, we recommend you use the APT tool to install:
|
||||
|
||||
```shell
|
||||
cd ~/Downloads
|
||||
sudo apt install ./spark-store*.deb
|
||||
```
|
||||
|
||||
### For Debian Users
|
||||
|
||||
#### For Debian 11 Users
|
||||
|
||||
1. **Download Dependencies**
|
||||
* Please visit the [Spark App Store Dependency Download page](https://spark-app.store/download_dependencies_latest) and download the latest dependency package.
|
||||
* Unzip the dependency package multiple times until you see multiple installation packages ending with `.deb`.
|
||||
* Follow the instructions in the dependency package to install all the dependencies at once.
|
||||
|
||||
2. **Download and Install**
|
||||
|
||||
Please visit the [Spark App Store Release page](https://gitee.com/deepin-community-store/spark-store/releases) and download. Install to use.
|
||||
|
||||
#### For Debian 12+ Users
|
||||
|
||||
1. **No Need to Install Dependencies**
|
||||
|
||||
2. **Download and Install**
|
||||
|
||||
Please visit the [Spark App Store Release page](https://gitee.com/deepin-community-store/spark-store/releases), download the installation package that matches your computer's architecture, and install it.
|
||||
|
||||
Assuming you've downloaded to the `Downloads` folder in your user directory, we recommend you use the APT tool to install:
|
||||
|
||||
```shell
|
||||
cd ~/Downloads
|
||||
sudo apt install ./spark-store*.deb
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Frequently Asked Questions (FAQ)
|
||||
|
||||
Please refer to the [Spark App Store FAQ and Support Guide](https://gitee.com/deepin-community-store/spark-store/blob/dev/FAQ.md).
|
||||
|
||||
You can also check the [Chinese version](https://gitee.com/deepin-community-store/spark-store/blob/dev/FAQ.zh.md) here.
|
||||
|
||||
---
|
||||
|
||||
## Contact and Feedback
|
||||
|
||||
- If you have any questions or suggestions, please submit them via email or on our [Gitee page](https://gitee.com/deepin-community-store/spark-store/issues).
|
||||
- If you want to follow our development progress, you can go to the [Spark App Store Board](https://gitee.com/deepin-community-store/spark-store/board) for more information.
|
||||
- Our [Forum](https://www.deepinos.org/)
|
||||
- Our [QQ Group](https://blog.shenmo.tech/post/%E6%95%85%E9%9A%9C%E5%85%AC%E5%91%8A/)
|
||||
|
||||
---
|
||||
200
README.zh.md
200
README.zh.md
@@ -1,83 +1,173 @@
|
||||
# 星火应用商店
|
||||
[](https://gitee.com/deepin-community-store/spark-store/stargazers) [](https://gitee.com/deepin-community-store/spark-store/members)
|
||||
|
||||
## 分支:火穗
|
||||
|
||||
此分支是星火应用商店的主分支
|
||||
## 简介
|
||||
|
||||
欢迎来到星火应用商店!这是一个为Linux用户设计的应用商店,旨在解决Linux生态下应用分散、难以获取的问题。无论你是使用什么类型的Linux发行版,这里都有可能找到适合你的软件包。
|
||||
|
||||
|
||||
Linux 应用的数量相对有限,Wine 软件的可获得性也颇为困难。优秀的开发和工具资源散布在各大社区和论坛之间,这种分散化让整个生态系统难以得到全面的提升。
|
||||
|
||||
生态系统的构建并非依赖个体的孤立努力,而需要全社区共同参与。只有当大家的“星火”聚集一处,方可引发“燎原之势”。
|
||||
|
||||
为了改善这一现状,我们推出了这个应用商店。我们广泛地收录了各种用户需求的软件包,汇集了高质量的小工具,并主动对 Wine 应用进行了适配,一切都储存在我们的软件库中,以便用户方便地获取。
|
||||
|
||||
**当前支持的Linux发行版包括:**
|
||||
|
||||
- **amd64架构:** deepin 20 / deepin 23 / Ubuntu 20.04 / Ubuntu 22.04 / UOS家庭版20
|
||||
- **arm64架构:** UOS专业版1060 / Ubuntu 22.04 / deepin 23
|
||||
|
||||
> 特别说明:我们还支持所有版本高于Ubuntu 22.04的Ubuntu操作系统,例如Ubuntu 22.10、23.04、23.10等。
|
||||
|
||||
**重要须知:** 本软件不提供任何形式的保证。若您计划在UOS专业版上使用,请务必了解并启用开发者模式。请确保您具备基础的故障排查能力。需要明确的是,我们没有在UOS操作系统上进行广泛的测试。因此,使用星火客户端可能会导致一系列问题,如系统更新失败、数据丢失等,所有风险需由用户自行承担。
|
||||
|
||||
|
||||
|
||||
## 关于团队协作:分支管理相关的详细文档可参见 [此链接](https://deepin-community-store.gitee.io/spark-wiki/#/Dev/Spark-Store-Git-Repo)。
|
||||
|
||||
我们热忱欢迎您加入我们的开发团队。无论您是想参与开发,还是想提交应用,都能在这里找到属于您的一席之地,共同推动Linux应用生态的发展。
|
||||
|
||||
您可以通过以下链接,实时跟踪我们的Issue处理状态:[Gitee Issue看板](https://gitee.com/deepin-community-store/spark-store/board)。
|
||||
|
||||
若您有软件包想要提交,敬请 [点击此处进行投稿](https://deepin-community-store.gitee.io/spark-wiki/#/Submit/Submit)。
|
||||
|
||||
|
||||
|
||||
|
||||
## 目录
|
||||
|
||||
- [确定你的系统架构](#确定你的系统架构)
|
||||
- [系统支持与安装指引](#系统支持与安装指引)
|
||||
- [对于 Deepin / UOS 用户](#对于deepin用户)
|
||||
- [对于 Ubuntu 用户](#对于ubuntu用户)
|
||||
- [对于 Debian 用户](#对于debian用户)
|
||||
- [常见问题(FAQ)](#常见问题faq)
|
||||
- [联系与反馈](#联系与反馈)
|
||||
|
||||
---
|
||||
## 请注意,aarch64的支持是实验性的,并未确认持续支持!
|
||||
|
||||
众所周知,国内的Linux应用比较少,wine应用难以获取,优质工具分散在民间各大论坛,无法形成合力,难以改善生态
|
||||
## 确定你的系统架构
|
||||
|
||||
生态构建需要的不是某一方的单打独斗,而是人人行动起来,汇聚星火,产生燎原之势
|
||||
在安装任何软件之前,你需要知道你的计算机运行的是哪种架构(如x86_64/amd64或aarch64/arm64)。
|
||||
|
||||
我们创建了这个应用商店,广泛收录大家需要的软件包,搜集优质小工具,主动适配wine应用,存放到储存库供大家获取
|
||||
我们支持:Deepin 20 ; Ubuntu 22.04 LTS / Ubuntu 20.04 LTS(将会逐渐停止支持) ; UOS Home 21
|
||||
**如何检查:**
|
||||
|
||||
## 关于协作:分支相关的文档见 [这里](https://deepin-community-store.gitee.io/spark-wiki/#/Dev/Spark-Store-Git-Repo)
|
||||
1. 打开Linux终端。
|
||||
2. 输入 `uname -m` 或 `arch` 并按回车。
|
||||
|
||||
*关于OpenKylin和deepin 23*
|
||||
你会看到一个输出,这就是你的系统架构。
|
||||
|
||||
支持计划将会在对应系统发布正式版之后开始评估和执行
|
||||
|
||||
希望看到这里的人也可以加入我们的队伍,开发或者投递应用都很欢迎,共同构建Linux应用生态
|
||||
|
||||
在这里追踪我们的Issue处理情况 https://gitee.com/deepin-community-store/spark-store/board
|
||||
|
||||
如果有想要提交的软件包,请 [在这里投稿](https://upload.deepinos.org/index)
|
||||
|
||||
|
||||
## 🙌 简单的开始
|
||||
|
||||
如果想安装 `星火应用商店` ,请打开右侧的 [Release] 页面,找到最新版本,并选择适用于当前系统的安装包下载。
|
||||
|
||||
如果你在使用 `Debian 11/Ubuntu 20.04`,你需要额外下载[依赖补充包](https://zunyun01.store.deepinos.org.cn/spark-store-dependencies-kylin.zip)
|
||||
- 如果看到 `x86_64`,你的系统是AMD64架构。
|
||||
- 如果看到 `aarch64`,你的系统是ARM64架构。
|
||||
|
||||
---
|
||||
#### 编译安装
|
||||
|
||||
## 系统支持与安装指引
|
||||
|
||||
根据你的Linux发行版和系统架构,以下是安装星火应用商店的详细步骤。
|
||||
|
||||
### 对于 Deepin 用户
|
||||
|
||||
#### 对于 Deepin 用户
|
||||
|
||||
1. **下载并安装**
|
||||
|
||||
您可直接在深度商店搜索 星火应用商店 安装,或复制此链接到浏览器打开安装
|
||||
|
||||
> appstore://deepin-home-appstore-client?app_detail_info/spark-store
|
||||
|
||||
|
||||
Deepin V20/UOS 21 系统下, 安装依赖
|
||||
若要使用最新版本,请访问[星火应用商店的Release页面](https://gitee.com/deepin-community-store/spark-store/releases)并下载适用于Deepin的最新版本。安装后即可使用。
|
||||
|
||||
```shell
|
||||
sudo apt install git qt5-default debhelper pkg-config qtchooser libqt5core5a libqt5gui5 libqt5widgets5 libqt5network5 libqt5concurrent5 libdtkcore-dev libdtkgui-dev libdtkwidget-dev qttools5-private-dev libnotify-dev qtwebengine5-dev fakeroot qtwayland5 qtwayland5-dev-tools dde-qt5wayland-plugin libqt5svg5*
|
||||
假设您下载到用户目录下的 Downloads 文件夹, 我们推荐您使用 APT 工具安装:
|
||||
|
||||
```
|
||||
```shell
|
||||
cd ~/Downloads
|
||||
sudo apt install ./spark-store*.deb
|
||||
```
|
||||
|
||||
Ubuntu 22.04 系统下, 安装依赖
|
||||
```shell
|
||||
sudo apt install git qtbase5-dev debhelper pkg-config qtchooser libqt5core5a libqt5gui5 libqt5widgets5 libqt5network5 libqt5concurrent5 libdtkcore-dev libdtkgui-dev libdtkwidget-dev qttools5-private-dev libnotify-dev qtwebengine5-dev qtwayland5 qtwayland5-dev-tools libqt5svg5*
|
||||
### 对于 Ubuntu 用户
|
||||
|
||||
```
|
||||
#### 对于 Ubuntu 20.04 用户
|
||||
|
||||
然后
|
||||
```shell
|
||||
git clone https://gitee.com/deepin-community-store/spark-store.git
|
||||
cd spark-store
|
||||
dpkg-buildpackage -j
|
||||
```
|
||||
|
||||
或者: 编译并安装
|
||||
```shell
|
||||
git clone https://gitee.com/deepin-community-store/spark-store.git
|
||||
cd spark-store
|
||||
./build_and_install.sh
|
||||
```
|
||||
|
||||
## EULA
|
||||
|
||||
这里是我们的[EULA](https://mzh.moegirl.org.cn/%E4%BC%98%E8%8F%88%C2%B7%E5%8A%B3%E4%BC%A6%E6%96%AF)
|
||||
1. **下载依赖包**
|
||||
* 请访问[星火应用商店依赖包下载页面](https://spark-app.store/download_dependencies_latest), 下载最新的依赖包。
|
||||
* 请多次解压依赖包,直到你可以看到诸多以 deb 结尾的安装包。
|
||||
* 依据依赖包内的说明,一次性安装所有的依赖包。
|
||||
|
||||
|
||||
## 🚀 协作
|
||||
2. **下载并安装**
|
||||
|
||||
非常感谢有兴趣的开发者或爱好者参与 `星火应用商店` 项目,分享你的见解与思路。
|
||||
请访问[星火应用商店的Release页面](https://gitee.com/deepin-community-store/spark-store/releases),下载和您电脑相同架构的安装包并安装。
|
||||
|
||||
### 论坛
|
||||
假设您下载到用户目录下的 Downloads 文件夹, 我们推荐您使用 APT 工具安装:
|
||||
|
||||
https://www.deepinos.org/
|
||||
```shell
|
||||
cd ~/Downloads
|
||||
sudo apt install ./spark-store*.deb
|
||||
```
|
||||
|
||||
#### QQ群:
|
||||
#### 对于 Ubuntu 22.04 及更高版本的 Ubuntu 用户
|
||||
1. **无需安装依赖包**
|
||||
|
||||
https://blog.shenmo.tech/post/%E6%95%85%E9%9A%9C%E5%85%AC%E5%91%8A/
|
||||
|
||||
2. **下载并安装**
|
||||
|
||||
请访问[星火应用商店的Release页面](https://gitee.com/deepin-community-store/spark-store/releases),下载和您电脑相同架构的安装包并安装。
|
||||
|
||||
假设您下载到用户目录下的 Downloads 文件夹, 我们推荐您使用 APT 工具安装:
|
||||
|
||||
```shell
|
||||
cd ~/Downloads
|
||||
sudo apt install ./spark-store*.deb
|
||||
```
|
||||
|
||||
### 对于 Debian 用户
|
||||
|
||||
#### 对于 Debian 11 用户
|
||||
|
||||
1. **下载依赖包**
|
||||
* 请访问[星火应用商店依赖包下载页面](https://spark-app.store/download_dependencies_latest), 下载最新的依赖包。
|
||||
* 请多次解压依赖包,直到你可以看到诸多以 deb 结尾的安装包。
|
||||
* 依据依赖包内的说明,一次性安装所有的依赖包。
|
||||
|
||||
2. **下载并安装**
|
||||
|
||||
请访问[星火应用商店的Release页面](https://gitee.com/deepin-community-store/spark-store/releases)并下载,安装后即可使用。
|
||||
|
||||
|
||||
#### 对于 Debian 12+ 用户
|
||||
|
||||
1. **无需安装依赖包**
|
||||
|
||||
|
||||
2. **下载并安装**
|
||||
|
||||
请访问[星火应用商店的Release页面](https://gitee.com/deepin-community-store/spark-store/releases),下载和您电脑相同架构的安装包并安装。
|
||||
|
||||
假设您下载到用户目录下的 Downloads 文件夹, 我们推荐您使用 APT 工具安装:
|
||||
|
||||
```shell
|
||||
cd ~/Downloads
|
||||
sudo apt install ./spark-store*.deb
|
||||
```
|
||||
---
|
||||
|
||||
## 常见问题(FAQ)
|
||||
|
||||
请参见[星火应用商店FAQ与支持指南](https://gitee.com/deepin-community-store/spark-store/blob/dev/FAQ.md)。
|
||||
|
||||
在这里可以查阅[中文版本](https://gitee.com/deepin-community-store/spark-store/blob/dev/FAQ.zh.md)。
|
||||
|
||||
---
|
||||
|
||||
## 联系与反馈
|
||||
|
||||
- 如果您有任何问题或建议,请通过邮件或在[Gitee页面](https://gitee.com/deepin-community-store/spark-store/issues)上提交问题。
|
||||
- 如果你想关注我们的开发进度,可以跳转[星火应用商店Board](https://gitee.com/deepin-community-store/spark-store/board)获取更多信息。
|
||||
- 我们的[论坛](https://www.deepinos.org/)
|
||||
- 我们的[QQ群](https://blog.shenmo.tech/post/%E6%95%85%E9%9A%9C%E5%85%AC%E5%91%8A/)
|
||||
|
||||
|
||||
---
|
||||
|
||||
125
debian/changelog
vendored
125
debian/changelog
vendored
@@ -1,50 +1,133 @@
|
||||
spark-store (4.2.8) stable; urgency=medium
|
||||
|
||||
* 修复:在aptss上锁时支持等待释放锁而不是直接报错退出
|
||||
* 调整:下载安装按钮文案修改
|
||||
* 优化 KDE 深色模式支持实现方式
|
||||
* 新增:ssinstall现在会自动创建desktop文件
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
|
||||
|
||||
spark-store (4.2.7.3) stable; urgency=medium
|
||||
|
||||
* 修复:aptss现在会正确地透传错误码而不是exit 0
|
||||
* 修复:下载时如果卡0%(无法下载metalink),会在超时后报错中断而不是一直傻等
|
||||
* 修复:排队下载时CPU占满单核的bug https://gitee.com/deepin-community-store/spark-store/issues/I7B91V
|
||||
* 修复:在终端中打开的icon过大导致无法投稿到UOS
|
||||
* 修复:v23下编译出错
|
||||
* 薪怎:支持崩溃日志收集系统
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
|
||||
|
||||
|
||||
|
||||
spark-store (4.2.7.2) stable; urgency=medium
|
||||
|
||||
* 新增:内置在终端打开功能
|
||||
* 调整:散列验证更改为使用sha512
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
|
||||
|
||||
|
||||
|
||||
spark-store (4.2.7.1) stable; urgency=medium
|
||||
|
||||
* 修复:aptss加锁失败现在会正常报错
|
||||
* 新增:在aptss的特定操作时添加了提示
|
||||
* 新增:在aptss提示加粗
|
||||
* 调整:ssinstall验证支持使用cdn.d.获取
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
|
||||
|
||||
|
||||
spark-store (4.2.7) stable; urgency=medium
|
||||
|
||||
* 修复:更新星火商店后禁止更新提醒的配置失效
|
||||
* 新增:支持在设置中关闭平台不兼容提示
|
||||
* 调整:更改了下载量统计的方式,减少漏数
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
|
||||
|
||||
|
||||
spark-store (4.2.6.6) stable; urgency=medium
|
||||
|
||||
* 调整:文案修改:安装失败后引导查看详情而不是重新安装
|
||||
* 修复:dpkg阻塞出现漏掉的安装失败,现在在安装后检测是否安装
|
||||
* 修复:UOS专业版上安装成功仍然显示失败的问题:方式:忽略E:等消息,仅检查脚本报错
|
||||
* 调整:卸载应用时采用autopurge以一并卸载依赖
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
|
||||
|
||||
|
||||
spark-store (4.2.6.5) stable; urgency=medium
|
||||
|
||||
* 调整:ssaudit安装结束时会提示安装结束
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
|
||||
|
||||
|
||||
spark-store (4.2.6.4) stable; urgency=medium
|
||||
|
||||
* 修复:关于页面的入口过时
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
|
||||
|
||||
|
||||
spark-store (4.2.6.3) stable; urgency=medium
|
||||
|
||||
* 修复:部分下载统计线路失效
|
||||
|
||||
-- shenmo <shenmo@spark-app.store>
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
|
||||
|
||||
|
||||
spark-store (4.2.6.2) stable; urgency=medium
|
||||
|
||||
* 新增:支持arm架构搜索
|
||||
|
||||
-- shenmo <shenmo@spark-app.store>
|
||||
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
|
||||
|
||||
|
||||
spark-store (4.2.6.1) stable; urgency=medium
|
||||
|
||||
* 修复:mint下更新检测不正常
|
||||
|
||||
-- shenmo <shenmo@spark-app.store>
|
||||
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
|
||||
|
||||
|
||||
spark-store (4.2.6) stable; urgency=medium
|
||||
|
||||
* 修复:截图加载失败时点击闪退
|
||||
|
||||
-- shenmo <shenmo@spark-app.store>
|
||||
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
|
||||
|
||||
|
||||
spark-store (4.2.5.1) stable; urgency=medium
|
||||
|
||||
* 调整:重写了spark-dstore-patch,速度提升,尤其对机械硬盘下
|
||||
* 调整:优化了aptss源文件同步策略
|
||||
|
||||
-- shenmo <shenmo@spark-app.store>
|
||||
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
|
||||
|
||||
|
||||
spark-store (4.2.5) stable; urgency=medium
|
||||
|
||||
* 修复:ssinstall在文件不存在时仍然报安装成功
|
||||
* 修复:删除不再需要的依赖:libc6-dev
|
||||
* 在aarch64架构安装时也启用32位支持
|
||||
|
||||
-- shenmo <shenmo@spark-app.store>
|
||||
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
|
||||
|
||||
|
||||
spark-store (4.2.4) stable; urgency=medium
|
||||
|
||||
* 修复:ssinstall校验失败的时候仍然提示安装成功
|
||||
* 新增:ssinstall可以自动刷新ssupdate以防止仓库更新中导致的安装校验失败
|
||||
* 修复:在不受支持的平台安装应用时弹出提示不正确
|
||||
|
||||
-- shenmo <shenmo@spark-app.store>
|
||||
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
|
||||
|
||||
|
||||
spark-store (4.2.3.3) stable; urgency=medium
|
||||
|
||||
* aptss 不再使用bwrap,去除依赖,支持容器中启动
|
||||
* aptss 支持非root模式启动
|
||||
* aptss 添加transhell支持
|
||||
@@ -55,27 +138,30 @@ spark-store (4.2.3.3) stable; urgency=medium
|
||||
* 4.3 roadmap 实现,在浏览不支持的应用时会出现提示
|
||||
* 4.3 roadmap 实现,在下载文件夹没有读写权限时会出现提示
|
||||
|
||||
-- shenmo <shenmo@spark-app.store>
|
||||
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
|
||||
|
||||
|
||||
spark-store (4.2.3.2~Reason10) stable; urgency=medium
|
||||
|
||||
* 完成除web外大部分功能适配
|
||||
* 修复依赖不完整的问题
|
||||
|
||||
-- shenmo <shenmo@spark-app.store>
|
||||
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
|
||||
|
||||
|
||||
spark-store (4.2.3.2~Reason9) stable; urgency=medium
|
||||
|
||||
* sender-d.sh
|
||||
* ssinstall和ssaudit的安装测试转到upgrade-worker
|
||||
|
||||
-- shenmo <shenmo@spark-app.store>
|
||||
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
|
||||
|
||||
|
||||
spark-store (4.2.3.2~Reason8) stable; urgency=medium
|
||||
|
||||
* sender-d改用cpp重写,在aarch64上稳定运行
|
||||
|
||||
-- shenmo <shenmo@spark-app.store>
|
||||
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
|
||||
|
||||
|
||||
spark-store (4.2.3.2~Reason7) stable; urgency=medium
|
||||
@@ -84,36 +170,44 @@ spark-store (4.2.3.2~Reason7) stable; urgency=medium
|
||||
* ssinstall在发现无法安装后尝试先进行下aptss update
|
||||
* 修复:安装商店后首次启动无法安装任何软件
|
||||
|
||||
-- shenmo <shenmo@spark-app.store>
|
||||
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
|
||||
|
||||
|
||||
spark-store (4.2.3.2~Reason5) stable; urgency=medium
|
||||
|
||||
* aptss 不再使用bwrap,去除依赖,支持容器中启动
|
||||
* aptss 支持非root模式启动
|
||||
* aptss 添加transhell支持
|
||||
* 关于界面自动获取分支名称
|
||||
* 现在安装成功则自动删除安装包
|
||||
|
||||
-- shenmo <shenmo@spark-app.store>
|
||||
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
|
||||
|
||||
|
||||
spark-store (4.2.3.2~Reason3) stable; urgency=medium
|
||||
|
||||
* 现在可在x86上编译,使用同一套代码
|
||||
* 暂时在aarch64上使用旧web----等待柚子
|
||||
* 空间,疾疫,现在是静谧
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
|
||||
|
||||
|
||||
spark-store (4.2.3.2~only-for-test1) stable; urgency=medium
|
||||
|
||||
* 注意!!!!!! 此版本仅为启动测试,还需要进一步完善——hardcode需要改善——关于web界面的调用方式需要在柚子做好之后修改成新的
|
||||
* fix: hardcode
|
||||
* fix: sender-d
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||
|
||||
|
||||
spark-store (4.2.3.1) stable; urgency=medium
|
||||
* 修复: ssinstall验证签名出错
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||
|
||||
|
||||
spark-store (4.2.3) stable; urgency=medium
|
||||
* 修复: 编译依赖不全
|
||||
* 修复: prerm导致的dpkg崩溃
|
||||
@@ -123,12 +217,14 @@ spark-store (4.2.3) stable; urgency=medium
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||
|
||||
|
||||
spark-store (4.2.3~test4) stable; urgency=medium
|
||||
|
||||
* 修复: aptss 无法安装
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||
|
||||
|
||||
spark-store (4.2.3~test3) stable; urgency=medium
|
||||
|
||||
* 调整:打包时从 debian/changelog 自动获取构建版本号并写入关于窗口保证与deb一致
|
||||
@@ -140,6 +236,7 @@ spark-store (4.2.3~test3) stable; urgency=medium
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||
|
||||
|
||||
spark-store (4.2.3~test2) stable; urgency=medium
|
||||
|
||||
* 调整:开启安装包加固
|
||||
|
||||
6
debian/control
vendored
6
debian/control
vendored
@@ -5,7 +5,8 @@ Priority: optional
|
||||
Build-Depends:
|
||||
debhelper (>= 9),
|
||||
pkg-config,
|
||||
qtchooser (>= 55-gc9562a1-1~),
|
||||
qtchooser (>= 55-gc9562a1-1~) | qt5-default,
|
||||
qtbase5-dev,
|
||||
libqt5core5a,
|
||||
libqt5gui5,
|
||||
libqt5widgets5,
|
||||
@@ -43,6 +44,7 @@ Depends:${shlibs:Depends}, ${misc:Depends},
|
||||
gnupg,
|
||||
zenity,
|
||||
policykit-1,
|
||||
libnotify-bin
|
||||
libnotify-bin,
|
||||
desktop-file-utils
|
||||
Description: Spark Store
|
||||
A community powered app store, based on DTK.
|
||||
|
||||
33
debian/spark-store.postinst
vendored
33
debian/spark-store.postinst
vendored
@@ -4,23 +4,22 @@ case "$1" in
|
||||
configure)
|
||||
|
||||
case `arch` in
|
||||
x86_64)
|
||||
echo "Enabling i386 arch..."
|
||||
dpkg --add-architecture i386
|
||||
;;
|
||||
aarch64)
|
||||
echo "Enabling armhf arch..."
|
||||
dpkg --add-architecture armhf
|
||||
;;
|
||||
*)
|
||||
echo "Unknown architecture, skip enable 32-bit arch"
|
||||
;;
|
||||
x86_64)
|
||||
echo "Enabling i386 arch..."
|
||||
dpkg --add-architecture i386
|
||||
;;
|
||||
|
||||
aarch64)
|
||||
echo "Will not enable armhf since 4271"
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Unknown architecture, skip enable 32-bit arch"
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
mkdir -p /var/lib/aptss/lists
|
||||
|
||||
|
||||
# Remove the sources.list file
|
||||
rm -f /etc/apt/sources.list.d/sparkstore.list
|
||||
|
||||
@@ -39,22 +38,20 @@ case "$1" in
|
||||
# Create symbol links for SSINSTALL
|
||||
ln -s -f /opt/durapps/spark-store/bin/auto-install-policy/store.spark-app.ssinstall.policy /usr/share/polkit-1/actions/store.spark-app.ssinstall.policy
|
||||
|
||||
|
||||
|
||||
# Install key
|
||||
mkdir -p /tmp/spark-store-install/
|
||||
cp -f /opt/durapps/spark-store/bin/spark-store.asc /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
|
||||
|
||||
# Run apt update to avoid users being fucked up by the non-exist dependency problem
|
||||
# Now abandoned as aptss now run ssupdate everytime
|
||||
#aptss ssupdate
|
||||
|
||||
|
||||
# Start upgrade detect service
|
||||
systemctl daemon-reload
|
||||
systemctl enable spark-update-notifier
|
||||
systemctl start spark-update-notifier
|
||||
|
||||
|
||||
# Update certain caches
|
||||
update-icon-caches /usr/share/icons/hicolor || true
|
||||
update-desktop-database /usr/share/applications || true
|
||||
|
||||
37
debian/spark-store.prerm
vendored
37
debian/spark-store.prerm
vendored
@@ -1,16 +1,20 @@
|
||||
#!/bin/bash
|
||||
|
||||
function notify-send()
|
||||
{
|
||||
#Detect the user using such display
|
||||
# Detect the user using such display
|
||||
local user=$(who | awk '{print $1}' | head -n 1)
|
||||
|
||||
#Detect the id of the user
|
||||
# Detect the id of the user
|
||||
local uid=$(id -u $user)
|
||||
|
||||
sudo -u $user DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$uid/bus notify-send "$@"
|
||||
sudo -u $user DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$uid/bus notify-send "$@"
|
||||
}
|
||||
|
||||
if [ "$1" = "remove" ] || [ "$1" = "purge" ] ; then
|
||||
if [ "$1" = "remove" -o "$1" = "purge" ] ; then
|
||||
echo "$1"
|
||||
echo "卸载操作,进行配置清理"
|
||||
|
||||
# Remove residual symbol links
|
||||
rm -f /usr/local/bin/spark-store
|
||||
rm -f /usr/local/bin/ssinstall
|
||||
@@ -22,10 +26,18 @@ if [ "$1" = "remove" ] || [ "$1" = "purge" ] ; then
|
||||
rm -rf /etc/aptss/
|
||||
rm -rf /var/lib/aptss/
|
||||
|
||||
|
||||
|
||||
# Remove residual symbol links to stop upgrade detect
|
||||
rm -f /etc/xdg/autostart/spark-update-notifier.desktop
|
||||
# Remove config files
|
||||
for username in `ls /home`
|
||||
do
|
||||
echo /home/$username
|
||||
if [ -d /home/$username/.config/spark-union/spark-store ]
|
||||
then
|
||||
rm -rf /home/$username/.config/spark-union/spark-store
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
# Shutdown services
|
||||
systemctl stop spark-update-notifier
|
||||
@@ -39,13 +51,12 @@ if [ "$1" = "remove" ] || [ "$1" = "purge" ] ; then
|
||||
rm -f /etc/apt/trusted.gpg.d/spark-store.gpg
|
||||
apt-key del '9D9A A859 F750 24B1 A1EC E16E 0E41 D354 A29A 440C'
|
||||
else
|
||||
echo "非卸载操作,不进行配置清理"
|
||||
|
||||
if [ ! -z "`pidof spark-store`" ];then
|
||||
echo "关闭已有 spark-store.."
|
||||
notify-send "正在升级星火商店" "请在升级结束后重启星火商店" -i spark-store
|
||||
killall spark-store
|
||||
else
|
||||
echo "继续安装 spark-store.."
|
||||
if [ ! -z "`pidof spark-store`" ] ; then
|
||||
echo "关闭已有 spark-store.."
|
||||
notify-send "正在升级星火商店" "请在升级结束后重启星火商店" -i spark-store
|
||||
killall spark-store
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
||||
12
pkg/usr/share/applications/open-me-in-terminal.desktop
Normal file
12
pkg/usr/share/applications/open-me-in-terminal.desktop
Normal file
@@ -0,0 +1,12 @@
|
||||
[Desktop Entry]
|
||||
Categories=Development;
|
||||
Encoding=UTF-8
|
||||
Exec=/opt/durapps/spark-store/bin/open-in-terminal/open-in-terminal %U
|
||||
Icon=open-me-in-terminal
|
||||
MimeType=application/x-desktop
|
||||
Name=Open me in terminal
|
||||
Name[zh_CN]=在终端中打开
|
||||
NoDisplay=true
|
||||
StartupWMClass=在终端中打开
|
||||
Terminal=true
|
||||
Type=Application
|
||||
@@ -1,4 +1,5 @@
|
||||
#!/bin/bash
|
||||
TRANSHELL_CONTENT_RUNNING_IN_NOT_ROOT_USER="W:Running in non-root mode! If error occurs, please try to excute me as root."
|
||||
TRANSHELL_CONTENT_RUNNING_IN_NOT_ROOT_USER="INFO:Running in non-root mode! If error occurs, please try to excute me as root."
|
||||
TRANSHELL_CONTENT_INFO_SOURCES_LIST_D_IS_EMPTY="INFO:sources.list.d directory is empty,will not try to sync"
|
||||
TRANSHELL_CONTENT_GETTING_SERVER_CONFIG_AND_MIRROR_LIST="Getting server and mirror lists..."
|
||||
TRANSHELL_CONTENT_PLEASE_USE_APTSS_INSTEAD_OF_APT="Please note: Although the error message suggests using \"apt\" (such as \"apt install --fix-broken\"), please use \"aptss\" instead of \"apt\" when troubleshooting errors (for example, change to \"aptss install --fix-broken\")."
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#!/bin/bash
|
||||
TRANSHELL_CONTENT_RUNNING_IN_NOT_ROOT_USER="警告:正在使用非root权限模式启动!若出现问题,请尝试使用root权限执行指令"
|
||||
TRANSHELL_CONTENT_RUNNING_IN_NOT_ROOT_USER="信息:正在使用非root权限模式启动!若出现问题,请尝试使用root权限执行指令"
|
||||
TRANSHELL_CONTENT_INFO_SOURCES_LIST_D_IS_EMPTY="信息:sources.list.d文件夹是空的,将不会尝试同步"
|
||||
TRANSHELL_CONTENT_GETTING_SERVER_CONFIG_AND_MIRROR_LIST="从服务器获取配置和镜像列表..."
|
||||
TRANSHELL_CONTENT_PLEASE_USE_APTSS_INSTEAD_OF_APT="注意:尽管报错信息中提示使用apt(如apt install --fix-broken),请在排查错误的时候使用aptss而不是apt(对于例子,改为使用 aptss install --fix-broken)."
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 89 KiB |
@@ -41,16 +41,17 @@ qm.path = /usr/share/spark-store/translations
|
||||
bash_completion.files += pkg/usr/share/bash-completion/completions/aptss
|
||||
bash_completion.path = /usr/share/bash-completion/completions
|
||||
|
||||
desktop.files += pkg/usr/share/applications/spark-store.desktop
|
||||
desktop.files += pkg/usr/share/applications/*.desktop
|
||||
desktop.path = /usr/share/applications
|
||||
|
||||
service.files += pkg/usr/lib/systemd/system/spark-update-notifier.service
|
||||
service.path = /usr/lib/systemd/system/
|
||||
|
||||
polkit-1.files +=pkg/usr/share/polkit-1/actions/store.spark-app.ss-do-upgrade-worker.policy
|
||||
polkit-1.files += pkg/usr/share/polkit-1/actions/store.spark-app.ss-do-upgrade-worker.policy
|
||||
polkit-1.path = /usr/share/polkit-1/actions/
|
||||
|
||||
icon.files += pkg/usr/share/icons/hicolor/scalable/apps/spark-store.svg
|
||||
icon.files += pkg/usr/share/icons/hicolor/scalable/apps/*.svg
|
||||
icon.files += pkg/usr/share/icons/hicolor/scalable/apps/*.png
|
||||
icon.path = /usr/share/icons/hicolor/scalable/apps
|
||||
|
||||
ssinstall-transhell.files += pkg/usr/share/ssinstall/transhell
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
#include "mainwindow-dtk.h"
|
||||
#include "utils/utils.h"
|
||||
|
||||
#include <QDir>
|
||||
#include <QJsonArray>
|
||||
#include <DPlatformWindowHandle>
|
||||
#include <DLog>
|
||||
#include <DGuiApplicationHelper>
|
||||
@@ -91,7 +93,7 @@ void Application::setBuildDateTime(const QString &buildDateTime)
|
||||
qDebug() << "Spark Store has been updated!";
|
||||
|
||||
config.setValue("build/version", QString(APP_VERSION));
|
||||
config.setValue("build/branch",QString(APP_BRANCH));
|
||||
config.setValue("build/branch", QString(APP_BRANCH));
|
||||
config.setValue("build/time", buildDateTime);
|
||||
config.sync();
|
||||
}
|
||||
@@ -137,9 +139,9 @@ void Application::initAboutDialog()
|
||||
dialog->setProductName(productName());
|
||||
dialog->setProductIcon(productIcon());
|
||||
dialog->setVersion(translate("DAboutDialog", "Version: %1").arg(applicationVersion()));
|
||||
#if (DTK_VERSION >= DTK_VERSION_CHECK(5, 6, 4, 0))
|
||||
dialog->setVersion(applicationVersion());
|
||||
#endif
|
||||
if (runtimeDtkVersion() >= DTK_VERSION_CHECK(5, 6, 4, 0)) {
|
||||
dialog->setVersion(applicationVersion());
|
||||
}
|
||||
// 根据 shenmo 要求,不显示组织 Logo
|
||||
// dialog->setCompanyLogo(QPixmap(":/icon/Logo-Spark.png"));
|
||||
dialog->setCompanyLogo(QPixmap());
|
||||
@@ -156,6 +158,17 @@ void Application::initAboutDialog()
|
||||
dialog->hide();
|
||||
}
|
||||
|
||||
void Application::loadTranslator()
|
||||
{
|
||||
DApplication::loadTranslator();
|
||||
|
||||
if (QLocale::system().language() == QLocale::Chinese) {
|
||||
QTranslator *webengineTranslator = new QTranslator(this);
|
||||
webengineTranslator->load(QLocale(QLocale::Chinese), "qtwebengine", "_", ":/translations");
|
||||
installTranslator(webengineTranslator);
|
||||
}
|
||||
}
|
||||
|
||||
#if (DTK_VERSION >= DTK_VERSION_CHECK(5, 6, 4, 0))
|
||||
/**
|
||||
* @brief Application::initFeatureDisplayDialog 初始化版本特性对话框
|
||||
|
||||
@@ -30,6 +30,8 @@ private:
|
||||
void initFeatureDisplayDialog();
|
||||
#endif
|
||||
|
||||
void loadTranslator();
|
||||
|
||||
private:
|
||||
QJsonObject m_featuresJsonObj;
|
||||
|
||||
|
||||
@@ -62,5 +62,6 @@
|
||||
<file>tags/uos-authorize.svg</file>
|
||||
<file>tags/uos-small.png</file>
|
||||
<file>tags/uos.svg</file>
|
||||
<file>translations/qtwebengine_zh.qm</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
BIN
src/assets/translations/qtwebengine_zh.qm
Normal file
BIN
src/assets/translations/qtwebengine_zh.qm
Normal file
Binary file not shown.
305
src/assets/translations/qtwebengine_zh.ts
Normal file
305
src/assets/translations/qtwebengine_zh.ts
Normal file
@@ -0,0 +1,305 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="zh_CN" sourcelanguage="es">
|
||||
<context>
|
||||
<name>QWebEnginePage</name>
|
||||
<message>
|
||||
<source>Cut</source>
|
||||
<translation>剪切</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Back</source>
|
||||
<translation>后退</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy</source>
|
||||
<translation>复制</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Redo</source>
|
||||
<translation>恢复</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Stop</source>
|
||||
<translation>停止</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Undo</source>
|
||||
<translation>撤销</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Back</source>
|
||||
<translation>&后退</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Paste</source>
|
||||
<translation>粘贴</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy Image URL</source>
|
||||
<translation>复制图片地址</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open Link in This Window</source>
|
||||
<translation>在当前窗口中打开链接</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Toggle Mute</source>
|
||||
<translation>切换静音</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Inspect Element</source>
|
||||
<translation>检查元素</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Toggle Media Controls</source>
|
||||
<translation>切换媒体控制</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reload</source>
|
||||
<translation>重新加载</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy Link URL</source>
|
||||
<translation>复制链接地址</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exit Full Screen Mode</source>
|
||||
<translation>退出全屏模式</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Paste and Match Style</source>
|
||||
<translation>Pegar y coincidir estilo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Follow Link</source>
|
||||
<translation>Seguir vínculo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open Link in New Tab</source>
|
||||
<translation>在新标签页中打开链接</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reload and Bypass Cache</source>
|
||||
<translation>重新加载且绕过缓存</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select folder to upload</source>
|
||||
<translation>Seleccionar una carpeta para subir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save Image</source>
|
||||
<translation>保存图片</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save Media</source>
|
||||
<translation>保存媒体</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Toggle Looping</source>
|
||||
<translation>切换循环播放</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Close Page</source>
|
||||
<translation>关闭页面</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Toggle Play/Pause</source>
|
||||
<translation>切换播放/暂停</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy Image</source>
|
||||
<translation>复制图片</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Reload</source>
|
||||
<translation>&重新加载</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select All</source>
|
||||
<translation>全选</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save Link</source>
|
||||
<translation>Guardar enlace</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy Media URL</source>
|
||||
<translation>复制媒体地址</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Forward</source>
|
||||
<translation>前进</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Forward</source>
|
||||
<translation>&前进</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open Link in New Window</source>
|
||||
<translation>在新窗口中打开链接</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Are you sure you want to leave this page?</source>
|
||||
<translation>您确定要离开当前页面吗?</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QQuickWebEngineView</name>
|
||||
<message>
|
||||
<source>Back</source>
|
||||
<translation>后退</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy</source>
|
||||
<translation>复制</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy Image URL</source>
|
||||
<translation>复制图片地址</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Toggle Mute</source>
|
||||
<translation>切换静音</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Inspect Element</source>
|
||||
<translation>检查元素</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Toggle Media Controls</source>
|
||||
<translation>切换媒体控制</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reload</source>
|
||||
<translation>重新加载</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy Link URL</source>
|
||||
<translation>复制链接地址</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exit Full Screen Mode</source>
|
||||
<translation>退出全屏模式</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Follow Link</source>
|
||||
<translation>跳转链接</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save Image</source>
|
||||
<translation>保存图片</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save Media</source>
|
||||
<translation>保存媒体</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Toggle Looping</source>
|
||||
<translation>切换循环播放</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Toggle Play/Pause</source>
|
||||
<translation>切换播放/暂停</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy Image</source>
|
||||
<translation>复制图片</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save Link</source>
|
||||
<translation>保存链接</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy Media URL</source>
|
||||
<translation>复制媒体地址</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Forward</source>
|
||||
<translation>前进</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QtWebEngineCore</name>
|
||||
<message>
|
||||
<source>Javascript Alert - %1</source>
|
||||
<translation>Javascript 警告 - %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Javascript Confirm - %1</source>
|
||||
<translation>Javascript 确认 - %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Javascript Prompt - %1</source>
|
||||
<translation>Javascript 提示 - %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Are you sure you want to leave this page?</source>
|
||||
<translation>您确定要离开当前页面吗?</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QtWebEnginePlugin</name>
|
||||
<message>
|
||||
<source>Cannot create a separate instance of WebEngineDownloadItem</source>
|
||||
<translation>无法创建一个 WebEngineDownloadItem 的独立实例</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cannot create separate instance of WebEngineLoadRequest</source>
|
||||
<translation>无法创建一个 WebEngineLoadRequest 的独立实例</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cannot create a separate instance of WebEngineSettings</source>
|
||||
<translation>无法创建一个 WebEngineSettings 的独立实例</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cannot create separate instance of WebEngineNavigationRequest</source>
|
||||
<translation>无法创建一个 WebEngineNavigationRequest 的独立实例</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cannot create separate instance of WebEngineNewViewRequest</source>
|
||||
<translation>无法创建一个 WebEngineNewViewRequest 的独立实例</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cannot create separate instance of WebEngineCertificateError</source>
|
||||
<translation>无法创建一个 WebEngineCertificateError 的独立实例</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cannot create a separate instance of FullScreenRequest</source>
|
||||
<translation>无法创建一个 FullScreenRequest 的独立实例</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cannot create a separate instance of NavigationHistory</source>
|
||||
<translation>无法创建一个 NavigationHistory 的独立实例</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QtWebEngineExperimentalPlugin</name>
|
||||
<message>
|
||||
<source>Cannot create a separate instance of WebEngineViewExperimental</source>
|
||||
<translation>无法创建一个 WebEngineViewExperimental 的独立实例</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cannot create a separate instance of WebEngineViewport</source>
|
||||
<translation>无法创建一个 WebEngineViewport 的独立实例</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>UIDelegatesManager</name>
|
||||
<message>
|
||||
<source>Enter username and password for "%1" at %2://%3</source>
|
||||
<translation>为在 %2://%3 的“%1”输入用户名和密码</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Connect to proxy "%1" using:</source>
|
||||
<translation>使用“%1”连接代理:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QtWebEngineTestSupportPlugin</name>
|
||||
<message>
|
||||
<source>Cannot create a separate instance of WebEngineErrorPage</source>
|
||||
<translation>无法创建一个 WebEngineErrorPage 的独立实例</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
85
src/backend/DataCollectorAndUploader.cpp
Normal file
85
src/backend/DataCollectorAndUploader.cpp
Normal file
@@ -0,0 +1,85 @@
|
||||
#include "DataCollectorAndUploader.h"
|
||||
#include <QNetworkAccessManager>
|
||||
#include <QNetworkRequest>
|
||||
#include <QStandardPaths>
|
||||
#include <QNetworkReply>
|
||||
#include <QJsonDocument>
|
||||
#include <QJsonObject>
|
||||
#include <QSettings>
|
||||
#include <QProcess>
|
||||
#include <QDebug>
|
||||
|
||||
DataCollectorAndUploader::DataCollectorAndUploader(QObject *parent) : QObject(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void DataCollectorAndUploader::collectAndUploadData()
|
||||
{
|
||||
collectData();
|
||||
}
|
||||
|
||||
void DataCollectorAndUploader::collectData()
|
||||
{
|
||||
QString distributor_id;
|
||||
QString release;
|
||||
QString architecture;
|
||||
|
||||
QSettings config(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/config.ini", QSettings::IniFormat);
|
||||
QString version = config.value("build/version").toString();
|
||||
QString uuid = config.value("info/uuid").toString();
|
||||
|
||||
|
||||
// Execute lsb_release --all and capture the output
|
||||
QProcess lsbProcess;
|
||||
lsbProcess.start("lsb_release", QStringList() << "--all");
|
||||
lsbProcess.waitForFinished();
|
||||
QString lsbOutput = lsbProcess.readAllStandardOutput();
|
||||
|
||||
QStringList lines = lsbOutput.split('\n');
|
||||
for (const QString &line : lines) {
|
||||
if (line.contains("Distributor ID:")) {
|
||||
distributor_id = line.split(":").last().trimmed();
|
||||
} else if (line.contains("Release:")) {
|
||||
release = line.split(":").last().trimmed();
|
||||
}
|
||||
}
|
||||
|
||||
// Execute uname -m to get the architecture
|
||||
QProcess unameProcess;
|
||||
unameProcess.start("uname", QStringList() << "-m");
|
||||
unameProcess.waitForFinished();
|
||||
architecture = unameProcess.readAllStandardOutput().trimmed();
|
||||
|
||||
// Create a JSON object
|
||||
QJsonObject json;
|
||||
json.insert("Distributor ID", distributor_id);
|
||||
json.insert("Release", release);
|
||||
json.insert("Architecture", architecture);
|
||||
json.insert("Store_Version", version);
|
||||
json.insert("UUID", uuid);
|
||||
|
||||
|
||||
|
||||
// Convert to byte array
|
||||
QJsonDocument doc(json);
|
||||
QByteArray jsonData = doc.toJson();
|
||||
|
||||
// Initialize a network request
|
||||
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
|
||||
QUrl url("http://zunyun01.store.deepinos.org.cn:12345");
|
||||
|
||||
QNetworkRequest request(url);
|
||||
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
|
||||
|
||||
// Send the POST request
|
||||
QNetworkReply *reply = manager->post(request, jsonData);
|
||||
|
||||
connect(reply, &QNetworkReply::finished, [=]() {
|
||||
if (reply->error() == QNetworkReply::NoError) {
|
||||
emit uploadSuccessful();
|
||||
} else {
|
||||
emit uploadFailed(reply->errorString());
|
||||
}
|
||||
reply->deleteLater();
|
||||
});
|
||||
}
|
||||
21
src/backend/DataCollectorAndUploader.h
Normal file
21
src/backend/DataCollectorAndUploader.h
Normal file
@@ -0,0 +1,21 @@
|
||||
#ifndef DATACOLLECTORANDUPLOADER_H
|
||||
#define DATACOLLECTORANDUPLOADER_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
class DataCollectorAndUploader : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit DataCollectorAndUploader(QObject *parent = nullptr);
|
||||
void collectAndUploadData();
|
||||
|
||||
signals:
|
||||
void uploadSuccessful();
|
||||
void uploadFailed(QString errorString);
|
||||
|
||||
private:
|
||||
void collectData();
|
||||
};
|
||||
|
||||
#endif // DATACOLLECTORANDUPLOADER_H
|
||||
147
src/backend/ThemeChecker.cpp
Executable file
147
src/backend/ThemeChecker.cpp
Executable file
@@ -0,0 +1,147 @@
|
||||
#include "ThemeChecker.h"
|
||||
|
||||
#include <QDBusConnection>
|
||||
#include <QDebug>
|
||||
|
||||
Q_GLOBAL_STATIC(ThemeChecker, m_instance)
|
||||
|
||||
constexpr char kFreedesktopPortalServiceName[] = "org.freedesktop.portal.Desktop";
|
||||
constexpr char kFreedesktopPortalServicePath[] = "/org/freedesktop/portal/desktop";
|
||||
constexpr char kFreedesktopPortalSettingsInterface[] = "org.freedesktop.portal.Settings";
|
||||
|
||||
ThemeChecker::ThemeChecker(QObject *parent)
|
||||
: QObject(parent)
|
||||
, m_paletteType(Dtk::Gui::DGuiApplicationHelper::instance()->paletteType())
|
||||
{
|
||||
m_interface = new QDBusInterface(kFreedesktopPortalServiceName,
|
||||
kFreedesktopPortalServicePath,
|
||||
kFreedesktopPortalSettingsInterface,
|
||||
QDBusConnection::sessionBus(),
|
||||
this);
|
||||
|
||||
initThemeType();
|
||||
initConnections();
|
||||
}
|
||||
|
||||
ThemeChecker *ThemeChecker::instance()
|
||||
{
|
||||
return m_instance;
|
||||
}
|
||||
|
||||
bool ThemeChecker::useDarkTheme()
|
||||
{
|
||||
if (m_paletteType == Dtk::Gui::DGuiApplicationHelper::ColorType::UnknownType) {
|
||||
return m_themeType == Dtk::Gui::DGuiApplicationHelper::ColorType::DarkType;
|
||||
} else {
|
||||
return m_paletteType == Dtk::Gui::DGuiApplicationHelper::ColorType::DarkType;
|
||||
}
|
||||
}
|
||||
|
||||
void ThemeChecker::initThemeType()
|
||||
{
|
||||
QVariantList args { "org.freedesktop.appearance", "color-scheme" };
|
||||
QDBusMessage msg = m_interface->callWithArgumentList(QDBus::Block, "Read", args);
|
||||
if (msg.type() != QDBusMessage::MessageType::ReplyMessage || msg.arguments().size() < 1) {
|
||||
qWarning().noquote() << "Init color-scheme from D-Bus failed:" << msg.errorName() << msg.errorMessage();
|
||||
m_themeType = Dtk::Gui::DGuiApplicationHelper::toColorType(Dtk::Gui::DGuiApplicationHelper::fetchPalette(Dtk::Gui::DGuiApplicationHelper::instance()->applicationTheme()));
|
||||
return;
|
||||
}
|
||||
|
||||
quint32 colorScheme = qvariant_cast<QDBusVariant>(qvariant_cast<QDBusVariant>(msg.arguments().first()).variant()).variant().toUInt();
|
||||
switch (colorScheme) {
|
||||
case 1:
|
||||
m_themeType = Dtk::Gui::DGuiApplicationHelper::ColorType::DarkType;
|
||||
break;
|
||||
case 2:
|
||||
m_themeType = Dtk::Gui::DGuiApplicationHelper::ColorType::LightType;
|
||||
break;
|
||||
default:
|
||||
qInfo().noquote() << QString("color-scheme: %1, fetching themeType according to QPalette::Window").arg(colorScheme);
|
||||
m_themeType = Dtk::Gui::DGuiApplicationHelper::toColorType(Dtk::Gui::DGuiApplicationHelper::fetchPalette(Dtk::Gui::DGuiApplicationHelper::instance()->applicationTheme()));
|
||||
break;
|
||||
}
|
||||
|
||||
if (m_paletteType == Dtk::Gui::DGuiApplicationHelper::ColorType::UnknownType) {
|
||||
Dtk::Gui::DGuiApplicationHelper::instance()->setApplicationPalette(Dtk::Gui::DGuiApplicationHelper::standardPalette(m_themeType));
|
||||
}
|
||||
}
|
||||
|
||||
void ThemeChecker::initConnections()
|
||||
{
|
||||
QDBusConnection::sessionBus().connect(kFreedesktopPortalServiceName,
|
||||
kFreedesktopPortalServicePath,
|
||||
kFreedesktopPortalSettingsInterface,
|
||||
"SettingChanged",
|
||||
this,
|
||||
SLOT(slotSettingChanged(const QString &, const QString &, const QDBusVariant &)));
|
||||
|
||||
connect(Dtk::Gui::DGuiApplicationHelper::instance()->applicationTheme(), &Dtk::Gui::DPlatformTheme::themeNameChanged, this, &ThemeChecker::slotThemeNameChanged);
|
||||
connect(Dtk::Gui::DGuiApplicationHelper::instance(), &Dtk::Gui::DGuiApplicationHelper::paletteTypeChanged, this, &ThemeChecker::slotPaletteTypeChanged);
|
||||
}
|
||||
|
||||
void ThemeChecker::slotSettingChanged(const QString &_namespace, const QString &key, const QDBusVariant &variant)
|
||||
{
|
||||
if (_namespace != "org.freedesktop.appearance" || key != "color-scheme") {
|
||||
return;
|
||||
}
|
||||
|
||||
Dtk::Gui::DGuiApplicationHelper::ColorType colorType = Dtk::Gui::DGuiApplicationHelper::ColorType::UnknownType;
|
||||
|
||||
quint32 colorScheme = variant.variant().toUInt();
|
||||
switch (colorScheme) {
|
||||
case 1:
|
||||
colorType = Dtk::Gui::DGuiApplicationHelper::ColorType::DarkType;
|
||||
break;
|
||||
case 2:
|
||||
colorType = Dtk::Gui::DGuiApplicationHelper::ColorType::LightType;
|
||||
break;
|
||||
default:
|
||||
qInfo().noquote() << QString("color-scheme: %1, fetching themeType according to QPalette::Window").arg(colorScheme);
|
||||
colorType = Dtk::Gui::DGuiApplicationHelper::toColorType(Dtk::Gui::DGuiApplicationHelper::fetchPalette(Dtk::Gui::DGuiApplicationHelper::instance()->applicationTheme()));
|
||||
break;
|
||||
}
|
||||
|
||||
if (m_paletteType != Dtk::Gui::DGuiApplicationHelper::ColorType::UnknownType) {
|
||||
m_themeType = colorType;
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_themeType != colorType) {
|
||||
Dtk::Gui::DGuiApplicationHelper::instance()->setApplicationPalette(Dtk::Gui::DGuiApplicationHelper::standardPalette(colorType));
|
||||
emit themeChanged(colorType == Dtk::Gui::DGuiApplicationHelper::ColorType::DarkType);
|
||||
m_themeType = colorType;
|
||||
}
|
||||
}
|
||||
|
||||
void ThemeChecker::slotThemeNameChanged(const QByteArray &theme)
|
||||
{
|
||||
Dtk::Gui::DGuiApplicationHelper::ColorType themeType = Dtk::Gui::DGuiApplicationHelper::ColorType::LightType;
|
||||
if (theme.endsWith("dark")) {
|
||||
themeType = Dtk::Gui::DGuiApplicationHelper::ColorType::DarkType;
|
||||
}
|
||||
|
||||
if (m_paletteType != Dtk::Gui::DGuiApplicationHelper::ColorType::UnknownType) {
|
||||
m_themeType = themeType;
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_themeType != themeType) {
|
||||
Dtk::Gui::DGuiApplicationHelper::instance()->setApplicationPalette(Dtk::Gui::DGuiApplicationHelper::standardPalette(themeType));
|
||||
emit themeChanged(themeType == Dtk::Gui::DGuiApplicationHelper::ColorType::DarkType);
|
||||
m_themeType = themeType;
|
||||
}
|
||||
}
|
||||
|
||||
void ThemeChecker::slotPaletteTypeChanged(Dtk::Gui::DGuiApplicationHelper::ColorType paletteType)
|
||||
{
|
||||
m_paletteType = paletteType;
|
||||
|
||||
if (m_paletteType != Dtk::Gui::DGuiApplicationHelper::ColorType::UnknownType) {
|
||||
Dtk::Gui::DGuiApplicationHelper::instance()->setApplicationPalette(Dtk::Gui::DGuiApplicationHelper::standardPalette(m_paletteType));
|
||||
emit themeChanged(m_paletteType == Dtk::Gui::DGuiApplicationHelper::ColorType::DarkType);
|
||||
return;
|
||||
}
|
||||
|
||||
Dtk::Gui::DGuiApplicationHelper::instance()->setApplicationPalette(Dtk::Gui::DGuiApplicationHelper::standardPalette(m_themeType));
|
||||
emit themeChanged(m_themeType == Dtk::Gui::DGuiApplicationHelper::ColorType::DarkType);
|
||||
}
|
||||
40
src/backend/ThemeChecker.h
Executable file
40
src/backend/ThemeChecker.h
Executable file
@@ -0,0 +1,40 @@
|
||||
#ifndef THEMECHECKER_H
|
||||
#define THEMECHECKER_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QDBusVariant>
|
||||
#include <QDBusInterface>
|
||||
|
||||
#include <DPlatformTheme>
|
||||
#include <DGuiApplicationHelper>
|
||||
|
||||
class ThemeChecker : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit ThemeChecker(QObject *parent = nullptr);
|
||||
static ThemeChecker *instance();
|
||||
|
||||
bool useDarkTheme();
|
||||
|
||||
private:
|
||||
void initThemeType();
|
||||
void initConnections();
|
||||
|
||||
signals:
|
||||
void themeChanged(bool isDark);
|
||||
|
||||
private slots:
|
||||
void slotSettingChanged(const QString &_namespace, const QString &key, const QDBusVariant &variant);
|
||||
void slotThemeNameChanged(const QByteArray &theme);
|
||||
void slotPaletteTypeChanged(Dtk::Gui::DGuiApplicationHelper::ColorType paletteType);
|
||||
|
||||
private:
|
||||
QDBusInterface *m_interface = nullptr;
|
||||
|
||||
Dtk::Gui::DGuiApplicationHelper::ColorType m_paletteType;
|
||||
Dtk::Gui::DGuiApplicationHelper::ColorType m_themeType;
|
||||
};
|
||||
|
||||
#endif // THEMECHECKER_H
|
||||
@@ -5,13 +5,16 @@
|
||||
#include <QtConcurrent>
|
||||
#include <QStandardPaths>
|
||||
|
||||
#define DEFAULTURL "d.store.deepinos.org.cn"
|
||||
#define MAXWAITTIME 200000
|
||||
|
||||
DownloadController::DownloadController(QObject *parent)
|
||||
{
|
||||
Q_UNUSED(parent)
|
||||
|
||||
// 初始化默认域名
|
||||
domains.clear();
|
||||
domains.append("d.store.deepinos.org.cn");
|
||||
domains.append(DEFAULTURL);
|
||||
|
||||
/*
|
||||
domains = {
|
||||
@@ -37,7 +40,8 @@ bool checkMeatlink(QString metaUrl)
|
||||
{
|
||||
metaStatus.remove();
|
||||
}
|
||||
system("curl -I -s --connect-timeout 5 " + metaUrl.toUtf8() + " -w %{http_code} |tail -n1 > /tmp/spark-store/metaStatus.txt");
|
||||
QString cmd = QString("curl -I -s --connect-timeout 5 %1 -w %{http_code} |tail -n1 > /tmp/spark-store/metaStatus.txt").arg(metaUrl);
|
||||
system(cmd.toUtf8().data());
|
||||
if (metaStatus.open(QFile::ReadOnly) && QString(metaStatus.readAll()).toUtf8() == "200")
|
||||
{
|
||||
metaStatus.remove();
|
||||
@@ -68,9 +72,13 @@ void gennerateDomain(QVector<QString> &domains)
|
||||
}
|
||||
if (domains.size() == 0)
|
||||
{
|
||||
domains.append("d.store.deepinos.org.cn");
|
||||
domains.append(DEFAULTURL);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
domains.append(DEFAULTURL);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -102,34 +110,36 @@ void DownloadController::startDownload(const QString &url)
|
||||
// qDebug() << domains << domains.size();
|
||||
}
|
||||
|
||||
QString aria2Command = "-d";
|
||||
QString aria2Urls = "";
|
||||
QString aria2Verbose = "--summary-interval=1";
|
||||
QString aria2SizePerThreads = "--min-split-size=1M";
|
||||
QString aria2NoConfig = "--no-conf";
|
||||
QString aria2NoSeeds = "--seed-time=0";
|
||||
QString aria2Command = "-d"; //下载目录
|
||||
QString aria2Urls = ""; //下载地址
|
||||
QString aria2Verbose = "--summary-interval=1"; //显示下载速度
|
||||
QString aria2SizePerThreads = "--min-split-size=1M"; //最小分片大小
|
||||
QString aria2NoConfig = "--no-conf"; //不使用配置文件
|
||||
QString aria2NoSeeds = "--seed-time=0"; //不做种
|
||||
QStringList command;
|
||||
QString downloadDir = "/tmp/spark-store/";
|
||||
QString aria2ConnectionPerServer = "--max-connection-per-server=1";
|
||||
QString aria2ConnectionMax = "--max-concurrent-downloads=16";
|
||||
QString aria2DNSCommand = "--async-dns-server=119.29.29.29,223.5.5.5";
|
||||
QString downloadDir = "/tmp/spark-store/"; //下载目录
|
||||
QString aria2ConnectionPerServer = "--max-connection-per-server=1"; //每个服务器最大连接数
|
||||
QString aria2ConnectionMax = "--max-concurrent-downloads=16"; //最大同时下载数
|
||||
|
||||
if (useMetalink)
|
||||
|
||||
if (useMetalink) //如果是metalink
|
||||
{
|
||||
command.append(metaUrl.toUtf8());
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = 0; i < domains.size(); i++)
|
||||
for (int i = 0; i < domains.size(); i++) //遍历域名
|
||||
{
|
||||
command.append(replaceDomain(url, domains.at(i)).replace("+","%2B").toUtf8()); //对+进行转译,避免oss出错
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
qint64 downloadSizeRecord = 0;
|
||||
QString speedInfo = "";
|
||||
QString percentInfo = "";
|
||||
qint64 downloadSizeRecord = 0; //下载大小记录
|
||||
qint8 failDownloadTimes = 0; // 记录重试次数
|
||||
const qint8 maxRetryTimes = 3; //最大重试次数
|
||||
QString speedInfo = ""; //显示下载速度
|
||||
QString percentInfo = ""; //显示下载进度
|
||||
command.append(aria2Command.toUtf8());
|
||||
command.append(downloadDir.toUtf8());
|
||||
command.append(aria2Verbose.toUtf8());
|
||||
@@ -137,7 +147,7 @@ void DownloadController::startDownload(const QString &url)
|
||||
command.append(aria2SizePerThreads.toUtf8());
|
||||
command.append(aria2ConnectionPerServer.toUtf8());
|
||||
command.append(aria2ConnectionMax.toUtf8());
|
||||
command.append(aria2DNSCommand.toUtf8());
|
||||
|
||||
if (useMetalink)
|
||||
{
|
||||
command.append(aria2NoSeeds.toUtf8());
|
||||
@@ -152,11 +162,30 @@ void DownloadController::startDownload(const QString &url)
|
||||
cmd.start();
|
||||
cmd.waitForStarted(-1); //等待启动完成
|
||||
|
||||
// Timer
|
||||
QTimer *timeoutTimer = new QTimer(this);
|
||||
timeoutTimer->setSingleShot(true); // 单次触发
|
||||
connect(timeoutTimer, &QTimer::timeout, [&]() {
|
||||
if (failDownloadTimes < maxRetryTimes) {
|
||||
qDebug() << "Download timeout, restarting...";
|
||||
// 重新启动下载任务的代码
|
||||
restartDownload(cmd, command); // 调用重新启动下载任务的函数
|
||||
failDownloadTimes += 1;
|
||||
timeoutTimer->start(MAXWAITTIME); // 重新启动定时器
|
||||
} else{
|
||||
emit errorOccur(tr("Download Failed, please retry :(")); // 下载失败
|
||||
downloadSuccess = false;
|
||||
cmd.close();
|
||||
cmd.terminate(); // 终止当前的下载进程
|
||||
cmd.waitForFinished(); // 等待进程结束
|
||||
}
|
||||
});
|
||||
|
||||
connect(&cmd, &QProcess::readyReadStandardOutput, [&]()
|
||||
{
|
||||
timeoutTimer->start(MAXWAITTIME); // 重置超时计时器,15秒超时
|
||||
//通过读取输出计算下载速度
|
||||
QString message = cmd.readAllStandardOutput().data();
|
||||
// qDebug() << message;
|
||||
message = message.replace(" ", "");
|
||||
QStringList list;
|
||||
qint64 downloadSize = 0;
|
||||
@@ -179,10 +208,10 @@ void DownloadController::startDownload(const QString &url)
|
||||
speedInfo = message.mid(speedPlace1 + 3, speedPlace2 - speedPlace1 - 3);
|
||||
speedInfo += "/s";
|
||||
}
|
||||
// qDebug() << percentInfo << speedInfo;
|
||||
if (downloadSize >= downloadSizeRecord)
|
||||
{
|
||||
downloadSizeRecord = downloadSize;
|
||||
timeoutTimer->stop(); // 如果有进度,停止超时计时器
|
||||
}
|
||||
if (percentInfo == "OK")
|
||||
{
|
||||
@@ -244,6 +273,15 @@ void DownloadController::stopDownload()
|
||||
pidNumber = -1;
|
||||
}
|
||||
|
||||
void DownloadController::restartDownload(QProcess &cmd, const QStringList &command)
|
||||
{
|
||||
cmd.terminate(); // 终止当前的下载进程
|
||||
cmd.waitForFinished(); // 等待进程结束
|
||||
cmd.setArguments(command); // 重新设置参数
|
||||
cmd.start(); // 重新启动下载
|
||||
cmd.waitForStarted(-1); // 等待启动完成
|
||||
}
|
||||
|
||||
qint64 DownloadController::getFileSize(const QString &url)
|
||||
{
|
||||
// 已经无需使用 qtnetwork 再获取 filesize,完全交给 aria2 来计算进度。 为保证兼容性,故保留此函数。
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include <QObject>
|
||||
#include <QVector>
|
||||
#include <QProcess>
|
||||
|
||||
class DownloadController : public QObject
|
||||
{
|
||||
@@ -14,6 +15,7 @@ public:
|
||||
void setFilename(QString filename);
|
||||
void startDownload(const QString &url);
|
||||
void stopDownload();
|
||||
void restartDownload(QProcess &cmd, const QStringList &command);
|
||||
qint64 getFileSize(const QString& url);
|
||||
QString replaceDomain(const QString& url, const QString domain);
|
||||
|
||||
|
||||
108
src/main.cpp
108
src/main.cpp
@@ -2,6 +2,15 @@
|
||||
#include "mainwindow-dtk.h"
|
||||
#include "utils/utils.h"
|
||||
|
||||
#include <signal.h>
|
||||
#include <execinfo.h>
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
#include <fstream>
|
||||
#include <execinfo.h>
|
||||
|
||||
#include <DSysInfo>
|
||||
#include <DApplicationSettings>
|
||||
#include <DWidgetUtil>
|
||||
@@ -13,15 +22,101 @@
|
||||
#include <QStandardPaths>
|
||||
#include <QSurfaceFormat>
|
||||
|
||||
#include <backend/DataCollectorAndUploader.h>
|
||||
|
||||
DCORE_USE_NAMESPACE
|
||||
DWIDGET_USE_NAMESPACE
|
||||
|
||||
static QString buildDateTime;
|
||||
|
||||
|
||||
void gatherInfo(FILE *fp, std::ofstream& logFile, const char* description) {
|
||||
if (fp) {
|
||||
char buffer[512];
|
||||
logFile << description << ":\n";
|
||||
while (fgets(buffer, sizeof(buffer), fp) != NULL) {
|
||||
buffer[strcspn(buffer, "\n")] = 0;
|
||||
logFile << buffer << "\n";
|
||||
}
|
||||
pclose(fp);
|
||||
} else {
|
||||
logFile << "Failed to gather " << description << " info.\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void crashHandler(int sig) {
|
||||
void *array[50];
|
||||
size_t size = backtrace(array, 50);
|
||||
if (size == 0) {
|
||||
perror("backtrace");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
time_t t = time(NULL);
|
||||
struct tm tm = *localtime(&t);
|
||||
char filename[128];
|
||||
snprintf(filename, sizeof(filename), "/tmp/spark_store_crash_log_%04d%02d%02d_%02d%02d%02d.txt",
|
||||
tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec);
|
||||
|
||||
std::ofstream logFile(filename, std::ios::out);
|
||||
|
||||
if (!logFile.is_open()) {
|
||||
perror("ofstream");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
logFile << "Please send this log to the developer. QQ Group: 872690351\n";
|
||||
logFile << "Gitee: https://gitee.com/deepin-community-store/spark-store/issues\n";
|
||||
logFile << "Gihub: https://github.com/spark-store-project/spark-store/issues\n";
|
||||
logFile << "Build Date and Time: " << buildDateTime.toStdString() << "\n";
|
||||
gatherInfo(popen("cat ~/.config/spark-union/spark-store/config.ini", "r"), logFile, "User Config File");
|
||||
|
||||
// Collecting System Information
|
||||
gatherInfo(popen("LANG=en_US.UTF-8 uname -m", "r"), logFile, "CPU Architecture");
|
||||
gatherInfo(popen("LANG=en_US.UTF-8 lsb_release -a", "r"), logFile, "Distribution info");
|
||||
gatherInfo(popen("LANG=en_US.UTF-8 lscpu", "r"), logFile, "All CPU Info");
|
||||
gatherInfo(popen("LANG=en_US.UTF-8 free -h | grep Mem | awk '{print $2}'", "r"), logFile, "Memory Size");
|
||||
|
||||
|
||||
|
||||
logFile << "Error: signal " << sig << ":\n";
|
||||
for (size_t i = 0; i < size; i++) {
|
||||
char **strings = backtrace_symbols(&array[i], 1);
|
||||
if (strings != NULL && strings[0] != NULL) {
|
||||
logFile << strings[0] << "\n";
|
||||
} else {
|
||||
logFile << "Failed to get symbol.\n";
|
||||
}
|
||||
free(strings);
|
||||
}
|
||||
|
||||
logFile.close();
|
||||
|
||||
char openCmd[256];
|
||||
snprintf(openCmd, sizeof(openCmd), "xdg-open %s", filename);
|
||||
if (system(openCmd) == -1) {
|
||||
perror("system");
|
||||
}
|
||||
|
||||
fprintf(stderr, "Error: signal %d:\n", sig);
|
||||
backtrace_symbols_fd(array, size, STDERR_FILENO);
|
||||
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
// 崩溃处理
|
||||
signal(SIGSEGV, crashHandler); // 注册SIGSEGV处理函数
|
||||
|
||||
|
||||
// Get build time
|
||||
static const QDate buildDate = QLocale(QLocale::English).toDate(QString(__DATE__).replace(" ", " 0"), "MMM dd yyyy");
|
||||
static const QTime buildTime = QTime::fromString(__TIME__, "hh:mm:ss");
|
||||
static const QString buildDateTime = buildDate.toString("yyyy.MM.dd") + "-" + buildTime.toString("hh:mm:ss");
|
||||
buildDateTime = buildDate.toString("yyyy.MM.dd") + "-" + buildTime.toString("hh:mm:ss");
|
||||
|
||||
|
||||
// NOTE: 提前设置组织名称和应用名称,避免配置文件位置错误
|
||||
DApplication::setOrganizationName("spark-union");
|
||||
@@ -31,6 +126,17 @@ int main(int argc, char *argv[])
|
||||
// 初始化 config.ini 配置文件
|
||||
Utils::initConfig();
|
||||
|
||||
// 回传版本信息,不涉及个人隐私
|
||||
DataCollectorAndUploader uploader;
|
||||
QObject::connect(&uploader, &DataCollectorAndUploader::uploadSuccessful, [](){
|
||||
qDebug() << "Data uploaded successfully";
|
||||
});
|
||||
QObject::connect(&uploader, &DataCollectorAndUploader::uploadFailed, [](QString error){
|
||||
qDebug() << "Upload failed with error: " << error;
|
||||
});
|
||||
|
||||
uploader.collectAndUploadData();
|
||||
|
||||
// Set display backend
|
||||
Utils::setQPAPlatform();
|
||||
|
||||
|
||||
107
src/mainwindow-dtk.cpp
Normal file → Executable file
107
src/mainwindow-dtk.cpp
Normal file → Executable file
@@ -16,6 +16,8 @@
|
||||
#include <QtConcurrent>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <backend/ThemeChecker.h>
|
||||
|
||||
#define AppPageApplist 0
|
||||
#define AppPageSearchlist 1
|
||||
#define AppPageAppdetail 2
|
||||
@@ -39,8 +41,6 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
initTmpDir();
|
||||
|
||||
ui->appintopage->setDownloadWidget(downloadlistwidget);
|
||||
|
||||
emit DGuiApplicationHelper::instance()->themeTypeChanged(DGuiApplicationHelper::instance()->themeType());
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
@@ -133,13 +133,14 @@ void MainWindow::initUI()
|
||||
updateUi(0);
|
||||
|
||||
initTrayIcon();
|
||||
|
||||
refreshTheme(ThemeChecker::instance()->useDarkTheme());
|
||||
}
|
||||
|
||||
void MainWindow::initTitleBar()
|
||||
{
|
||||
ui->titlebar->setIcon(QIcon::fromTheme("spark-store"));
|
||||
ui->titlebar->setBackgroundTransparent(true);
|
||||
// ui->titlebar->setSwitchThemeMenuVisible(false); // 去除 dtk 标题栏主题切换菜单
|
||||
|
||||
// 初始化标题栏控件
|
||||
DLabel *title = new DLabel(ui->titlebar);
|
||||
@@ -267,57 +268,61 @@ void MainWindow::initTrayIcon()
|
||||
trayIcon->show();
|
||||
}
|
||||
|
||||
void MainWindow::refreshTheme(bool isDarkMode)
|
||||
{
|
||||
// 使用isDarkMode变量来判断是否是深色模式
|
||||
if (isDarkMode) {
|
||||
//深色模式
|
||||
setMaskColor(QColor("#2a2b2b"));
|
||||
backButton->setIcon(QIcon(":/icon/dark/back.svg"));
|
||||
downloadButton->setIcon(":/icon/dark/download.svg");
|
||||
downloadButton->setBackgroundColor(QColor("#444444"));
|
||||
downloadButton->setColor(QColor("#66CCFF"));
|
||||
ui->pushButton_14->setIcon(QIcon(":/icon/dark/update.svg"));
|
||||
for (int i = 0; i < ui->buttonGroup->buttons().size(); i++) {
|
||||
ui->buttonGroup->buttons()[i]->setIcon(QIcon(":/icon/dark/leftbutton_" + QString::number(i) + ".svg"));
|
||||
if (QLocale::system().name() == "zh_CN") {
|
||||
ui->buttonGroup->buttons()[i]->setStyleSheet("QPushButton{background-color:transparent;}\
|
||||
QPushButton:hover{background-color:#7a7a7a;border:0px;border-radius:8px;}\
|
||||
QPushButton:checked{background-color:#6e6e6e;border:0px;border-radius:8px;}");
|
||||
} else {
|
||||
ui->buttonGroup->buttons()[i]->setStyleSheet("QPushButton{background-color:transparent;text-align: left; padding-left: 15px;}\
|
||||
QPushButton:hover{background-color:#7a7a7a;border:0px;border-radius:8px;text-align: left; padding-left: 15px;}\
|
||||
QPushButton:checked{background-color:#6e6e6e;border:0px;border-radius:8px;text-align: left; padding-left: 15px;}");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//亮色模式
|
||||
setMaskColor(QColor("#f3f7f8"));
|
||||
backButton->setIcon(QIcon(":/icon/light/back.svg"));
|
||||
downloadButton->setBackgroundColor(QColor("#e3e4e4"));
|
||||
downloadButton->setColor(QColor("#66CCFF"));
|
||||
downloadButton->setIcon(":/icon/light/download.svg");
|
||||
ui->pushButton_14->setIcon(QIcon(":/icon/light/update.svg"));
|
||||
for (int i = 0; i < ui->buttonGroup->buttons().size(); i++) {
|
||||
ui->buttonGroup->buttons()[i]->setIcon(QIcon(":/icon/light/leftbutton_" + QString::number(i) + ".svg"));
|
||||
if (QLocale::system().name() == "zh_CN") {
|
||||
ui->buttonGroup->buttons()[i]->setStyleSheet("QPushButton{background-color:transparent;}\
|
||||
QPushButton:hover{background-color:#eAeAeA;border:0px;border-radius:8px;}\
|
||||
QPushButton:checked{background-color:#dddddd;border:0px;border-radius:8px;}");
|
||||
} else {
|
||||
ui->buttonGroup->buttons()[i]->setStyleSheet("QPushButton{background-color:transparent;text-align: left; padding-left: 15px;}\
|
||||
QPushButton:hover{background-color:#eAeAeA;border:0px;border-radius:8px;text-align: left; padding-left: 15px;}\
|
||||
QPushButton:checked{background-color:#dddddd;border:0px;border-radius:8px;text-align: left; padding-left: 15px;}");
|
||||
}
|
||||
}
|
||||
}
|
||||
ui->pushButton_14->setStyleSheet(ui->pushButton_4->styleSheet());
|
||||
ui->applistpage->setTheme(isDarkMode);
|
||||
ui->applistpage_1->setTheme(isDarkMode);
|
||||
ui->appintopage->setTheme(isDarkMode);
|
||||
ui->settingspage->setTheme(isDarkMode);
|
||||
}
|
||||
|
||||
void MainWindow::initConnections()
|
||||
{
|
||||
// 主题切换
|
||||
connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, [=](DGuiApplicationHelper::ColorType themeType)
|
||||
{
|
||||
if (themeType == DGuiApplicationHelper::DarkType) {
|
||||
//深色模式
|
||||
setMaskColor(QColor("#2a2b2b"));
|
||||
backButton->setIcon(QIcon(":/icon/dark/back.svg"));
|
||||
downloadButton->setIcon(":/icon/dark/download.svg");
|
||||
downloadButton->setBackgroundColor(QColor("#444444"));
|
||||
downloadButton->setColor(QColor("#66CCFF"));
|
||||
ui->pushButton_14->setIcon(QIcon(":/icon/dark/update.svg"));
|
||||
for (int i = 0; i < ui->buttonGroup->buttons().size(); i++) {
|
||||
ui->buttonGroup->buttons()[i]->setIcon(QIcon(":/icon/dark/leftbutton_" + QString::number(i) + ".svg"));
|
||||
if (QLocale::system().name() == "zh_CN") {
|
||||
ui->buttonGroup->buttons()[i]->setStyleSheet("QPushButton{background-color:transparent;}\
|
||||
QPushButton:hover{background-color:#7a7a7a;border:0px;border-radius:8px;}\
|
||||
QPushButton:checked{background-color:#6e6e6e;border:0px;border-radius:8px;}");
|
||||
} else {
|
||||
ui->buttonGroup->buttons()[i]->setStyleSheet("QPushButton{background-color:transparent;text-align: left; padding-left: 15px;}\
|
||||
QPushButton:hover{background-color:#7a7a7a;border:0px;border-radius:8px;text-align: left; padding-left: 15px;}\
|
||||
QPushButton:checked{background-color:#6e6e6e;border:0px;border-radius:8px;text-align: left; padding-left: 15px;}");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//亮色模式
|
||||
setMaskColor(QColor("#f3f7f8"));
|
||||
backButton->setIcon(QIcon(":/icon/light/back.svg"));
|
||||
downloadButton->setBackgroundColor(QColor("#e3e4e4"));
|
||||
downloadButton->setColor(QColor("#66CCFF"));
|
||||
downloadButton->setIcon(":/icon/light/download.svg");
|
||||
ui->pushButton_14->setIcon(QIcon(":/icon/light/update.svg"));
|
||||
for (int i = 0; i < ui->buttonGroup->buttons().size(); i++) {
|
||||
ui->buttonGroup->buttons()[i]->setIcon(QIcon(":/icon/light/leftbutton_" + QString::number(i) + ".svg"));
|
||||
if (QLocale::system().name() == "zh_CN") {
|
||||
ui->buttonGroup->buttons()[i]->setStyleSheet("QPushButton{background-color:transparent;}\
|
||||
QPushButton:hover{background-color:#eAeAeA;border:0px;border-radius:8px;}\
|
||||
QPushButton:checked{background-color:#dddddd;border:0px;border-radius:8px;}");
|
||||
} else {
|
||||
ui->buttonGroup->buttons()[i]->setStyleSheet("QPushButton{background-color:transparent;text-align: left; padding-left: 15px;}\
|
||||
QPushButton:hover{background-color:#eAeAeA;border:0px;border-radius:8px;text-align: left; padding-left: 15px;}\
|
||||
QPushButton:checked{background-color:#dddddd;border:0px;border-radius:8px;text-align: left; padding-left: 15px;}");
|
||||
}
|
||||
}
|
||||
}
|
||||
ui->pushButton_14->setStyleSheet(ui->pushButton_4->styleSheet());
|
||||
ui->applistpage->setTheme(themeType == DGuiApplicationHelper::DarkType);
|
||||
ui->applistpage_1->setTheme(themeType == DGuiApplicationHelper::DarkType);
|
||||
ui->appintopage->setTheme(themeType == DGuiApplicationHelper::DarkType);
|
||||
ui->settingspage->setTheme(themeType == DGuiApplicationHelper::DarkType); });
|
||||
connect(ThemeChecker::instance(), &ThemeChecker::themeChanged, this, &MainWindow::refreshTheme);
|
||||
|
||||
// appintopage按下下载按钮时标题栏下载列表按钮抖动
|
||||
connect(ui->appintopage, &AppIntoPage::clickedDownloadBtn, [=]()
|
||||
|
||||
1
src/mainwindow-dtk.h
Normal file → Executable file
1
src/mainwindow-dtk.h
Normal file → Executable file
@@ -30,6 +30,7 @@ public:
|
||||
void openUrl(const QString &url);
|
||||
|
||||
bool isCloseWindowAnimation();
|
||||
Q_INVOKABLE void refreshTheme(bool isDarkMode);
|
||||
|
||||
protected:
|
||||
void closeEvent(QCloseEvent *event) override;
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "backend/image_show.h"
|
||||
#include "application.h"
|
||||
#include "utils/utils.h"
|
||||
#include "pages/settingspage.h"
|
||||
|
||||
#include <QtConcurrent>
|
||||
#include <QClipboard>
|
||||
@@ -171,7 +172,7 @@ void AppIntoPage::openUrl(const QUrl &url)
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->downloadButton->setText(tr("Download"));
|
||||
ui->downloadButton->setText(tr("Download and Install"));
|
||||
ui->downloadButton->setEnabled(true);
|
||||
ui->downloadButton->show();
|
||||
}
|
||||
@@ -309,7 +310,7 @@ void AppIntoPage::isDownloading(const QUrl &url)
|
||||
if (item->download == 2)
|
||||
{
|
||||
ui->downloadButton->setEnabled(true);
|
||||
ui->downloadButton->setText(tr("Download"));
|
||||
ui->downloadButton->setText(tr("Download and Install"));
|
||||
}
|
||||
if (item->download == 1)
|
||||
{
|
||||
@@ -380,6 +381,10 @@ void AppIntoPage::setAppinfoTags(const QStringList &tagList)
|
||||
|
||||
void AppIntoPage::notifyUserUnsupportedTags(bool ubuntuSupport, bool deepinSupport, bool uosSupport)
|
||||
{
|
||||
if (!SettingsPage::needUncompatibleNotification) {
|
||||
return;
|
||||
}
|
||||
|
||||
bool isDeepin = Dtk::Core::DSysInfo::productType() == Dtk::Core::DSysInfo::Deepin;
|
||||
bool isUOS = Dtk::Core::DSysInfo::productType() == Dtk::Core::DSysInfo::Uos;
|
||||
bool checkdeepin = (isDeepin && !deepinSupport);
|
||||
@@ -466,7 +471,7 @@ void AppIntoPage::on_pushButton_3_clicked()
|
||||
ui->pushButton_3->setEnabled(false);
|
||||
|
||||
QProcess uninstall;
|
||||
uninstall.start("pkexec", QStringList() << "apt" << "purge" << "-y" << info["Pkgname"].toString().toLower());
|
||||
uninstall.start("pkexec", QStringList() << "apt" << "autopurge" << "-y" << info["Pkgname"].toString().toLower());
|
||||
uninstall.waitForFinished(-1);
|
||||
|
||||
QProcess check;
|
||||
@@ -475,7 +480,7 @@ void AppIntoPage::on_pushButton_3_clicked()
|
||||
|
||||
if (check.readAllStandardOutput().isEmpty())
|
||||
{
|
||||
ui->downloadButton->setText(tr("Download"));
|
||||
ui->downloadButton->setText(tr("Download and Install"));
|
||||
ui->pushButton_3->hide();
|
||||
|
||||
updatesEnabled();
|
||||
|
||||
@@ -241,7 +241,7 @@
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Download</string>
|
||||
<string>Download and Install</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#define DEFAULT_SERVER_URL "https://cdn.d.store.deepinos.org.cn/"
|
||||
#define DEFAULT_CHECK_DOMAIN "deepinos"
|
||||
|
||||
bool SettingsPage::needUncompatibleNotification = true;
|
||||
bool SettingsPage::isdownload = false;
|
||||
|
||||
SettingsPage::SettingsPage(QWidget *parent)
|
||||
@@ -99,6 +100,9 @@ void SettingsPage::initConfig()
|
||||
SparkAPI::setServerUrl(config.value("server/choose").toString());
|
||||
}
|
||||
configCanSave = true; // 防止触发保存配置信号
|
||||
|
||||
needUncompatibleNotification = config.value("other/uncompatibleNotification", needUncompatibleNotification).toBool();
|
||||
ui->checkBox->setChecked(needUncompatibleNotification);
|
||||
}
|
||||
|
||||
SettingsPage::~SettingsPage()
|
||||
@@ -252,3 +256,11 @@ void SettingsPage::on_pushButton_clearWebCache_clicked()
|
||||
cacheDir.removeRecursively();
|
||||
});
|
||||
}
|
||||
|
||||
void SettingsPage::on_checkBox_clicked(bool checked)
|
||||
{
|
||||
needUncompatibleNotification = checked;
|
||||
QSettings config(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/config.ini", QSettings::IniFormat);
|
||||
config.setValue("other/uncompatibleNotification", needUncompatibleNotification);
|
||||
config.sync();
|
||||
}
|
||||
|
||||
@@ -30,6 +30,11 @@ private slots:
|
||||
|
||||
void on_pushButton_clearWebCache_clicked();
|
||||
|
||||
void on_checkBox_clicked(bool checked);
|
||||
|
||||
public:
|
||||
static bool needUncompatibleNotification;
|
||||
|
||||
private:
|
||||
static bool isdownload;
|
||||
bool configCanSave;
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QScrollArea" name="scrollArea_2">
|
||||
<widget class="QScrollArea" name="scrollArea">
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
@@ -67,21 +67,21 @@
|
||||
<property name="widgetResizable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="scrollAreaWidgetContents_3">
|
||||
<widget class="QWidget" name="scrollAreaWidgetContents">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>679</width>
|
||||
<height>741</height>
|
||||
<width>743</width>
|
||||
<height>950</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_23">
|
||||
<item>
|
||||
<widget class="QWidget" name="widget_6" native="true">
|
||||
<widget class="QWidget" name="widget" native="true">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_22">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>18</pointsize>
|
||||
@@ -93,10 +93,10 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget_7" native="true">
|
||||
<widget class="QWidget" name="widget_2" native="true">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>100</width>
|
||||
@@ -132,7 +132,7 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_setting1">
|
||||
<widget class="QLabel" name="label_setting">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>160</width>
|
||||
@@ -145,7 +145,7 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
@@ -161,10 +161,10 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget_8" native="true">
|
||||
<widget class="QWidget" name="widget_3" native="true">
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="0" column="3">
|
||||
<spacer name="horizontalSpacer_4">
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
@@ -177,7 +177,7 @@
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="4">
|
||||
<widget class="QLabel" name="label_7">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color:#808080</string>
|
||||
</property>
|
||||
@@ -190,7 +190,7 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>Spark Store Update</string>
|
||||
</property>
|
||||
@@ -217,10 +217,44 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget_9" native="true">
|
||||
<widget class="QWidget" name="widget_7" native="true">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_11">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>18</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Other Settings</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget_8" native="true">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkBox">
|
||||
<property name="text">
|
||||
<string>Enable notification for apps not compatible with current system</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget_4" native="true">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_26">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_8">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>18</pointsize>
|
||||
@@ -232,10 +266,10 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget_10" native="true">
|
||||
<widget class="QWidget" name="widget_5" native="true">
|
||||
<layout class="QGridLayout" name="gridLayout_4">
|
||||
<item row="2" column="0" colspan="5">
|
||||
<widget class="QLabel" name="label_12">
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color:#808080</string>
|
||||
</property>
|
||||
@@ -252,14 +286,14 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QLabel" name="label_11">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
<string>Location:/tmp/spark-store</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="4">
|
||||
<spacer name="horizontalSpacer_5">
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
@@ -279,7 +313,7 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_13">
|
||||
<widget class="QLabel" name="label_7">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>80</width>
|
||||
@@ -305,10 +339,10 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget_2" native="true">
|
||||
<widget class="QWidget" name="widget_6" native="true">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_25">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<widget class="QLabel" name="label_9">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>18</pointsize>
|
||||
@@ -320,9 +354,10 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_5">
|
||||
<widget class="QLabel" name="label_10">
|
||||
<property name="text">
|
||||
<string><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>Connect us on Spark IM: <a href="https://chat.shenmo.tech"><span style=" text-decoration: underline; color:#0000ff;">https://chat.shenmo.tech<br/></span></a>Our QQ Group number:872690351</p></body></html></string>
|
||||
<string><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 <a href="mailto:jifengshenmo@outlook.com"><span style=" text-decoration: underline; color:#0082fa;">jifengshenmo@outlook.com</span></a> 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><span style=" text-decoration: underline; color:#0000ff;"><br/></span>Our contact method can be found at <a href="https://blog.shenmo.tech/post/%E6%95%85%E9%9A%9C%E5%85%AC%E5%91%8A/"><span style=" text-decoration: underline; color:#0082fa;">Here</span></a></p></body></html></string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
@@ -336,7 +371,7 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer_4">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
|
||||
@@ -34,6 +34,8 @@ CONFIG += c++11 link_pkgconfig
|
||||
PKGCONFIG += dtkcore dtkgui dtkwidget
|
||||
|
||||
SOURCES += \
|
||||
backend/DataCollectorAndUploader.cpp \
|
||||
backend/ThemeChecker.cpp \
|
||||
backend/downloadworker.cpp \
|
||||
backend/image_show.cpp \
|
||||
backend/sparkapi.cpp \
|
||||
@@ -58,6 +60,8 @@ SOURCES += \
|
||||
mainwindow-dtk.cpp
|
||||
|
||||
HEADERS += \
|
||||
backend/DataCollectorAndUploader.h \
|
||||
backend/ThemeChecker.h \
|
||||
backend/downloadworker.h \
|
||||
backend/image_show.h \
|
||||
backend/sparkapi.h \
|
||||
@@ -93,6 +97,7 @@ RESOURCES += \
|
||||
|
||||
TRANSLATIONS += \
|
||||
../translations/spark-store_en.ts \
|
||||
../translations/spark-store_es.ts \
|
||||
../translations/spark-store_fr.ts \
|
||||
../translations/spark-store_zh_CN.ts \
|
||||
../translations/spark-store_zh_TW.ts
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <QSettings>
|
||||
#include <QStandardPaths>
|
||||
#include <QFile>
|
||||
#include <QUuid>
|
||||
#include <QJsonDocument>
|
||||
|
||||
#define UOSDeveloperModeFile "/var/lib/deepin/developer-mode/enabled"
|
||||
@@ -96,6 +97,11 @@ void Utils::initConfig()
|
||||
{
|
||||
config.setValue("runtime/useWayland", useWayland);
|
||||
}
|
||||
|
||||
// check uuid
|
||||
if (!config.contains("info/uuid")){
|
||||
config.setValue("info/uuid", initUUID());
|
||||
}
|
||||
config.sync(); // 写入更改至 config.ini,并同步最新内容
|
||||
|
||||
checkUOSDeveloperMode(); // Check UOS developer mode
|
||||
@@ -126,6 +132,14 @@ bool Utils::isUOS()
|
||||
return isUOS;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Utils::initUUID 生成 UUID
|
||||
*/
|
||||
QString Utils::initUUID(){
|
||||
QUuid uuid = QUuid::createUuid();
|
||||
return uuid.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Utils::setQPAPlatform Set display backend
|
||||
*/
|
||||
|
||||
@@ -12,6 +12,7 @@ public:
|
||||
static bool isWayland();
|
||||
static void initConfig();
|
||||
static bool isUOS();
|
||||
static QString initUUID();
|
||||
static void setQPAPlatform();
|
||||
static void checkUOSDeveloperMode();
|
||||
static QJsonObject parseFeatureJsonFile();
|
||||
|
||||
@@ -17,7 +17,8 @@ big_image::big_image(DBlurEffectWidget *parent) : DBlurEffectWidget(parent),
|
||||
layout->addWidget(m_image);
|
||||
layout->setMargin(0);
|
||||
|
||||
// m_image->setParent(this);
|
||||
// Make sure the image has a parent so that it will be freed.
|
||||
m_image->setParent(this);
|
||||
// m_image->setMaximumSize(1360,768);
|
||||
m_image->setAlignment(Qt::AlignCenter);
|
||||
}
|
||||
|
||||
@@ -198,7 +198,7 @@ void DownloadItem::slotAsyncInstall(int t)
|
||||
for (int i = 0; i < everyOut.size(); i++)
|
||||
{
|
||||
tempOutput = everyOut[i];
|
||||
if (everyOut[i].left(2) == "E:" || tempOutput.contains("错误") || tempOutput.contains("exit code") || tempOutput.contains("OMG-IT-GOES-WRONG"))
|
||||
if (everyOut[i].left(2) == tempOutput.contains("OMG-IT-GOES-WRONG"))
|
||||
{
|
||||
haveError = true;
|
||||
}
|
||||
@@ -226,17 +226,17 @@ void DownloadItem::slotAsyncInstall(int t)
|
||||
ui->pushButton_install->show();
|
||||
ui->pushButton_install->setText(tr("Retry"));
|
||||
download = 1;
|
||||
Utils::sendNotification("spark-store", tr("Spark Store"), tr("Error happened in dpkg progress , you can try it again."));
|
||||
ui->label_2->setText(tr("Error happened in dpkg progress , you can try it again"));
|
||||
ui->label_2->setToolTip(tr("Error happened in dpkg progress , you can try it again"));
|
||||
Utils::sendNotification("spark-store", tr("Spark Store"), tr("Error happened in dpkg progress , please check the install info or try to reinstall."));
|
||||
ui->label_2->setText(tr("Error happened in dpkg progress , please check the install info or try to reinstall."));
|
||||
ui->label_2->setToolTip(tr("Error happened in dpkg progress , please check the install info or try to reinstall."));
|
||||
ui->pushButton_3->show();
|
||||
}
|
||||
|
||||
if (notRoot)
|
||||
{
|
||||
Utils::sendNotification("spark-store", tr("Spark Store"), tr("dpkg progress had been aborted,you can retry installation."));
|
||||
ui->label_2->setText(tr("dpkg progress had been aborted,you can retry installation"));
|
||||
ui->label_2->setToolTip(tr("dpkg progress had been aborted,you can retry installation"));
|
||||
Utils::sendNotification("spark-store", tr("Spark Store"), tr("dpkg progress had been aborted, please check the install info or try to reinstall."));
|
||||
ui->label_2->setText(tr("dpkg progress had been aborted, please check the install info or try to reinstall."));
|
||||
ui->label_2->setToolTip(tr("dpkg progress had been aborted, please check the install info or try to reinstall."));
|
||||
ui->pushButton_install->show();
|
||||
ui->pushButton_3->hide();
|
||||
}
|
||||
|
||||
@@ -7,20 +7,7 @@
|
||||
WebEnginePage::WebEnginePage(QObject *parent)
|
||||
: QWebEnginePage(parent)
|
||||
{
|
||||
QLocale ql;
|
||||
switch (ql.language())
|
||||
{
|
||||
case QLocale::Chinese:
|
||||
{
|
||||
// 系统语言是中文,获取网页为中文 @momen @uniartisan
|
||||
QWebEngineProfile *profile = QWebEngineProfile::defaultProfile();
|
||||
qDebug() << profile->httpAcceptLanguage();
|
||||
profile->setHttpAcceptLanguage("zh-CN,zh;q=0.8,en;q=0.6");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
initHttpAcceptLanguage();
|
||||
}
|
||||
|
||||
WebEnginePage::~WebEnginePage()
|
||||
@@ -47,6 +34,18 @@ QWebEnginePage *WebEnginePage::createWindow(QWebEnginePage::WebWindowType type)
|
||||
return page;
|
||||
}
|
||||
|
||||
void WebEnginePage::initHttpAcceptLanguage()
|
||||
{
|
||||
switch (QLocale::system().language()) {
|
||||
case QLocale::Chinese: {
|
||||
// 系统语言是中文,获取网页为中文 @momen @uniartisan
|
||||
profile()->setHttpAcceptLanguage("zh-CN,zh;q=0.8,en;q=0.6");
|
||||
} break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void WebEnginePage::slotUrlChanged(const QUrl &url)
|
||||
{
|
||||
if (m_currentUrl == url)
|
||||
|
||||
@@ -16,6 +16,9 @@ public:
|
||||
protected:
|
||||
QWebEnginePage *createWindow(WebWindowType type) override;
|
||||
|
||||
private:
|
||||
void initHttpAcceptLanguage();
|
||||
|
||||
private slots:
|
||||
void slotUrlChanged(const QUrl &url);
|
||||
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
#include "webengineview.h"
|
||||
#include "webenginepage.h"
|
||||
|
||||
#include <QDesktopServices>
|
||||
|
||||
WebEngineView::WebEngineView(QWidget *parent)
|
||||
: QWebEngineView(parent)
|
||||
{
|
||||
|
||||
@@ -169,6 +169,7 @@ void DownloadListWidget::httpFinished() // 完成下载
|
||||
{
|
||||
while (downloaditemlist[nowDownload - 1]->readyInstall() == -1) // 安装当前应用,堵塞安装,后面的下载suspend
|
||||
{
|
||||
QThread::msleep(500); // 休眠500ms,减少CPU负担
|
||||
continue;
|
||||
}
|
||||
downloaditemlist[nowDownload - 1]->free = true;
|
||||
@@ -179,17 +180,15 @@ void DownloadListWidget::httpFinished() // 完成下载
|
||||
// 如果有排队则下载下一个
|
||||
qDebug() << "Download: 切换下一个下载...";
|
||||
nowDownload += 1;
|
||||
while (downloaditemlist[nowDownload - 1]->close)
|
||||
while (nowDownload <= allDownload && downloaditemlist[nowDownload - 1]->close)
|
||||
{
|
||||
nowDownload += 1;
|
||||
if (nowDownload >= allDownload)
|
||||
{
|
||||
nowDownload = allDownload;
|
||||
return;
|
||||
}
|
||||
}
|
||||
QString fileName = downloaditemlist[nowDownload - 1]->getName();
|
||||
startRequest(urList.at(nowDownload - 1), fileName);
|
||||
if (nowDownload <= allDownload)
|
||||
{
|
||||
QString fileName = downloaditemlist[nowDownload - 1]->getName();
|
||||
startRequest(urList.at(nowDownload - 1), fileName);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -236,19 +235,23 @@ void DownloadListWidget::on_pushButton_clicked()
|
||||
void DownloadListWidget::slotInstallFinished(bool success)
|
||||
{
|
||||
// NOTE: 仅在安装成功后判断是否需要退出后台
|
||||
if (success) {
|
||||
toDownload -= 1; // 安装完以后减少待安装数目
|
||||
qDebug() << "Download: 还没有下载的数目:" << toDownload;
|
||||
if (!success) {
|
||||
qDebug() << "Download: install failed";
|
||||
return;
|
||||
}
|
||||
|
||||
if (toDownload == 0)
|
||||
if (toDownload > 0) {
|
||||
toDownload -= 1;
|
||||
qDebug() << "Download: toDownload" << toDownload;
|
||||
}
|
||||
|
||||
if (toDownload == 0) {
|
||||
Application *app = qobject_cast<Application *>(qApp);
|
||||
MainWindow *mainWindow = app->mainWindow();
|
||||
if (mainWindow->isCloseWindowAnimation() == true)
|
||||
{
|
||||
Application *app = qobject_cast<Application *>(qApp);
|
||||
MainWindow *mainWindow = app->mainWindow();
|
||||
if (mainWindow->isCloseWindowAnimation() == true)
|
||||
{
|
||||
qDebug() << "Download: 后台安装结束,退出程序";
|
||||
qApp->quit();
|
||||
}
|
||||
qDebug() << "Download: 后台安装结束,退出程序";
|
||||
qApp->quit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
#
|
||||
# apt-fast v1.9
|
||||
# Use this just like aptitude or apt-get for faster package downloading.
|
||||
#
|
||||
@@ -158,7 +158,7 @@ DOWNLOADBEFORE=
|
||||
VERBOSE_OUTPUT=
|
||||
|
||||
# Download command.
|
||||
_DOWNLOADER='aria2c --no-conf -c -j ${_MAXNUM} -x ${_MAXCONPERSRV} -s ${_SPLITCON} -i ${DLLIST} --min-split-size=${_MINSPLITSZ} --stream-piece-selector=${_PIECEALGO} --connect-timeout=600 --timeout=600 -m0'
|
||||
_DOWNLOADER='aria2c --no-conf -c -j ${_MAXNUM} -x ${_MAXCONPERSRV} -s ${_SPLITCON} -i ${DLLIST} --min-split-size=${_MINSPLITSZ} --stream-piece-selector=${_PIECEALGO} --connect-timeout=60 --timeout=600 -m0'
|
||||
|
||||
# Load config file.
|
||||
CONFFILE="/tmp/aptss-conf/apt-fast.conf"
|
||||
@@ -207,17 +207,15 @@ fi
|
||||
|
||||
msg_already_running()
|
||||
{
|
||||
msg "apt-fast already running!" "warning"
|
||||
msg "apt-fast 已经在运行了" "warning"
|
||||
msg "Verify that all apt-fast processes are finished then remove $LCK_FILE.lock and try again." "hint"
|
||||
msg "请确认所有的apt-fast进程已经结束,然后删除 $LCK_FILE.lock 后重试." "hint"
|
||||
msg "Other aptss is running. Waited $timer senconds..." "normal"
|
||||
msg "有其他的aptss正在运行。已经等待了$timer秒" "normal"
|
||||
}
|
||||
|
||||
# Check if a lock file exists.
|
||||
if [ -f "$LCK_FILE.lock" ]; then
|
||||
msg_already_running
|
||||
exit 1
|
||||
fi
|
||||
#if [ -f "$LCK_FILE.lock" ]; then
|
||||
# msg_already_running
|
||||
# exit 1
|
||||
#fi
|
||||
|
||||
|
||||
# create the lock file and lock it, die on failure
|
||||
@@ -225,10 +223,17 @@ _create_lock()
|
||||
{
|
||||
eval "exec $LCK_FD>\"$LCK_FILE.lock\""
|
||||
|
||||
trap "cleanup_aptfast; exit_cleanup_state" EXIT
|
||||
# trap "cleanup_aptfast; exit_cleanup_state" EXIT
|
||||
# This will hide the exit code
|
||||
trap "cleanup_aptfast" EXIT
|
||||
trap "cleanup_aptfast; exit 1" INT TERM
|
||||
|
||||
flock -n $LCK_FD || { msg_already_running; exit 1; }
|
||||
timer=0
|
||||
until $(flock -xn $LCK_FD);do
|
||||
msg_already_running
|
||||
sleep 1
|
||||
let timer+=1
|
||||
done
|
||||
unset timer
|
||||
}
|
||||
|
||||
# unlock and remove the lock file
|
||||
@@ -301,8 +306,10 @@ get_mirrors(){
|
||||
# Globals to save package name, version, size and overall size.
|
||||
DOWNLOAD_DISPLAY=
|
||||
DOWNLOAD_SIZE=0
|
||||
|
||||
# Get the package URLs.
|
||||
get_uris(){
|
||||
|
||||
if [ ! -d "$(dirname "$DLLIST")" ]
|
||||
then
|
||||
if ! mkdir -p -- "$(dirname "$DLLIST")"
|
||||
@@ -449,6 +456,7 @@ display_downloadfile(){
|
||||
}
|
||||
|
||||
# Create and insert a PID number to lockfile.
|
||||
|
||||
_create_lock
|
||||
|
||||
# Make sure aria2c (in general first parameter from _DOWNLOADER) is available.
|
||||
@@ -548,7 +556,6 @@ if [ "$option" == "install" ]; then
|
||||
REMOVE_WORKING_MESSAGE=y
|
||||
|
||||
get_uris "$@"
|
||||
|
||||
[ -t 1 ] && [ -n "$REMOVE_WORKING_MESSAGE" ] && tput cuu 1 && tput el && tput cuu 1
|
||||
# Test /tmp/apt-fast.list file exists and not just the apt-fast comment line.
|
||||
# Then download all files from the list.
|
||||
|
||||
21
tool/aptss
21
tool/aptss
@@ -24,7 +24,7 @@ is_empty_dir(){
|
||||
|
||||
if [ "$(id -u)" != "0" ];then
|
||||
#############################无root权限时
|
||||
echo "${TRANSHELL_CONTENT_RUNNING_IN_NOT_ROOT_USER}"
|
||||
echo -e "\e[1;32m${TRANSHELL_CONTENT_RUNNING_IN_NOT_ROOT_USER}\e[0m"
|
||||
|
||||
else
|
||||
|
||||
@@ -38,7 +38,7 @@ fi
|
||||
if [ ! -e "/tmp/aptss-conf/apt-fast.conf" ];then
|
||||
###刷新apt-fast配置
|
||||
mkdir -p /tmp/aptss-conf/
|
||||
echo "${TRANSHELL_CONTENT_GETTING_SERVER_CONFIG_AND_MIRROR_LIST}"
|
||||
echo -e "\e[1;32m${TRANSHELL_CONTENT_GETTING_SERVER_CONFIG_AND_MIRROR_LIST}\e[0m"
|
||||
echo
|
||||
curl --progress-bar -o /tmp/aptss-conf/apt-fast.conf "https://d.store.deepinos.org.cn/apt-fast.conf"
|
||||
chmod -R 755 /tmp/aptss-conf
|
||||
@@ -49,7 +49,7 @@ fi
|
||||
if [ ! -e "/var/lib/aptss/lists/d.spark-app.store_${STORE_URL}_Packages" ] && [ ! -e "/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ] && [ ! -e "/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages" ];then
|
||||
|
||||
mkdir -p /tmp/aptss-conf/
|
||||
echo "${TRANSHELL_CONTENT_GETTING_SERVER_CONFIG_AND_MIRROR_LIST}"
|
||||
echo -e "\e[1;32m${TRANSHELL_CONTENT_GETTING_SERVER_CONFIG_AND_MIRROR_LIST}\e[0m"
|
||||
echo
|
||||
curl --silent -o /tmp/aptss-conf/apt-fast.conf "https://d.store.deepinos.org.cn/apt-fast.conf"
|
||||
chmod -R 755 /tmp/aptss-conf
|
||||
@@ -73,6 +73,11 @@ if [ "$1" = "install" ] || [ "$1" = "upgrade" ] || [ "$1" = "full-upgrade" ] ;
|
||||
###执行
|
||||
|
||||
${SS_APT_FAST} "$@" --allow-downgrades -c /opt/durapps/spark-store/bin/apt-fast-conf/aptss-apt.conf
|
||||
ret="$?"
|
||||
if [ "$ret" -ne 0 ];then
|
||||
echo -e "\e[1;33m$TRANSHELL_CONTENT_PLEASE_USE_APTSS_INSTEAD_OF_APT\e[0m"
|
||||
exit $ret
|
||||
fi
|
||||
|
||||
|
||||
elif [ "$1" = "download" ];then
|
||||
@@ -92,7 +97,7 @@ elif [ "$1" = "policy" ] || [ "$1" = "search" ];then
|
||||
elif [ "$1" = "ssupdate" ];then
|
||||
|
||||
mkdir -p /tmp/aptss-conf/
|
||||
echo "${TRANSHELL_CONTENT_GETTING_SERVER_CONFIG_AND_MIRROR_LIST}"
|
||||
echo -e "\e[1;32m${TRANSHELL_CONTENT_GETTING_SERVER_CONFIG_AND_MIRROR_LIST}\e[0m"
|
||||
echo
|
||||
curl --silent -o /tmp/aptss-conf/apt-fast.conf "https://d.store.deepinos.org.cn/apt-fast.conf"
|
||||
chmod -R 755 /tmp/aptss-conf
|
||||
@@ -105,12 +110,10 @@ apt update -c /opt/durapps/spark-store/bin/apt-fast-conf/aptss-apt.conf -o Dir::
|
||||
#只更新星火源
|
||||
|
||||
elif [ "$1" = "update" ];then
|
||||
curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://d.store.deepinos.org.cn/sparkstore${STORE_LIST_URL}.list"
|
||||
|
||||
|
||||
mkdir -p /tmp/aptss-conf/
|
||||
echo "${TRANSHELL_CONTENT_GETTING_SERVER_CONFIG_AND_MIRROR_LIST}"
|
||||
echo -e "\e[1;32m${TRANSHELL_CONTENT_GETTING_SERVER_CONFIG_AND_MIRROR_LIST}\e[0m"
|
||||
echo
|
||||
curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://d.store.deepinos.org.cn/sparkstore${STORE_LIST_URL}.list"
|
||||
mkdir -p /tmp/aptss-conf/
|
||||
curl --progress-bar -o /tmp/aptss-conf/apt-fast.conf "https://d.store.deepinos.org.cn/apt-fast.conf"
|
||||
chmod -R 755 /tmp/aptss-conf
|
||||
### 额外一份拿来给aptss自动补全用
|
||||
|
||||
28
tool/open-in-terminal/open-in-terminal
Executable file
28
tool/open-in-terminal/open-in-terminal
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
source /opt/durapps/spark-store/bin/bashimport/transhell.amber
|
||||
load_transhell
|
||||
# 检查是否传入了路径参数
|
||||
if [ -z "$1" ]; then
|
||||
echo "${TRANSHELL_CONTENT_PLEASE_PROVIDE_FILE_PATH}"
|
||||
exit 1
|
||||
fi
|
||||
DESKTOP_FILE_PATH=$1
|
||||
if [[ $DESKTOP_FILE_PATH == file://* ]]; then
|
||||
# 如果是,移除 'file://' 部分并输出结果
|
||||
DESKTOP_FILE_PATH="${DESKTOP_FILE_PATH#file://}"
|
||||
fi
|
||||
|
||||
# 获取文件内容中Exec=后的命令
|
||||
exec_command=$(grep -oP "(?<=Exec=).*" "$DESKTOP_FILE_PATH")
|
||||
|
||||
# 打印提取的命令
|
||||
echo "$exec_command"
|
||||
|
||||
# 在默认终端执行命令
|
||||
eval "$exec_command"
|
||||
|
||||
echo --------------------------------------
|
||||
echo "${TRANSHELL_CONTENT_ABOVE_IS_TERMINAL_OUTPUT}"
|
||||
echo "${TRANSHELL_CONTENT_PRESS_ENTER_TO_FINISH}"
|
||||
read
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
TRANSHELL_CONTENT_PLEASE_PROVIDE_FILE_PATH="Please provide a file path as an argument"
|
||||
TRANSHELL_CONTENT_ABOVE_IS_TERMINAL_OUTPUT="The above is the output executed in the terminal. Please copy and paste it when providing feedback."
|
||||
TRANSHELL_CONTENT_PRESS_ENTER_TO_FINISH="Press Enter to finish"
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
TRANSHELL_CONTENT_PLEASE_PROVIDE_FILE_PATH="请传入文件路径作为参数"
|
||||
TRANSHELL_CONTENT_ABOVE_IS_TERMINAL_OUTPUT="以上是在终端中执行的输出,请在反馈问题的时候完整复制并贴上"
|
||||
TRANSHELL_CONTENT_PRESS_ENTER_TO_FINISH="按回车结束"
|
||||
|
||||
@@ -17,8 +17,6 @@ echo "Segment fault"
|
||||
exit -1
|
||||
fi
|
||||
|
||||
mkdir -p /tmp/spark-store/mail-send-content
|
||||
cd /tmp/spark-store/mail-send-content
|
||||
|
||||
APP_LOCATION=${1#*/$STORE_URL/}
|
||||
APP_LOCATION=${APP_LOCATION%/*}
|
||||
@@ -41,42 +39,11 @@ fi
|
||||
|
||||
|
||||
|
||||
MAIL_INFO_0=sparkstorefeedback@163.com:YWYGLQNOPLWNNJJY
|
||||
MAIL_INFO_1=ss_feedback@163.com:CCPFYUYHTLBVFTSM
|
||||
MAIL_INFO_2=spark_store_good@163.com:FIGNKXCLBGCYUDUF
|
||||
MAIL_INFO_3=wudibaolongzsoy@163.com:IOGHUIEDXXMGWJTI
|
||||
MAIL_INFO_4=suasnjaksf@163.com:KWUBIOYTGYIPVALZ
|
||||
#
|
||||
MAIL_INFO_5=asdasdasdasd0827@163.com:TSSLXXCEAAATCZJJ
|
||||
MAIL_INFO_6=hjkhuiasndkj@163.com:XJZDDLHZYACGJVWM
|
||||
MAIL_INFO_7=xncniasudhqi@163.com:OZPUJHBMGLDWEGEI
|
||||
MAIL_INFO_8=ajhdiahiudqahwui@163.com:HFAJCJOCWIDZHGIG
|
||||
MAIL_INFO_9=xcvuyefbewr@163.com:LVXGTJVORDEDYWQI
|
||||
|
||||
|
||||
MAIL_INFO_RANDOM=MAIL_INFO_$(($RANDOM % 10))
|
||||
|
||||
MAIL_INFO_RANDOM=`echo ${!MAIL_INFO_RANDOM}`
|
||||
# 把对应变量赋值过来
|
||||
|
||||
MAIL_ADDRESS_FROM_INFO_RANDOM=`echo $MAIL_INFO_RANDOM | sed "{s/:.*//}" `
|
||||
echo $STORE_URL/$APP_LOCATION
|
||||
curl -X POST -H "Content-Type: application/json" -d '{"path": "'"${STORE_URL}/${APP_LOCATION}"'"}' http://zunyun01.store.deepinos.org.cn:38324/handle_post
|
||||
|
||||
|
||||
|
||||
cat << EOF > ./data.txt
|
||||
------------------------------------
|
||||
From:$MAIL_ADDRESS_FROM_INFO_RANDOM
|
||||
To:$MAIL_ADDRESS_FROM_INFO_RANDOM
|
||||
Subject: Download count command
|
||||
check=i love amber forever
|
||||
command:download_count
|
||||
APP_LOCATION=$STORE_URL/$APP_LOCATION
|
||||
------------------------------------
|
||||
|
||||
EOF
|
||||
|
||||
curl -s --url "smtp://smtp.163.com" --mail-from "$MAIL_ADDRESS_FROM_INFO_RANDOM" --mail-rcpt "$MAIL_ADDRESS_FROM_INFO_RANDOM" --upload-file ./data.txt --user "$MAIL_INFO_RANDOM"
|
||||
|
||||
rm /tmp/spark-store/mail-send-content/data.txt
|
||||
|
||||
echo "Finished"
|
||||
|
||||
164
tool/ssaudit
164
tool/ssaudit
@@ -1,49 +1,133 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "Spark Store Audit script.星火商店审核脚本"
|
||||
source /opt/durapps/spark-store/bin/bashimport/transhell.amber
|
||||
load_transhell_debug
|
||||
|
||||
case $(arch) in
|
||||
x86_64)
|
||||
STORE_URL="store"
|
||||
;;
|
||||
aarch64)
|
||||
STORE_URL="aarch64-store"
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "Spark Store Install script. 星火商店审核脚本"
|
||||
|
||||
function pkexec_as_current_user() {
|
||||
local user=$(who | awk '{print $1}' | head -n 1)
|
||||
local uid=$(id -u "$user")
|
||||
sudo -u "$user" DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/"$uid"/bus pkexec "$@"
|
||||
}
|
||||
function create_desktop_file() {
|
||||
local user=$(who | awk '{print $1}' | head -n 1)
|
||||
if [ -e $(sudo -u "$user" xdg-user-dir)/.config/spark-union/spark-store/ssshell-config-do-not-create-desktop ];then
|
||||
echo "It is configured that do not create desktop file. Give up"
|
||||
else
|
||||
exec_create_desktop_file
|
||||
fi
|
||||
}
|
||||
function exec_create_desktop_file() {
|
||||
local user=$(who | awk '{print $1}' | head -n 1)
|
||||
for desktop_file_path in $(dpkg -L "$package_name" | grep .desktop); do
|
||||
if [ "$(cat $desktop_file_path | grep NoDisplay=true)" = "" ];then
|
||||
echo $desktop_file_path is checked and will be installed to desktop
|
||||
sudo -u "$user" cp "$desktop_file_path" "$(sudo -u "$user" xdg-user-dir DESKTOP)/"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
function zenity() {
|
||||
local user=$(who | awk '{print $1}' | head -n 1)
|
||||
local uid=$(id -u "$user")
|
||||
sudo -u "$user" DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/"$uid"/bus zenity "$@"
|
||||
}
|
||||
|
||||
function hash_check() {
|
||||
if [ ! -e "/var/lib/aptss/lists/cdn.d.store.deepinos.org.cn_${STORE_URL}_Packages" ] && \
|
||||
[ ! -e "/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ] && \
|
||||
[ ! -e "/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages" ]; then
|
||||
echo "接收星火仓库软件信息中..."
|
||||
aptss ssupdate
|
||||
fi
|
||||
|
||||
if [ -e "/var/lib/aptss/lists/cdn.d.store.deepinos.org.cn_${STORE_URL}_Packages" ]; then
|
||||
PACKAGES_DATA_PATH="/var/lib/aptss/lists/cdn.d.store.deepinos.org.cn_${STORE_URL}_Packages"
|
||||
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是星火域名单目录仓库配置"
|
||||
elif [ -e "/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ]; then
|
||||
PACKAGES_DATA_PATH="/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages"
|
||||
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是星火域名单目录仓库配置"
|
||||
else
|
||||
PACKAGES_DATA_PATH="/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages"
|
||||
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是SDU镜像仓库配置"
|
||||
fi
|
||||
|
||||
echo "正在运行包验证..."
|
||||
echo "Running Spark Package Verify..."
|
||||
|
||||
DEB_SHA512SUM=$(sha512sum "$1" | cut -d ' ' -f 1)
|
||||
IS_SHA512SUM_CHECKED=$(cat "$PACKAGES_DATA_PATH" | grep "$DEB_SHA512SUM")
|
||||
}
|
||||
|
||||
|
||||
#################检测文件是否存在
|
||||
if [ $# -eq 0 ];then
|
||||
echo "没有接收到参数,退出"
|
||||
echo "用法:$0 deb路径"
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ ! -f "$1" ]
|
||||
then
|
||||
echo "文件不存在"
|
||||
exit 1
|
||||
fi
|
||||
####################################
|
||||
|
||||
if [ "$(id -u)" != "0" ];then
|
||||
#############################无root权限时
|
||||
echo "请使用root启动ssaudit"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
###
|
||||
|
||||
|
||||
DEBPATH=`realpath $1`
|
||||
echo ------------------------------------------------------------
|
||||
try_run_output=$(/opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh test-install-app "$DEBPATH")
|
||||
try_run_ret="$?"
|
||||
|
||||
if [ "$try_run_ret" -ne 0 ]
|
||||
then
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "没有接收到参数,退出"
|
||||
echo "用法:$0 deb路径"
|
||||
echo "OMG-IT-GOES-WRONG"
|
||||
echo -e "${try_run_output}"
|
||||
exit "$try_run_ret"
|
||||
fi
|
||||
exit
|
||||
fi
|
||||
|
||||
|
||||
dpkg -i "$DEBPATH" || aptss install -yf
|
||||
install_ret="$?"
|
||||
|
||||
|
||||
if [ "$install_ret" -ne 0 ]
|
||||
then
|
||||
if [ ! -f "$1" ]; then
|
||||
echo "${TRANSHELL_CONTENT_FILE_NOT_EXIST}"
|
||||
echo "OMG-IT-GOES-WRONG"
|
||||
exit "$install_ret"
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$(id -u)" != "0" ]; then
|
||||
echo "${TRANSHELL_CONTENT_PLEASE_RUN_AS_ROOT}"
|
||||
echo "OMG-IT-GOES-WRONG"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DEBPATH=$(realpath "$1")
|
||||
|
||||
|
||||
|
||||
package_name=$(dpkg-deb -f "$DEBPATH" Package)
|
||||
echo "Package name is $package_name"
|
||||
try_run_output=$(/opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh test-install-app "$DEBPATH")
|
||||
try_run_ret="$?"
|
||||
|
||||
if [ "$try_run_ret" -ne 0 ]; then
|
||||
echo "OMG-IT-GOES-WRONG"
|
||||
echo -e "${try_run_output}"
|
||||
exit "$try_run_ret"
|
||||
fi
|
||||
|
||||
dpkg -i "$DEBPATH" || aptss install -yf
|
||||
|
||||
if [ "$?" = "0" ] && [ "$2" = "--delete-after-install" ]; then
|
||||
if dpkg -s "$package_name" >/dev/null 2>&1; then
|
||||
echo "软件包已安装:$package_name"
|
||||
create_desktop_file
|
||||
rm "$DEBPATH"
|
||||
echo "${TRANSHELL_CONTENT_DEB_IS_DELETED}"
|
||||
else
|
||||
echo "软件包未安装:$package_name"
|
||||
echo "安装异常!抛出错误"
|
||||
echo "OMG-IT-GOES-WRONG"
|
||||
fi
|
||||
else
|
||||
echo "${TRANSHELL_CONTENT_WILL_NOT_DELETE_DEB}"
|
||||
if dpkg -s "$package_name" >/dev/null 2>&1; then
|
||||
echo "软件包已安装:$package_name"
|
||||
create_desktop_file
|
||||
else
|
||||
echo "软件包未安装:$package_name"
|
||||
echo "安装异常!抛出错误"
|
||||
echo "OMG-IT-GOES-WRONG"
|
||||
fi
|
||||
fi
|
||||
|
||||
232
tool/ssinstall
232
tool/ssinstall
@@ -3,7 +3,7 @@
|
||||
source /opt/durapps/spark-store/bin/bashimport/transhell.amber
|
||||
load_transhell_debug
|
||||
|
||||
case `arch` in
|
||||
case $(arch) in
|
||||
x86_64)
|
||||
STORE_URL="store"
|
||||
;;
|
||||
@@ -12,135 +12,139 @@ case `arch` in
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
|
||||
|
||||
echo "Spark Store Install script.星火商店安装脚本"
|
||||
echo "Spark Store Install script. 星火商店安装脚本"
|
||||
|
||||
function pkexec_as_current_user() {
|
||||
|
||||
#Detect the user using such display
|
||||
local user=$(who | awk '{print $1}' | head -n 1)
|
||||
#Detect the id of the user
|
||||
local uid=$(id -u $user)
|
||||
|
||||
sudo -u $user DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$uid/bus pkexec "$@"
|
||||
local user=$(who | awk '{print $1}' | head -n 1)
|
||||
local uid=$(id -u "$user")
|
||||
sudo -u "$user" DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/"$uid"/bus pkexec "$@"
|
||||
}
|
||||
function create_desktop_file() {
|
||||
local user=$(who | awk '{print $1}' | head -n 1)
|
||||
if [ -e $(sudo -u "$user" xdg-user-dir)/.config/spark-union/spark-store/ssshell-config-do-not-create-desktop ];then
|
||||
echo "It is configured that do not create desktop file. Give up"
|
||||
else
|
||||
exec_create_desktop_file
|
||||
fi
|
||||
}
|
||||
function exec_create_desktop_file() {
|
||||
local user=$(who | awk '{print $1}' | head -n 1)
|
||||
for desktop_file_path in $(dpkg -L "$package_name" | grep .desktop); do
|
||||
if [ "$(cat $desktop_file_path | grep NoDisplay=true)" = "" ];then
|
||||
echo $desktop_file_path is checked and will be installed to desktop
|
||||
sudo -u "$user" cp "$desktop_file_path" "$(sudo -u "$user" xdg-user-dir DESKTOP)/"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
function zenity()
|
||||
{
|
||||
|
||||
|
||||
#Detect the user using such display
|
||||
local user=$(who | awk '{print $1}' | head -n 1)
|
||||
|
||||
#Detect the id of the user
|
||||
local uid=$(id -u $user)
|
||||
|
||||
|
||||
sudo -u $user DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$uid/bus zenity "$@"
|
||||
function zenity() {
|
||||
local user=$(who | awk '{print $1}' | head -n 1)
|
||||
local uid=$(id -u "$user")
|
||||
sudo -u "$user" DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/"$uid"/bus zenity "$@"
|
||||
}
|
||||
|
||||
function hash_check()
|
||||
{
|
||||
if [ ! -e "/var/lib/aptss/lists/zunyun01.store.deepinos.org.cn_${STORE_URL}_Packages" ] && [ ! -e "/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ] && [ ! -e "/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages" ];then
|
||||
echo "接收星火仓库软件信息中..."
|
||||
aptss ssupdate
|
||||
fi
|
||||
function hash_check() {
|
||||
if [ ! -e "/var/lib/aptss/lists/cdn.d.store.deepinos.org.cn_${STORE_URL}_Packages" ] && \
|
||||
[ ! -e "/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ] && \
|
||||
[ ! -e "/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages" ]; then
|
||||
echo "接收星火仓库软件信息中..."
|
||||
aptss ssupdate
|
||||
fi
|
||||
|
||||
### 选择包信息位置
|
||||
|
||||
if [ -e "/var/lib/aptss/lists/zunyun01.store.deepinos.org.cn_${STORE_URL}_Packages" ];then
|
||||
PACKAGES_DATA_PATH="/var/lib/aptss/lists/zunyun01.store.deepinos.org.cn_${STORE_URL}_Packages"
|
||||
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是星火域名单目录仓库配置"
|
||||
elif [ -e "/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ];then
|
||||
PACKAGES_DATA_PATH="/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages"
|
||||
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是星火域名单目录仓库配置"
|
||||
else
|
||||
PACKAGES_DATA_PATH="/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages"
|
||||
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是SDU镜像仓库配置"
|
||||
fi
|
||||
|
||||
|
||||
|
||||
echo "正在计算hash并与星火仓库匹配..."
|
||||
|
||||
DEB_MD5SUM=`md5sum "$1" | cut -c -32`
|
||||
|
||||
IS_MD5SUM_CHECKD=`cat $PACKAGES_DATA_PATH | grep $DEB_MD5SUM`
|
||||
if [ -e "/var/lib/aptss/lists/cdn.d.store.deepinos.org.cn_${STORE_URL}_Packages" ]; then
|
||||
PACKAGES_DATA_PATH="/var/lib/aptss/lists/cdn.d.store.deepinos.org.cn_${STORE_URL}_Packages"
|
||||
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是星火域名单目录仓库配置"
|
||||
elif [ -e "/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ]; then
|
||||
PACKAGES_DATA_PATH="/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages"
|
||||
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是星火域名单目录仓库配置"
|
||||
else
|
||||
PACKAGES_DATA_PATH="/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages"
|
||||
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是SDU镜像仓库配置"
|
||||
fi
|
||||
|
||||
echo "正在运行包验证..."
|
||||
echo "Running Spark Package Verify..."
|
||||
|
||||
DEB_SHA512SUM=$(sha512sum "$1" | cut -d ' ' -f 1)
|
||||
IS_SHA512SUM_CHECKED=$(cat "$PACKAGES_DATA_PATH" | grep "$DEB_SHA512SUM")
|
||||
}
|
||||
|
||||
##########################################################################
|
||||
|
||||
#################检测文件是否存在
|
||||
if [ $# -eq 0 ];then
|
||||
echo "没有接收到参数,退出"
|
||||
echo "用法:$0 deb路径"
|
||||
echo "OMG-IT-GOES-WRONG"
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ ! -f "$1" ]
|
||||
then
|
||||
echo "${TRANSHELL_CONTENT_FILE_NOT_EXIST}"
|
||||
####################################
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "没有接收到参数,退出"
|
||||
echo "用法:$0 deb路径"
|
||||
echo "OMG-IT-GOES-WRONG"
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ ! -f "$1" ]; then
|
||||
echo "${TRANSHELL_CONTENT_FILE_NOT_EXIST}"
|
||||
echo "OMG-IT-GOES-WRONG"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$(id -u)" != "0" ]; then
|
||||
echo "${TRANSHELL_CONTENT_PLEASE_RUN_AS_ROOT}"
|
||||
echo "OMG-IT-GOES-WRONG"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DEBPATH=$(realpath "$1")
|
||||
|
||||
hash_check "$DEBPATH"
|
||||
|
||||
if [ -z "$IS_SHA512SUM_CHECKED" ]; then
|
||||
echo "尝试更新仓库信息重新校验"
|
||||
aptss ssupdate
|
||||
hash_check "$DEBPATH"
|
||||
if [ -z "$IS_SHA512SUM_CHECKED" ]; then
|
||||
echo -e "$TRANSHELL_CONTENT_HASH_CHECK_FAILED"
|
||||
zenity --info --icon-name=spark-store --height 270 --width 500 --text "$TRANSHELL_CONTENT_HASH_CHECK_FAILED"
|
||||
echo "OMG-IT-GOES-WRONG"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$(id -u)" != "0" ];then
|
||||
#############################无root权限时
|
||||
echo "${TRANSHELL_CONTENT_PLEASE_RUN_AS_ROOT}"
|
||||
echo "OMG-IT-GOES-WRONG"
|
||||
exit 1
|
||||
if [ ! -z "$IS_SHA512SUM_CHECKED" ]; then
|
||||
echo "校验成功,开始安装"
|
||||
echo "----------------------------------------------------------------------------------"
|
||||
package_name=$(dpkg-deb -f "$DEBPATH" Package)
|
||||
echo "Package name is $package_name"
|
||||
try_run_output=$(/opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh test-install-app "$DEBPATH")
|
||||
try_run_ret="$?"
|
||||
|
||||
if [ "$try_run_ret" -ne 0 ]; then
|
||||
echo "OMG-IT-GOES-WRONG"
|
||||
echo -e "${try_run_output}"
|
||||
exit "$try_run_ret"
|
||||
fi
|
||||
|
||||
dpkg -i "$DEBPATH" || aptss install -yf
|
||||
|
||||
if [ "$?" = "0" ] && [ "$2" = "--delete-after-install" ]; then
|
||||
if dpkg -s "$package_name" >/dev/null 2>&1; then
|
||||
echo "软件包已安装:$package_name"
|
||||
create_desktop_file
|
||||
rm "$DEBPATH"
|
||||
echo "${TRANSHELL_CONTENT_DEB_IS_DELETED}"
|
||||
else
|
||||
echo "软件包未安装:$package_name"
|
||||
echo "安装异常!抛出错误"
|
||||
echo "OMG-IT-GOES-WRONG"
|
||||
fi
|
||||
else
|
||||
echo "${TRANSHELL_CONTENT_WILL_NOT_DELETE_DEB}"
|
||||
if dpkg -s "$package_name" >/dev/null 2>&1; then
|
||||
echo "软件包已安装:$package_name"
|
||||
create_desktop_file
|
||||
else
|
||||
echo "软件包未安装:$package_name"
|
||||
echo "安装异常!抛出错误"
|
||||
echo "OMG-IT-GOES-WRONG"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
###
|
||||
|
||||
|
||||
DEBPATH=`realpath $1`
|
||||
|
||||
hash_check "$DEBPATH"
|
||||
|
||||
if [ -z "$IS_MD5SUM_CHECKD" ];then
|
||||
echo "尝试更新仓库信息重新校验"
|
||||
aptss ssupdate
|
||||
hash_check "$DEBPATH"
|
||||
fi
|
||||
|
||||
if [ ! -z "$IS_MD5SUM_CHECKD" ];then
|
||||
|
||||
echo "校验成功,开始安装"
|
||||
echo ----------------------------------------------------------------------------------
|
||||
|
||||
try_run_output=$(/opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh test-install-app "$DEBPATH")
|
||||
try_run_ret="$?"
|
||||
|
||||
if [ "$try_run_ret" -ne 0 ]
|
||||
then
|
||||
echo "OMG-IT-GOES-WRONG"
|
||||
echo -e "${try_run_output}"
|
||||
exit "$try_run_ret"
|
||||
fi
|
||||
|
||||
|
||||
dpkg -i "$DEBPATH" || aptss install -yf
|
||||
|
||||
#### --delete
|
||||
if [ "$?" = "0" ] && [ "$2" = "--delete-after-install" ];then
|
||||
rm "$DEBPATH"
|
||||
echo "${TRANSHELL_CONTENT_DEB_IS_DELETED}"
|
||||
else
|
||||
echo "${TRANSHELL_CONTENT_WILL_NOT_DELETE_DEB}"
|
||||
fi
|
||||
|
||||
else
|
||||
|
||||
|
||||
zenity --info --icon-name=spark-store --height 270 --width 500 --text "${TRANSHELL_CONTENT_HASH_CHECK_FAILED}"
|
||||
|
||||
echo -e ${TRANSHELL_CONTENT_HASH_CHECK_FAILED}
|
||||
echo "OMG-IT-GOES-WRONG"
|
||||
|
||||
fi
|
||||
|
||||
@@ -8,36 +8,50 @@ endloop=0
|
||||
#####################检测是否启动过了更新检测工具
|
||||
while [ $endloop -eq 0 ] ;do
|
||||
|
||||
if [ -e /etc/systemd/system/multi-user.target.wants/spark-update-notifier.service ];then
|
||||
if [ ! -e $HOME/.config/spark-union/spark-store/ssshell-config-do-not-show-upgrade-notify ];then
|
||||
text_update_open="${TRANSHELL_CONTENT_CLOSE}"
|
||||
#已经开启了就显示关闭
|
||||
else
|
||||
text_update_open="${TRANSHELL_CONTENT_OPEN}"
|
||||
fi
|
||||
|
||||
if [ ! -e $HOME/.config/spark-union/spark-store/ssshell-config-do-not-create-desktop ];then
|
||||
CONTENT_SET_CREATE_DESKTOP="${TRANSHELL_CONTENT_CLOSE_CREATE_DESKTOP}"
|
||||
#已经开启了就显示关闭
|
||||
else
|
||||
CONTENT_SET_CREATE_DESKTOP="${TRANSHELL_CONTENT_OPEN_CREATE_DESKTOP}"
|
||||
fi
|
||||
|
||||
update_transhell
|
||||
|
||||
option=`zenity --list --text="${TRANSHELL_CONTENT_WELCOME_AND_CHOOSE_ONE_TO_RUN}" --column 数字 --column=${TRANSHELL_CONTENT_OPTIONS} --print-column=2 --height 350 --width 760 0 "${TRANSHELL_CONTENT_OPEN_OR_CLOSE_UPGRADE_CHECK}" 1 "${TRANSHELL_CONTENT_CHECK_FOR_UPDATE}" 2 "${TRANSHELL_CONTENT_EXIT}" --hide-column=1 --print-column=1`
|
||||
option=$(zenity --list --text="${TRANSHELL_CONTENT_WELCOME_AND_CHOOSE_ONE_TO_RUN}" --column 数字 --column=${TRANSHELL_CONTENT_OPTIONS} --print-column=2 --height 350 --width 760 0 "${TRANSHELL_CONTENT_OPEN_OR_CLOSE_UPGRADE_CHECK}" 1 "${CONTENT_SET_CREATE_DESKTOP}" 2 "${TRANSHELL_CONTENT_CHECK_FOR_UPDATE}" 3 "${TRANSHELL_CONTENT_EXIT}" --hide-column=1 --print-column=1)
|
||||
|
||||
case $option in
|
||||
0)
|
||||
if [ -e /etc/systemd/system/multi-user.target.wants/spark-update-notifier.service ];then
|
||||
zenity --info --icon-name=spark-store --height 150 --width 200 --text "${TRANSHELL_CONTENT_CLOSING_UPGRADE_CHECK}" --timeout=2
|
||||
pkexec systemctl disable spark-update-notifier
|
||||
if [ ! -e $HOME/.config/spark-union/spark-store/ssshell-config-do-not-show-upgrade-notify ];then
|
||||
mkdir -p $HOME/.config/spark-union/spark-store/
|
||||
touch $HOME/.config/spark-union/spark-store/ssshell-config-do-not-show-upgrade-notify
|
||||
zenity --info --icon-name=spark-store --height 150 --width 200 --text "${TRANSHELL_CONTENT_CLOSED}" --timeout=2
|
||||
else
|
||||
zenity --info --icon-name=spark-store --height 150 --width 200 --text "${TRANSHELL_CONTENT_OPENING_UPGRADE_CHECK}" --timeout=2
|
||||
pkexec systemctl enable spark-update-notifier
|
||||
pkexec service spark-update-notifier start
|
||||
rm -f $HOME/.config/spark-union/spark-store/ssshell-config-do-not-show-upgrade-notify
|
||||
zenity --info --icon-name=spark-store --height 150 --width 200 --text "${TRANSHELL_CONTENT_OPENED}" --timeout=2
|
||||
fi
|
||||
;;
|
||||
|
||||
1)
|
||||
if [ ! -e $HOME/.config/spark-union/spark-store/ssshell-config-do-not-create-desktop ];then
|
||||
mkdir -p $HOME/.config/spark-union/spark-store/
|
||||
touch $HOME/.config/spark-union/spark-store/ssshell-config-do-not-create-desktop
|
||||
zenity --info --icon-name=spark-store --height 150 --width 200 --text "${TRANSHELL_CONTENT_CLOSED}" --timeout=2
|
||||
else
|
||||
rm -f $HOME/.config/spark-union/spark-store/ssshell-config-do-not-create-desktop
|
||||
zenity --info --icon-name=spark-store --height 150 --width 200 --text "${TRANSHELL_CONTENT_OPENED}" --timeout=2
|
||||
fi
|
||||
;;
|
||||
2)
|
||||
/opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade.sh
|
||||
;;
|
||||
|
||||
2)
|
||||
3)
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
|
||||
@@ -20,6 +20,8 @@ function notify-send() {
|
||||
sudo -u $user DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/${uid}/bus notify-send "$@"
|
||||
}
|
||||
|
||||
|
||||
|
||||
# 检测网络链接畅通
|
||||
function network-check()
|
||||
{
|
||||
@@ -106,4 +108,16 @@ fi
|
||||
update_transhell
|
||||
|
||||
## 如果都是hold或者版本一致的那就直接退出,否则把剩余的给提醒了
|
||||
|
||||
##TODO:除了apt-mark hold之外额外有一个禁止检查列表
|
||||
|
||||
## 如果不想提示就不提示
|
||||
|
||||
user=$(who | awk '{print $1}' | head -n 1)
|
||||
if [ -e "/home/$user/.config/spark-union/spark-store/ssshell-config-do-not-show-upgrade-notify" ];then
|
||||
echo "他不想站在世界之巅,好吧"
|
||||
echo "Okay he don't want to be at the top of the world, okay"
|
||||
exit
|
||||
else
|
||||
notify-send -a spark-store "${TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_NOTIFY}" "${TRANSHELL_CONTENT_THERE_ARE_APPS_TO_UPGRADE}"
|
||||
fi
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
#!/bin/bash
|
||||
TRANSHELL_CONTENT_CLOSE="Close"
|
||||
TRANSHELL_CONTENT_OPEN="Open"
|
||||
TRANSHELL_CONTENT_CLOSE="Disable"
|
||||
TRANSHELL_CONTENT_OPEN="Enable"
|
||||
TRANSHELL_CONTENT_WELCOME_AND_CHOOSE_ONE_TO_RUN="Welcome to Spark Store APP Upgrade Settings\nPlease choose one option to run"
|
||||
TRANSHELL_CONTENT_OPTIONS="Options"
|
||||
TRANSHELL_CONTENT_OPEN_OR_CLOSE_UPGRADE_CHECK="$text_update_open Spark Store APP upgrade check. (Will notify APP upgrade at start up if opened.)"
|
||||
TRANSHELL_CONTENT_CHECK_FOR_UPDATE="Check Upgradable app list."
|
||||
TRANSHELL_CONTENT_EXIT="Exit"
|
||||
TRANSHELL_CONTENT_CLOSING_UPGRADE_CHECK="Please authorize to close APP upgrade check"
|
||||
TRANSHELL_CONTENT_CLOSED="Closed"
|
||||
TRANSHELL_CONTENT_CLOSED="Disabled"
|
||||
TRANSHELL_CONTENT_OPENING_UPGRADE_CHECK="Please authorize to open APP upgrade check"
|
||||
TRANSHELL_CONTENT_OPENED="Opened"
|
||||
TRANSHELL_CONTENT_OPENED="Enabled"
|
||||
TRANSHELL_CONTENT_CLOSE_CREATE_DESKTOP="Disable auto create desktop shortcut"
|
||||
TRANSHELL_CONTENT_OPEN_CREATE_DESKTOP="Enable auto create desktop shortcut"
|
||||
|
||||
@@ -10,3 +10,5 @@ TRANSHELL_CONTENT_CLOSING_UPGRADE_CHECK="执行关闭自动更新检测,请授
|
||||
TRANSHELL_CONTENT_CLOSED="已关闭"
|
||||
TRANSHELL_CONTENT_OPENING_UPGRADE_CHECK="执行启动自动更新检测,请授权"
|
||||
TRANSHELL_CONTENT_OPENED="已开启"
|
||||
TRANSHELL_CONTENT_CLOSE_CREATE_DESKTOP="关闭自动创建桌面启动器"
|
||||
TRANSHELL_CONTENT_OPEN_CREATE_DESKTOP="开启自动创建桌面启动器"
|
||||
|
||||
@@ -10,3 +10,5 @@ TRANSHELL_CONTENT_CLOSING_UPGRADE_CHECK="执行关闭自动更新检测,请授
|
||||
TRANSHELL_CONTENT_CLOSED="已关闭"
|
||||
TRANSHELL_CONTENT_OPENING_UPGRADE_CHECK="执行启动自动更新检测,请授权"
|
||||
TRANSHELL_CONTENT_OPENED="已开启"
|
||||
TRANSHELL_CONTENT_CLOSE_CREATE_DESKTOP="关闭自动创建桌面启动器"
|
||||
TRANSHELL_CONTENT_OPEN_CREATE_DESKTOP="开启自动创建桌面启动器"
|
||||
@@ -8,14 +8,6 @@
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="244"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="176"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="318"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="484"/>
|
||||
<source>Download</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="290"/>
|
||||
<source>Uninstall</source>
|
||||
@@ -132,6 +124,14 @@
|
||||
<source>Screen capture</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="244"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="175"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="313"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="483"/>
|
||||
<source>Download and Install</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="429"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="432"/>
|
||||
@@ -175,79 +175,79 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="50"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="51"/>
|
||||
<source>Click Open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="115"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="114"/>
|
||||
<source>Developer Mode Disabled</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="161"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="334"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="457"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="160"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="329"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="456"/>
|
||||
<source>Reinstall</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="168"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="167"/>
|
||||
<source>Upgrade</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="323"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="433"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="318"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="432"/>
|
||||
<source>Install</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="328"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="323"/>
|
||||
<source>Installing</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="412"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="416"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="420"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="424"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="411"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="415"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="419"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="423"/>
|
||||
<source>Warning</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="412"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="411"/>
|
||||
<source>The current application does not support deepin, there may be problems</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="416"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="415"/>
|
||||
<source>The current application does not support UOS, there may be problems</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="420"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="419"/>
|
||||
<source>The current application does not support Ubuntu, there may be problems</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="424"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="423"/>
|
||||
<source>The current application does not support current platform, there may be problems</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="488"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="501"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="487"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="500"/>
|
||||
<source>Spark Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="488"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="487"/>
|
||||
<source>Uninstall succeeded</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="501"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="500"/>
|
||||
<source>The URL has been copied to the clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -268,16 +268,24 @@
|
||||
<context>
|
||||
<name>DAboutDialog</name>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="139"/>
|
||||
<location filename="../src/application.cpp" line="141"/>
|
||||
<source>Version: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="149"/>
|
||||
<location filename="../src/application.cpp" line="151"/>
|
||||
<source>%1 is released under %2</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>DownloadController</name>
|
||||
<message>
|
||||
<location filename="../src/backend/downloadworker.cpp" line="176"/>
|
||||
<source>Download Failed, please retry :(</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>DownloadItem</name>
|
||||
<message>
|
||||
@@ -357,24 +365,16 @@
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="229"/>
|
||||
<source>Error happened in dpkg progress , you can try it again.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="230"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="231"/>
|
||||
<source>Error happened in dpkg progress , you can try it again</source>
|
||||
<source>Error happened in dpkg progress , please check the install info or try to reinstall.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="237"/>
|
||||
<source>dpkg progress had been aborted,you can retry installation.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="238"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="239"/>
|
||||
<source>dpkg progress had been aborted,you can retry installation</source>
|
||||
<source>dpkg progress had been aborted, please check the install info or try to reinstall.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -480,33 +480,33 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="187"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="188"/>
|
||||
<source>Submit App</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="188"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="189"/>
|
||||
<source>Submit App with client(Recommanded)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="189"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="190"/>
|
||||
<source>Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="190"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="191"/>
|
||||
<source>APP Upgrade and Install Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="146"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="241"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="147"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="242"/>
|
||||
<source>Spark Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="151"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="152"/>
|
||||
<source>Search or enter spk://</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -514,19 +514,19 @@
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="33"/>
|
||||
<location filename="../src/application.cpp" line="34"/>
|
||||
<location filename="../src/application.cpp" line="35"/>
|
||||
<location filename="../src/application.cpp" line="36"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="126"/>
|
||||
<source>Spark Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="38"/>
|
||||
<location filename="../src/application.cpp" line="40"/>
|
||||
<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 type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="146"/>
|
||||
<location filename="../src/application.cpp" line="148"/>
|
||||
<source>Spark Project</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -536,7 +536,7 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="244"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="245"/>
|
||||
<source>Show MainWindow</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -585,61 +585,72 @@
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="230"/>
|
||||
<source>Other Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="240"/>
|
||||
<source>Enable notification for apps not compatible with current system</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="264"/>
|
||||
<source>Temp</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="243"/>
|
||||
<location filename="../src/pages/settingspage.ui" line="277"/>
|
||||
<source>Since the dictionary is at /tmp,It would be cleaned automatically when system reboot.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="250"/>
|
||||
<location filename="../src/pages/settingspage.ui" line="284"/>
|
||||
<source>0B</source>
|
||||
<translation type="unfinished">0B</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="257"/>
|
||||
<location filename="../src/pages/settingspage.ui" line="291"/>
|
||||
<source>Location:/tmp/spark-store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="277"/>
|
||||
<location filename="../src/pages/settingspage.ui" line="311"/>
|
||||
<source>Clean</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="290"/>
|
||||
<location filename="../src/pages/settingspage.ui" line="324"/>
|
||||
<source>Size:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="297"/>
|
||||
<location filename="../src/pages/settingspage.ui" line="331"/>
|
||||
<source>Clear Web Cache</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="318"/>
|
||||
<location filename="../src/pages/settingspage.ui" line="352"/>
|
||||
<source>About us</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="325"/>
|
||||
<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>Connect us on Spark IM: <a href="https://chat.shenmo.tech"><span style=" text-decoration: underline; color:#0000ff;">https://chat.shenmo.tech<br/></span></a>Our QQ Group number:872690351</p></body></html></source>
|
||||
<location filename="../src/pages/settingspage.ui" line="359"/>
|
||||
<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 <a href="mailto:jifengshenmo@outlook.com"><span style=" text-decoration: underline; color:#0082fa;">jifengshenmo@outlook.com</span></a> 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><span style=" text-decoration: underline; color:#0000ff;"><br/></span>Our contact method can be found at <a href="https://blog.shenmo.tech/post/%E6%95%85%E9%9A%9C%E5%85%AC%E5%91%8A/"><span style=" text-decoration: underline; color:#0082fa;">Here</span></a></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.cpp" line="213"/>
|
||||
<location filename="../src/pages/settingspage.cpp" line="217"/>
|
||||
<source>Updating, please wait...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.cpp" line="235"/>
|
||||
<location filename="../src/pages/settingspage.cpp" line="239"/>
|
||||
<source>Spark Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.cpp" line="235"/>
|
||||
<location filename="../src/pages/settingspage.cpp" line="239"/>
|
||||
<source>Temporary cache was cleaned</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -647,12 +658,12 @@
|
||||
<context>
|
||||
<name>TitleBarMenu</name>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="245"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="246"/>
|
||||
<source>About</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="246"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="247"/>
|
||||
<source>Exit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
671
translations/spark-store_es.ts
Normal file
671
translations/spark-store_es.ts
Normal file
@@ -0,0 +1,671 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="es">
|
||||
<context>
|
||||
<name>AppIntoPage</name>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="14"/>
|
||||
<source>Form</source>
|
||||
<translation>Tipo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="290"/>
|
||||
<source>Uninstall</source>
|
||||
<translation>Desinstalar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="346"/>
|
||||
<source>0</source>
|
||||
<translation>0</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="356"/>
|
||||
<source>Download Times</source>
|
||||
<translation>Número de descargas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="410"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="413"/>
|
||||
<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>Esta aplicación fue desarrollada por usuarios de la comunidad y la Etiquetamos en honor a aquellos que contribuyeron a la ecología de linux.</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="416"/>
|
||||
<source><html><head/><body><p><img src=":/tags/community-small.png"/></p></body></html></source>
|
||||
<translation><html><head/><body><p><img src=":/tags/community-small.png"/></p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="435"/>
|
||||
<source><html><head/><body><p><img src=":/tags/ubuntu-small.png"/></p></body></html></source>
|
||||
<translation><html><head/><body><p><img src=":/tags/ubuntu-small.png"/></p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="448"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="451"/>
|
||||
<source><html><head/><body><p>Capable to UOS home 20</p></body></html></source>
|
||||
<translation><html><head/><body><p>Capaz de UOS home 20</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="454"/>
|
||||
<source><html><head/><body><p><img src=":/tags/uos-small.png"/></p></body></html></source>
|
||||
<translation><html><head/><body><p><img src=":/tags/uos-small.png"/></p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="467"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="470"/>
|
||||
<source><html><head/><body><p>A deepin-wine2 app. Spark Store will automatically configure the wine kit for you.</p></body></html></source>
|
||||
<translation><html><head/><body><p>A deepin-wine2 app. La tienda Spark le configurará automáticamente un traje de vino.</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="473"/>
|
||||
<source><html><head/><body><p><img src=":/tags/dwine2-small.png"/></p></body></html></source>
|
||||
<translation><html><head/><body><p><img src=":/tags/dwine2-small.png"/></p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="486"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="489"/>
|
||||
<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>Esta es una aplicación dtk5, lo que significa que funcionará mejor en un entorno de escritorio profundo.</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="492"/>
|
||||
<source><html><head/><body><p><img src=":/tags/dtk-small.png"/></p></body></html></source>
|
||||
<translation><html><head/><body><p><img src=":/tags/dtk-small.png"/></p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="505"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="508"/>
|
||||
<source><html><head/><body><p>Capable to deepin 20</p></body></html></source>
|
||||
<translation><html><head/><body><p>Capaz de deepin 20</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="511"/>
|
||||
<source><html><head/><body><p><img src=":/tags/deepin-small.png"/></p></body></html></source>
|
||||
<translation><html><head/><body><p><img src=":/tags/deepin-small.png"/></p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="524"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="527"/>
|
||||
<source><html><head/><body><p>An Appimage to deb app.</p></body></html></source>
|
||||
<translation><html><head/><body><p>Appimage de la aplicación deb.</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="530"/>
|
||||
<source><html><head/><body><p><img src=":/tags/a2d-small.png"/></p></body></html></source>
|
||||
<translation><html><head/><body><p><img src=":/tags/a2d-small.png"/></p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="549"/>
|
||||
<source><html><head/><body><p><img src=":/tags/dwine5-small.png"/></p></body></html></source>
|
||||
<translation><html><head/><body><p><img src=":/tags/dwine5-small.png"/></p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="602"/>
|
||||
<source>Share</source>
|
||||
<translation>Comunión</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="609"/>
|
||||
<source>APP Feedback</source>
|
||||
<translation>Comentarios de la app</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="765"/>
|
||||
<source>Introduction</source>
|
||||
<translation>Introducción</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1068"/>
|
||||
<source>Description</source>
|
||||
<translation>Descripción</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="903"/>
|
||||
<source>Screen capture</source>
|
||||
<translation>Captura de pantalla</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="244"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="175"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="313"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="483"/>
|
||||
<source>Download and Install</source>
|
||||
<translation>Descargar e instalar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="429"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="432"/>
|
||||
<source><html><head/><body><p>Capable to Ubuntu 22.04</p></body></html></source>
|
||||
<translation><html><head/><body><p>Capaz de Ubuntu 22.04</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="543"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="546"/>
|
||||
<source><html><head/><body><p>A Wine app.Spark Store will automatically configure the wine kit for you</p></body></html></source>
|
||||
<translation><html><head/><body><p>La aplicación wine. Spark Store configurará automáticamente el kit Wine para usted</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1161"/>
|
||||
<source>Update</source>
|
||||
<translation>Modernizar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1190"/>
|
||||
<source>Contributor</source>
|
||||
<translation>Contribuyentes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1197"/>
|
||||
<source>Pkgname</source>
|
||||
<translation>Nombre del embalaje</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1303"/>
|
||||
<source>Author</source>
|
||||
<translation>Autor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1339"/>
|
||||
<source>Size</source>
|
||||
<translation>Tamaño</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1375"/>
|
||||
<source>Website</source>
|
||||
<translation>Sitio web</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="51"/>
|
||||
<source>Click Open</source>
|
||||
<translation>Haga clic en "abrir"</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="114"/>
|
||||
<source>Developer Mode Disabled</source>
|
||||
<translation>Se ha desactivado el modo desarrollador</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="160"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="329"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="456"/>
|
||||
<source>Reinstall</source>
|
||||
<translation>Reinstalación</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="167"/>
|
||||
<source>Upgrade</source>
|
||||
<translation>Actualización</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="318"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="432"/>
|
||||
<source>Install</source>
|
||||
<translation>Instalación</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="323"/>
|
||||
<source>Installing</source>
|
||||
<translation>Se está instalando</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="411"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="415"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="419"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="423"/>
|
||||
<source>Warning</source>
|
||||
<translation>Aviso</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="411"/>
|
||||
<source>The current application does not support deepin, there may be problems</source>
|
||||
<translation>La aplicación actual no admite deepin, puede haber problemas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="415"/>
|
||||
<source>The current application does not support UOS, there may be problems</source>
|
||||
<translation>La aplicación actual no admite uos, puede haber problemas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="419"/>
|
||||
<source>The current application does not support Ubuntu, there may be problems</source>
|
||||
<translation>La aplicación actual no admite ubuntu, puede haber problemas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="423"/>
|
||||
<source>The current application does not support current platform, there may be problems</source>
|
||||
<translation>La aplicación actual no admite la Plataforma actual, puede haber problemas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="487"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="500"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>SPARK Store</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="487"/>
|
||||
<source>Uninstall succeeded</source>
|
||||
<translation>Desinstalación exitosa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="500"/>
|
||||
<source>The URL has been copied to the clipboard</source>
|
||||
<translation>La URL ha sido copiada al portapapeles</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AppListPage</name>
|
||||
<message>
|
||||
<location filename="../src/pages/applistpage.ui" line="14"/>
|
||||
<source>Form</source>
|
||||
<translation>Tipo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/applistpage.ui" line="60"/>
|
||||
<source>about:blank</source>
|
||||
<translation>Sobre: en blanco</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>DAboutDialog</name>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="141"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>Versión %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="151"/>
|
||||
<source>%1 is released under %2</source>
|
||||
<translation>%1 publicado bajo %2</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>DownloadController</name>
|
||||
<message>
|
||||
<location filename="../src/backend/downloadworker.cpp" line="176"/>
|
||||
<source>Download Failed, please retry :(</source>
|
||||
<translation>Descarga fall, por favor vuelva a intentarlo</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>DownloadItem</name>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="32"/>
|
||||
<source>Form</source>
|
||||
<translation>Tipo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="74"/>
|
||||
<source>icon</source>
|
||||
<translation>ídolo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="134"/>
|
||||
<source>TextLabel</source>
|
||||
<translation>Etiquetas de texto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="121"/>
|
||||
<source>Name</source>
|
||||
<translation>Nombre</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="226"/>
|
||||
<source>Waiting to download</source>
|
||||
<translation>Esperando descargar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="277"/>
|
||||
<source>Install</source>
|
||||
<translation>Instalación</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="296"/>
|
||||
<source>Cancel</source>
|
||||
<translation>Cancelación</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="315"/>
|
||||
<source>Info</source>
|
||||
<translation>Información</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="43"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="44"/>
|
||||
<source>Download Complete.</source>
|
||||
<translation>Descarga completada.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="218"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="229"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="237"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>SPARK Store</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="125"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="126"/>
|
||||
<source>Installing</source>
|
||||
<translation>Se está instalando</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="218"/>
|
||||
<source>Installation complete.</source>
|
||||
<translation>La instalación está completa.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="219"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="220"/>
|
||||
<source>Finish</source>
|
||||
<translation>Completado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="227"/>
|
||||
<source>Retry</source>
|
||||
<translation>Reinterpretar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="229"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="230"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="231"/>
|
||||
<source>Error happened in dpkg progress , please check the install info or try to reinstall.</source>
|
||||
<translation>Se produjo un error durante el proceso dpkg, verifique la información de instalación o intente reinstalar.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="237"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="238"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="239"/>
|
||||
<source>dpkg progress had been aborted, please check the install info or try to reinstall.</source>
|
||||
<translation>El proceso de DPKG ha sido interrumpido, compruebe la información de instalación o intente reinstalar.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="144"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="145"/>
|
||||
<source>Download canceled</source>
|
||||
<translation>Descarga cancelada</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>DownloadListWidget</name>
|
||||
<message>
|
||||
<location filename="../src/widgets/downloadlistwidget.ui" line="14"/>
|
||||
<source>Form</source>
|
||||
<translation>Tipo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/downloadlistwidget.ui" line="41"/>
|
||||
<source>The list is currently empty. Go and download some softwares!</source>
|
||||
<translation>La lista está actualmente vacía. ¡Ve a descargar un poco de software!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/downloadlistwidget.ui" line="116"/>
|
||||
<source>Open download directory</source>
|
||||
<translation>Abrir el catálogo de descargas</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="14"/>
|
||||
<source>MainWindow</source>
|
||||
<translation>Ventana principal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="166"/>
|
||||
<source>Home</source>
|
||||
<translation>Casa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="203"/>
|
||||
<source>Network</source>
|
||||
<translation>Red</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="231"/>
|
||||
<source>Chat</source>
|
||||
<translation>Charla</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="259"/>
|
||||
<source>Music</source>
|
||||
<translation>Música</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="287"/>
|
||||
<source>Video</source>
|
||||
<translation>Vídeo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="315"/>
|
||||
<source>Picture</source>
|
||||
<translation>Foto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="343"/>
|
||||
<source>Game</source>
|
||||
<translation>Juego</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="371"/>
|
||||
<source>Office</source>
|
||||
<translation>Oficina</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="399"/>
|
||||
<source>Reading</source>
|
||||
<translation>Leer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="427"/>
|
||||
<source>Development</source>
|
||||
<translation>Desarrollo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="455"/>
|
||||
<source>Tool</source>
|
||||
<translation>Herramientas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="483"/>
|
||||
<source>Theme</source>
|
||||
<translation>Tema</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="511"/>
|
||||
<source>Other</source>
|
||||
<translation>Además</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="539"/>
|
||||
<source>APP Upgrade</source>
|
||||
<translation>Actualización de app</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="188"/>
|
||||
<source>Submit App</source>
|
||||
<translation>Presentación de la aplicación</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="189"/>
|
||||
<source>Submit App with client(Recommanded)</source>
|
||||
<translation>Enviar la aplicación al cliente (recomendación)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="190"/>
|
||||
<source>Settings</source>
|
||||
<translation>Configuración</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="191"/>
|
||||
<source>APP Upgrade and Install Settings</source>
|
||||
<translation>Actualización e instalación de app</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="147"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="242"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>SPARK Store</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="152"/>
|
||||
<source>Search or enter spk://</source>
|
||||
<translation>Buscar o introducir spk: /%</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="35"/>
|
||||
<location filename="../src/application.cpp" line="36"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="126"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>SPARK Store</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="40"/>
|
||||
<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;'>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></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="148"/>
|
||||
<source>Spark Project</source>
|
||||
<translation>Proyecto spark</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/downloadlistwidget.cpp" line="18"/>
|
||||
<source>Download list</source>
|
||||
<translation>Descargar lista</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="245"/>
|
||||
<source>Show MainWindow</source>
|
||||
<translation>Mostrar la ventana principal</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="14"/>
|
||||
<source>Form</source>
|
||||
<translation>Tipo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="91"/>
|
||||
<source>Line Settings</source>
|
||||
<translation>Configuración de la línea</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="107"/>
|
||||
<source>Choose Line:</source>
|
||||
<translation>Selección de líneas:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="130"/>
|
||||
<source>Refresh</source>
|
||||
<translation>Refrescar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="143"/>
|
||||
<source>Take effect immediately</source>
|
||||
<translation>Entrada en vigor inmediata</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="185"/>
|
||||
<source><html><head/><body><p>Check update for Spark Store. </p></body></html></source>
|
||||
<translation><html><head/><body><p>Revisa las actualizaciones de la Spark Store. </p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="202"/>
|
||||
<source>Update</source>
|
||||
<translation>Modernizar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="195"/>
|
||||
<source>Spark Store Update</source>
|
||||
<translation>Actualización de la tienda spark</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="230"/>
|
||||
<source>Other Settings</source>
|
||||
<translation>Otras configuraciones</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="240"/>
|
||||
<source>Enable notification for apps not compatible with current system</source>
|
||||
<translation>Habilitar notificaciones para aplicaciones incompatibles con el sistema actual</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="264"/>
|
||||
<source>Temp</source>
|
||||
<translation>Empleados temporales</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="277"/>
|
||||
<source>Since the dictionary is at /tmp,It would be cleaned automatically when system reboot.</source>
|
||||
<translation>Debido a que el diccionario se encuentra en / tmp, se limpia automáticamente cuando el sistema se reinicia.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="284"/>
|
||||
<source>0B</source>
|
||||
<translation>0B</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="291"/>
|
||||
<source>Location:/tmp/spark-store</source>
|
||||
<translation>Ubicación: / TMP / Spark Storage</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="311"/>
|
||||
<source>Clean</source>
|
||||
<translation>Limpio</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="324"/>
|
||||
<source>Size:</source>
|
||||
<translation>Tamaño:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="331"/>
|
||||
<source>Clear Web Cache</source>
|
||||
<translation>Borrar la caché web</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="352"/>
|
||||
<source>About us</source>
|
||||
<translation>Sobre nosotros</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="359"/>
|
||||
<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 <a href="mailto:jifengshenmo@outlook.com"><span style=" text-decoration: underline; color:#0082fa;">jifengshenmo@outlook.com</span></a> 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><span style=" text-decoration: underline; color:#0000ff;"><br/></span>Our contact method can be found at <a href="https://blog.shenmo.tech/post/%E6%95%85%E9%9A%9C%E5%85%AC%E5%91%8A/"><span style=" text-decoration: underline; color:#0082fa;">Here</span></a></p></body></html></source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.cpp" line="217"/>
|
||||
<source>Updating, please wait...</source>
|
||||
<translation>Se está actualizando, por favor Espere...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.cpp" line="239"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>SPARK Store</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.cpp" line="239"/>
|
||||
<source>Temporary cache was cleaned</source>
|
||||
<translation>Se ha limpiado la caché temporal</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TitleBarMenu</name>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="246"/>
|
||||
<source>About</source>
|
||||
<translation>Sobre</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="247"/>
|
||||
<source>Exit</source>
|
||||
<translation>Exportaciones</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
@@ -6,250 +6,250 @@
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="14"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="244"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="176"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="318"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="484"/>
|
||||
<source>Download</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Type</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="290"/>
|
||||
<source>Uninstall</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Désinstaller</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="346"/>
|
||||
<source>0</source>
|
||||
<translation type="unfinished">0B {0?}</translation>
|
||||
<translation>0</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="356"/>
|
||||
<source>Download Times</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Nombre de téléchargements</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="410"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="413"/>
|
||||
<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><html><head/><body><p>Cette application a été développée par des utilisateurs de la communauté et nous avons donné ce label à ceux qui ont contribué à l'écologie de Linux</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="416"/>
|
||||
<source><html><head/><body><p><img src=":/tags/community-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation><html><head/><body><p><img src=":/tags/community-small.png"/></p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="435"/>
|
||||
<source><html><head/><body><p><img src=":/tags/ubuntu-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation><html><head/><body><p><img src=":/tags/ubuntu-small.png"/></p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="448"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="451"/>
|
||||
<source><html><head/><body><p>Capable to UOS home 20</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation><html><head/><body><p>Capable de la home UOS 20</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="454"/>
|
||||
<source><html><head/><body><p><img src=":/tags/uos-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation><html><head/><body><p><img src=":/tags/uos-small.png"/></p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="467"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="470"/>
|
||||
<source><html><head/><body><p>A deepin-wine2 app. Spark Store will automatically configure the wine kit for you.</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation><html><head/><body><p>Une application deepin-wine2. Le Spark Store configure automatiquement votre pack de vins.</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="473"/>
|
||||
<source><html><head/><body><p><img src=":/tags/dwine2-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation><html><head/><body><p><img src=":/tags/dwine2-small.png"/></p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="486"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="489"/>
|
||||
<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><html><head/><body><p>C'est une application dtk5, ce qui signifie qu'elle fonctionnera mieux dans un environnement de bureau profond.</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="492"/>
|
||||
<source><html><head/><body><p><img src=":/tags/dtk-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation><html><head/><body><p><img src=":/tags/dtk-small.png"/></p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="505"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="508"/>
|
||||
<source><html><head/><body><p>Capable to deepin 20</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation><html><head/><body><p>Capable de la deepin 20</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="511"/>
|
||||
<source><html><head/><body><p><img src=":/tags/deepin-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation><html><head/><body><p><img src=":/tags/deepin-small.png"/></p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="524"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="527"/>
|
||||
<source><html><head/><body><p>An Appimage to deb app.</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation><html><head/><body><p>Appimage pour l'application DEB</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="530"/>
|
||||
<source><html><head/><body><p><img src=":/tags/a2d-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation><html><head/><body><p><img src=":/tags/a2d-small.png"/></p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="549"/>
|
||||
<source><html><head/><body><p><img src=":/tags/dwine5-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation><html><head/><body><p><img src=":/tags/dwine5-small.png"/></p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="602"/>
|
||||
<source>Share</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Au total</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="609"/>
|
||||
<source>APP Feedback</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>App feedback</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="765"/>
|
||||
<source>Introduction</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Présentation</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1068"/>
|
||||
<source>Description</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Description</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="903"/>
|
||||
<source>Screen capture</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Captures d'écran</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="244"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="175"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="313"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="483"/>
|
||||
<source>Download and Install</source>
|
||||
<translation>Télécharger et installer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="429"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="432"/>
|
||||
<source><html><head/><body><p>Capable to Ubuntu 22.04</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation><html><head/><body><p>Capable de la Ubuntu 22.04</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="543"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="546"/>
|
||||
<source><html><head/><body><p>A Wine app.Spark Store will automatically configure the wine kit for you</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation><html><head/><body><p>L'application wine. Spark Store configure automatiquement le kit Wine pour vous</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1161"/>
|
||||
<source>Update</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Moderniser</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1190"/>
|
||||
<source>Contributor</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Contributeurs</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1197"/>
|
||||
<source>Pkgname</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Nom de l'emballage</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1303"/>
|
||||
<source>Author</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Auteur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1339"/>
|
||||
<source>Size</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Taille</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1375"/>
|
||||
<source>Website</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Site Web</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="50"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="51"/>
|
||||
<source>Click Open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Cliquez sur Ouvrir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="115"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="114"/>
|
||||
<source>Developer Mode Disabled</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Mode développeur désactivé</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="161"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="334"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="457"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="160"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="329"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="456"/>
|
||||
<source>Reinstall</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Réinstaller</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="168"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="167"/>
|
||||
<source>Upgrade</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Mise à niveau</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="318"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="432"/>
|
||||
<source>Install</source>
|
||||
<translation>Installation</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="323"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="433"/>
|
||||
<source>Install</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="328"/>
|
||||
<source>Installing</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Installation en cours</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="412"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="416"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="420"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="424"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="411"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="415"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="419"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="423"/>
|
||||
<source>Warning</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Avertissement</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="412"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="411"/>
|
||||
<source>The current application does not support deepin, there may be problems</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>L'application actuelle ne supporte pas deepin, il peut y avoir un problème</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="416"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="415"/>
|
||||
<source>The current application does not support UOS, there may be problems</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>L'application actuelle ne prend pas en charge uos, il peut y avoir un problème</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="420"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="419"/>
|
||||
<source>The current application does not support Ubuntu, there may be problems</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>L'application actuelle ne supporte pas Ubuntu, il peut y avoir un problème</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="424"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="423"/>
|
||||
<source>The current application does not support current platform, there may be problems</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>L'application actuelle ne prend pas en charge la plate - forme actuelle, il peut y avoir un problème</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="488"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="501"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="487"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="500"/>
|
||||
<source>Spark Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Le Spark store</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="488"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="487"/>
|
||||
<source>Uninstall succeeded</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Désinstallation réussie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="501"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="500"/>
|
||||
<source>The URL has been copied to the clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>L'URL a été copiée dans le presse - papiers</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -257,25 +257,33 @@
|
||||
<message>
|
||||
<location filename="../src/pages/applistpage.ui" line="14"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Type</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/applistpage.ui" line="60"/>
|
||||
<source>about:blank</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Re: vide</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>DAboutDialog</name>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="139"/>
|
||||
<location filename="../src/application.cpp" line="141"/>
|
||||
<source>Version: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Version: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="149"/>
|
||||
<location filename="../src/application.cpp" line="151"/>
|
||||
<source>%1 is released under %2</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>%1 publié sous %2</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>DownloadController</name>
|
||||
<message>
|
||||
<location filename="../src/backend/downloadworker.cpp" line="176"/>
|
||||
<source>Download Failed, please retry :(</source>
|
||||
<translation>Le téléchargement a échoué, veuillez réessayer</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -283,105 +291,97 @@
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="32"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Type</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="74"/>
|
||||
<source>icon</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Idoles</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="134"/>
|
||||
<source>TextLabel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Étiquettes de texte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="121"/>
|
||||
<source>Name</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Le nom</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="226"/>
|
||||
<source>Waiting to download</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>En attente de téléchargement</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="277"/>
|
||||
<source>Install</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Installation</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="296"/>
|
||||
<source>Cancel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Annulation</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="315"/>
|
||||
<source>Info</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Informations</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="43"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="44"/>
|
||||
<source>Download Complete.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Le téléchargement est terminé.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="218"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="229"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="237"/>
|
||||
<source>Spark Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Le Spark store</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="125"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="126"/>
|
||||
<source>Installing</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Installation en cours</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="218"/>
|
||||
<source>Installation complete.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>L'installation est terminée.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="219"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="220"/>
|
||||
<source>Finish</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Terminé</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="227"/>
|
||||
<source>Retry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Essayez à nouveau</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="229"/>
|
||||
<source>Error happened in dpkg progress , you can try it again.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="230"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="231"/>
|
||||
<source>Error happened in dpkg progress , you can try it again</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<source>Error happened in dpkg progress , please check the install info or try to reinstall.</source>
|
||||
<translation>Une erreur s'est produite dans le processus dpkg, vérifiez les informations d'installation ou essayez de réinstaller.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="237"/>
|
||||
<source>dpkg progress had been aborted,you can retry installation.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="238"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="239"/>
|
||||
<source>dpkg progress had been aborted,you can retry installation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<source>dpkg progress had been aborted, please check the install info or try to reinstall.</source>
|
||||
<translation>La progression de DPKG a été interrompue, veuillez vérifier les informations d’installation ou essayer de réinstaller.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="144"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="145"/>
|
||||
<source>Download canceled</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Le téléchargement a été annulé</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -389,17 +389,17 @@
|
||||
<message>
|
||||
<location filename="../src/widgets/downloadlistwidget.ui" line="14"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Type</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/downloadlistwidget.ui" line="41"/>
|
||||
<source>The list is currently empty. Go and download some softwares!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>La liste est actuellement vide. Allez télécharger quelques logiciels!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/downloadlistwidget.ui" line="116"/>
|
||||
<source>Open download directory</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Ouvrir le catalogue de téléchargement</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -407,138 +407,138 @@
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="14"/>
|
||||
<source>MainWindow</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Fenêtre principale</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="166"/>
|
||||
<source>Home</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Maison</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="203"/>
|
||||
<source>Network</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Réseau</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="231"/>
|
||||
<source>Chat</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Bavarder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="259"/>
|
||||
<source>Music</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Musique</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="287"/>
|
||||
<source>Video</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Vidéo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="315"/>
|
||||
<source>Picture</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Photos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="343"/>
|
||||
<source>Game</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Jeux</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="371"/>
|
||||
<source>Office</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Bureaux</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="399"/>
|
||||
<source>Reading</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Lire</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="427"/>
|
||||
<source>Development</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Développement</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="455"/>
|
||||
<source>Tool</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Outils</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="483"/>
|
||||
<source>Theme</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Thèmes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="511"/>
|
||||
<source>Other</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>En outre</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.ui" line="539"/>
|
||||
<source>APP Upgrade</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="187"/>
|
||||
<source>Submit App</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Mise à niveau app</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="188"/>
|
||||
<source>Submit App with client(Recommanded)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<source>Submit App</source>
|
||||
<translation>Soumettre une application</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="189"/>
|
||||
<source>Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<source>Submit App with client(Recommanded)</source>
|
||||
<translation>Soumettre une demande au client (recommandé)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="190"/>
|
||||
<source>Settings</source>
|
||||
<translation>Paramètres</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="191"/>
|
||||
<source>APP Upgrade and Install Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Paramètres de mise à niveau et d'installation de l'app</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="146"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="241"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="147"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="242"/>
|
||||
<source>Spark Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Le Spark store</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="151"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="152"/>
|
||||
<source>Search or enter spk://</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Rechercher ou entrer SPK /</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="33"/>
|
||||
<location filename="../src/application.cpp" line="34"/>
|
||||
<location filename="../src/application.cpp" line="35"/>
|
||||
<location filename="../src/application.cpp" line="36"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="126"/>
|
||||
<source>Spark Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Le Spark store</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="38"/>
|
||||
<location filename="../src/application.cpp" line="40"/>
|
||||
<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 type="unfinished"></translation>
|
||||
<translation><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></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="146"/>
|
||||
<location filename="../src/application.cpp" line="148"/>
|
||||
<source>Spark Project</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Le projet Spark</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/downloadlistwidget.cpp" line="18"/>
|
||||
<source>Download list</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Télécharger la Liste</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="244"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="245"/>
|
||||
<source>Show MainWindow</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Afficher la fenêtre principale</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -546,115 +546,126 @@
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="14"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Type</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="91"/>
|
||||
<source>Line Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Configuration de la ligne</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="107"/>
|
||||
<source>Choose Line:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Sélectionnez la ligne:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="130"/>
|
||||
<source>Refresh</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Rafraîchir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="143"/>
|
||||
<source>Take effect immediately</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Entrée en vigueur immédiate</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="185"/>
|
||||
<source><html><head/><body><p>Check update for Spark Store. </p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation><html><head/><body><p>Vérifiez les mises à jour sur le Spark Store. </p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="202"/>
|
||||
<source>Update</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Moderniser</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="195"/>
|
||||
<source>Spark Store Update</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Mise à jour du Spark store</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="230"/>
|
||||
<source>Other Settings</source>
|
||||
<translation>Autres paramètres</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="240"/>
|
||||
<source>Enable notification for apps not compatible with current system</source>
|
||||
<translation>Activer les notifications pour les applications incompatibles avec le système actuel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="264"/>
|
||||
<source>Temp</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="243"/>
|
||||
<source>Since the dictionary is at /tmp,It would be cleaned automatically when system reboot.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="250"/>
|
||||
<source>0B</source>
|
||||
<translation type="unfinished">0B</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="257"/>
|
||||
<source>Location:/tmp/spark-store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Employés temporaires</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="277"/>
|
||||
<source>Since the dictionary is at /tmp,It would be cleaned automatically when system reboot.</source>
|
||||
<translation>Comme le dictionnaire se trouve dans / tmp, il est nettoyé automatiquement lorsque le système redémarre.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="284"/>
|
||||
<source>0B</source>
|
||||
<translation>0B</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="291"/>
|
||||
<source>Location:/tmp/spark-store</source>
|
||||
<translation>Emplacement: / tmp / Spark stockage</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="311"/>
|
||||
<source>Clean</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Nettoyé</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="290"/>
|
||||
<location filename="../src/pages/settingspage.ui" line="324"/>
|
||||
<source>Size:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Dimensions:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="297"/>
|
||||
<location filename="../src/pages/settingspage.ui" line="331"/>
|
||||
<source>Clear Web Cache</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Effacer le cache Web</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="318"/>
|
||||
<location filename="../src/pages/settingspage.ui" line="352"/>
|
||||
<source>About us</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>À propos de nous</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="325"/>
|
||||
<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>Connect us on Spark IM: <a href="https://chat.shenmo.tech"><span style=" text-decoration: underline; color:#0000ff;">https://chat.shenmo.tech<br/></span></a>Our QQ Group number:872690351</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
<location filename="../src/pages/settingspage.ui" line="359"/>
|
||||
<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 <a href="mailto:jifengshenmo@outlook.com"><span style=" text-decoration: underline; color:#0082fa;">jifengshenmo@outlook.com</span></a> 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><span style=" text-decoration: underline; color:#0000ff;"><br/></span>Our contact method can be found at <a href="https://blog.shenmo.tech/post/%E6%95%85%E9%9A%9C%E5%85%AC%E5%91%8A/"><span style=" text-decoration: underline; color:#0082fa;">Here</span></a></p></body></html></source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.cpp" line="213"/>
|
||||
<location filename="../src/pages/settingspage.cpp" line="217"/>
|
||||
<source>Updating, please wait...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Mise à jour en cours, veuillez patienter...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.cpp" line="235"/>
|
||||
<location filename="../src/pages/settingspage.cpp" line="239"/>
|
||||
<source>Spark Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Le Spark store</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.cpp" line="235"/>
|
||||
<location filename="../src/pages/settingspage.cpp" line="239"/>
|
||||
<source>Temporary cache was cleaned</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Cache temporaire nettoyé</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TitleBarMenu</name>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="245"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="246"/>
|
||||
<source>About</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>À propos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="246"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="247"/>
|
||||
<source>Exit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Exportations</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
||||
@@ -8,14 +8,6 @@
|
||||
<source>Form</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="244"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="176"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="318"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="484"/>
|
||||
<source>Download</source>
|
||||
<translation>下载</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="290"/>
|
||||
<source>Uninstall</source>
|
||||
@@ -127,6 +119,14 @@
|
||||
<source>Screen capture</source>
|
||||
<translation>屏幕截图</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="244"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="175"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="313"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="483"/>
|
||||
<source>Download and Install</source>
|
||||
<translation>下载并安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="429"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="432"/>
|
||||
@@ -175,79 +175,79 @@
|
||||
<translation>软件官网</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="50"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="51"/>
|
||||
<source>Click Open</source>
|
||||
<translation>点击跳转</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="115"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="114"/>
|
||||
<source>Developer Mode Disabled</source>
|
||||
<translation>开发者模式未开启</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="161"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="334"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="457"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="160"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="329"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="456"/>
|
||||
<source>Reinstall</source>
|
||||
<translation>重新安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="168"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="167"/>
|
||||
<source>Upgrade</source>
|
||||
<translation>升级</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="323"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="433"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="318"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="432"/>
|
||||
<source>Install</source>
|
||||
<translation>安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="328"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="323"/>
|
||||
<source>Installing</source>
|
||||
<translation>正在安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="412"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="416"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="420"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="424"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="411"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="415"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="419"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="423"/>
|
||||
<source>Warning</source>
|
||||
<translation>警告</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="412"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="411"/>
|
||||
<source>The current application does not support deepin, there may be problems</source>
|
||||
<translation>当前应用不支持deepin,安装后可能会出现问题</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="416"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="415"/>
|
||||
<source>The current application does not support UOS, there may be problems</source>
|
||||
<translation>当前应用不支持UOS,安装后可能会出现问题</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="420"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="419"/>
|
||||
<source>The current application does not support Ubuntu, there may be problems</source>
|
||||
<translation>当前应用不支持Ubuntu,安装后可能会出现问题</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="424"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="423"/>
|
||||
<source>The current application does not support current platform, there may be problems</source>
|
||||
<translation>当前应用不支持平台,安装后可能会出现问题</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="488"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="501"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="487"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="500"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>星火应用商店</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="488"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="487"/>
|
||||
<source>Uninstall succeeded</source>
|
||||
<translation>卸载成功</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="501"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="500"/>
|
||||
<source>The URL has been copied to the clipboard</source>
|
||||
<translation>链接已复制到剪贴板</translation>
|
||||
</message>
|
||||
@@ -268,16 +268,24 @@
|
||||
<context>
|
||||
<name>DAboutDialog</name>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="139"/>
|
||||
<location filename="../src/application.cpp" line="141"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>版本:%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="149"/>
|
||||
<location filename="../src/application.cpp" line="151"/>
|
||||
<source>%1 is released under %2</source>
|
||||
<translation>%1遵循%2协议发布</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>DownloadController</name>
|
||||
<message>
|
||||
<location filename="../src/backend/downloadworker.cpp" line="176"/>
|
||||
<source>Download Failed, please retry :(</source>
|
||||
<translation>下载失败,请重试</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>DownloadItem</name>
|
||||
<message>
|
||||
@@ -357,25 +365,17 @@
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="229"/>
|
||||
<source>Error happened in dpkg progress , you can try it again.</source>
|
||||
<translation>安装被中止,可重新安装。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="230"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="231"/>
|
||||
<source>Error happened in dpkg progress , you can try it again</source>
|
||||
<translation>dpkg出现错误,可重新安装</translation>
|
||||
<source>Error happened in dpkg progress , please check the install info or try to reinstall.</source>
|
||||
<translation>安装出现错误,请检查安装详情或尝试重新安装。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="237"/>
|
||||
<source>dpkg progress had been aborted,you can retry installation.</source>
|
||||
<translation>dpkg进程被中断,您可重试安装。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="238"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="239"/>
|
||||
<source>dpkg progress had been aborted,you can retry installation</source>
|
||||
<translation>安装被中止,可重新安装</translation>
|
||||
<source>dpkg progress had been aborted, please check the install info or try to reinstall.</source>
|
||||
<translation>安装被中止,请检查安装详情或尝试重新安装。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="144"/>
|
||||
@@ -480,33 +480,33 @@
|
||||
<translation>更新</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="187"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="188"/>
|
||||
<source>Submit App</source>
|
||||
<translation>投递应用</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="188"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="189"/>
|
||||
<source>Submit App with client(Recommanded)</source>
|
||||
<translation>使用本地投稿器投递应用(推荐)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="189"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="190"/>
|
||||
<source>Settings</source>
|
||||
<translation>设置</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="190"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="191"/>
|
||||
<source>APP Upgrade and Install Settings</source>
|
||||
<translation>应用更新和安装设置</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="146"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="241"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="147"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="242"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>星火应用商店</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="151"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="152"/>
|
||||
<source>Search or enter spk://</source>
|
||||
<translation>搜索或打开链接</translation>
|
||||
</message>
|
||||
@@ -514,19 +514,19 @@
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="33"/>
|
||||
<location filename="../src/application.cpp" line="34"/>
|
||||
<location filename="../src/application.cpp" line="35"/>
|
||||
<location filename="../src/application.cpp" line="36"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="126"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>星火应用商店</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="38"/>
|
||||
<location filename="../src/application.cpp" line="40"/>
|
||||
<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>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="146"/>
|
||||
<location filename="../src/application.cpp" line="148"/>
|
||||
<source>Spark Project</source>
|
||||
<translation>星火计划</translation>
|
||||
</message>
|
||||
@@ -536,7 +536,7 @@
|
||||
<translation>下载列表</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="244"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="245"/>
|
||||
<source>Show MainWindow</source>
|
||||
<translation>显示主窗口</translation>
|
||||
</message>
|
||||
@@ -585,61 +585,72 @@
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="230"/>
|
||||
<source>Other Settings</source>
|
||||
<translation>其他设置</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="240"/>
|
||||
<source>Enable notification for apps not compatible with current system</source>
|
||||
<translation>开启应用不兼容当前系统提示</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="264"/>
|
||||
<source>Temp</source>
|
||||
<translation>缓存目录</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="243"/>
|
||||
<location filename="../src/pages/settingspage.ui" line="277"/>
|
||||
<source>Since the dictionary is at /tmp,It would be cleaned automatically when system reboot.</source>
|
||||
<translation>因为这个目录位于/tmp下,所以即使你不手动清空的话,其也将在系统重启时自动清空。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="250"/>
|
||||
<location filename="../src/pages/settingspage.ui" line="284"/>
|
||||
<source>0B</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="257"/>
|
||||
<location filename="../src/pages/settingspage.ui" line="291"/>
|
||||
<source>Location:/tmp/spark-store</source>
|
||||
<translation>目录位置:/tmp/spark-store</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="277"/>
|
||||
<location filename="../src/pages/settingspage.ui" line="311"/>
|
||||
<source>Clean</source>
|
||||
<translation>清空</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="290"/>
|
||||
<location filename="../src/pages/settingspage.ui" line="324"/>
|
||||
<source>Size:</source>
|
||||
<translation>目录大小:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="297"/>
|
||||
<location filename="../src/pages/settingspage.ui" line="331"/>
|
||||
<source>Clear Web Cache</source>
|
||||
<translation>清理网页缓存</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="318"/>
|
||||
<location filename="../src/pages/settingspage.ui" line="352"/>
|
||||
<source>About us</source>
|
||||
<translation>关于我们</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="325"/>
|
||||
<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>Connect us on Spark IM: <a href="https://chat.shenmo.tech"><span style=" text-decoration: underline; color:#0000ff;">https://chat.shenmo.tech<br/></span></a>Our QQ Group number:872690351</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>在 Spark IM 联系我们:<a href="https://chat.shenmo.tech"><span style=" text-decoration: underline; color:#0000ff;">https://chat.shenmo.tech<br/></span></a>QQ 群:872690351</p></body></html></translation>
|
||||
<location filename="../src/pages/settingspage.ui" line="359"/>
|
||||
<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 <a href="mailto:jifengshenmo@outlook.com"><span style=" text-decoration: underline; color:#0082fa;">jifengshenmo@outlook.com</span></a> 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><span style=" text-decoration: underline; color:#0000ff;"><br/></span>Our contact method can be found at <a href="https://blog.shenmo.tech/post/%E6%95%85%E9%9A%9C%E5%85%AC%E5%91%8A/"><span style=" text-decoration: underline; color:#0082fa;">Here</span></a></p></body></html></source>
|
||||
<translation><html><head/><body><p>我们并<span style=" font-weight:600;">不是</span>官方团队,和你一样,我们也只是众多Linux/deepin系统爱好者和用户之中的一员,我们开发并且运营这个“Spark应用商店”,是为了让社区的朋友们一起分享好用的软件,或者一起参与开发,让大家都用到最新的,最优秀的软件。</p><p>我们并没有因此盈利,所有开发和维护人员都不会获得报酬,我们的主要支出大部分依赖于社区对我们的捐助,很感谢大家,这部分捐助让我们并不需要耗费太多精力去担心资金问题。</p><p>我们的服务和开发的软件都是免费供给大家使用,交流,学习的,但是在您的使用过程中一定要遵守当地的法律法规,否则出现任何问题和我们无关。</p><p>如果商店中任何一部分有侵犯您权益的行为,请告知我们 <a href="mailto:jifengshenmo@outlook.com"><span style=" text-decoration: underline; color:#0082fa;">jifengshenmo@outlook.com</span></a> ,我们会第一时间删除侵权内容。</p><p>如果你也想参与我们,不管是参与开发,设计,投递还是投稿作品,我们都欢迎你的加入。<p><span style=" text-decoration: underline; color:#0000ff;"><br/></span>请点击<a href="https://blog.shenmo.tech/post/%E6%95%85%E9%9A%9C%E5%85%AC%E5%91%8A/"><span style=" text-decoration: underline; color:#0082fa;">这里</span></a>来联系我们,加群</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.cpp" line="213"/>
|
||||
<location filename="../src/pages/settingspage.cpp" line="217"/>
|
||||
<source>Updating, please wait...</source>
|
||||
<translation>正在更新,请稍候……</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.cpp" line="235"/>
|
||||
<location filename="../src/pages/settingspage.cpp" line="239"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>星火应用商店</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.cpp" line="235"/>
|
||||
<location filename="../src/pages/settingspage.cpp" line="239"/>
|
||||
<source>Temporary cache was cleaned</source>
|
||||
<translation>缓存目录已清空</translation>
|
||||
</message>
|
||||
@@ -647,12 +658,12 @@
|
||||
<context>
|
||||
<name>TitleBarMenu</name>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="245"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="246"/>
|
||||
<source>About</source>
|
||||
<translation>关于</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="246"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="247"/>
|
||||
<source>Exit</source>
|
||||
<translation>退出</translation>
|
||||
</message>
|
||||
|
||||
@@ -8,14 +8,6 @@
|
||||
<source>Form</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="244"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="176"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="318"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="484"/>
|
||||
<source>Download</source>
|
||||
<translation>下载</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="290"/>
|
||||
<source>Uninstall</source>
|
||||
@@ -127,6 +119,14 @@
|
||||
<source>Screen capture</source>
|
||||
<translation>軟體演示</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="244"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="175"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="313"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="483"/>
|
||||
<source>Download and Install</source>
|
||||
<translation>下載並安裝</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="429"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="432"/>
|
||||
@@ -175,79 +175,79 @@
|
||||
<translation>软件官网</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="50"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="51"/>
|
||||
<source>Click Open</source>
|
||||
<translation>点击跳转</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="115"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="114"/>
|
||||
<source>Developer Mode Disabled</source>
|
||||
<translation>开发者模式未开启</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="161"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="334"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="457"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="160"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="329"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="456"/>
|
||||
<source>Reinstall</source>
|
||||
<translation>重新安裝</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="168"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="167"/>
|
||||
<source>Upgrade</source>
|
||||
<translation>升级</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="323"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="433"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="318"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="432"/>
|
||||
<source>Install</source>
|
||||
<translation>安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="328"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="323"/>
|
||||
<source>Installing</source>
|
||||
<translation>正在安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="412"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="416"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="420"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="424"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="411"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="415"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="419"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="423"/>
|
||||
<source>Warning</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="412"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="411"/>
|
||||
<source>The current application does not support deepin, there may be problems</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="416"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="415"/>
|
||||
<source>The current application does not support UOS, there may be problems</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="420"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="419"/>
|
||||
<source>The current application does not support Ubuntu, there may be problems</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="424"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="423"/>
|
||||
<source>The current application does not support current platform, there may be problems</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="488"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="501"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="487"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="500"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>星火应用商店</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="488"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="487"/>
|
||||
<source>Uninstall succeeded</source>
|
||||
<translation>卸载成功</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="501"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="500"/>
|
||||
<source>The URL has been copied to the clipboard</source>
|
||||
<translation>链接已复制到剪贴板</translation>
|
||||
</message>
|
||||
@@ -268,16 +268,24 @@
|
||||
<context>
|
||||
<name>DAboutDialog</name>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="139"/>
|
||||
<location filename="../src/application.cpp" line="141"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>版本:%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="149"/>
|
||||
<location filename="../src/application.cpp" line="151"/>
|
||||
<source>%1 is released under %2</source>
|
||||
<translation>%1遵循%2协议发布</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>DownloadController</name>
|
||||
<message>
|
||||
<location filename="../src/backend/downloadworker.cpp" line="176"/>
|
||||
<source>Download Failed, please retry :(</source>
|
||||
<translation>下載失敗,請重試</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>DownloadItem</name>
|
||||
<message>
|
||||
@@ -357,25 +365,17 @@
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="229"/>
|
||||
<source>Error happened in dpkg progress , you can try it again.</source>
|
||||
<translation>安装被中止,可重新安装。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="230"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="231"/>
|
||||
<source>Error happened in dpkg progress , you can try it again</source>
|
||||
<translation>dpkg出现错误,可重新安装</translation>
|
||||
<source>Error happened in dpkg progress , please check the install info or try to reinstall.</source>
|
||||
<translation>安裝出現錯誤,請檢查安裝詳情或嘗試重新安裝。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="237"/>
|
||||
<source>dpkg progress had been aborted,you can retry installation.</source>
|
||||
<translation>dpkg进程被中断,您可重试安装。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="238"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="239"/>
|
||||
<source>dpkg progress had been aborted,you can retry installation</source>
|
||||
<translation>安装被中止,可重新安装</translation>
|
||||
<source>dpkg progress had been aborted, please check the install info or try to reinstall.</source>
|
||||
<translation>安裝被中止,請檢查安裝詳情或嘗試重新安裝。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="144"/>
|
||||
@@ -480,33 +480,33 @@
|
||||
<translation>軟體更新</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="187"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="188"/>
|
||||
<source>Submit App</source>
|
||||
<translation>上傳軟體</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="188"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="189"/>
|
||||
<source>Submit App with client(Recommanded)</source>
|
||||
<translation>從客戶端上傳軟體(推薦的)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="189"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="190"/>
|
||||
<source>Settings</source>
|
||||
<translation>設定</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="190"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="191"/>
|
||||
<source>APP Upgrade and Install Settings</source>
|
||||
<translation>軟體升級 和 安裝設定</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="146"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="241"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="147"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="242"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>星火应用商店</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="151"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="152"/>
|
||||
<source>Search or enter spk://</source>
|
||||
<translation>搜索或打开链接</translation>
|
||||
</message>
|
||||
@@ -514,19 +514,19 @@
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="33"/>
|
||||
<location filename="../src/application.cpp" line="34"/>
|
||||
<location filename="../src/application.cpp" line="35"/>
|
||||
<location filename="../src/application.cpp" line="36"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="126"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>星火应用商店</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="38"/>
|
||||
<location filename="../src/application.cpp" line="40"/>
|
||||
<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>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/application.cpp" line="146"/>
|
||||
<location filename="../src/application.cpp" line="148"/>
|
||||
<source>Spark Project</source>
|
||||
<translation>星火计划</translation>
|
||||
</message>
|
||||
@@ -536,7 +536,7 @@
|
||||
<translation>下载列表</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="244"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="245"/>
|
||||
<source>Show MainWindow</source>
|
||||
<translation>显示主窗口</translation>
|
||||
</message>
|
||||
@@ -585,61 +585,72 @@
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="230"/>
|
||||
<source>Other Settings</source>
|
||||
<translation>其他設定</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="240"/>
|
||||
<source>Enable notification for apps not compatible with current system</source>
|
||||
<translation>開啟應用不相容當前系統提示</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="264"/>
|
||||
<source>Temp</source>
|
||||
<translation>缓存目录</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="243"/>
|
||||
<location filename="../src/pages/settingspage.ui" line="277"/>
|
||||
<source>Since the dictionary is at /tmp,It would be cleaned automatically when system reboot.</source>
|
||||
<translation>因为这个目录位于/tmp下,所以即使你不手动清空的话,其也将在系统重启时自动清空。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="250"/>
|
||||
<location filename="../src/pages/settingspage.ui" line="284"/>
|
||||
<source>0B</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="257"/>
|
||||
<location filename="../src/pages/settingspage.ui" line="291"/>
|
||||
<source>Location:/tmp/spark-store</source>
|
||||
<translation>目录位置:/tmp/spark-store</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="277"/>
|
||||
<location filename="../src/pages/settingspage.ui" line="311"/>
|
||||
<source>Clean</source>
|
||||
<translation>清空</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="290"/>
|
||||
<location filename="../src/pages/settingspage.ui" line="324"/>
|
||||
<source>Size:</source>
|
||||
<translation>目录大小:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="297"/>
|
||||
<location filename="../src/pages/settingspage.ui" line="331"/>
|
||||
<source>Clear Web Cache</source>
|
||||
<translation>清理网页缓存</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="318"/>
|
||||
<location filename="../src/pages/settingspage.ui" line="352"/>
|
||||
<source>About us</source>
|
||||
<translation>关于我们</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.ui" line="325"/>
|
||||
<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>Connect us on Spark IM: <a href="https://chat.shenmo.tech"><span style=" text-decoration: underline; color:#0000ff;">https://chat.shenmo.tech<br/></span></a>Our QQ Group number:872690351</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>在 Spark IM 联系我们:<a href="https://chat.shenmo.tech"><span style=" text-decoration: underline; color:#0000ff;">https://chat.shenmo.tech<br/></span></a>QQ 群:872690351</p></body></html></translation>
|
||||
<location filename="../src/pages/settingspage.ui" line="359"/>
|
||||
<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 <a href="mailto:jifengshenmo@outlook.com"><span style=" text-decoration: underline; color:#0082fa;">jifengshenmo@outlook.com</span></a> 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><span style=" text-decoration: underline; color:#0000ff;"><br/></span>Our contact method can be found at <a href="https://blog.shenmo.tech/post/%E6%95%85%E9%9A%9C%E5%85%AC%E5%91%8A/"><span style=" text-decoration: underline; color:#0082fa;">Here</span></a></p></body></html></source>
|
||||
<translation><html><head/><body><p>我們並<span style=" font-weight:600;">不是</span>官方團隊,和你一樣,我們也只是眾多Linux/deepin系統愛好者和使用者之中的一員,我們開發並且運營這個“Spark應用商店”,是為了讓社羣的朋友們一起分享好用的軟體,或者一起參與開發,讓大家都用到最新的,最優秀的軟體。</p><p>我們並沒有因此盈利,所有開發和維護人員都不會獲得報酬,我們的主要支出大部分依賴於社羣對我們的捐助,很感謝大家,這部分捐助讓我們並不需要耗費太多精力去擔心資金問題。</p><p>我們的服務和開發的軟體都是免費供給大家使用,交流,學習的,但是在您的使用過程中一定要遵守當地的法律法規,否則出現任何問題和我們無關。</p><p>如果商店中任何一部分有侵犯您權益的行為,請告知我們 <a href="mailto:jifengshenmo@outlook.com"><span style=" text-decoration: underline; color:#0082fa;">jifengshenmo@outlook.com</span></a> ,我們會第一時間刪除侵權內容。</p><p>如果你也想參與我們,不管是參與開發,設計,投遞還是投稿作品,我們都歡迎你的加入。<p><span style=" text-decoration: underline; color:#0000ff;"><br/></span>請點選<a href="https://blog.shenmo.tech/post/%E6%95%85%E9%9A%9C%E5%85%AC%E5%91%8A/"><span style=" text-decoration: underline; color:#0082fa;">這裡</span></a>來聯絡我們,加群</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.cpp" line="213"/>
|
||||
<location filename="../src/pages/settingspage.cpp" line="217"/>
|
||||
<source>Updating, please wait...</source>
|
||||
<translation>正在更新,请稍候……</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.cpp" line="235"/>
|
||||
<location filename="../src/pages/settingspage.cpp" line="239"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>星火应用商店</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/settingspage.cpp" line="235"/>
|
||||
<location filename="../src/pages/settingspage.cpp" line="239"/>
|
||||
<source>Temporary cache was cleaned</source>
|
||||
<translation>缓存目录已清空</translation>
|
||||
</message>
|
||||
@@ -647,12 +658,12 @@
|
||||
<context>
|
||||
<name>TitleBarMenu</name>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="245"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="246"/>
|
||||
<source>About</source>
|
||||
<translation>关于</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="246"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="247"/>
|
||||
<source>Exit</source>
|
||||
<translation>退出</translation>
|
||||
</message>
|
||||
|
||||
Reference in New Issue
Block a user