diff --git a/CMakeLists.txt b/CMakeLists.txt index 06f82c4d5..cd1cf7882 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -376,29 +376,6 @@ if (TAGLIB_FOUND) endif(FFMPEG_FOUND AND MPG123_FOUND) endif (TAGLIB_FOUND) -if (NOT CANTATA_TRANSLATIONS) - set(CANTATA_TRANSLATIONS "all") -endif (NOT CANTATA_TRANSLATIONS) - -foreach(trans ${CANTATA_TRANSLATIONS}) - if (trans STREQUAL "all") - set(CANTATA_CS_TRANSLATION 1) - set(CANTATA_DE_TRANSLATION 1) - set(CANTATA_EN_TRANSLATION 1) - set(CANTATA_ES_TRANSLATION 1) - set(CANTATA_PL_TRANSLATION 1) - elseif (trans STREQUAL "cs") - set(CANTATA_CS_TRANSLATION 1) - elseif (trans STREQUAL "de") - set(CANTATA_DE_TRANSLATION 1) - elseif (trans STREQUAL "en") - set(CANTATA_EN_TRANSLATION 1) - elseif (trans STREQUAL "es") - set(CANTATA_ES_TRANSLATION 1) - elseif (trans STREQUAL "pl") - set(CANTATA_PL_TRANSLATION 1) - endif (trans STREQUAL "all") -endforeach(trans ${CANTATA_TRANSLATIONS}) add_subdirectory(po) IF( ENABLE_KDE_SUPPORT ) diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt index 224ca92e5..4a2db511d 100644 --- a/po/CMakeLists.txt +++ b/po/CMakeLists.txt @@ -1,18 +1,18 @@ -if (CANTATA_CS_TRANSLATION) - LIST(APPEND CANTATA_LANGUAGES "cs") -endif (CANTATA_CS_TRANSLATION) +if (NOT CANTATA_TRANSLATIONS) + set(CANTATA_TRANSLATIONS "all") +endif (NOT CANTATA_TRANSLATIONS) -if (CANTATA_DE_TRANSLATION) - LIST(APPEND CANTATA_LANGUAGES "de") -endif (CANTATA_DE_TRANSLATION) - -if (CANTATA_ES_TRANSLATION) - LIST(APPEND CANTATA_LANGUAGES "es") -endif (CANTATA_ES_TRANSLATION) - -if (CANTATA_PL_TRANSLATION) - LIST(APPEND CANTATA_LANGUAGES "pl") -endif (CANTATA_PL_TRANSLATION) +foreach(trans ${CANTATA_TRANSLATIONS}) + if (trans STREQUAL "all") + file(GLOB avail_pofiles *.po) + foreach(PO_FILE ${avail_pofiles}) + get_filename_component(lang ${PO_FILE} NAME_WE) + list(APPEND CANTATA_LANGUAGES "${lang}") + endforeach(PO_FILE ${avail_pofiles}) + else (trans STREQUAL "all") + list(APPEND CANTATA_LANGUAGES "${trans}") + endif (trans STREQUAL "all") +endforeach(trans ${CANTATA_TRANSLATIONS}) IF( ENABLE_KDE_SUPPORT ) find_program(GETTEXT_MSGFMT_EXECUTABLE msgfmt) @@ -25,11 +25,13 @@ IF( ENABLE_KDE_SUPPORT ) set(catalogname cantata) add_custom_target(translations ALL) foreach(_lang ${CANTATA_LANGUAGES}) - set(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo) - add_custom_command(TARGET translations - COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} --check -o ${_gmoFile} ${CMAKE_CURRENT_SOURCE_DIR}/${_lang}.po - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_lang}.po) - install(FILES ${_gmoFile} DESTINATION ${LOCALE_INSTALL_DIR}/${_langCode}/LC_MESSAGES/ RENAME ${catalogname}.mo) + if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${_lang}.po) + set(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo) + add_custom_command(TARGET translations + COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} --check -o ${_gmoFile} ${CMAKE_CURRENT_SOURCE_DIR}/${_lang}.po + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_lang}.po) + install(FILES ${_gmoFile} DESTINATION ${LOCALE_INSTALL_DIR}/${_langCode}/LC_MESSAGES/ RENAME ${catalogname}.mo) + endif (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${_lang}.po) endforeach(_lang ${CANTATA_LANGUAGES}) endif(NOT GETTEXT_MSGFMT_EXECUTABLE) else (ENABLE_KDE_SUPPORT) @@ -44,17 +46,19 @@ else (ENABLE_KDE_SUPPORT) set(catalogname cantata) add_custom_target(translations ALL) foreach(_lang ${CANTATA_LANGUAGES}) - set(_poFile ${_lang}.po) - set(_tsFile ${CMAKE_CURRENT_BINARY_DIR}/cantata_${_lang}.ts) - set(_qmFile ${CMAKE_CURRENT_BINARY_DIR}/cantata_${_lang}.qm) - add_custom_command(TARGET translations - COMMAND ${LCONVERT_EXECUTABLE} ARGS ${_poFile} -o ${_tsFile} -of ts - DEPENDS ${_poFile} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) - add_custom_command(TARGET translations - COMMAND ${LRELEASE_EXECUTABLE} ARGS ${_tsFile} -qm ${_qmFile} - DEPENDS ${_tsFile}) - install(FILES ${_qmFile} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/cantata/translations/) + if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${_lang}.po) + set(_poFile ${_lang}.po) + set(_tsFile ${CMAKE_CURRENT_BINARY_DIR}/cantata_${_lang}.ts) + set(_qmFile ${CMAKE_CURRENT_BINARY_DIR}/cantata_${_lang}.qm) + add_custom_command(TARGET translations + COMMAND ${LCONVERT_EXECUTABLE} ARGS ${_poFile} -o ${_tsFile} -of ts + DEPENDS ${_poFile} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + add_custom_command(TARGET translations + COMMAND ${LRELEASE_EXECUTABLE} ARGS ${_tsFile} -qm ${_qmFile} + DEPENDS ${_tsFile}) + install(FILES ${_qmFile} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/cantata/translations/) + endif (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${_lang}.po) endforeach(_lang ${CANTATA_LANGUAGES}) endif(NOT LCONVERT_EXECUTABLE OR NOT LRELEASE_EXECUTABLE) endif (ENABLE_KDE_SUPPORT)