diff --git a/step/CMakeLists.txt b/step/CMakeLists.txt --- a/step/CMakeLists.txt +++ b/step/CMakeLists.txt @@ -60,7 +60,6 @@ add_definitions (-fexceptions) endif(STEP_WITH_QALCULATE) -qt5_add_resources(step_SRCS data/resources.qrc) ki18n_wrap_ui(step_SRCS ${step_UIS}) kconfig_add_kcfg_files(step_SRCS ${step_KCFGS}) diff --git a/step/data/CMakeLists.txt b/step/data/CMakeLists.txt --- a/step/data/CMakeLists.txt +++ b/step/data/CMakeLists.txt @@ -1,69 +1,62 @@ -if(CURRENT_LANG) - set(STEP_BUILD_TRANSLATIONS 1) -endif(CURRENT_LANG) +find_package(PythonInterp) +set(EXTRACTXML_EXECUTABLE ${CMAKE_CURRENT_SOURCE_DIR}/extractxml) -if(STEP_BUILD_TRANSLATIONS) +if(PYTHON_EXECUTABLE) - find_package(PythonInterp) - set(EXTRACTXML_EXECUTABLE ${CMAKE_CURRENT_SOURCE_DIR}/extractxml) + # STEP_PROCESS_XML_TRANSLATION( [ALL] [INSTALL_DESTINATION ] ...) + macro(STEP_PROCESS_XML_TRANSLATION _lang _po_file _extractxml_args) + set(_xmlfiles_tr) + set(_args ${ARGN}) + set(_addToAll) + set(_installDest) - if(PYTHON_EXECUTABLE) + list(GET _args 0 _tmp) + if("${_tmp}" STREQUAL "ALL") + set(_addToAll ALL) + list(REMOVE_AT _args 0) + endif("${_tmp}" STREQUAL "ALL") - # STEP_PROCESS_XML_TRANSLATION( [ALL] [INSTALL_DESTINATION ] ...) - macro(STEP_PROCESS_XML_TRANSLATION _lang _po_file _extractxml_args) - set(_xmlfiles_tr) - set(_args ${ARGN}) - set(_addToAll) - set(_installDest) + list(GET _args 0 _tmp) + if("${_tmp}" STREQUAL "INSTALL_DESTINATION") + list(GET _args 1 _installDest ) + list(REMOVE_AT _args 0 1) + endif("${_tmp}" STREQUAL "INSTALL_DESTINATION") - list(GET _args 0 _tmp) - if("${_tmp}" STREQUAL "ALL") - set(_addToAll ALL) - list(REMOVE_AT _args 0) - endif("${_tmp}" STREQUAL "ALL") + if(EXISTS ${_po_file}) + get_filename_component(_po_file_we ${_po_file} NAME_WE) + set(_mo_file ${CMAKE_CURRENT_BINARY_DIR}/${_po_file_we}.mo) + add_custom_command(OUTPUT ${_mo_file} + COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_mo_file} ${_po_file} + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + DEPENDS ${_po_file} + ) - list(GET _args 0 _tmp) - if("${_tmp}" STREQUAL "INSTALL_DESTINATION") - list(GET _args 1 _installDest ) - list(REMOVE_AT _args 0 1) - endif("${_tmp}" STREQUAL "INSTALL_DESTINATION") + foreach(_xmlfile ${_args}) + get_filename_component(_xmlfile_basename ${_xmlfile} NAME) + set(_xmlfile_tr ${CMAKE_CURRENT_BINARY_DIR}/${_xmlfile_basename}) + set(_extractxml_args_copy ${_extractxml_args}) + separate_arguments(_extractxml_args_copy) + add_custom_command(OUTPUT ${_xmlfile_tr} + COMMAND ${EXTRACTXML_EXECUTABLE} --translate --mo-file=${_mo_file} --output-dir=${CMAKE_CURRENT_BINARY_DIR} ${_extractxml_args_copy} ${_xmlfile} + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + DEPENDS ${_xmlfile} ${_mo_file} + ) + if(_installDest) + install(FILES ${_xmlfile_tr} DESTINATION ${_installDest}/${_lang}) + endif(_installDest) + list(APPEND _xmlfiles_tr ${_xmlfile_tr}) + endforeach(_xmlfile) - if(EXISTS ${_po_file}) - get_filename_component(_po_file_we ${_po_file} NAME_WE) - set(_mo_file ${CMAKE_CURRENT_BINARY_DIR}/${_po_file_we}.mo) - add_custom_command(OUTPUT ${_mo_file} - COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_mo_file} ${_po_file} - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - DEPENDS ${_po_file} - ) + get_filename_component(DirId ${CMAKE_CURRENT_SOURCE_DIR} NAME) + add_custom_target(${DirId}_${_po_file_we}_xmlfiles_tr ${_addToAll} DEPENDS ${_xmlfiles_tr}) + endif(EXISTS ${_po_file}) + endmacro(STEP_PROCESS_XML_TRANSLATION) - foreach(_xmlfile ${_args}) - get_filename_component(_xmlfile_basename ${_xmlfile} NAME) - set(_xmlfile_tr ${CMAKE_CURRENT_BINARY_DIR}/${_xmlfile_basename}) - set(_extractxml_args_copy ${_extractxml_args}) - separate_arguments(_extractxml_args_copy) - add_custom_command(OUTPUT ${_xmlfile_tr} - COMMAND ${EXTRACTXML_EXECUTABLE} --translate --mo-file=${_mo_file} --output-dir=${CMAKE_CURRENT_BINARY_DIR} ${_extractxml_args_copy} ${_xmlfile} - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - DEPENDS ${_xmlfile} ${_mo_file} - ) - if(_installDest) - install(FILES ${_xmlfile_tr} DESTINATION ${_installDest}/${_lang}) - endif(_installDest) - list(APPEND _xmlfiles_tr ${_xmlfile_tr}) - endforeach(_xmlfile) - - add_custom_target(xmlfiles_tr ${_addToAll} DEPENDS ${_xmlfiles_tr}) - endif(EXISTS ${_po_file}) - endmacro(STEP_PROCESS_XML_TRANSLATION) - - else(PYTHON_EXECUTABLE) - message("Python executable NOT found - Step data translations will not be build") - macro(STEP_PROCESS_XML_TRANSLATION) - endmacro(STEP_PROCESS_XML_TRANSLATION) - endif(PYTHON_EXECUTABLE) - -endif(STEP_BUILD_TRANSLATIONS) +else(PYTHON_EXECUTABLE) + message("Python executable NOT found - Step data translations will not be build") + macro(STEP_PROCESS_XML_TRANSLATION) + endmacro(STEP_PROCESS_XML_TRANSLATION) +endif(PYTHON_EXECUTABLE) add_subdirectory(objectinfo) add_subdirectory(examples) diff --git a/step/data/Messages.sh b/step/data/Messages.sh --- a/step/data/Messages.sh +++ b/step/data/Messages.sh @@ -10,9 +10,8 @@ --parse-unquoted='--context=HTML:%(tag)s --tag-regex=^(?:title|body|p|h[1-6])$ --recursive --strip' \ ./examples/*.step ./tutorials/*.step --output=examples.cpp -# Temporary commented-out -#$XGETTEXT objinfo.cpp -o $podir/step_objinfo_files.pot -#$XGETTEXT examples.cpp -o $podir/step_example_files.pot +$XGETTEXT objinfo.cpp -o $podir/step_objinfo_files.pot +$XGETTEXT examples.cpp -o $podir/step_example_files.pot rm -f objinfo.cpp rm -f examples.cpp diff --git a/step/data/examples/CMakeLists.txt b/step/data/examples/CMakeLists.txt --- a/step/data/examples/CMakeLists.txt +++ b/step/data/examples/CMakeLists.txt @@ -1,18 +1,15 @@ FILE(GLOB STEP_EXAMPLE_FILES "*.step") -if(STEP_BUILD_TRANSLATIONS) - - set(po_file ${CMAKE_SOURCE_DIR}/messages/kdeedu/step_example_files.po) - STEP_PROCESS_XML_TRANSLATION(${CURRENT_LANG} ${po_file} - "--context='%(tag)s' --tag=name --tag=text --unquote --parse-unquoted='--context=HTML:%(tag)s --tag-regex=^(?:title|body|p|h[1-6])$$ --recursive --strip'" - ALL INSTALL_DESTINATION ${KDE_INSTALL_DATADIR}/step/examples - ${STEP_EXAMPLE_FILES}) - -else(STEP_BUILD_TRANSLATIONS) - - install(FILES +install(FILES ${STEP_EXAMPLE_FILES} DESTINATION ${KDE_INSTALL_DATADIR}/step/examples) -endif(STEP_BUILD_TRANSLATIONS) - +FILE(GLOB po_files "${CMAKE_SOURCE_DIR}/po/*/step_example_files.po") +foreach(po_file ${po_files}) + get_filename_component(po_dir ${po_file} DIRECTORY) + get_filename_component(CURRENT_LANG ${po_dir} NAME) + STEP_PROCESS_XML_TRANSLATION(${CURRENT_LANG} ${po_file} + "--context='%(tag)s' --tag=name --tag=text --unquote --parse-unquoted='--context=HTML:%(tag)s --tag-regex=^(?:title|body|p|h[1-6])$$ --recursive --strip'" + ALL INSTALL_DESTINATION ${KDE_INSTALL_DATADIR}/step/examples + ${STEP_EXAMPLE_FILES}) +endforeach() diff --git a/step/data/objectinfo/CMakeLists.txt b/step/data/objectinfo/CMakeLists.txt --- a/step/data/objectinfo/CMakeLists.txt +++ b/step/data/objectinfo/CMakeLists.txt @@ -1,10 +1,15 @@ FILE(GLOB INFO_HTML_FILES "*.html") -if(STEP_BUILD_TRANSLATIONS) +install(FILES + ${INFO_HTML_FILES} + DESTINATION ${KDE_INSTALL_DATADIR}/step/objinfo) - set(po_file ${CMAKE_SOURCE_DIR}/messages/kdeedu/step_objinfo_files.po) +FILE(GLOB po_files "${CMAKE_SOURCE_DIR}/po/*/step_objinfo_files.po") +foreach(po_file ${po_files}) + get_filename_component(po_dir ${po_file} DIRECTORY) + get_filename_component(CURRENT_LANG ${po_dir} NAME) STEP_PROCESS_XML_TRANSLATION(${CURRENT_LANG} ${po_file} - "--context='%(filename)s:%(tag)s' --tag-regex='^(?:title|body|p|h[1-6])$$' --recursive --strip" - ALL INSTALL_DESTINATION ${KDE_INSTALL_DATADIR}/step/objinfo - ${INFO_HTML_FILES}) -endif(STEP_BUILD_TRANSLATIONS) + "--context='%(filename)s:%(tag)s' --tag-regex='^(?:title|body|p|h[1-6])$$' --recursive --strip" + ALL INSTALL_DESTINATION ${KDE_INSTALL_DATADIR}/step/objinfo/l10n + ${INFO_HTML_FILES}) +endforeach() diff --git a/step/data/resources.qrc b/step/data/resources.qrc deleted file mode 100644 --- a/step/data/resources.qrc +++ /dev/null @@ -1,23 +0,0 @@ - - - objectinfo/anchor.html - objectinfo/box.html - objectinfo/chargedparticle.html - objectinfo/coulombforce.html - objectinfo/disk.html - objectinfo/gas.html - objectinfo/gasljforce.html - objectinfo/gasparticle.html - objectinfo/gravitationforce.html - objectinfo/linearmotor.html - objectinfo/meter.html - objectinfo/note.html - objectinfo/particle.html - objectinfo/pin.html - objectinfo/polygon.html - objectinfo/softbody.html - objectinfo/spring.html - objectinfo/weightforce.html - objectinfo/world.html - - diff --git a/step/data/tutorials/CMakeLists.txt b/step/data/tutorials/CMakeLists.txt --- a/step/data/tutorials/CMakeLists.txt +++ b/step/data/tutorials/CMakeLists.txt @@ -1,18 +1,15 @@ FILE(GLOB STEP_TUTORIALS_FILES "*.step") -if(STEP_BUILD_TRANSLATIONS) - - set(po_file ${CMAKE_SOURCE_DIR}/messages/kdeedu/step_example_files.po) - STEP_PROCESS_XML_TRANSLATION(${CURRENT_LANG} ${po_file} - "--context='%(tag)s' --tag=name --tag=text --unquote --parse-unquoted='--context=HTML:%(tag)s --tag-regex=^(?:title|body|p|h[1-6])$$ --recursive --strip'" - ALL INSTALL_DESTINATION ${KDE_INSTALL_DATADIR}/step/tutorials - ${STEP_TUTORIALS_FILES}) - -else(STEP_BUILD_TRANSLATIONS) - - install(FILES +install(FILES ${STEP_TUTORIALS_FILES} DESTINATION ${KDE_INSTALL_DATADIR}/step/tutorials) -endif(STEP_BUILD_TRANSLATIONS) - +FILE(GLOB po_files "${CMAKE_SOURCE_DIR}/po/*/step_example_files.po") +foreach(po_file ${po_files}) + get_filename_component(po_dir ${po_file} DIRECTORY) + get_filename_component(CURRENT_LANG ${po_dir} NAME) + STEP_PROCESS_XML_TRANSLATION(${CURRENT_LANG} ${po_file} + "--context='%(tag)s' --tag=name --tag=text --unquote --parse-unquoted='--context=HTML:%(tag)s --tag-regex=^(?:title|body|p|h[1-6])$$ --recursive --strip'" + ALL INSTALL_DESTINATION ${KDE_INSTALL_DATADIR}/step/tutorials + ${STEP_TUTORIALS_FILES}) +endforeach() diff --git a/step/infobrowser.cc b/step/infobrowser.cc --- a/step/infobrowser.cc +++ b/step/infobrowser.cc @@ -153,7 +153,7 @@ "", fromHistory, url ); return; } - QString fileName = QStringLiteral(":/objectinfo/%1.html").arg(className.toLower()); + QString fileName = KLocalizedString::localizedFilePath(QStandardPaths::locate(QStandardPaths::DataLocation, QStringLiteral("objinfo/%1.html").arg(className.toLower()))); if(!fileName.isEmpty()) { QFile file(fileName); if(file.open(QIODevice::ReadOnly | QIODevice::Text)) {