~jeremywootten/pantheon-files/various-fixes-part3-fix-network-file-operations

509 by xapantu
Re-add translations system with some new cmake macro, 'make pot' to re-generate the .pot
1
# Translations.cmake, CMake macros written for Marlin, feel free to re-use them
2
3
macro(add_translations_directory NLS_PACKAGE)
4
    add_custom_target (i18n ALL COMMENT “Building i18n messages.”)
5
    find_program (MSGFMT_EXECUTABLE msgfmt)
1552 by Cody Garver
Update CMake modules to revision 15 of lp:~elementary-apps/+junk/cmake-modules
6
    # be sure that all languages are present
7
    set (LANGUAGES_NEEDED af am ar ast az be bg bn bs ca ckb cs da de el en_AU en_CA en_GB eo es et eu fa fi fr fr_CA gl he hi hr hu hy id it ja ka ko ky lb lo lt lv ml mr ms nb nl nn pl pt pt_BR ro ru rue si sk sl sma sq sr sv sw ta te th tr uk vi zh_CN zh_HK zh_TW)
8
    foreach (LANGUAGE_NEEDED ${LANGUAGES_NEEDED})
9
        if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${LANGUAGE_NEEDED}.po)
10
            file (APPEND ${CMAKE_CURRENT_SOURCE_DIR}/${LANGUAGE_NEEDED}.po "msgid \"\"\n")
11
            file (APPEND ${CMAKE_CURRENT_SOURCE_DIR}/${LANGUAGE_NEEDED}.po "msgstr \"\"\n")
12
            file (APPEND ${CMAKE_CURRENT_SOURCE_DIR}/${LANGUAGE_NEEDED}.po "\"MIME-Version: 1.0\\n\"\n")
13
            file (APPEND ${CMAKE_CURRENT_SOURCE_DIR}/${LANGUAGE_NEEDED}.po "\"Content-Type: text/plain; charset=UTF-8\\n\"\n")
14
        endif ()
15
    endforeach (LANGUAGE_NEEDED ${LANGUAGES_NEEDED})
16
    # generate .mo from .po
509 by xapantu
Re-add translations system with some new cmake macro, 'make pot' to re-generate the .pot
17
    file (GLOB PO_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.po)
18
    foreach (PO_INPUT ${PO_FILES})
19
        get_filename_component (PO_INPUT_BASE ${PO_INPUT} NAME_WE)
20
        set (MO_OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${PO_INPUT_BASE}.mo)
21
        add_custom_command (TARGET i18n COMMAND ${MSGFMT_EXECUTABLE} -o ${MO_OUTPUT} ${PO_INPUT})
22
23
        install (FILES ${MO_OUTPUT} DESTINATION
24
            share/locale/${PO_INPUT_BASE}/LC_MESSAGES
25
            RENAME ${NLS_PACKAGE}.mo)
26
    endforeach (PO_INPUT ${PO_FILES})
27
endmacro(add_translations_directory)
28
29
macro(add_translations_catalog NLS_PACKAGE)
30
    add_custom_target (pot COMMENT “Building translation catalog.”)
31
    find_program (XGETTEXT_EXECUTABLE xgettext)
32
33
    set(C_SOURCE "")
1552 by Cody Garver
Update CMake modules to revision 15 of lp:~elementary-apps/+junk/cmake-modules
34
    set(VALA_SOURCE "")
35
    set(GLADE_SOURCE "")
509 by xapantu
Re-add translations system with some new cmake macro, 'make pot' to re-generate the .pot
36
37
    foreach(FILES_INPUT ${ARGN})
1552 by Cody Garver
Update CMake modules to revision 15 of lp:~elementary-apps/+junk/cmake-modules
38
        set(BASE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${FILES_INPUT})
39
40
        file (GLOB_RECURSE SOURCE_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/ ${BASE_DIRECTORY}/*.c)
41
        foreach(C_FILE ${SOURCE_FILES})
42
            set(C_SOURCE ${C_SOURCE} ${C_FILE})
43
        endforeach()
44
45
        file (GLOB_RECURSE SOURCE_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/ ${BASE_DIRECTORY}/*.vala)
46
        foreach(VALA_C_FILE ${SOURCE_FILES})
47
            set(VALA_SOURCE ${VALA_SOURCE} ${VALA_C_FILE})
48
        endforeach()
49
50
        file (GLOB_RECURSE SOURCE_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/ ${BASE_DIRECTORY}/*.ui)
51
        foreach(GLADE_C_FILE ${SOURCE_FILES})
52
            set(GLADE_SOURCE ${GLADE_SOURCE} ${GLADE_C_FILE})
509 by xapantu
Re-add translations system with some new cmake macro, 'make pot' to re-generate the .pot
53
        endforeach()
54
    endforeach()
55
1552 by Cody Garver
Update CMake modules to revision 15 of lp:~elementary-apps/+junk/cmake-modules
56
    set(BASE_XGETTEXT_COMMAND
57
        ${XGETTEXT_EXECUTABLE} -d ${NLS_PACKAGE}
58
        -o ${CMAKE_CURRENT_SOURCE_DIR}/${NLS_PACKAGE}.pot
59
        --add-comments="/" --keyword="_" --keyword="N_" --keyword="C_:1c,2" --keyword="NC_:1c,2" --keyword="ngettext:1,2" --keyword="Q_:1g" --from-code=UTF-8)
60
61
   set(CONTINUE_FLAG "")
62
63
    IF(NOT "${C_SOURCE}" STREQUAL "")
64
        add_custom_command(TARGET pot WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMAND ${BASE_XGETTEXT_COMMAND} ${C_SOURCE})
65
        set(CONTINUE_FLAG "-j")
66
    ENDIF()
67
68
    IF(NOT "${VALA_SOURCE}" STREQUAL "")
69
        add_custom_command(TARGET pot WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMAND ${BASE_XGETTEXT_COMMAND} ${CONTINUE_FLAG} -LC\# ${VALA_SOURCE})
70
        set(CONTINUE_FLAG "-j")
71
    ENDIF()
72
73
    IF(NOT "${GLADE_SOURCE}" STREQUAL "")
74
        add_custom_command (TARGET pot WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMAND ${BASE_XGETTEXT_COMMAND} ${CONTINUE_FLAG} -LGlade ${GLADE_SOURCE})
75
    ENDIF()  
76
endmacro()