summaryrefslogtreecommitdiffstats
path: root/tdescreensaver/kxsconfig/CMakeL10n.txt
diff options
context:
space:
mode:
Diffstat (limited to 'tdescreensaver/kxsconfig/CMakeL10n.txt')
-rw-r--r--tdescreensaver/kxsconfig/CMakeL10n.txt75
1 files changed, 75 insertions, 0 deletions
diff --git a/tdescreensaver/kxsconfig/CMakeL10n.txt b/tdescreensaver/kxsconfig/CMakeL10n.txt
new file mode 100644
index 00000000..653dae08
--- /dev/null
+++ b/tdescreensaver/kxsconfig/CMakeL10n.txt
@@ -0,0 +1,75 @@
+##### verify required programs ##################
+
+if( NOT DEFINED INTLTOOL_EXTRACT_EXECUTABLE )
+ find_program( INTLTOOL_EXTRACT_EXECUTABLE
+ NAMES intltool-extract
+ HINTS "${TDE_PREFIX}/bin"
+ )
+ if( NOT INTLTOOL_EXTRACT_EXECUTABLE )
+ tde_message_fatal( "intltool-extract is required but not found" )
+ endif( )
+endif( )
+
+
+##### prepare xscreensavers data files ##########
+
+message( STATUS "Prepare to extract strings from xscreensaver data files..." )
+
+include( ../../FindXscreensaver )
+
+unset( _xsavers_l10n )
+file( GLOB _xsaver_files
+ RELATIVE "${XSCREENSAVER_CONFIG_DIR}"
+ ${XSCREENSAVER_CONFIG_DIR}*.xml )
+list( SORT _xsaver_files )
+foreach( _xsaver_file ${_xsaver_files} )
+ string( REGEX REPLACE "\\.xml\$" "" _xsaver_name "${_xsaver_file}" )
+ if( NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/ScreenSavers/${_xsaver_name}.desktop" )
+ file( READ "${XSCREENSAVER_CONFIG_DIR}${_xsaver_file}" _xsaver_xml )
+ string( REGEX REPLACE
+ ".*<screensaver[^>]*_label=\"([^\"]*)\".*" "\\1"
+ _xsaver_label "${_xsaver_xml}" )
+ message( STATUS "Create desktop file for ${_xsaver_label} (${_xsaver_name})" )
+ execute_process(
+ COMMAND ldd "${XSCREENSAVER_DIR}/${_xsaver_name}"
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ OUTPUT_VARIABLE _xsaver_libs
+ )
+ set( NAME "${_xsaver_name}" )
+ set( LABEL "${_xsaver_label}" )
+ if( "${_xsaver_libs}" MATCHES "libGL" )
+ set( GL1 "X-TDE-Category=OpenGL Screen Savers" )
+ set( GL2 "X-TDE-Type=OpenGL" )
+ else( )
+ set( GL1 "" )
+ set( GL2 "" )
+ endif( )
+ configure_file(
+ ${CMAKE_CURRENT_SOURCE_DIR}/ScreenSavers/xscreensaver.template
+ ${CMAKE_CURRENT_SOURCE_DIR}/ScreenSavers/${_xsaver_name}.desktop
+ @ONLY )
+ endif( )
+
+ execute_process(
+ COMMAND ${INTLTOOL_EXTRACT_EXECUTABLE}
+ --type=gettext/xml --srcdir ${XSCREENSAVER_CONFIG_DIR} ${_xsaver_file}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ScreenSavers
+ OUTPUT_VARIABLE _xsaver_output
+ )
+ file( RENAME
+ "${CMAKE_CURRENT_SOURCE_DIR}/ScreenSavers/${_xsaver_file}.h"
+ "${CMAKE_CURRENT_SOURCE_DIR}/ScreenSavers/${_xsaver_file}.h.tde_l10n" )
+ list( APPEND _xsavers_l10n "ScreenSavers/${_xsaver_file}.h.tde_l10n" )
+endforeach( )
+
+
+##### create translation templates ##############
+
+tde_l10n_create_template(
+ CATALOG "kxsconfig"
+ SOURCES
+ "."
+ ${_xsavers_l10n}
+ KEYWORDS
+ N_
+)