1
mirror of https://invent.kde.org/network/falkon.git synced 2024-12-19 18:26:34 +01:00

Extract and install Python translations

This commit is contained in:
David Rosca 2018-02-27 11:32:29 +01:00
parent 0d51e0ce32
commit c991df30f4
No known key found for this signature in database
GPG Key ID: EBC3FC294452C6D8
3 changed files with 113 additions and 1 deletions

View File

@ -0,0 +1,46 @@
# Copyright (c) 2017 Aleix Pol Gonzalez <aleixpol@kde.org>
# Copyright (c) 2017 Harald Sitter <sitter@kde.org>
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# 3. Neither the name of the University nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
file(GLOB_RECURSE pofiles RELATIVE "${PO_DIR}" "${PO_DIR}/**.po")
foreach(pofile IN LISTS pofiles)
if (NOT pofile MATCHES "_qt.po")
get_filename_component(name ${pofile} NAME_WE)
get_filename_component(langdir ${pofile} DIRECTORY)
set(dest ${COPY_TO}/${langdir}/LC_MESSAGES)
file(MAKE_DIRECTORY ${dest})
message(STATUS "building... ${pofile} to ${name}.mo" )
execute_process(
COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${dest}/${name}.mo ${PO_DIR}/${pofile}
RESULT_VARIABLE code
)
if(code)
message(FATAL_ERROR "failed at generating ${name}.mo")
endif()
endif()
endforeach()

View File

@ -17,6 +17,60 @@ add_executable(falkon ${SRCS})
target_link_libraries(falkon FalkonPrivate)
# Same as ecm_install_po_files_as_qm, but only for *_qt.po
function(install_po_files_as_qm podir)
if (LOCALE_INSTALL_DIR)
set(locale_install_destination "${LOCALE_INSTALL_DIR}")
elseif (CMAKE_INSTALL_LOCALEDIR)
set(locale_install_destination "${CMAKE_INSTALL_LOCALEDIR}")
else()
set(locale_install_destination share/locale)
endif()
file(GLOB po_files "${podir}/*/*_qt.po")
foreach(po_file ${po_files})
get_filename_component(po_dir ${po_file} DIRECTORY)
get_filename_component(lang ${po_dir} NAME)
ecm_process_po_files_as_qm(
${lang} ALL
PO_FILES ${po_file}
INSTALL_DESTINATION ${locale_install_destination}
)
endforeach()
endfunction()
# Same as ki18n_install, but skips *_qt.po
function(install_po_files podir)
if (LOCALE_INSTALL_DIR)
set(locale_install_destination "${LOCALE_INSTALL_DIR}")
elseif (CMAKE_INSTALL_LOCALEDIR)
set(locale_install_destination "${CMAKE_INSTALL_LOCALEDIR}")
else()
set(locale_install_destination share/locale)
endif()
get_filename_component(dirname ${locale_install_destination} NAME)
get_filename_component(destname ${locale_install_destination} DIRECTORY)
get_filename_component(absolute_podir ${podir} ABSOLUTE)
string(MD5 pathmd5 ${absolute_podir})
add_custom_target(pofiles-${pathmd5} ALL
COMMENT "Generating mo..."
COMMAND ${CMAKE_COMMAND}
-DGETTEXT_MSGFMT_EXECUTABLE=${GETTEXT_MSGFMT_EXECUTABLE}
-DCOPY_TO=${CMAKE_CURRENT_BINARY_DIR}/${dirname}
-DPO_DIR=${absolute_podir}
-P ${CMAKE_SOURCE_DIR}/cmake/build-po-files.cmake
)
if (NOT TARGET pofiles)
add_custom_target(pofiles)
endif()
add_dependencies(pofiles pofiles-${pathmd5})
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${dirname})
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${dirname} DESTINATION ${destname})
endfunction()
if (APPLE)
set_target_properties(falkon PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/main/Info.plist)
set_target_properties(falkon PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER "org.kde.falkon")
@ -34,7 +88,8 @@ endif()
if (UNIX AND NOT APPLE)
install(TARGETS falkon ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
install(DIRECTORY ${CMAKE_SOURCE_DIR}/themes DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/falkon)
ecm_install_po_files_as_qm(${CMAKE_SOURCE_DIR}/po)
install_po_files_as_qm(${CMAKE_SOURCE_DIR}/po)
install_po_files(${CMAKE_SOURCE_DIR}/po)
install(PROGRAMS ../../linux/applications/org.kde.falkon.desktop DESTINATION ${KDE_INSTALL_APPDIR})

11
src/scripts/Messages.sh Normal file
View File

@ -0,0 +1,11 @@
#! /bin/sh
XGETTEXT_FLAGS_PYTHON="\
--copyright-holder=This_file_is_part_of_KDE \
--msgid-bugs-address=http://bugs.kde.org \
--from-code=UTF-8 \
-L Python \
-ki18n:1 -ki18np:1,2 \
"
$XGETTEXT_PROGRAM $XGETTEXT_FLAGS_PYTHON `find hellopython -name '*.py'` -o $podir/falkon_hellopython.pot