From 8ca6c898abd037530a41a2a4dde545af3a7105f6 Mon Sep 17 00:00:00 2001 From: Spiros Date: Tue, 20 Aug 2024 22:08:20 +0300 Subject: [PATCH] Make translation easier --- .github/workflows/build.yaml | 6 ++-- CMakeLists.txt | 52 +++++++++++++++++++++----------- README.md | 24 +++++++-------- src/resources.qrc | 6 ---- translations/qdiskinfo_el_GR.qm | Bin 8914 -> 0 bytes translations/qdiskinfo_es_ES.qm | Bin 10095 -> 0 bytes translations/qdiskinfo_pt_BR.qm | Bin 9732 -> 0 bytes translations/qdiskinfo_zh_CN.qm | Bin 8067 -> 0 bytes 8 files changed, 49 insertions(+), 39 deletions(-) delete mode 100644 translations/qdiskinfo_el_GR.qm delete mode 100644 translations/qdiskinfo_es_ES.qm delete mode 100644 translations/qdiskinfo_pt_BR.qm delete mode 100644 translations/qdiskinfo_zh_CN.qm diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index f48aba3..1108ab6 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -30,17 +30,17 @@ jobs: - name: Install dependencies for glibc run: | sudo apt update - sudo apt install -y qt6-base-dev qt6-svg-dev libgl1-mesa-dev libxkbcommon-dev libvulkan-dev qmake6 smartmontools + sudo apt install -y qt6-base-dev qt6-tools-dev qt6-svg-dev libgl1-mesa-dev libxkbcommon-dev libvulkan-dev qmake6 smartmontools if: ${{ matrix.clib == 'glibc' }} - name: Install dependencies for musl run: | - apk add git cmake make gcc g++ curl gcompat qt6-qtbase-dev qt6-qtbase-x11 qt6-qtsvg breeze smartmontools + apk add git cmake make gcc g++ curl gcompat qt6-qtbase-dev qt6-qttools-dev qt6-qtbase-x11 qt6-qtsvg breeze smartmontools git config --global --add safe.directory '*' if: ${{ matrix.clib == 'musl' }} - name: Build run: | - cmake -Bbuild -DCMAKE_BUILD_TYPE:STRING=MinSizeRel -DQT_VERSION_MAJOR=6 + cmake -Bbuild -DCMAKE_BUILD_TYPE:STRING=MinSizeRel -DQT_VERSION_MAJOR=6 -DENABLE_TRANSLATIONS=ON cmake --build build - name: Package AppImage diff --git a/CMakeLists.txt b/CMakeLists.txt index 09e96fd..ce704ef 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,35 +14,51 @@ if(NOT DEFINED QT_VERSION_MAJOR) set(QT_VERSION_MAJOR 6) endif() -find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets) +if(ENABLE_TRANSLATIONS) + find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets LinguistTools) +else() + find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets) +endif() set(PROJECT_SOURCES - src/main.cpp - src/mainwindow.cpp - src/mainwindow.h - src/mainwindow.ui - src/custombutton.h - src/custombutton.cpp - src/statusdot.h - src/statusdot.cpp - src/jsonparser.h - src/jsonparser.cpp - src/utils.h - src/utils.cpp - src/resources.qrc + src/main.cpp + src/mainwindow.cpp + src/mainwindow.h + src/mainwindow.ui + src/custombutton.h + src/custombutton.cpp + src/statusdot.h + src/statusdot.cpp + src/jsonparser.h + src/jsonparser.cpp + src/utils.h + src/utils.cpp + src/resources.qrc ) -if (INCLUDE_OPTIONAL_RESOURCES) +if(INCLUDE_OPTIONAL_RESOURCES) set(PROJECT_SOURCES ${PROJECT_SOURCES} dist/theme/theme_resources.qrc) endif() -add_executable(QDiskInfo - ${PROJECT_SOURCES} -) +if(ENABLE_TRANSLATIONS) + file(GLOB TS_FILES "${CMAKE_SOURCE_DIR}/translations/*.ts") + qt_add_translation(QM_FILES ${TS_FILES}) + set(TRANSLATIONS_QRC "${CMAKE_BINARY_DIR}/translations.qrc") + file(WRITE ${TRANSLATIONS_QRC} "\n \n") + foreach(QM_FILE ${QM_FILES}) + get_filename_component(QM_FILE_NAME ${QM_FILE} NAME) + file(APPEND ${TRANSLATIONS_QRC} " ${QM_FILE_NAME}\n") + endforeach() + file(APPEND ${TRANSLATIONS_QRC} " \n\n") + list(APPEND PROJECT_SOURCES ${TRANSLATIONS_QRC}) +endif() + +add_executable(QDiskInfo ${PROJECT_SOURCES}) target_compile_definitions(QDiskInfo PRIVATE PROJECT_VERSION_MAJOR=${QDiskInfo_VERSION_MAJOR} PROJECT_VERSION_MINOR=${QDiskInfo_VERSION_MINOR} + ENABLE_TRANSLATIONS=$ INCLUDE_OPTIONAL_RESOURCES=$ CHARACTER_IS_RIGHT=$ ) diff --git a/README.md b/README.md index 85d5e67..accd733 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # QDiskInfo -QDiskInfo is a frontend for smartctl (part of the smartmontools package). It provides a user experience similar to CrystalDiskInfo. It shows the SMART (Self-Monitoring, Analysis, and Reporting Technology) data of modern hard disk drives. +QDiskInfo is a frontend for smartctl (part of the smartmontools package). It provides a user experience similar to CrystalDiskInfo. It shows the SMART (Self-Monitoring, Analysis, and Reporting Technology) data of modern hard disk drives. ![mockup](https://github.com/edisionnano/QDiskInfo/assets/26039434/e5488f41-6ea2-4304-9ae8-13d5dac7715b) The icon is a modified version of the KDE Partition Manager logo which is available under GPL-3.0+. @@ -10,11 +10,11 @@ The icon is a modified version of the KDE Partition Manager logo which is availa ### Compilation and Runtime Dependencies Ubuntu and based distros (Mint, Pop!_OS, etc.) ```sh -sudo apt install build-essential cmake git libgl1-mesa-dev libxkbcommon-dev qt6-base-dev qt6-wayland smartmontools +sudo apt install build-essential cmake git libgl1-mesa-dev libxkbcommon-dev qt6-base-dev qt6-tools-dev qt6-wayland smartmontools ``` Fedora and derivatives (Nobara Project, etc.) ``` -sudo dnf install cmake git mesa-libGL-devel libxkbcommon-devel qt6-qtbase-devel qt6-qtwayland-devel smartmontools +sudo dnf install cmake git mesa-libGL-devel libxkbcommon-devel qt6-qtbase-devel qt6-qttools-devel qt6-qtwayland-devel smartmontools ``` ### Compilation Steps First you will need to clone the repository and cd inside @@ -25,11 +25,11 @@ Then you must create a build directory and cd inside ```sh mkdir build && cd build ``` -After that use CMake to setup the project, Qt version can also be set to 5 (for example for Ubuntu) +After that use CMake to setup the project. Qt version can also be set to 5 (for example for Ubuntu), translations can also be disabled if you don't want to install the required tools package ```sh -cmake .. -DCMAKE_BUILD_TYPE:STRING=MinSizeRel -DQT_VERSION_MAJOR=6 +cmake .. -DCMAKE_BUILD_TYPE:STRING=MinSizeRel -DQT_VERSION_MAJOR=6 -DENABLE_TRANSLATIONS=ON ``` -And finally compile the project with all the threads +Finally, compile the project with all the threads using ```sh make -j$(nproc) ``` @@ -47,22 +47,22 @@ Currently, QDiskInfo has support for the following languages: - 🇨🇳 Simplified Chinese (zh_CN) You can translate QDiskInfo to your language very easily using [Crowdin](https://crowdin.com/project/qdiskinfo). If your language isn't available on Crowdin, feel free to create a new issue. -

