Bläddra i källkod

added support for translations with KF5::I18n

Malte Veerman 10 år sedan
förälder
incheckning
5df9b7f915
4 ändrade filer med 31 tillägg och 2 borttagningar
  1. 1 1
      CMakeLists.txt
  2. 22 1
      fancontrol-gui/CMakeLists.txt
  3. 6 0
      fancontrol-gui/src/main.cpp
  4. 2 0
      share/src/export.h

+ 1 - 1
CMakeLists.txt

@@ -25,7 +25,7 @@ cmake_policy(SET CMP0037 OLD)
 find_package(ECM REQUIRED)
 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
 
-find_package(KF5 COMPONENTS Auth Config REQUIRED)
+find_package(KF5 COMPONENTS Auth Config I18n Declarative REQUIRED)
 find_package(Qt5DBus)
 
 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)

+ 22 - 1
fancontrol-gui/CMakeLists.txt

@@ -1,6 +1,8 @@
 set(Fancontrol-GUI_SRCS src/main.cpp)
 
-set(LIBRARIES fancontrol-gui-share)
+set(LIBRARIES fancontrol-gui-share
+              KF5::Declarative
+              KF5::I18n)
 
 add_executable(fancontrol-gui ${Fancontrol-GUI_SRCS} ${RESOURCES})
 target_link_libraries(fancontrol-gui ${LIBRARIES})
@@ -10,3 +12,22 @@ install(TARGETS fancontrol-gui RUNTIME DESTINATION ${BIN_INSTALL_DIR})
 install(FILES other/fancontrol-gui.desktop DESTINATION "${SHARE_INSTALL_PREFIX}/applications")
 install(FILES other/fancontrol-gui.svg DESTINATION "${ICON_INSTALL_DIR}/hicolor/scalable/apps")
 install(FILES qml/fancontrol-gui.qml DESTINATION "${SHARE_INSTALL_PREFIX}/fancontrol-gui/qml")
+
+FILE(GLOB MO_FILES po/*.mo)
+
+set(catalogname fancontrol-gui)
+
+FOREACH(MO_FILE ${MO_FILES})
+    
+    GET_FILENAME_COMPONENT(_moFileName ${MO_FILE} NAME)
+    STRING(REGEX REPLACE "^${catalogname}_?" "" _langCode ${_moFileName} )
+    STRING(REGEX REPLACE "\\.mo$" "" _langCode ${_langCode} )
+
+    IF( _langCode )
+    
+        INSTALL(FILES ${MO_FILE} DESTINATION ${LOCALE_INSTALL_DIR}/${_langCode}/LC_MESSAGES/ RENAME ${catalogname}.mo)
+        LIST(APPEND GMO_FILES ${_gmoFile})
+    
+    ENDIF( _langCode )
+
+ENDFOREACH(MO_FILE ${MO_FILES})

+ 6 - 0
fancontrol-gui/src/main.cpp

@@ -21,6 +21,8 @@
 #include <QQmlApplicationEngine>
 #include <QQmlContext>
 #include <QQuickView>
+#include <KDeclarative/KDeclarative>
+#include <KI18n/KLocalizedString>
 
 #include "../share/src/loader.h"
 
@@ -33,6 +35,10 @@ int main(int argc, char *argv[])
     QApplication app(argc, argv);
 
     QQmlApplicationEngine engine;
+    KDeclarative::KDeclarative decl;
+    decl.setDeclarativeEngine(&engine);
+    decl.setupBindings();
+    KLocalizedString::setApplicationDomain("fancontrol-gui");
     Loader loader;
     engine.rootContext()->setContextProperty("loader", &loader);
 #ifndef NO_SYSTEMD

+ 2 - 0
share/src/export.h

@@ -7,5 +7,7 @@
 #  define FANCONTROL_GUI_EXPORT Q_DECL_IMPORT
 #endif
 
+#define TRANSLATION_DOMAIN "fancontrol-gui"
+
 #endif // EXPORT_H