Hello community,

here is the log from the commit of package ki18n for openSUSE:Factory checked 
in at 2017-06-01 16:19:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ki18n (Old)
 and      /work/SRC/openSUSE:Factory/.ki18n.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ki18n"

Thu Jun  1 16:19:34 2017 rev:44 rq:495044 version:5.34.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/ki18n/ki18n.changes      2017-04-30 
21:18:27.634698760 +0200
+++ /work/SRC/openSUSE:Factory/.ki18n.new/ki18n.changes 2017-06-01 
16:19:37.941972406 +0200
@@ -1,0 +2,14 @@
+Mon May 15 13:53:17 CEST 2017 - [email protected]
+
+- Update to 5.34.0
+  * New feature release
+  * For more details please see:
+  * https://www.kde.org/announcements/kde-frameworks-5.34.0.php
+- Changes since 5.33.0:
+  * fix basename handling of po files (kde#379116)
+  * Fix ki18n bootstrapping
+  * Move .po and .ts files look-up to build-time
+  * Docs: correct doctype for non-deprecated root element with ui.rc file 
example
+  * Docs: Use non-deprecated <gui> root element with rc file example
+
+-------------------------------------------------------------------

Old:
----
  ki18n-5.33.0.tar.xz

New:
----
  ki18n-5.34.0.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ki18n.spec ++++++
--- /var/tmp/diff_new_pack.FFeBCf/_old  2017-06-01 16:19:38.485895705 +0200
+++ /var/tmp/diff_new_pack.FFeBCf/_new  2017-06-01 16:19:38.489895142 +0200
@@ -18,9 +18,9 @@
 
 %bcond_without lang
 %define lname   libKF5I18n5
-%define _tar_path 5.33
+%define _tar_path 5.34
 Name:           ki18n
-Version:        5.33.0
+Version:        5.34.0
 Release:        0
 BuildRequires:  cmake >= 3.0
 BuildRequires:  extra-cmake-modules >= %{_tar_path}

++++++ ki18n-5.33.0.tar.xz -> ki18n-5.34.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.33.0/CMakeLists.txt 
new/ki18n-5.34.0/CMakeLists.txt
--- old/ki18n-5.33.0/CMakeLists.txt     2017-04-01 21:34:45.000000000 +0200
+++ new/ki18n-5.34.0/CMakeLists.txt     2017-05-06 13:52:49.000000000 +0200
@@ -1,11 +1,11 @@
 cmake_minimum_required(VERSION 3.0)
 
-set(KF5_VERSION "5.33.0") # handled by release scripts
+set(KF5_VERSION "5.34.0") # handled by release scripts
 project(KI18n VERSION ${KF5_VERSION})
 
 # ECM setup
 include(FeatureSummary)
-find_package(ECM 5.33.0  NO_MODULE)
+find_package(ECM 5.34.0  NO_MODULE)
 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake 
Modules." URL 
"https://projects.kde.org/projects/kdesupport/extra-cmake-modules";)
 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND 
FATAL_ON_MISSING_REQUIRED_PACKAGES)
 
@@ -45,6 +45,9 @@
        PURPOSE "Needed for building KI18n unless glibc is the system libc 
implementation"
 )
 
+# usually is called using find_package(KF5I18n),
+# KF5I18NMacros.cmake needs to know the scripts directory
+set(KF5I18n_DIR ${CMAKE_CURRENT_LIST_DIR}/cmake)
 include(cmake/KF5I18NMacros.cmake)
 
 remove_definitions(-DQT_NO_CAST_FROM_BYTEARRAY)
@@ -82,6 +85,8 @@
 install( FILES
     cmake/KF5I18NMacros.cmake
     cmake/kf5i18nuic.cmake
+    cmake/build-pofiles.cmake
+    cmake/build-tsfiles.cmake
     cmake/ts-pmap-compile.py
     DESTINATION ${CMAKECONFIG_INSTALL_DIR} COMPONENT Devel )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.33.0/autotests/CMakeLists.txt 
new/ki18n-5.34.0/autotests/CMakeLists.txt
--- old/ki18n-5.33.0/autotests/CMakeLists.txt   2017-04-01 21:34:45.000000000 
+0200
+++ new/ki18n-5.34.0/autotests/CMakeLists.txt   2017-05-06 13:52:49.000000000 
+0200
@@ -34,3 +34,16 @@
 target_compile_definitions(ki18n-ktranscriptcleantest PRIVATE 
"KTRANSCRIPT_TESTBUILD")
 target_include_directories(ki18n-ktranscriptcleantest PRIVATE ..)
 endif()
