Updated Russian translation.
[quassel.git] / i18n / CMakeLists.txt
1 # Generate and add translations
2 # The LINGUAS variable can be used to limit that set
3
4 if(QT_LRELEASE_EXECUTABLE)
5   # We always include quassel.ts
6   generate_qm(QM quassel)
7   set(qm_files ${QM})
8
9   # Find more languages
10   file(GLOB avail_tsfiles quassel_*.ts qt_*.ts)
11   foreach(TS_FILE ${avail_tsfiles})
12     get_filename_component(basename ${TS_FILE} NAME_WE)
13     string(REGEX REPLACE "q[^_]+_([a-zA-Z]+)(_.+)?$" "\\1" lang ${basename})
14     # test if we want this
15     set(flg 1)
16     if(LINGUAS)
17       string(REGEX MATCH "${lang}" flg ${LINGUAS})
18     endif(LINGUAS)
19     if(flg)
20       generate_qm(QM ${basename})
21       list(APPEND qm_files ${QM})
22       list(APPEND gen_linguas ${lang})
23     endif(flg)
24   endforeach(TS_FILE ${avail_tsfiles})
25   if(gen_linguas)
26     list(REMOVE_DUPLICATES gen_linguas)
27   endif(gen_linguas)
28   message(STATUS "Including languages: ${gen_linguas}")
29 else(QT_LRELEASE_EXECUTABLE)
30   message(STATUS "WARNING: lrelease not found, you won't have translations!")
31 endif(QT_LRELEASE_EXECUTABLE)
32
33 # For a static build, we need to include Qt translations if available
34 if(STATIC AND QT_TRANSLATIONS_DIR)
35   foreach(LANG ${gen_linguas})
36     file(GLOB lang_files ${QT_TRANSLATIONS_DIR}/qt_${LANG}*.qm)
37     foreach(absfile ${lang_files})
38       get_filename_component(filename ${absfile} NAME)
39       message(STATUS "Importing ${filename}")
40       configure_file(${absfile} ${CMAKE_CURRENT_BINARY_DIR}/${filename} COPYONLY)
41       list(APPEND qm_files ${CMAKE_CURRENT_BINARY_DIR}/${filename})
42     endforeach(absfile ${lang_files})
43   endforeach(LANG ${gen_linguas})
44 endif(STATIC AND QT_TRANSLATIONS_DIR)
45
46 # Write resource file
47 set(resfile ${CMAKE_CURRENT_BINARY_DIR}/i18n.qrc)
48 file(WRITE ${resfile} "<!DOCTYPE RCC><RCC version=\"1.0\">\n"
49                       "<qresource prefix=\"/i18n\">\n")
50 foreach(file ${qm_files})
51   get_filename_component(file ${file} NAME)
52   file(APPEND ${resfile} "    <file>${file}</file>\n")
53 endforeach(file ${qm_files})
54 file(APPEND ${resfile} "</qresource>\n</RCC>\n")
55
56 #add_custom_command(OUTPUT ${resfile} DEPENDS ${qm_files})
57 set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${qm_files} i18n.qrc")
58
59 if(EMBED_DATA)
60   set(COMMON_RCS ${COMMON_RCS} ${resfile} PARENT_SCOPE)
61 else(EMBED_DATA)
62   install(FILES ${qm_files} DESTINATION ${DATA_INSTALL_DIR}/quassel/translations)
63 endif(EMBED_DATA)
64
65 add_custom_target(i18n DEPENDS ${qm_files})