mirror of
https://invent.kde.org/network/falkon.git
synced 2024-11-11 01:22:10 +01:00
Extract and install Python translations
This commit is contained in:
parent
0d51e0ce32
commit
c991df30f4
46
cmake/build-po-files.cmake
Normal file
46
cmake/build-po-files.cmake
Normal 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()
|
|
@ -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
11
src/scripts/Messages.sh
Normal 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
|
Loading…
Reference in New Issue
Block a user