diff --git a/debian/changelog b/debian/changelog index 5e1bb3c88d6b390be509093c695e693addb49949..d66aff2926faf41a0a14c96969f0d42319a6417c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +spark-store (4.8.4) UNRELEASED; urgency=medium + + * 修复 软件更新器更新无法正确处理忽略的软件包 + * 修复 在高分屏下 左侧的分类图标模糊问题,感谢 @Blumia + * 合并 qt5和qt6分支 + + -- shenmo Tue, 28 Aug 2025 01:03:08 +0800 + spark-store (4.8.3) UNRELEASED; urgency=medium * 更新软件主图标 diff --git a/pkg/usr/share/icons/hicolor/scalable/apps/spark-store.png b/pkg/usr/share/icons/hicolor/scalable/apps/spark-store.png deleted file mode 100644 index bc47ff0be4b5ec4d0c5a5907a2a63190d4bd2572..0000000000000000000000000000000000000000 Binary files a/pkg/usr/share/icons/hicolor/scalable/apps/spark-store.png and /dev/null differ diff --git a/pkg/usr/share/icons/hicolor/scalable/apps/spark-store.svg b/pkg/usr/share/icons/hicolor/scalable/apps/spark-store.svg new file mode 100644 index 0000000000000000000000000000000000000000..a1f93964e7a6f1769518cf633ac1bc2870cb1cfd --- /dev/null +++ b/pkg/usr/share/icons/hicolor/scalable/apps/spark-store.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/spark-update-tool/CMakeLists.txt b/spark-update-tool/CMakeLists.txt index a76b1e2eca9736f8731ecb3d97911f226b6138e5..cb948700319d2eeb296e7b6ecb3c0c5bc18f42b7 100644 --- a/spark-update-tool/CMakeLists.txt +++ b/spark-update-tool/CMakeLists.txt @@ -9,7 +9,8 @@ set(CMAKE_AUTORCC ON) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) -find_package(Qt5 REQUIRED COMPONENTS Widgets Network Concurrent) +find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets Network Concurrent) +find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets Network Concurrent) set(PROJECT_SOURCES src/main.cpp @@ -29,22 +30,39 @@ set(PROJECT_SOURCES src/ignoreconfig.cpp ) -if(ANDROID) - add_library(spark-update-tool SHARED +if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) + qt_add_executable(spark-update-tool + MANUAL_FINALIZATION ${PROJECT_SOURCES} ) +# Define target properties for Android with Qt 6 as: +# set_property(TARGET spark-update-tool APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR +# ${CMAKE_CURRENT_SOURCE_DIR}/android) +# For more information, see https://doc.qt.io/qt-6/qt-add-executable.html#target-creation +else() + if(ANDROID) + add_library(spark-update-tool SHARED + ${PROJECT_SOURCES} + ) # Define properties for Android with Qt 5 after find_package() calls as: # set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android") -else() - add_executable(spark-update-tool - ${PROJECT_SOURCES} - ) + else() + add_executable(spark-update-tool + ${PROJECT_SOURCES} + ) + endif() endif() -target_link_libraries(spark-update-tool PRIVATE Qt5::Widgets Qt5::Network Qt5::Concurrent) +target_link_libraries(spark-update-tool PRIVATE Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Network Qt${QT_VERSION_MAJOR}::Concurrent) +# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1. +# If you are developing for iOS or macOS you should consider setting an +# explicit, fixed bundle identifier manually though. +if(${QT_VERSION} VERSION_LESS 6.1.0) + set(BUNDLE_ID_OPTION MACOSX_BUNDLE_GUI_IDENTIFIER com.example.spark-update-tool) +endif() set_target_properties(spark-update-tool PROPERTIES - MACOSX_BUNDLE_GUI_IDENTIFIER com.example.spark-update-tool + ${BUNDLE_ID_OPTION} MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} MACOSX_BUNDLE TRUE @@ -56,4 +74,8 @@ install(TARGETS spark-update-tool BUNDLE DESTINATION . LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} -) \ No newline at end of file +) + +if(QT_VERSION_MAJOR EQUAL 6) + qt_finalize_executable(spark-update-tool) +endif() \ No newline at end of file diff --git a/spark-update-tool/debian/changelog b/spark-update-tool/debian/changelog index 01eb32ded21abc520c4e7cfd209c9bab9c1fd224..c3eda0fb54431e6eec0c6d1ddbb0040f22970ee4 100644 --- a/spark-update-tool/debian/changelog +++ b/spark-update-tool/debian/changelog @@ -1,3 +1,7 @@ +spark-update-tool (1.0.4) unstable; urgency=low + + * 修复点击更新全部按钮后,会更新被忽略应用的问题。 + spark-update-tool (1.0.3) unstable; urgency=low * 修复默认图标加载失败的问题 diff --git a/spark-update-tool/src/appdelegate.cpp b/spark-update-tool/src/appdelegate.cpp index 792c2499739f3f86c249400046b2f4fabcf3991f..ba889ec907156742798a8716361408f05f68c0ec 100644 --- a/spark-update-tool/src/appdelegate.cpp +++ b/spark-update-tool/src/appdelegate.cpp @@ -12,6 +12,7 @@ AppDelegate::AppDelegate(QObject *parent) : QStyledItemDelegate(parent), m_downloadManager(new DownloadManager(this)), m_installProcess(nullptr) { connect(m_downloadManager, &DownloadManager::downloadFinished, this, + [this](const QString &packageName, bool success) { if (m_downloads.contains(packageName)) { m_downloads[packageName].isDownloading = false; @@ -39,6 +40,17 @@ AppDelegate::AppDelegate(QObject *parent) connect(&m_spinnerUpdateTimer, &QTimer::timeout, this, &AppDelegate::updateSpinner); } +AppDelegate::~AppDelegate() +{ + // 终止并清理安装进程 + if (m_installProcess && m_installProcess->state() != QProcess::NotRunning) { + m_installProcess->kill(); + m_installProcess->waitForFinished(3000); + m_installProcess->deleteLater(); + m_installProcess = nullptr; + } +} + void AppDelegate::setModel(QAbstractItemModel *model) { m_model = model; } @@ -311,6 +323,14 @@ void AppDelegate::startDownloadForAll() { if (!m_model) return; for (int row = 0; row < m_model->rowCount(); ++row) { QModelIndex index = m_model->index(row, 0); + + // 检查应用是否被忽略 + bool isIgnored = index.data(Qt::UserRole + 8).toBool(); + if (isIgnored) { + qDebug() << "跳过被忽略的应用:" << index.data(Qt::UserRole + 1).toString(); + continue; + } + QString packageName = index.data(Qt::UserRole + 1).toString(); if (m_downloads.contains(packageName) && (m_downloads[packageName].isDownloading || m_downloads[packageName].isInstalled)) continue; @@ -474,6 +494,13 @@ void AppDelegate::startDownloadForSelected() { QModelIndex index = m_model->index(row, 0); QString packageName = index.data(Qt::UserRole + 1).toString(); + // 检查应用是否被忽略 + bool isIgnored = index.data(Qt::UserRole + 8).toBool(); + if (isIgnored) { + qDebug() << "跳过被忽略的应用:" << packageName; + continue; + } + // 只下载选中的应用 if (m_selectedPackages.contains(packageName)) { if (m_downloads.contains(packageName) && (m_downloads[packageName].isDownloading || m_downloads[packageName].isInstalled)) diff --git a/spark-update-tool/src/appdelegate.h b/spark-update-tool/src/appdelegate.h index 25ea3373c6c1fcffddb10bdab4d56fe357a04f7f..ac3f69ab7c4928009d5519122612e7387538bbd7 100644 --- a/spark-update-tool/src/appdelegate.h +++ b/spark-update-tool/src/appdelegate.h @@ -21,6 +21,7 @@ class AppDelegate : public QStyledItemDelegate { Q_OBJECT public: explicit AppDelegate(QObject *parent = nullptr); + ~AppDelegate(); void setModel(QAbstractItemModel *model); diff --git a/spark-update-tool/src/downloadmanager.cpp b/spark-update-tool/src/downloadmanager.cpp index 978032497a958266708a7eff772e51075c63cecf..16d06d5c8980fe97d9e38c805433b8a30050667f 100644 --- a/spark-update-tool/src/downloadmanager.cpp +++ b/spark-update-tool/src/downloadmanager.cpp @@ -10,6 +10,20 @@ DownloadManager::DownloadManager(QObject *parent) : QObject(parent) cleanupTempFiles(); } +DownloadManager::~DownloadManager() +{ + // 终止并清理所有正在运行的下载进程 + for (auto it = m_processes.begin(); it != m_processes.end(); ) { + QProcess *process = it.value(); + if (process->state() != QProcess::NotRunning) { + process->kill(); // 立即终止进程 + process->waitForFinished(3000); // 最多等待3秒 + } + process->deleteLater(); + it = m_processes.erase(it); + } +} + void DownloadManager::startDownload(const QString &packageName, const QString &url, const QString &outputPath) { if (m_processes.contains(packageName)) { @@ -114,4 +128,4 @@ void DownloadManager::cleanupTempFiles() for (const QString &f : leftovers) { tempDir.remove(f); } -} +} \ No newline at end of file diff --git a/spark-update-tool/src/downloadmanager.h b/spark-update-tool/src/downloadmanager.h index 0614368a97a0425b4ab7c30edfddeaa7fda1afef..8e1aa3172440bfc5960d69f934a3832e824f2100 100644 --- a/spark-update-tool/src/downloadmanager.h +++ b/spark-update-tool/src/downloadmanager.h @@ -10,6 +10,7 @@ class DownloadManager : public QObject Q_OBJECT public: explicit DownloadManager(QObject *parent = nullptr); + ~DownloadManager(); void startDownload(const QString &packageName, const QString &url, const QString &outputPath); void cancelDownload(const QString &packageName); bool isDownloading(const QString &packageName) const; @@ -25,4 +26,4 @@ private: QMap m_processes; }; -#endif // DOWNLOADMANAGER_H +#endif // DOWNLOADMANAGER_H \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 2da9621bab03154cd76d618ea6ce218b40c3ecdb..273c4313528fde9b820ac837235f025b7a4277c9 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -180,6 +180,9 @@ int main(int argc, char *argv[]) } int fakeArgc = argc + 2; // QCoreApplication 的 argc 要用引用,避免 c++ 编译器优化 Application a(fakeArgc, fakeArgs.data()); +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) + a.setAttribute(Qt::ApplicationAttribute::AA_UseHighDpiPixmaps); +#endif // QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // 设置版本和构建时间 a.setBuildDateTime(buildDateTime); diff --git a/src/pages/appintopage.cpp b/src/pages/appintopage.cpp index 8bf8e5c782b89b2ddf18f082a1587c70ad5001fe..8c721bd49658c28b15f18cca9ca2102b45e7e1fc 100644 --- a/src/pages/appintopage.cpp +++ b/src/pages/appintopage.cpp @@ -73,8 +73,9 @@ void AppIntoPage::openUrl(const QUrl &url) iconRequest.setUrl(QUrl(pkgUrlBase + "/icon.png")); iconRequest.setHeader(QNetworkRequest::UserAgentHeader, m_userAgent); iconRequest.setHeader(QNetworkRequest::ContentTypeHeader, "charset='utf-8'"); +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) iconRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); - +#endif // QT_VERSION < QT_VERSION_CHECK(6, 0, 0) iconManager->get(iconRequest); QObject::connect(iconManager, &QNetworkAccessManager::finished, [=](QNetworkReply *reply) @@ -97,7 +98,9 @@ void AppIntoPage::openUrl(const QUrl &url) QNetworkAccessManager *manager = new QNetworkAccessManager(this); request.setUrl(QUrl(imgUrl)); request.setHeader(QNetworkRequest::UserAgentHeader, m_userAgent); +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif // QT_VERSION < QT_VERSION_CHECK(6, 0, 0) request.setHeader(QNetworkRequest::ContentTypeHeader, "charset='utf-8'"); manager->get(request); QObject::connect(manager, &QNetworkAccessManager::finished, [=](QNetworkReply *reply) diff --git a/src/spark-store.pro b/src/spark-store.pro index eb4b8528ade144f92f6479122ec7042ab9d8e1b1..3c3adb130768239e81c1c750ff32cb4ed1780692 100644 --- a/src/spark-store.pro +++ b/src/spark-store.pro @@ -31,7 +31,8 @@ DEFINES += APP_BRANCH=\\\"'$$system(git symbolic-ref --short -q HEAD)'\\\" # We want to capture all logs (INFO, DEBUG, WARNING, ERROR) for export to /tmp/spark-store CONFIG += c++11 link_pkgconfig -PKGCONFIG += dtkcore dtkgui dtkwidget +equals(QT_MAJOR_VERSION, 6): PKGCONFIG += dtk6core dtk6gui dtk6widget +equals(QT_MAJOR_VERSION, 5): PKGCONFIG += dtkcore dtkgui dtkwidget SOURCES += \ backend/DataCollectorAndUploader.cpp \ diff --git a/src/widgets/common/customlabel.cpp b/src/widgets/common/customlabel.cpp index f70f9540c2a1d04fbc8930f41b3a4de84ebee154..4c9e51e008990afaf05a06f7240b7202f96dc21a 100644 --- a/src/widgets/common/customlabel.cpp +++ b/src/widgets/common/customlabel.cpp @@ -10,8 +10,11 @@ CustomLabel::CustomLabel(QWidget *parent, QPixmap CustomLabel::pixmap() const { - const QPixmap* p = QLabel::pixmap(); - return p ? *p : QPixmap(); +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) + return *QLabel::pixmap(); +#else + return QLabel::pixmap(); +#endif // QT_VERSION < QT_VERSION_CHECK(6, 0, 0) } void CustomLabel::setPixmap(const QPixmap &pixmap) @@ -23,4 +26,4 @@ void CustomLabel::setPixmap(const QPixmap &pixmap) Qt::SmoothTransformation); QLabel::setPixmap(_pixmap); -} \ No newline at end of file +} diff --git a/tool/spark-dstore-patch b/tool/spark-dstore-patch index 9d07294a56daa371eaaf605775f53d7cacf0fa8e..06f073e90f61ecab7cd8b259e9ba40852e12d118 100755 --- a/tool/spark-dstore-patch +++ b/tool/spark-dstore-patch @@ -30,7 +30,7 @@ linkDir() { ensureTargetDir "$targetFile" sourceFile=$(realpath --relative-to="$(dirname $targetFile)" "$sourceFile" ) - if [ ! -e ${targetFile} ];then + if [ ! -e "${targetFile}" ];then ln -sv "$sourceFile" "$targetFile" fi done diff --git a/tool/ssaudit b/tool/ssaudit index 9654f8ddc45d06ebe2f861e28bf65e986f71a83c..13056eb3054918b7f5c337ed4c10a884039c8383 100755 --- a/tool/ssaudit +++ b/tool/ssaudit @@ -291,16 +291,42 @@ function create_desktop_file() { export CURRENT_USER_DIR_DESKTOP=$(sudo -u "$user" xdg-user-dir DESKTOP) function exec_create_desktop_file() { local desktop_files=() + local package_name_lower=$(echo "$package_name" | tr '[:upper:]' '[:lower:]') - # 收集所有桌面文件 - desktop_files+=($(dpkg -L "$package_name" | grep '/usr/share/applications/.*\.desktop$')) - desktop_files+=($(dpkg -L "$package_name" | grep '/opt/apps/'"$package_name"'/entries/applications/.*\.desktop$')) + # 只收集指定路径下的桌面文件 + # 1. /usr/share/applications/ 目录下的 .desktop 文件 + desktop_files+=($(dpkg -L "$package_name" 2>/dev/null | grep '^/usr/share/applications/.*\.desktop$' || true)) + + # 2. /opt/apps/包名/entries/applications/ 目录下的 .desktop 文件 + # 先尝试精确匹配包名路径 + desktop_files+=($(dpkg -L "$package_name" 2>/dev/null | grep "^/opt/apps/$package_name/entries/applications/.*\.desktop$" || true)) + + # 再尝试小写包名路径(有些包可能使用小写路径) + desktop_files+=($(dpkg -L "$package_name" 2>/dev/null | grep "^/opt/apps/$package_name_lower/entries/applications/.*\.desktop$" || true)) + + # 如果没有找到任何符合条件的桌面文件,则直接返回 + if [ ${#desktop_files[@]} -eq 0 ]; then + echo "未找到符合条件的桌面快捷方式文件(/usr/share/applications/ 或 /opt/apps/$package_name/entries/applications/)" + return 0 + fi + + echo "找到 ${#desktop_files[@]} 个桌面快捷方式文件:" + printf '%s\n' "${desktop_files[@]}" for desktop_file_path in "${desktop_files[@]}"; do - if [ "$FORCE_CREATE_DESKTOP" -eq 1 ] || [ -z "$(grep 'NoDisplay=true' "$desktop_file_path")" ]; then - echo "$desktop_file_path is checked and will be installed to desktop" + # 检查文件是否存在 + if [ ! -f "$desktop_file_path" ]; then + echo "文件不存在,跳过: $desktop_file_path" + continue + fi + + # 检查是否是 NoDisplay=true 的桌面文件 + if [ -z "$(grep -i 'NoDisplay=true' "$desktop_file_path")" ]; then + echo "安装桌面快捷方式: $desktop_file_path" chmod +x "$desktop_file_path" - sudo -u "$user" cp "$desktop_file_path" "${CURRENT_USER_DIR_DESKTOP}" + sudo -u "$user" cp "$desktop_file_path" "${CURRENT_USER_DIR_DESKTOP}/" + else + echo "跳过 NoDisplay=true 的桌面文件: $desktop_file_path" fi done } diff --git a/tool/ssinstall b/tool/ssinstall index 365902fd24ce98db1a83309575c86386b6471004..123d279d3f84b313e9bd310205752961d33ce501 100755 --- a/tool/ssinstall +++ b/tool/ssinstall @@ -291,19 +291,46 @@ function create_desktop_file() { export CURRENT_USER_DIR_DESKTOP=$(sudo -u "$user" xdg-user-dir DESKTOP) function exec_create_desktop_file() { local desktop_files=() + local package_name_lower=$(echo "$package_name" | tr '[:upper:]' '[:lower:]') - # 收集所有桌面文件 - desktop_files+=($(dpkg -L "$package_name" | grep '/usr/share/applications/.*\.desktop$')) - desktop_files+=($(dpkg -L "$package_name" | grep '/opt/apps/'"$package_name"'/entries/applications/.*\.desktop$')) + # 只收集指定路径下的桌面文件 + # 1. /usr/share/applications/ 目录下的 .desktop 文件 + desktop_files+=($(dpkg -L "$package_name" 2>/dev/null | grep '^/usr/share/applications/.*\.desktop$' || true)) + + # 2. /opt/apps/包名/entries/applications/ 目录下的 .desktop 文件 + # 先尝试精确匹配包名路径 + desktop_files+=($(dpkg -L "$package_name" 2>/dev/null | grep "^/opt/apps/$package_name/entries/applications/.*\.desktop$" || true)) + + # 再尝试小写包名路径(有些包可能使用小写路径) + desktop_files+=($(dpkg -L "$package_name" 2>/dev/null | grep "^/opt/apps/$package_name_lower/entries/applications/.*\.desktop$" || true)) + + # 如果没有找到任何符合条件的桌面文件,则直接返回 + if [ ${#desktop_files[@]} -eq 0 ]; then + echo "未找到符合条件的桌面快捷方式文件(/usr/share/applications/ 或 /opt/apps/$package_name/entries/applications/)" + return 0 + fi + + echo "找到 ${#desktop_files[@]} 个桌面快捷方式文件:" + printf '%s\n' "${desktop_files[@]}" for desktop_file_path in "${desktop_files[@]}"; do - if [ "$FORCE_CREATE_DESKTOP" -eq 1 ] || [ -z "$(grep 'NoDisplay=true' "$desktop_file_path")" ]; then - echo "$desktop_file_path is checked and will be installed to desktop" + # 检查文件是否存在 + if [ ! -f "$desktop_file_path" ]; then + echo "文件不存在,跳过: $desktop_file_path" + continue + fi + + # 检查是否是 NoDisplay=true 的桌面文件 + if [ -z "$(grep -i 'NoDisplay=true' "$desktop_file_path")" ]; then + echo "安装桌面快捷方式: $desktop_file_path" chmod +x "$desktop_file_path" - sudo -u "$user" cp "$desktop_file_path" "${CURRENT_USER_DIR_DESKTOP}" + sudo -u "$user" cp "$desktop_file_path" "${CURRENT_USER_DIR_DESKTOP}/" + else + echo "跳过 NoDisplay=true 的桌面文件: $desktop_file_path" fi done } + export -f exec_create_desktop_file # 在ACE环境中创建桌面快捷方式 diff --git a/translations/spark-store_en.ts b/translations/spark-store_en.ts index 7fe778c00e4854d792fbdd84581502f4ec05d652..92611fc4022ba84682958ceaff3448548a5056de 100644 --- a/translations/spark-store_en.ts +++ b/translations/spark-store_en.ts @@ -86,10 +86,10 @@ - - - - + + + + Download and Install @@ -177,87 +177,87 @@ - + Developer Mode Disabled - - - + + + Reinstall - - - + + + Launch - + Upgrade - - + + Install - + Installing - - - - - + + + + + Warning - + The current application does not support or tested on deepin, there may be problems - + The current application does not support or tested on UOS, there may be problems - + The current application does not support or tested on Ubuntu, there may be problems - + The current application does not support or tested on Debian, there may be problems - + The current application does not support or tested on current platform, there may be problems - - + + Spark Store - + Uninstall succeeded - + The URL has been copied to the clipboard diff --git a/translations/spark-store_es.ts b/translations/spark-store_es.ts index a37cb3e4efa76651392713c8b60499c627d4c22c..4a7e5fc8415c269fb9daf6d6560973d62c57064d 100644 --- a/translations/spark-store_es.ts +++ b/translations/spark-store_es.ts @@ -86,10 +86,10 @@ - - - - + + + + Download and Install Descargar e instalar @@ -177,87 +177,87 @@ Haga clic en "abrir" - + Developer Mode Disabled Se ha desactivado el modo desarrollador - - - + + + Reinstall Reinstalación - - - + + + Launch - + Upgrade Actualización - - + + Install Instalación - + Installing Se está instalando - - - - - + + + + + Warning Aviso - + The current application does not support or tested on deepin, there may be problems - + The current application does not support or tested on UOS, there may be problems - + The current application does not support or tested on Ubuntu, there may be problems - + The current application does not support or tested on Debian, there may be problems - + The current application does not support or tested on current platform, there may be problems - - + + Spark Store SPARK Store - + Uninstall succeeded Desinstalación exitosa - + The URL has been copied to the clipboard La URL ha sido copiada al portapapeles diff --git a/translations/spark-store_fr.ts b/translations/spark-store_fr.ts index 0f1d0c1fdeaf38cd15f7c40137d17fd2213d9d53..3272d250c56511b14723368f33267fd6dbad4849 100644 --- a/translations/spark-store_fr.ts +++ b/translations/spark-store_fr.ts @@ -86,10 +86,10 @@ - - - - + + + + Download and Install Télécharger et installer @@ -177,87 +177,87 @@ Cliquez sur Ouvrir - + Developer Mode Disabled Mode développeur désactivé - - - + + + Reinstall Réinstaller - - - + + + Launch - + Upgrade Mise à niveau - - + + Install Installation - + Installing Installation en cours - - - - - + + + + + Warning Avertissement - + The current application does not support or tested on deepin, there may be problems - + The current application does not support or tested on UOS, there may be problems - + The current application does not support or tested on Ubuntu, there may be problems - + The current application does not support or tested on Debian, there may be problems - + The current application does not support or tested on current platform, there may be problems - - + + Spark Store Le Spark store - + Uninstall succeeded Désinstallation réussie - + The URL has been copied to the clipboard L'URL a été copiée dans le presse - papiers diff --git a/translations/spark-store_zh_CN.ts b/translations/spark-store_zh_CN.ts index e1f59f666c0538f5810ab9527553996d3fe9b9e1..8f858fc8a966976abc846b59f37e588f57980b73 100644 --- a/translations/spark-store_zh_CN.ts +++ b/translations/spark-store_zh_CN.ts @@ -81,10 +81,10 @@ - - - - + + + + Download and Install 下载并安装 @@ -177,87 +177,87 @@ 点击跳转 - + Developer Mode Disabled 开发者模式未开启 - - - + + + Reinstall 重新安装 - - - + + + Launch 启动应用 - + Upgrade 升级 - - + + Install 安装 - + Installing 正在安装 - - - - - + + + + + Warning 警告 - + The current application does not support or tested on deepin, there may be problems 当前应用不支持或未在deepin上测试过,安装后可能会出现问题 - + The current application does not support or tested on UOS, there may be problems 当前应用不支持或未在UOS上测试过,安装后可能会出现问题 - + The current application does not support or tested on Ubuntu, there may be problems 当前应用不支持或未在Ubuntu上测试过,安装后可能会出现问题 - + The current application does not support or tested on Debian, there may be problems 当前应用不支持或未在Debian上测试过,安装后可能会出现问题 - + The current application does not support or tested on current platform, there may be problems 当前应用不支持或未在您的平台上测试过,安装后可能会出现问题 - - + + Spark Store 星火应用商店 - + Uninstall succeeded 卸载成功 - + The URL has been copied to the clipboard 链接已复制到剪贴板 diff --git a/translations/spark-store_zh_TW.ts b/translations/spark-store_zh_TW.ts index 9bf2712e5163b899f93580b1b5a6f0606d4c2154..f261b9ebe60bc6c89ab16a34e2461a55138e8b20 100644 --- a/translations/spark-store_zh_TW.ts +++ b/translations/spark-store_zh_TW.ts @@ -81,10 +81,10 @@ - - - - + + + + Download and Install 下載並安裝 @@ -177,87 +177,87 @@ 点击跳转 - + Developer Mode Disabled 开发者模式未开启 - - - + + + Reinstall 重新安裝 - - - + + + Launch - + Upgrade 升级 - - + + Install 安装 - + Installing 正在安装 - - - - - + + + + + Warning - + The current application does not support or tested on deepin, there may be problems - + The current application does not support or tested on UOS, there may be problems - + The current application does not support or tested on Ubuntu, there may be problems - + The current application does not support or tested on Debian, there may be problems - + The current application does not support or tested on current platform, there may be problems - - + + Spark Store 星火应用商店 - + Uninstall succeeded 卸载成功 - + The URL has been copied to the clipboard 链接已复制到剪贴板