Computer Assited Medical Intervention Tool Kit  version 3.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
CamiTKTranslate.h
Go to the documentation of this file.
23 
24  if(NOT CAMITK_DISABLE_TRANSLATION) #To allow enabling or not translation, directly from CMake configure command
25 
26  parse_arguments(CAMITK_TRANSLATION
27  "EXTRA_LANGUAGE" # possible lists
28  "USE_FLAGS" # possible options
29  ${ARGN}
30  )
31 
32  #insert here your new language _xx
33  set(CAMITK_TRANSLATIONS _en_fr)
34 
35  if(CAMITK_TRANSLATION_EXTRA_LANGUAGE)
36  set(CAMITK_TRANSLATIONS ${CAMITK_TRANSLATIONS}_${CAMITK_TRANSLATION_EXTRA_LANGUAGE})
37  endif()
38 
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")
44 
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 " ")
49  endforeach()
50 
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 " ")
55  endforeach()
56 
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 " ")
61  endforeach()
62 
63  file(APPEND ${CMAKE_CURRENT_SOURCE_DIR}/resources/translate/translate.pro "\nTRANSLATIONS = ")
64 
65  string(TOLOWER ${CAMITK_TRANSLATIONS} CAMITK_TRANSLATIONS)
66  string(LENGTH ${CAMITK_TRANSLATIONS} longueur)
67  string(FIND ${CAMITK_TRANSLATIONS} "_" index)
68 
69  while(index GREATER -1)
70  string(SUBSTRING ${CAMITK_TRANSLATIONS} ${index} 3 language)
71 
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 " ")
74 
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)
79 
80  string(LENGTH ${CAMITK_TRANSLATIONS} longueur)
81  string(FIND ${CAMITK_TRANSLATIONS} "_" index)
82 
83  endwhile(index GREATER -1)
84 
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)
92 
93  #remove the translate.pro file
94  file(REMOVE ${CMAKE_CURRENT_SOURCE_DIR}/resources/translate/translate.pro)
95 
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)
100  get_directory_name(${CMAKE_CURRENT_SOURCE_DIR} EXTENSION_NAME)
101 
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")
107 
108  file (GLOB QM_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/resources/translate ${CMAKE_CURRENT_SOURCE_DIR}/resources/translate/*.qm)
109  foreach(F ${QM_FILES})
110  file(APPEND ${TRANSLATE_QRC_FILE} "\t\t<file>translate/${F}</file>\n")
111  endforeach(F ${QM_FILES})
112 
113  file(APPEND ${TRANSLATE_QRC_FILE} "\t</qresource>\n")
114  file(APPEND ${TRANSLATE_QRC_FILE} "</RCC>\n")
115 
116  #create the flags.qrc file
117  if(CAMITK_TRANSLATION_USE_FLAGS)
118  file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/resources/flags.qrc "<!DOCTYPE RCC>\n")
119  file(APPEND ${CMAKE_CURRENT_SOURCE_DIR}/resources/flags.qrc "<RCC version=\"1.0\">\n")
120  file(APPEND ${CMAKE_CURRENT_SOURCE_DIR}/resources/flags.qrc "\t<qresource prefix=\"/flags\">\n")
121 
122  file(GLOB PNG_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/resources ${CMAKE_CURRENT_SOURCE_DIR}/resources/flags/16/*.png)
123 
124  foreach(F ${PNG_FILES})
125  file(APPEND ${CMAKE_CURRENT_SOURCE_DIR}/resources/flags.qrc "\t\t<file>${F}</file>\n")
126  endforeach(F ${PNG_FILES})
127 
128  file(APPEND ${CMAKE_CURRENT_SOURCE_DIR}/resources/flags.qrc "\t</qresource>\n")
129  file(APPEND ${CMAKE_CURRENT_SOURCE_DIR}/resources/flags.qrc "</RCC>\n")
130  endif()
131  endif()
132 end(){)
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