24 if(NOT CAMITK_DISABLE_TRANSLATION) #To allow enabling or not translation, directly from
CMake configure command
27 "EXTRA_LANGUAGE" # possible lists
28 "USE_FLAGS" # possible options
32 #
insert here your
new language _xx
33 set(CAMITK_TRANSLATIONS _en_fr)
35 if(CAMITK_TRANSLATION_EXTRA_LANGUAGE)
36 set(CAMITK_TRANSLATIONS ${CAMITK_TRANSLATIONS}_${CAMITK_TRANSLATION_EXTRA_LANGUAGE})
39 #create translate.pro file
40 file (GLOB HEADER_FILES *.h *.hpp)
41 file (GLOB CPP_FILES *.cpp)
42 file (GLOB UI_FILES *.ui)
43 set (FILES_TO_TRANSLATE ${FILES_TO_TRANSLATE} ${CPP_FILES} ${UI_FILES} ${HEADER_FILES} CACHE INTERNAL
"Files to translate")
45 file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/resources/translate/translate.pro
"\nHEADERS = ")
46 foreach(F ${HEADER_FILES})
47 file(APPEND ${CMAKE_CURRENT_SOURCE_DIR}/resources/translate/translate.pro ${F})
48 file(APPEND ${CMAKE_CURRENT_SOURCE_DIR}/resources/translate/translate.pro
" ")
51 file(APPEND ${CMAKE_CURRENT_SOURCE_DIR}/resources/translate/translate.pro
"\nSOURCES = ")
52 foreach(F ${CPP_FILES})
53 file(APPEND ${CMAKE_CURRENT_SOURCE_DIR}/resources/translate/translate.pro ${F})
54 file(APPEND ${CMAKE_CURRENT_SOURCE_DIR}/resources/translate/translate.pro
" ")
57 file(APPEND ${CMAKE_CURRENT_SOURCE_DIR}/resources/translate/translate.pro
"\nFORMS = ")
58 foreach(F ${UI_FILES})
59 file(APPEND ${CMAKE_CURRENT_SOURCE_DIR}/resources/translate/translate.pro ${F})
60 file(APPEND ${CMAKE_CURRENT_SOURCE_DIR}/resources/translate/translate.pro
" ")
63 file(APPEND ${CMAKE_CURRENT_SOURCE_DIR}/resources/translate/translate.pro
"\nTRANSLATIONS = ")
65 string(TOLOWER ${CAMITK_TRANSLATIONS} CAMITK_TRANSLATIONS)
66 string(LENGTH ${CAMITK_TRANSLATIONS} longueur)
67 string(FIND ${CAMITK_TRANSLATIONS}
"_" index)
69 while(index GREATER -1)
70 string(SUBSTRING ${CAMITK_TRANSLATIONS} ${index} 3 language)
72 file(APPEND ${CMAKE_CURRENT_SOURCE_DIR}/resources/translate/translate.pro translate${language}.ts)
73 file(APPEND ${CMAKE_CURRENT_SOURCE_DIR}/resources/translate/translate.pro
" ")
75 string(LENGTH ${CAMITK_TRANSLATIONS} longueur)
76 math(EXPR index
"${index} + 1 ")
77 math(EXPR longueur
"${longueur} - ${index}")
78 string(SUBSTRING ${CAMITK_TRANSLATIONS} ${index} ${longueur} CAMITK_TRANSLATIONS)
80 string(LENGTH ${CAMITK_TRANSLATIONS} longueur)
81 string(FIND ${CAMITK_TRANSLATIONS}
"_" index)
83 endwhile(index GREATER -1)
85 #file (COPY ${CMAKE_CURRENT_BINARY_DIR}/resources/translate/translate.pro DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/resources/translate)
86 #update translate_xx.ts files and create translate_xx.qm files
87 set(WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/resources/translate )
88 find_path(QT_BINARY_DIR NAMES lupdate)
89 execute_process (COMMAND ${QT_BINARY_DIR}/lupdate ${CMAKE_CURRENT_SOURCE_DIR}/resources/translate/translate.pro)
90 find_path(QT_BINARY_DIR NAMES lrelease)
91 execute_process (COMMAND ${QT_BINARY_DIR}/lrelease ${CMAKE_CURRENT_SOURCE_DIR}/resources/translate/translate.pro)
93 #
remove the translate.pro file
94 file(REMOVE ${CMAKE_CURRENT_SOURCE_DIR}/resources/translate/translate.pro)
96 #create the translate_extension_name.qrc file
97 # Remember that the .qrc
filename must be unique
98 # Also, when having loaded all .qrc files within the application, you have to point on
99 # each .qm file separately (i.e. use a specific prefix on each .qrc file)
102 #create the translate.qrc file
103 set(TRANSLATE_QRC_FILE ${CMAKE_CURRENT_SOURCE_DIR}/resources/translate_${EXTENSION_NAME}.qrc)
104 file(WRITE ${TRANSLATE_QRC_FILE}
"<!DOCTYPE RCC>\n")
105 file(APPEND ${TRANSLATE_QRC_FILE}
"<RCC version=\"1.0\">\n")
106 file(APPEND ${TRANSLATE_QRC_FILE}
"\t<qresource prefix=\"/translate_${EXTENSION_NAME}\">\n")
108 file (GLOB QM_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/resources/translate ${CMAKE_CURRENT_SOURCE_DIR}/resources/translate
A pseudo-namespace used to group CMake macros and functions.
OUTFILE execute_process(COMMAND ${CMAKE_COMMAND}-E remove-f ${CAMITK_TEST_COMMAND_OUTPUT_FILE}) set(CAMITK_TEST_COMMAND_ARG"$
Definition: CamiTKTestCompareFile.h:15
camitk_translate()
macro camitk_translate allows to perform the translation of any project (action, component, application and libraries) in several languages.
Definition: CamiTKTranslate.h:22
get_directory_name()
macro get_directory_name set the variable VariableName to the name of the last directory of FullPathD...
Definition: GetDirectoryName.h:14
parse_arguments()
macro parse_arguments is a fork from CMakeMacroParseArguments see http://www.cmake.org/Wiki/CMakeMacroParseArguments for more information
Definition: ParseArguments.h:13
set(CAMITK_TEST_COMMAND_FILE ${CAMITK_TEST_OUTPUT_DIR}/command) set(CAMITK_TEST_COMMAND_RESULT_FILE $
This CMake file run a command and put the output in a given file.
Definition: CamiTKTestPassFile.h:11
Cluster * insert(Atom *a)
Definition: optimizeMesh.cpp:166
string filename
Definition: pml2csv.cpp:109