diff --git a/debian/dde-tray-loader.install b/debian/dde-tray-loader.install index a4b10661..eff77342 100644 --- a/debian/dde-tray-loader.install +++ b/debian/dde-tray-loader.install @@ -19,6 +19,7 @@ usr/lib/dde-dock/plugins/system-trays/libkeyboard-layout.so usr/share/dock-tray-network-plugin/translations usr/share/dde-dock/icons/dcc-setting usr/share/dde-dock/translations +usr/share/trayplugin-loader/translations usr/share/dock-wirelesscasting-plugin/translations usr/share/dde-tray-network-core/translations usr/share/dsg/configs/org.deepin.dde.dock/org.deepin.dde.dock.plugin.common.json diff --git a/src/loader/CMakeLists.txt b/src/loader/CMakeLists.txt index 29a8551d..cb0a1e87 100644 --- a/src/loader/CMakeLists.txt +++ b/src/loader/CMakeLists.txt @@ -2,11 +2,15 @@ # # SPDX-License-Identifier: CC0-1.0 -find_package(Qt5 REQUIRED COMPONENTS Core Widgets) +find_package(Qt5 REQUIRED COMPONENTS Core Widgets LinguistTools) find_package(Dtk REQUIRED COMPONENTS Gui Widget) file(GLOB SRCS "*.h" "*.cpp" "../../interfaces/*.h" "utils/*.h" "utils/*.cpp") +file(GLOB TS_FILES "translations/*.ts") +qt5_add_translation(QM_FILES ${TS_FILES}) +add_custom_target(trayloader_translations ALL DEPENDS ${QM_FILES}) + add_executable(trayplugin-loader main.cpp dockdbusproxy.cpp @@ -45,3 +49,6 @@ dtk_add_config_meta_files(APPID org.deepin.dde.dock FILES ./configs/org.deepin.d #schemas install(FILES configs/com.deepin.dde.control-center.gschema.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/glib-2.0/schemas) install(FILES configs/com.deepin.dde.dock.module.gschema.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/glib-2.0/schemas) + +# 安装 .qm 文件 +install(FILES ${QM_FILES} DESTINATION ${CMAKE_INSTALL_DATADIR}/trayplugin-loader/translations) diff --git a/src/loader/generate_translations.sh b/src/loader/generate_translations.sh new file mode 100644 index 00000000..c07fc8f3 --- /dev/null +++ b/src/loader/generate_translations.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +# 定义源文件目录 +SRC_DIR="./" + +# 定义翻译文件目录 +TS_DIR="translations" + +# 定义需要生成的语言代码 +LANGUAGES=("zh_CN" "es_ES") + +# 生成通用翻译文件 +COMMON_TS_FILE="${TS_DIR}/trayplugin-loader.ts" +lupdate ${SRC_DIR} -ts ${COMMON_TS_FILE} +echo "Generated ${COMMON_TS_FILE}" + +# 循环生成翻译文件 +for LANG in "${LANGUAGES[@]}"; do + TS_FILE="${TS_DIR}/trayplugin-loader_${LANG}.ts" + lupdate ${SRC_DIR} -ts ${TS_FILE} + echo "Generated ${TS_FILE}" +done diff --git a/src/loader/main.cpp b/src/loader/main.cpp index 8bf10e80..ad9ba79a 100644 --- a/src/loader/main.cpp +++ b/src/loader/main.cpp @@ -67,6 +67,12 @@ int main(int argc, char *argv[], char *envp[]) app.setAttribute(Qt::AA_UseHighDpiPixmaps, true); app.setQuitOnLastWindowClosed(false); + // 创建翻译器 + QTranslator translator; + if (translator.load(QString("/usr/share/trayplugin-loader/translations/trayplugin-loader_%1").arg(QLocale().name()))) { + app.installTranslator(&translator); + } + QList translateDirs; auto dataDirs = DStandardPaths::standardLocations(QStandardPaths::GenericDataLocation); for (const auto &path : dataDirs) { diff --git a/src/loader/translations/trayplugin-loader.ts b/src/loader/translations/trayplugin-loader.ts new file mode 100644 index 00000000..30afd5f1 --- /dev/null +++ b/src/loader/translations/trayplugin-loader.ts @@ -0,0 +1,17 @@ + + + + + QuickPluginItem + + + Remove from dock + + + + + Pin to dock + + + + diff --git a/src/loader/translations/trayplugin-loader_es_ES.ts b/src/loader/translations/trayplugin-loader_es_ES.ts new file mode 100644 index 00000000..6d639f68 --- /dev/null +++ b/src/loader/translations/trayplugin-loader_es_ES.ts @@ -0,0 +1,17 @@ + + + + + QuickPluginItem + + + Remove from dock + + + + + Pin to dock + + + + diff --git a/src/loader/translations/trayplugin-loader_zh_CN.ts b/src/loader/translations/trayplugin-loader_zh_CN.ts new file mode 100644 index 00000000..a7a2c71c --- /dev/null +++ b/src/loader/translations/trayplugin-loader_zh_CN.ts @@ -0,0 +1,17 @@ + + + + + QuickPluginItem + + + Remove from dock + 从任务栏移除 + + + + Pin to dock + 固定到任务栏 + + +