diff --git a/.gitignore b/.gitignore index 9542729..25eed59 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ CMakeLists.txt.user build/ + +# translations files +*.qm diff --git a/CMakeLists.txt b/CMakeLists.txt index 8cc2c55..fd01c0d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,3 +7,14 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) add_subdirectory(src) add_subdirectory(misc) + +if (NOT (${CMAKE_BUILD_TYPE} MATCHES "Debug")) + # generate qm + execute_process(COMMAND bash "translate_generation.sh" + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) +endif () + +# qm files +file(GLOB QM_FILES "translations/*.qm") +install(FILES ${QM_FILES} + DESTINATION share/dde-application-manager/translations) diff --git a/src/modules/dock/entry.cpp b/src/modules/dock/entry.cpp index 795d889..ba4d204 100644 --- a/src/modules/dock/entry.cpp +++ b/src/modules/dock/entry.cpp @@ -741,7 +741,7 @@ AppMenuItem Entry::getMenuItemLaunch() if (hasWindow()) { itemName = getName(); } else { - itemName = "Open"; + itemName = tr("Open"); } AppMenuAction fn = [this](uint32_t timestamp) { @@ -780,7 +780,7 @@ AppMenuItem Entry::getMenuItemCloseAll() }; AppMenuItem item; - item.text = "Close All"; + item.text = tr("Close All"); item.action = fn; item.isActive = true; return item; @@ -795,7 +795,7 @@ AppMenuItem Entry::getMenuItemForceQuit() }; AppMenuItem item; - item.text = "Force Quit"; + item.text = tr("Force Quit"); item.action = fn; item.isActive = active; return item; @@ -817,7 +817,7 @@ AppMenuItem Entry::getMenuItemForceQuitAndroid() } AppMenuItem item; - item.text = "Force Quit"; + item.text = tr("Force Quit"); item.action = fn; item.isActive = active; return item; @@ -826,7 +826,7 @@ AppMenuItem Entry::getMenuItemForceQuitAndroid() AppMenuItem Entry::getMenuItemDock() { AppMenuItem item; - item.text = "Dock"; + item.text = tr("Dock"); item.action = [this](uint32_t) { qInfo() << "do MenuItem: Dock"; requestDock(); @@ -839,7 +839,7 @@ AppMenuItem Entry::getMenuItemDock() AppMenuItem Entry::getMenuItemUndock() { AppMenuItem item; - item.text = "Undock"; + item.text = tr("Undock"); item.action = [this](uint32_t) { qInfo() << "do MenuItem: Undock"; requestUndock(); @@ -852,7 +852,7 @@ AppMenuItem Entry::getMenuItemUndock() AppMenuItem Entry::getMenuItemAllWindows() { AppMenuItem item; - item.text = "All Windows"; + item.text = tr("All Windows"); item.action = [this](uint32_t) { qInfo() << "do MenuItem: All Windows"; presentWindows(); diff --git a/src/service/CMakeLists.txt b/src/service/CMakeLists.txt index 04f8f12..228d613 100644 --- a/src/service/CMakeLists.txt +++ b/src/service/CMakeLists.txt @@ -59,4 +59,6 @@ target_include_directories(deepin-application-manager PUBLIC ${Qt5Gui_PRIVATE_INCLUDE_DIRS} ) +# binary file install(TARGETS deepin-application-manager DESTINATION bin) + diff --git a/src/service/main.cpp b/src/service/main.cpp index a82dea7..42e7950 100644 --- a/src/service/main.cpp +++ b/src/service/main.cpp @@ -72,6 +72,10 @@ int main(int argc, char *argv[]) DLogManager::registerConsoleAppender(); DLogManager::registerFileAppender(); + QTranslator *translator = new QTranslator(); + translator->load(QString("/usr/share/dde-application-manager/translations/dde-application-manager_%1.qm").arg(QLocale::system().name())); + QCoreApplication::installTranslator(translator); + new AppManager(ApplicationManager::instance()); new LauncherManager(ApplicationManager::instance()); new DockManager(ApplicationManager::instance()); diff --git a/translate_generation.sh b/translate_generation.sh new file mode 100755 index 0000000..c908092 --- /dev/null +++ b/translate_generation.sh @@ -0,0 +1,11 @@ +#!/bin/bash +# this file is used to auto-generate .qm file from .ts file. +# author: shibowen at linuxdeepin.com + +ts_list=(`ls translations/*.ts`) + +for ts in "${ts_list[@]}" +do + printf "\nprocess ${ts}\n" + lrelease "${ts}" +done