+
+add_test(ki18n_install ${CMAKE_CTEST_COMMAND}
+    --build-and-test
+    "${CMAKE_CURRENT_SOURCE_DIR}/ki18n_install"
+    "${CMAKE_CURRENT_BINARY_DIR}/ki18n_install"
+    --build-generator ${CMAKE_GENERATOR}
+    --build-makeprogram ${CMAKE_MAKE_PROGRAM}
+    --build-target install
+    --build-options
+        "-DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH}"
+        
"-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_CURRENT_BINARY_DIR}/ki18n_install/destdir"
+        "-DKF5I18n_DIR=${KF5I18n_DIR}"
+    --test-command ${CMAKE_COMMAND} -P 
"${CMAKE_CURRENT_SOURCE_DIR}/ki18n_install/test.cmake")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.33.0/autotests/ki18n_install/CMakeLists.txt 
new/ki18n-5.34.0/autotests/ki18n_install/CMakeLists.txt
--- old/ki18n-5.33.0/autotests/ki18n_install/CMakeLists.txt     1970-01-01 
01:00:00.000000000 +0100
+++ new/ki18n-5.34.0/autotests/ki18n_install/CMakeLists.txt     2017-05-06 
13:52:49.000000000 +0200
@@ -0,0 +1,6 @@
+project(ki18n_install)
+cmake_minimum_required(VERSION 3.0)
+
+include(KF5I18NMacros)
+
+ki18n_install(${CMAKE_CURRENT_SOURCE_DIR}/po)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ki18n-5.33.0/autotests/ki18n_install/po/de/plasma_applet_org.kde.plasma.katesessions.po
 
new/ki18n-5.34.0/autotests/ki18n_install/po/de/plasma_applet_org.kde.plasma.katesessions.po
--- 
old/ki18n-5.33.0/autotests/ki18n_install/po/de/plasma_applet_org.kde.plasma.katesessions.po
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/ki18n-5.34.0/autotests/ki18n_install/po/de/plasma_applet_org.kde.plasma.katesessions.po
 2017-05-06 13:52:49.000000000 +0200