Alternatively you can copy the qdiskinfo_en_US.ts, which can be found inside the translations folder, to the locale you want. For example to qdiskinfo_de_DE.ts for German. Then you can use the QT Linguist application to translate the strings, marking every finished one with a tick. Once you are finished you can compile the .ts file to a .qm file by running this command from the root of the project -```sh -lrelease translations/qdiskinfo_de_DE.ts -qm translations/qdiskinfo_de_DE.qm -``` -Once you do that, add the .qm file on `src/resources.qrc` and compile the project. +

Alternatively you can copy the qdiskinfo_en_US.ts, which can be found inside the translations folder, to the locale you want. For example to qdiskinfo_de_DE.ts for German. Then you can use the QT Linguist application to translate the strings, marking every finished one with a tick. Compile the project with `-DENABLE_TRANSLATIONS=ON` to test your translation.
If your system language differs from the one you are translating to, you can use ```sh LC_ALL=de_DE.UTF-8 ./QDiskInfo ``` to force the app to use the language of your choice. +
If changes were made to the original strings you can use the `lupdate` command to update the .ts files, for example to update the German translation file you would run +```sh +lupdate src/ -ts translations/qdiskinfo_de_DE.ts -noobsolete +``` ## Using CrystalDiskInfo Anime Themes The process is similar to the one above with a few changes:
First you must download the edition of CrystalDiskInfo you want (Aoi for example) in ZIP format from [here](https://crystalmark.info/en/download/), from this archive you shall copy the light and dark backgrounds as well as the good, caution, bad, unknown icons to dist/theme with the same name as the templates there.
Once you do that compile like above but when running CMake do this instead: ```sh -cmake .. -DCMAKE_BUILD_TYPE:STRING=MinSizeRel -DQT_VERSION_MAJOR=6 -DINCLUDE_OPTIONAL_RESOURCES=ON -DCHARACTER_IS_RIGHT=ON +cmake .. -DCMAKE_BUILD_TYPE:STRING=MinSizeRel -DQT_VERSION_MAJOR=6 -DINCLUDE_OPTIONAL_RESOURCES=ON -DCHARACTER_IS_RIGHT=ON -DENABLE_TRANSLATIONS=ON ``` Regarding the `-DCHARACTER_IS_RIGHT` set it to ON for themes where the character is right (like Aoi) or OFF for most other themes. diff --git a/src/resources.qrc b/src/resources.qrc index 79b07a9..3fd7313 100644 --- a/src/resources.qrc +++ b/src/resources.qrc @@ -2,10 +2,4 @@ ../dist/QDiskInfo.svg - - ../translations/qdiskinfo_el_GR.qm - ../translations/qdiskinfo_es_ES.qm - ../translations/qdiskinfo_pt_BR.qm - ../translations/qdiskinfo_zh_CN.qm - diff --git a/translations/qdiskinfo_el_GR.qm b/translations/qdiskinfo_el_GR.qm deleted file mode 100644 index ad2616f8abe4f6548e3fc6f5a91a7f9d6f3efb66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8914 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 diff --git a/translations/qdiskinfo_es_ES.qm b/translations/qdiskinfo_es_ES.qm deleted file mode 100644 index ce0f607f52aada74bf4481d4c40e745bfdae320a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10095 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 X8ekklICSiV;S~pzFCxp7mX!PxgrQ$i diff --git a/translations/qdiskinfo_pt_BR.qm b/translations/qdiskinfo_pt_BR.qm deleted file mode 100644 index 3b584b0bd70aa3eaeae8e55c93fe53da38bf4d71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9732 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