From 183938ca28bcc031c381753138754f3bd3a2feb4 Mon Sep 17 00:00:00 2001 From: Ryu481 <142620516+Ryu481@users.noreply.github.com> Date: Thu, 3 Jul 2025 12:09:08 +0200 Subject: [PATCH] autodetect system language on MacOS --- dist/mac/Resources/ar.lproj/.gitkeep | 0 dist/mac/Resources/az-Latn.lproj/.gitkeep | 0 dist/mac/Resources/be.lproj/.gitkeep | 0 dist/mac/Resources/bg.lproj/.gitkeep | 0 dist/mac/Resources/ca.lproj/.gitkeep | 0 dist/mac/Resources/cs.lproj/.gitkeep | 0 dist/mac/Resources/da.lproj/.gitkeep | 0 dist/mac/Resources/de.lproj/.gitkeep | 0 dist/mac/Resources/el.lproj/.gitkeep | 0 dist/mac/Resources/en.lproj/.gitkeep | 0 dist/mac/Resources/en_AU.lproj/.gitkeep | 0 dist/mac/Resources/en_GB.lproj/.gitkeep | 0 dist/mac/Resources/eo.lproj/.gitkeep | 0 dist/mac/Resources/es.lproj/.gitkeep | 0 dist/mac/Resources/et.lproj/.gitkeep | 0 dist/mac/Resources/eu.lproj/.gitkeep | 0 dist/mac/Resources/fa.lproj/.gitkeep | 0 dist/mac/Resources/fi.lproj/.gitkeep | 0 dist/mac/Resources/fr.lproj/.gitkeep | 0 dist/mac/Resources/gl.lproj/.gitkeep | 0 dist/mac/Resources/he.lproj/.gitkeep | 0 dist/mac/Resources/hi_IN.lproj/.gitkeep | 0 dist/mac/Resources/hr.lproj/.gitkeep | 0 dist/mac/Resources/hu.lproj/.gitkeep | 0 dist/mac/Resources/hy.lproj/.gitkeep | 0 dist/mac/Resources/id.lproj/.gitkeep | 0 dist/mac/Resources/is.lproj/.gitkeep | 0 dist/mac/Resources/it.lproj/.gitkeep | 0 dist/mac/Resources/ja.lproj/.gitkeep | 0 dist/mac/Resources/ka.lproj/.gitkeep | 0 dist/mac/Resources/ko.lproj/.gitkeep | 0 dist/mac/Resources/lt.lproj/.gitkeep | 0 dist/mac/Resources/ltg.lproj/.gitkeep | 0 dist/mac/Resources/lv_LV.lproj/.gitkeep | 0 dist/mac/Resources/mn_MN.lproj/.gitkeep | 0 dist/mac/Resources/ms_MY.lproj/.gitkeep | 0 dist/mac/Resources/nb.lproj/.gitkeep | 0 dist/mac/Resources/nl.lproj/.gitkeep | 0 dist/mac/Resources/oc.lproj/.gitkeep | 0 dist/mac/Resources/pl.lproj/.gitkeep | 0 dist/mac/Resources/pt_BR.lproj/.gitkeep | 0 dist/mac/Resources/pt_PT.lproj/.gitkeep | 0 dist/mac/Resources/ro.lproj/.gitkeep | 0 dist/mac/Resources/ru.lproj/.gitkeep | 0 dist/mac/Resources/sk.lproj/.gitkeep | 0 dist/mac/Resources/sl.lproj/.gitkeep | 0 dist/mac/Resources/sr.lproj/.gitkeep | 0 dist/mac/Resources/sv.lproj/.gitkeep | 0 dist/mac/Resources/th.lproj/.gitkeep | 0 dist/mac/Resources/tr.lproj/.gitkeep | 0 dist/mac/Resources/uk.lproj/.gitkeep | 0 dist/mac/Resources/uz-Latn.lproj/.gitkeep | 0 dist/mac/Resources/vi.lproj/.gitkeep | 0 dist/mac/Resources/zh_CN.lproj/.gitkeep | 0 dist/mac/Resources/zh_HK.lproj/.gitkeep | 0 dist/mac/Resources/zh_TW.lproj/.gitkeep | 0 .../{Resources => }/qBitTorrentDocument.icns | Bin dist/mac/{Resources => }/qbittorrent_mac.icns | Bin dist/mac/{Resources => }/qt.conf | 0 src/app/CMakeLists.txt | 37 +++++++++++++++--- 60 files changed, 31 insertions(+), 6 deletions(-) delete mode 100644 dist/mac/Resources/ar.lproj/.gitkeep delete mode 100644 dist/mac/Resources/az-Latn.lproj/.gitkeep delete mode 100644 dist/mac/Resources/be.lproj/.gitkeep delete mode 100644 dist/mac/Resources/bg.lproj/.gitkeep delete mode 100644 dist/mac/Resources/ca.lproj/.gitkeep delete mode 100644 dist/mac/Resources/cs.lproj/.gitkeep delete mode 100644 dist/mac/Resources/da.lproj/.gitkeep delete mode 100644 dist/mac/Resources/de.lproj/.gitkeep delete mode 100644 dist/mac/Resources/el.lproj/.gitkeep delete mode 100644 dist/mac/Resources/en.lproj/.gitkeep delete mode 100644 dist/mac/Resources/en_AU.lproj/.gitkeep delete mode 100644 dist/mac/Resources/en_GB.lproj/.gitkeep delete mode 100644 dist/mac/Resources/eo.lproj/.gitkeep delete mode 100644 dist/mac/Resources/es.lproj/.gitkeep delete mode 100644 dist/mac/Resources/et.lproj/.gitkeep delete mode 100644 dist/mac/Resources/eu.lproj/.gitkeep delete mode 100644 dist/mac/Resources/fa.lproj/.gitkeep delete mode 100644 dist/mac/Resources/fi.lproj/.gitkeep delete mode 100644 dist/mac/Resources/fr.lproj/.gitkeep delete mode 100644 dist/mac/Resources/gl.lproj/.gitkeep delete mode 100644 dist/mac/Resources/he.lproj/.gitkeep delete mode 100644 dist/mac/Resources/hi_IN.lproj/.gitkeep delete mode 100644 dist/mac/Resources/hr.lproj/.gitkeep delete mode 100644 dist/mac/Resources/hu.lproj/.gitkeep delete mode 100644 dist/mac/Resources/hy.lproj/.gitkeep delete mode 100644 dist/mac/Resources/id.lproj/.gitkeep delete mode 100644 dist/mac/Resources/is.lproj/.gitkeep delete mode 100644 dist/mac/Resources/it.lproj/.gitkeep delete mode 100644 dist/mac/Resources/ja.lproj/.gitkeep delete mode 100644 dist/mac/Resources/ka.lproj/.gitkeep delete mode 100644 dist/mac/Resources/ko.lproj/.gitkeep delete mode 100644 dist/mac/Resources/lt.lproj/.gitkeep delete mode 100644 dist/mac/Resources/ltg.lproj/.gitkeep delete mode 100644 dist/mac/Resources/lv_LV.lproj/.gitkeep delete mode 100644 dist/mac/Resources/mn_MN.lproj/.gitkeep delete mode 100644 dist/mac/Resources/ms_MY.lproj/.gitkeep delete mode 100644 dist/mac/Resources/nb.lproj/.gitkeep delete mode 100644 dist/mac/Resources/nl.lproj/.gitkeep delete mode 100644 dist/mac/Resources/oc.lproj/.gitkeep delete mode 100644 dist/mac/Resources/pl.lproj/.gitkeep delete mode 100644 dist/mac/Resources/pt_BR.lproj/.gitkeep delete mode 100644 dist/mac/Resources/pt_PT.lproj/.gitkeep delete mode 100644 dist/mac/Resources/ro.lproj/.gitkeep delete mode 100644 dist/mac/Resources/ru.lproj/.gitkeep delete mode 100644 dist/mac/Resources/sk.lproj/.gitkeep delete mode 100644 dist/mac/Resources/sl.lproj/.gitkeep delete mode 100644 dist/mac/Resources/sr.lproj/.gitkeep delete mode 100644 dist/mac/Resources/sv.lproj/.gitkeep delete mode 100644 dist/mac/Resources/th.lproj/.gitkeep delete mode 100644 dist/mac/Resources/tr.lproj/.gitkeep delete mode 100644 dist/mac/Resources/uk.lproj/.gitkeep delete mode 100644 dist/mac/Resources/uz-Latn.lproj/.gitkeep delete mode 100644 dist/mac/Resources/vi.lproj/.gitkeep delete mode 100644 dist/mac/Resources/zh_CN.lproj/.gitkeep delete mode 100644 dist/mac/Resources/zh_HK.lproj/.gitkeep delete mode 100644 dist/mac/Resources/zh_TW.lproj/.gitkeep rename dist/mac/{Resources => }/qBitTorrentDocument.icns (100%) rename dist/mac/{Resources => }/qbittorrent_mac.icns (100%) rename dist/mac/{Resources => }/qt.conf (100%) diff --git a/dist/mac/Resources/ar.lproj/.gitkeep b/dist/mac/Resources/ar.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/az-Latn.lproj/.gitkeep b/dist/mac/Resources/az-Latn.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/be.lproj/.gitkeep b/dist/mac/Resources/be.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/bg.lproj/.gitkeep b/dist/mac/Resources/bg.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/ca.lproj/.gitkeep b/dist/mac/Resources/ca.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/cs.lproj/.gitkeep b/dist/mac/Resources/cs.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/da.lproj/.gitkeep b/dist/mac/Resources/da.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/de.lproj/.gitkeep b/dist/mac/Resources/de.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/el.lproj/.gitkeep b/dist/mac/Resources/el.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/en.lproj/.gitkeep b/dist/mac/Resources/en.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/en_AU.lproj/.gitkeep b/dist/mac/Resources/en_AU.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/en_GB.lproj/.gitkeep b/dist/mac/Resources/en_GB.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/eo.lproj/.gitkeep b/dist/mac/Resources/eo.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/es.lproj/.gitkeep b/dist/mac/Resources/es.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/et.lproj/.gitkeep b/dist/mac/Resources/et.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/eu.lproj/.gitkeep b/dist/mac/Resources/eu.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/fa.lproj/.gitkeep b/dist/mac/Resources/fa.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/fi.lproj/.gitkeep b/dist/mac/Resources/fi.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/fr.lproj/.gitkeep b/dist/mac/Resources/fr.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/gl.lproj/.gitkeep b/dist/mac/Resources/gl.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/he.lproj/.gitkeep b/dist/mac/Resources/he.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/hi_IN.lproj/.gitkeep b/dist/mac/Resources/hi_IN.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/hr.lproj/.gitkeep b/dist/mac/Resources/hr.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/hu.lproj/.gitkeep b/dist/mac/Resources/hu.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/hy.lproj/.gitkeep b/dist/mac/Resources/hy.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/id.lproj/.gitkeep b/dist/mac/Resources/id.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/is.lproj/.gitkeep b/dist/mac/Resources/is.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/it.lproj/.gitkeep b/dist/mac/Resources/it.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/ja.lproj/.gitkeep b/dist/mac/Resources/ja.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/ka.lproj/.gitkeep b/dist/mac/Resources/ka.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/ko.lproj/.gitkeep b/dist/mac/Resources/ko.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/lt.lproj/.gitkeep b/dist/mac/Resources/lt.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/ltg.lproj/.gitkeep b/dist/mac/Resources/ltg.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/lv_LV.lproj/.gitkeep b/dist/mac/Resources/lv_LV.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/mn_MN.lproj/.gitkeep b/dist/mac/Resources/mn_MN.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/ms_MY.lproj/.gitkeep b/dist/mac/Resources/ms_MY.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/nb.lproj/.gitkeep b/dist/mac/Resources/nb.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/nl.lproj/.gitkeep b/dist/mac/Resources/nl.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/oc.lproj/.gitkeep b/dist/mac/Resources/oc.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/pl.lproj/.gitkeep b/dist/mac/Resources/pl.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/pt_BR.lproj/.gitkeep b/dist/mac/Resources/pt_BR.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/pt_PT.lproj/.gitkeep b/dist/mac/Resources/pt_PT.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/ro.lproj/.gitkeep b/dist/mac/Resources/ro.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/ru.lproj/.gitkeep b/dist/mac/Resources/ru.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/sk.lproj/.gitkeep b/dist/mac/Resources/sk.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/sl.lproj/.gitkeep b/dist/mac/Resources/sl.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/sr.lproj/.gitkeep b/dist/mac/Resources/sr.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/sv.lproj/.gitkeep b/dist/mac/Resources/sv.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/th.lproj/.gitkeep b/dist/mac/Resources/th.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/tr.lproj/.gitkeep b/dist/mac/Resources/tr.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/uk.lproj/.gitkeep b/dist/mac/Resources/uk.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/uz-Latn.lproj/.gitkeep b/dist/mac/Resources/uz-Latn.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/vi.lproj/.gitkeep b/dist/mac/Resources/vi.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/zh_CN.lproj/.gitkeep b/dist/mac/Resources/zh_CN.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/zh_HK.lproj/.gitkeep b/dist/mac/Resources/zh_HK.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/zh_TW.lproj/.gitkeep b/dist/mac/Resources/zh_TW.lproj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/dist/mac/Resources/qBitTorrentDocument.icns b/dist/mac/qBitTorrentDocument.icns similarity index 100% rename from dist/mac/Resources/qBitTorrentDocument.icns rename to dist/mac/qBitTorrentDocument.icns diff --git a/dist/mac/Resources/qbittorrent_mac.icns b/dist/mac/qbittorrent_mac.icns similarity index 100% rename from dist/mac/Resources/qbittorrent_mac.icns rename to dist/mac/qbittorrent_mac.icns diff --git a/dist/mac/Resources/qt.conf b/dist/mac/qt.conf similarity index 100% rename from dist/mac/Resources/qt.conf rename to dist/mac/qt.conf diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index 1b4f9ea65..23ef3650c 100644 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -79,6 +79,13 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Darwin") include(FindQtTranslations) qbt_get_qt_translations(QT_TRANSLATIONS) set_source_files_properties(${QT_TRANSLATIONS} PROPERTIES MACOSX_PACKAGE_LOCATION translations) + set_source_files_properties( + "${qBittorrent_SOURCE_DIR}/dist/mac/qt.conf" + "${qBittorrent_SOURCE_DIR}/dist/mac/qBitTorrentDocument.icns" + "${qBittorrent_SOURCE_DIR}/dist/mac/qbittorrent_mac.icns" + PROPERTIES + MACOSX_PACKAGE_LOCATION Resources + ) # provide variables for substitution in dist/mac/Info.plist get_target_property(EXECUTABLE_NAME qbt_app OUTPUT_NAME) # This variable name should be changed once qmake is no longer used. Refer to the discussion in PR #14813 @@ -88,13 +95,31 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Darwin") MACOSX_BUNDLE_BUNDLE_NAME "qBittorrent" MACOSX_BUNDLE_INFO_PLIST ${qBittorrent_SOURCE_DIR}/dist/mac/Info.plist ) - add_custom_command( - TARGET qbt_app - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_directory - "${qBittorrent_SOURCE_DIR}/dist/mac/Resources" - "$/../Resources" + target_sources(qbt_app PRIVATE + ${QT_TRANSLATIONS} + ${qBittorrent_SOURCE_DIR}/dist/mac/qt.conf + ${qBittorrent_SOURCE_DIR}/dist/mac/qBitTorrentDocument.icns + ${qBittorrent_SOURCE_DIR}/dist/mac/qbittorrent_mac.icns ) + file(GLOB TS_FILES "${qBittorrent_SOURCE_DIR}/src/lang/*.ts") + set(LPROJ_FOLDERS "") + foreach(TS_FILE IN LISTS TS_FILES) + string(FIND "${TS_FILE}" "_" POS) + math(EXPR START "${POS} + 1") + string(SUBSTRING "${TS_FILE}" ${START} -1 LPROJ_FOLDER) + string(REPLACE "ts" "lproj" LPROJ_FOLDER "${LPROJ_FOLDER}") + # @ is not valid as a language code for a lproj folder on MacOS + string(REPLACE "@" "-" LPROJ_FOLDER "${LPROJ_FOLDER}") + list(APPEND LPROJ_FOLDERS "${LPROJ_FOLDER}") + endforeach() + foreach(LPROJ_FOLDER IN LISTS LPROJ_FOLDERS) + add_custom_command( + TARGET qbt_app + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E make_directory + "$/../Resources/${LPROJ_FOLDER}" + ) + endforeach() elseif (CMAKE_SYSTEM_NAME STREQUAL "Windows") set_target_properties(qbt_app PROPERTIES WIN32_EXECUTABLE ON) if (MINGW)