@@ -0,0 +1,20 @@
+# Burkhard Lück <[email protected]>, 2014.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n";
+"POT-Creation-Date: 2016-11-19 20:06+0100\n"
+"PO-Revision-Date: 2014-09-10 14:27+0200\n"
+"Last-Translator: Burkhard Lück <[email protected]>\n"
+"Language-Team: German <[email protected]>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Lokalize 1.5\n"
+
+#: applet/contents/ui/katesessions.qml:38
+#, kde-format
+msgid "Kate Sessions"
+msgstr "Kate-Sitzungen"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.33.0/autotests/ki18n_install/test.cmake 
new/ki18n-5.34.0/autotests/ki18n_install/test.cmake
--- old/ki18n-5.33.0/autotests/ki18n_install/test.cmake 1970-01-01 
01:00:00.000000000 +0100
+++ new/ki18n-5.34.0/autotests/ki18n_install/test.cmake 2017-05-06 
13:52:49.000000000 +0200
@@ -0,0 +1,5 @@
+# Make sure file names with dots in them are properly processed.
+# https://bugs.kde.org/show_bug.cgi?id=379116
+if(NOT EXISTS 
"destdir/share/locale/de/LC_MESSAGES/plasma_applet_org.kde.plasma.katesessions.mo")
+    message(SEND_ERROR 
"destdir/share/locale/de/LC_MESSAGES/plasma_applet_org.kde.plasma.katesessions.mo
 was not found")
+endif()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.33.0/cmake/KF5I18NMacros.cmake 
new/ki18n-5.34.0/cmake/KF5I18NMacros.cmake
--- old/ki18n-5.33.0/cmake/KF5I18NMacros.cmake  2017-04-01 21:34:45.000000000 
+0200
+++ new/ki18n-5.34.0/cmake/KF5I18NMacros.cmake  2017-05-06 13:52:49.000000000 
+0200
@@ -57,53 +57,6 @@
    endforeach (_current_FILE)
 endmacro (KI18N_WRAP_UI)
 
-#install the scripts for a given language in the target folder
-#usage: KI18N_INSTALL_TS_FILES("ja" ${scripts_dir})
-function(KI18N_INSTALL_TS_FILES lang scripts_dir)
-   file(GLOB_RECURSE ts_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} 
${scripts_dir}/*)
-   set(pmapc_files)
-   foreach(ts_file ${ts_files})
-      string(REGEX MATCH "\\.svn/" in_svn ${ts_file})
-      if(NOT in_svn)
-         # If ts_file is "path/to/foo/bar.js"
-         # We want subpath to contain "foo"
-         get_filename_component(subpath ${ts_file} DIRECTORY)
-         get_filename_component(subpath ${subpath} NAME)
-         install(FILES ${ts_file}
-                 DESTINATION 
${LOCALE_INSTALL_DIR}/${lang}/LC_SCRIPTS/${subpath})
-         # If current file is a pmap, also install the compiled version.
-         get_filename_component(ts_ext ${ts_file} EXT)
-         if(ts_ext STREQUAL ".pmap")
-            set(pmap_file ${ts_file})
-            get_filename_component(pmap_basename ${ts_file} NAME)
-            set(pmapc_basename "${pmap_basename}c")
-            set(pmapc_file "${lang}-${subpath}-${pmapc_basename}")
-            add_custom_command(OUTPUT ${pmapc_file}
-               COMMAND ${PYTHON_EXECUTABLE}
-               ARGS
-               -B
-               ${_ki18n_pmap_compile_script}
-               ${CMAKE_CURRENT_SOURCE_DIR}/${pmap_file}
-               ${pmapc_file}
-               DEPENDS ${pmap_file})
-            install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${pmapc_file}
-                    DESTINATION 
${LOCALE_INSTALL_DIR}/${lang}/LC_SCRIPTS/${subpath}
-                    RENAME ${pmapc_basename})
-            list(APPEND pmapc_files ${pmapc_file})
-         endif()
-      endif()
-   endforeach()
-   if(pmapc_files)
-      if(NOT TARGET pmapfiles)
-         add_custom_target(pmapfiles)
-      endif()
-      set(pmapc_target "pmapfiles-${lang}")
-      string(REPLACE "@" "_" pmapc_target ${pmapc_target})
-      add_custom_target(${pmapc_target} ALL DEPENDS ${pmapc_files})
-      add_dependencies(pmapfiles ${pmapc_target})
-   endif()
-endfunction()
-
 # KI18N_INSTALL(podir)
 # Search for .po files and scripting modules and install them to the standard
 # location.
@@ -118,10 +71,9 @@
 #          *.js
 #      *.po
 #
-# .po files are passed to the GETTEXT_PROCESS_PO_FILES function from the
-# CMake Gettext module.
+# .po files are passed to build-pofiles.cmake
 #
-# .js files are installed using KI18N_INSTALL_TS_FILES.
+# .js files are installed using build-tsfiles.cmake
 #
 # For example, given the following directory structure:
 #
@@ -137,92 +89,50 @@
 #   ${LOCALE_INSTALL_DIR}/fr/LC_MESSAGES or share/locale/fr/LC_MESSAGES if
 #   ${LOCALE_INSTALL_DIR} is not set.
 # - Installs kfoo.js in ${LOCALE_INSTALL_DIR}/fr/LC_SCRIPTS/kfoo
+#
+# KI18N_INSTALL_TS_FILES() is deprecated, use KI18N_INSTALL()
+#
 function(KI18N_INSTALL podir)
-    file(GLOB lang_dirs "${podir}/*")
     if (NOT LOCALE_INSTALL_DIR)
         set(LOCALE_INSTALL_DIR share/locale)
     endif()
-    foreach(lang_dir ${lang_dirs})
-        get_filename_component(lang ${lang_dir} NAME)
-
-        file(GLOB po_files "${lang_dir}/*.po")
-        _ki18n_gettext_process_po_files(${lang} ALL
-            INSTALL_DESTINATION ${LOCALE_INSTALL_DIR}
-            PO_FILES ${po_files}
-        )
-        ki18n_install_ts_files(${lang} ${lang_dir}/scripts)
-    endforeach()
-endfunction()
 
+    get_filename_component(dirname ${LOCALE_INSTALL_DIR} NAME)
+    get_filename_component(destname ${LOCALE_INSTALL_DIR} DIRECTORY)
 
-###############################################################################
-# The following code has been copied from CMake FindGettext.cmake and adjusted
-# to support processing multiple .po files with the same name in different
-# directories.
-#
-# CMake bug report: http://public.kitware.com/Bug/view.php?id=14904
-#
-# This code comes with the following license notice:
-#=============================================================================
-# Copyright 2007-2009 Kitware, Inc.
-# Copyright 2007      Alexander Neundorf <[email protected]>
-#
-# Distributed under the OSI-approved BSD License (the "License");
-# see accompanying file Copyright.txt for details.
-#
-# This software is distributed WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-# See the License for more information.
-#=============================================================================
-function(_KI18N_GETTEXT_PROCESS_PO_FILES _lang)
-   set(_options ALL)
-   set(_oneValueArgs INSTALL_DESTINATION)
-   set(_multiValueArgs PO_FILES)
-   set(_gmoFiles)
-
-   CMAKE_PARSE_ARGUMENTS(_parsedArguments "${_options}" "${_oneValueArgs}" 
"${_multiValueArgs}" ${ARGN})
-
-   foreach(_current_PO_FILE ${_parsedArguments_PO_FILES})
-      get_filename_component(_name ${_current_PO_FILE} NAME)
-      string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _basename ${_name})
-      set(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}-${_basename}.gmo)
-      add_custom_command(OUTPUT ${_gmoFile}
-            COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} 
${_current_PO_FILE}
-            WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
-            DEPENDS ${_current_PO_FILE}
-         )
-
-      if(_parsedArguments_INSTALL_DESTINATION)
-         install(FILES ${_gmoFile} DESTINATION 
${_parsedArguments_INSTALL_DESTINATION}/${_lang}/LC_MESSAGES/ RENAME 
${_basename}.mo)
-      endif()
-      list(APPEND _gmoFiles ${_gmoFile})
-   endforeach()
-
-
-  if(NOT TARGET pofiles)
-     add_custom_target(pofiles)
-  endif()
-
-  _KI18N_GETTEXT_GET_UNIQUE_TARGET_NAME( pofiles uniqueTargetName)
-
-   if(_parsedArguments_ALL)
-      add_custom_target(${uniqueTargetName} ALL DEPENDS ${_gmoFiles})
-   else()
-      add_custom_target(${uniqueTargetName} DEPENDS ${_gmoFiles})
-   endif()
+    get_filename_component(absolute_podir ${podir} ABSOLUTE)
+    string(MD5 pathmd5 ${absolute_podir})
 
-   add_dependencies(pofiles ${uniqueTargetName})
+    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 ${KF5I18n_DIR}/build-pofiles.cmake
+    )
+    add_custom_target(tsfiles-${pathmd5} ALL
+        COMMENT "Generating ts..."
+        COMMAND ${CMAKE_COMMAND}
+                -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}
+                -D_ki18n_pmap_compile_script=${_ki18n_pmap_compile_script}
+                -DCOPY_TO=${CMAKE_CURRENT_BINARY_DIR}/${dirname}
+                -DPO_DIR=${absolute_podir}
+                -P ${KF5I18n_DIR}/build-tsfiles.cmake
+    )
+
+    if (NOT TARGET pofiles)
+        add_custom_target(pofiles)
+        add_custom_target(tsfiles)
+    endif()
+    add_dependencies(pofiles pofiles-${pathmd5})
+    add_dependencies(tsfiles tsfiles-${pathmd5})
 
+    file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${dirname})
+    install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${dirname} DESTINATION 
${destname})
 endfunction()
 
-function(_KI18N_GETTEXT_GET_UNIQUE_TARGET_NAME _name _unique_name)
-   set(propertyName "_KI18N_GETTEXT_UNIQUE_COUNTER_${_name}")
-   get_property(currentCounter GLOBAL PROPERTY "${propertyName}")
-   if(NOT currentCounter)
-      set(currentCounter 1)
-   endif()
-   set(${_unique_name} "${_name}_${currentCounter}" PARENT_SCOPE)
-   math(EXPR currentCounter "${currentCounter} + 1")
-   set_property(GLOBAL PROPERTY ${propertyName} ${currentCounter} )
+function(ki18n_install_ts_files _lang)
+    message(AUTHOR_WARNING "KI18N_INSTALL_TS_FILES is deprecated!")
+    ki18n_install(${_lang})
 endfunction()
-# End of CMake copied code ####################################################
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.33.0/cmake/build-pofiles.cmake 
new/ki18n-5.34.0/cmake/build-pofiles.cmake
--- old/ki18n-5.33.0/cmake/build-pofiles.cmake  1970-01-01 01:00:00.000000000 
+0100
+++ new/ki18n-5.34.0/cmake/build-pofiles.cmake  2017-05-06 13:52:49.000000000 
+0200
@@ -0,0 +1,48 @@
+# Copyright (c) 2017 Aleix Pol Gonzalez <[email protected]>
+# Copyright (c) 2017 Harald Sitter <[email protected]>
+#
+# 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)
+    get_filename_component(name ${pofile} NAME)
+    # Regex the basename, cmake only allows stripping the longest extension, we
+    # need the shortest or we'll screw up "org.kde.plasma.kittens.po"
+    # https://bugs.kde.org/show_bug.cgi?id=379116
+    string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" name ${name})
+    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()
+endforeach()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.33.0/cmake/build-tsfiles.cmake 
new/ki18n-5.34.0/cmake/build-tsfiles.cmake
--- old/ki18n-5.33.0/cmake/build-tsfiles.cmake  1970-01-01 01:00:00.000000000 
+0100
+++ new/ki18n-5.34.0/cmake/build-tsfiles.cmake  2017-05-06 13:52:49.000000000 
+0200
@@ -0,0 +1,59 @@
+# Copyright (c) 2017 Aleix Pol Gonzalez <[email protected]>
+#
+# 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 ts_files RELATIVE ${PO_DIR} ${PO_DIR}/**/scripts/*)
+foreach(ts_file ${ts_files})
+    if(ts_file MATCHES "\\.svn")
+        continue()
+    endif()
+
+    get_filename_component(subpath ${ts_file} DIRECTORY)
+    string(REPLACE "scripts" "LC_SCRIPTS" subpath ${subpath})
+
+    message(STATUS "copying... ${PO_DIR}/${ts_file} DESTINATION 
${COPY_TO}/${subpath}" )
+    file(COPY ${PO_DIR}/${ts_file} DESTINATION ${COPY_TO}/${subpath})
+endforeach()
+
+file(GLOB_RECURSE pmap_files RELATIVE ${PO_DIR} "${PO_DIR}/**.pmap")
+foreach(pmap_file ${pmap_files})
+    get_filename_component(pmap_basename ${pmap_file} NAME)
+    get_filename_component(subpath ${pmap_file} DIRECTORY)
+    string(REPLACE "scripts" "LC_SCRIPTS" subpath ${subpath})
+    set(pmapc_file "${COPY_TO}/${subpath}/${pmap_basename}c")
+
+    message(STATUS "building... ${pmap_file} to ${pmapc_file}" )
+    execute_process(
+        COMMAND ${PYTHON_EXECUTABLE}
+            -B
+            ${_ki18n_pmap_compile_script}
+            ${PO_DIR}/${pmap_file}
+            ${pmapc_file}
+            RESULT_VARIABLE code
+    )
+    if(code)
+        message(FATAL_ERROR "failed at creating ${pmap_file}...")
+    endif()
+endforeach()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.33.0/docs/programmers-guide.md 
new/ki18n-5.34.0/docs/programmers-guide.md
--- old/ki18n-5.33.0/docs/programmers-guide.md  2017-04-01 21:34:45.000000000 
+0200
+++ new/ki18n-5.34.0/docs/programmers-guide.md  2017-05-06 13:52:49.000000000 
+0200
@@ -1142,8 +1142,8 @@
 by adding the `translationDomain` attribute to the top element:
 
 ~~~
-<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<kpartgui name="foolib_part" version="55" translationDomain="foolib">
+<!DOCTYPE gui SYSTEM "kpartgui.dtd">
+<gui name="foolib_part" version="55" translationDomain="foolib">
 ...
 ~~~
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.33.0/po/bg/ki18n5.po 
new/ki18n-5.34.0/po/bg/ki18n5.po
--- old/ki18n-5.33.0/po/bg/ki18n5.po    2017-04-01 21:34:45.000000000 +0200
+++ new/ki18n-5.34.0/po/bg/ki18n5.po    2017-05-06 13:52:49.000000000 +0200
@@ -1,8 +1,5 @@
-# translation of kdelibs4.po to Bulgarian
-# Bulgarian translation of KDE.
-# This file is licensed under the GPL.
-#
-# $Id:$
+# Copyright (C) YEAR This_file_is_part_of_KDE
+# This file is distributed under the same license as the PACKAGE package.
 #
 # Zlatko Popov <[email protected]>, 2006, 2007, 2008, 2009.
 # Yasen Pramatarov <[email protected]>, 2009, 2010, 2011, 2012, 2013.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.33.0/po/ja/scripts/ki18n5/ki18n5.js 
new/ki18n-5.34.0/po/ja/scripts/ki18n5/ki18n5.js
--- old/ki18n-5.33.0/po/ja/scripts/ki18n5/ki18n5.js     1970-01-01 
01:00:00.000000000 +0100
+++ new/ki18n-5.34.0/po/ja/scripts/ki18n5/ki18n5.js     2017-05-06 
13:52:49.000000000 +0200
@@ -0,0 +1,225 @@
+// kdelibs4.js of Japanese KDE translation
+// Maintained by Chusslove Illich <[email protected]>
+
+// +++ Global dictionary of states.
+// _states_[state], if defined, is set to some value for the state.
+var _states_ = {};
+
+// *** Set global states to values.
+// : setStates(state1 value1 state2 value2 ...)
+// Returns empty string.
+function setStates (/*...*/) {
+    var f = "setStates: ";
+    if (arguments.length % 2 != 0) {
+        throw Error(f + "must have even number of arguments");
+    }
+    for (var i = 0; i < arguments.length; i += 2) {
+        var state = arguments[i];
+        var val = arguments[i + 1];
+        _states_[state] = val;
+    }
+    return "";
+}
+
+// *** Get global state value; empty string if not defined.
+function getState (state) {
+    if (state in _states_) {
+        return _states_[state];
+    }
+    return "";
+}
+
+// *** Set properties to the phrase given by current msgstrf.
+// : setMsgstrProperties(prop1 value1 prop2 value2...)
+// Returns empty string.
+function setMsgstrProperties (/*...*/) {
+    var f = "setMsgstrProperties: ";
+    if (arguments.length % 2 != 0) {
+        throw Error(f + "must have even number of arguments");
+    }
+
+    var phrase = Ts.msgstrf();
+    for (var i = 0; i < arguments.length; i += 2) {
+        var property = arguments[i];
+        var val = arguments[i + 1];
+        Ts.setProp(phrase, property, val);
+    }
+    return "";
+}
+
+// *** Get property value of the given phrase; empty string if not defined.
+function getProperty (phrase, property) {
+    var val = Ts.getProp(phrase, property);
+    if (!val) {
+        return "";
+    }
+    return val;
+}
+
+// *** Get form of the given phrase.
+// A "form" is taken to be a special type of property which defaults to the
+// phrase itself when not defined. Hence, if the requested form has not been
+// defined, phrase is returned as is.
+function getFormProperty (phrase, formm) {
+    var val = Ts.getProp(phrase, formm);
+    if (!val) {
+        return phrase;
+    }
+    return val;
+}
+
+// *** Select one of the strings according to the test value.
+// : selectByValue(testvalue value1 str1 value2 str2 ... defaultstr)
+// Select the string to the first value equal to the test value,
+// or returns default string if there is no match.
+function selectByValue (/*...*/) {
+    var f = "selectByValue: ";
+    if (arguments.length % 2 != 0) {
+        throw Error(f + "must have even number of arguments.");
+    }
+    if (arguments.length < 2)
+        throw Error(f + "must have at least two arguments.");
+
+    var testval = arguments[0];
+    for (var i = 1; i < arguments.length - 1; i += 2) {
+        var val = arguments[i];
+        var str = arguments[i + 1];
+        if (testval == val) {
+            return str;
+        }
+    }
+    // Return the default choice if no other returned before.
+    return arguments[arguments.length - 1];
+}
+
+// *** Return first non-empty string among the arguments, or empty if all 
empty.
+// : firstNonEmpty(str1 str2 ...)
+function firstNonEmpty (/*...*/) {
+    for (var i = 0; i < arguments.length; ++i) {
+        if (arguments[i].length > 0) {
+            return arguments[i];
+        }
+    }
+    return "";
+}
+
+// *** Return the finalized ordinary msgstr.
+function theMsgstr () {
+    return Ts.msgstrf();
+}
+
+// *** If the first character in the phrase is non-Japanese, return
+// the phrase with space added to the start, otherwise return as is.
+function spaceOnDemandLeft (phrase) {
+    if (phrase.length == 0) {
+        return phrase;
+    }
+    var firstChar = phrase.charAt(0);
+    if (firstChar != " " && firstChar < "\u2E00") {
+        return " " + phrase;
+    }
+    return phrase;
+}
+
+// *** If the last character in the phrase is non-Japanese, return
+// the phrase with space added to the end, otherwise return as is.
+function spaceOnDemandRight (phrase) {
+    if (phrase.length == 0) {
+        return phrase;
+    }
+    var lastChar = phrase.charAt(phrase.length - 1);
+    if (lastChar != " " && lastChar < "\u2E00") {
+        return phrase + " ";
+    }
+    return phrase;
+}
+
+// *** Combination of spaceOnDemandLeft and spaceOnDemandRight: both first
+// and last characters are checked, and spaces added where needed.
+function spaceOnDemandBoth (phrase) {
+    return spaceOnDemandLeft(spaceOnDemandRight(phrase));
+}
+
+// *** Strip the accelerator marker, composed of an ASCII alphanumeric
+// within parenthesis (with or without an ampersand in front).
+stripAccRx = /\((&|&amp;)?[a-zA-Z0-9]\)/;
+function stripAccelerator (phrase) {
+    return phrase.replace(stripAccRx, "");
+}
+
+// ==> Exports to PO calls
+Ts.setcall("~set", setStates);
+Ts.setcall("~get", getState);
+Ts.setcall("~setProps", setMsgstrProperties);
+Ts.setcall("~getProp", getProperty);
+Ts.setcall("~getForm", getFormProperty);
+Ts.setcall("~case", selectByValue);
+Ts.setcall("~first", firstNonEmpty);
+Ts.setcall("~this", theMsgstr);
+Ts.setcall("~spacerL", spaceOnDemandLeft);
+Ts.setcall("~spacerR", spaceOnDemandRight);
+Ts.setcall("~spacerB", spaceOnDemandBoth);
+Ts.setcall("~stripAccel", stripAccelerator);
+
+
+// ------------------------------
+// When verbs such as "Configure" are used as the positive answer in question
+// dialogs, "設定する", as opposed to "設定しない (Do Not Configure)", would
+// be more appropriate than "設定". However, it would sound funny if the same
+// translation is used in other contexts (e.g. @title:window), so we cannot
+// do it safely.
+// Instead, attach the proper answers to the message caption/text in the PO,
+// and then retrieve them in filtering messages for message dialog buttons
+// in kdelibs4.po (those with context "@action:button filter-...").
+
+// Dictionary of answers.
+var _answers_ = {};
+
+// Set answers as key-value pairs, as many as needed.
+// The call always signals fallback.
+function setAnswers (/*...*/)
+{
+    if (arguments.length % 2 != 0)
+        throw Error("Answers setter given odd number of arguments.");
+
+    for (var i = 0; i < arguments.length; i += 2) {
+        var akey = arguments[i];
+        var answer = arguments[i + 1];
+        _answers_[akey] = answer;
+    }
+
+    throw Ts.fallback();
+}
+Ts.setcall("set-answers", setAnswers);
+// msgid "... Would you like to configure it now?"
+// msgstr ""
+// "... 今設定しますか?"
+// "|/|"
+// "$[set-answers yes '設定する(&Y)' no '設定しない(&N)']"
+
+// Get an answer by key.
+// Signals fallback if the answer with the given key is not set.
+// Deletes the answer from the dictionary, so that it doesn't happen
+// that it gets retrieved in a later, unrelated question.
+function getAnswer (akey)
+{
+    answer = _answers_[akey];
+    if (!answer) throw Ts.fallback();
+    delete _answers_[akey];
+    return answer;
+}
+Ts.setcall("get-answer", getAnswer);
+// msgctxt "@action:button filter-yes"
+// msgid "%1"
+// msgstr "%1|/|$[get-answer yes]"
+
+// Reset all answers, so that they don't get used for the wrong question.
+// Always signals fallback.
+function resetAnswers ()
+{
+    _answers_ = {};
+}
+Ts.setcall("reset-answers", resetAnswers);
+// msgctxt "@action:button post-filter"
+// msgid "."
+// msgstr ".|/|$[reset-answers]"


Reply via email to