[kde-doc-english] [kdoctools] /: Allow installing files named the same in different directories, take 2

Aurélien Gâteau agateau at kde.org
Wed May 7 15:08:17 UTC 2014


Git commit afd2913aae783b3ee5d2228b89c46db0f114502c by Aurélien Gâteau.
Committed on 07/05/2014 at 15:08.
Pushed by gateau into branch 'master'.

Allow installing files named the same in different directories, take 2

This fixes the breakage introduced by commit 28ad7396f2281b519004f7c4a628665936af61b5,
which did not support the classic use case of calling
kdoctool_create_*(index.docbook) from different CMakeLists.txt files.

Reviewed-by: tosky

M  +68   -96   KF5DocToolsMacros.cmake
A  +5    -0    tests/create-from-current-dir-test/CMakeLists.txt
A  +2    -0    tests/create-from-current-dir-test/README.md
A  +1    -0    tests/create-from-current-dir-test/docs/CMakeLists.txt
A  +2    -0    tests/create-from-current-dir-test/docs/kioslave/CMakeLists.txt
A  +2    -0    tests/create-from-current-dir-test/docs/kioslave/data/CMakeLists.txt
A  +54   -0    tests/create-from-current-dir-test/docs/kioslave/data/index.docbook
A  +2    -0    tests/create-from-current-dir-test/docs/kioslave/file/CMakeLists.txt
A  +27   -0    tests/create-from-current-dir-test/docs/kioslave/file/index.docbook
A  +5    -0    tests/kdoctools_install-test/CMakeLists.txt
A  +124  -0    tests/kdoctools_install-test/po/es/docs/index.docbook
A  +124  -0    tests/kdoctools_install-test/po/es/docs/kioslave5/fooslave/index.docbook
A  +293  -0    tests/kdoctools_install-test/po/es/docs/man-kjscmd.1.docbook
A  +124  -0    tests/kdoctools_install-test/po/fr/docs/index.docbook
A  +293  -0    tests/kdoctools_install-test/po/fr/docs/man-kjscmd.1.docbook

http://commits.kde.org/kdoctools/afd2913aae783b3ee5d2228b89c46db0f114502c

diff --git a/KF5DocToolsMacros.cmake b/KF5DocToolsMacros.cmake
index 51caf34..ab45ce7 100644
--- a/KF5DocToolsMacros.cmake
+++ b/KF5DocToolsMacros.cmake
@@ -10,11 +10,10 @@
 #   INSTALL_DESTINATION <installdest>, or to <installdest>/<subdir> if
 #   SUBDIR <subdir> is specified.
 #
-#  KDOCTOOLS_CREATE_MANPAGE( docbookfile section )
+#  KDOCTOOLS_CREATE_MANPAGE( docbookfile section [INSTALL_DESTINATION installdest])
 #   Create the manpage for the specified section from the docbookfile (using meinproc5)
 #   The resulting manpage will be installed to <installdest> when using
-#   INSTALL_DESTINATION <installdest>, or to <installdest>/<subdir> if
-#   SUBDIR <subdir> is specified.
+#   INSTALL_DESTINATION <installdest>.
 #
 #  KDOCTOOLS_INSTALL(podir)
 #   Search for docbook files in <podir> and install them to the standard
@@ -68,14 +67,27 @@ if(KDOCTOOLS_SERIALIZE_TOOL)
     set(KDOCTOOLS_MEINPROC_EXECUTABLE ${KDOCTOOLS_SERIALIZE_TOOL} ${KDOCTOOLS_MEINPROC_EXECUTABLE})
 endif(KDOCTOOLS_SERIALIZE_TOOL)
 
-macro(_SUGGEST_TARGET_NAME _out)
-    string(REPLACE "${CMAKE_SOURCE_DIR}/" "" ${_out} "${CMAKE_CURRENT_SOURCE_DIR}")
-    string(REGEX REPLACE "[^0-9a-zA-Z]" "-" ${_out} "${${_out}}")
-endmacro()
+function(create_target_name out in)
+    string(REGEX REPLACE "[^0-9a-zA-Z]+" "-" tmp "${in}")
+    set(${out} ${tmp} PARENT_SCOPE)
+endfunction()
+
+function (kdoctools_create_handbook docbook)
+    # Parse arguments
+    set(options)
+    set(oneValueArgs INSTALL_DESTINATION SUBDIR)
+    set(multiValueArgs)
+    cmake_parse_arguments(ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
 
-macro (KDOCTOOLS_CREATE_HANDBOOK _docbook)
-    get_filename_component(_input ${_docbook} ABSOLUTE)
-    set(_doc ${CMAKE_CURRENT_BINARY_DIR}/index.cache.bz2)
+    # Init vars
+    get_filename_component(docbook ${docbook} ABSOLUTE)
+    file(RELATIVE_PATH src_doc ${CMAKE_CURRENT_SOURCE_DIR} ${docbook})
+    get_filename_component(src_dir ${src_doc} DIRECTORY)
+    set(build_dir ${CMAKE_CURRENT_BINARY_DIR}/${src_dir})
+    set(build_doc ${build_dir}/index.cache.bz2)
+
+    # Create some place to store our files
+    file(MAKE_DIRECTORY ${build_dir})
 
     #Bootstrap
     if (_kdoctoolsBootStrapping)
@@ -85,23 +97,16 @@ macro (KDOCTOOLS_CREATE_HANDBOOK _docbook)
     endif ()
     set(_ssheet "${KDOCTOOLS_CUSTOMIZATION_DIR}/kde-chunk.xsl")
 
-    file(GLOB _docs *.docbook)
-
-#    if (CMAKE_CROSSCOMPILING)
-#        set(IMPORT_MEINPROC5_EXECUTABLE "${KDE_HOST_TOOLS_PATH}/ImportMeinProc5Executable.cmake" CACHE FILEPATH "Point it to the export file of meinproc5 from a native build")
-#        include(${IMPORT_MEINPROC5_EXECUTABLE})
-#        set(KDOCTOOLS_MEINPROC_EXECUTABLE meinproc5)
-#    endif (CMAKE_CROSSCOMPILING)
+    file(GLOB src_docs ${src_dir}/*.docbook)
 
-    add_custom_command(OUTPUT ${_doc}
-        COMMAND ${KDOCTOOLS_MEINPROC_EXECUTABLE} --check ${_bootstrapOption} --cache ${_doc} ${_input}
-        DEPENDS ${_docs} ${_ssheet}
+    add_custom_command(OUTPUT ${build_doc}
+        COMMAND ${KDOCTOOLS_MEINPROC_EXECUTABLE} --check ${_bootstrapOption} --cache ${build_doc} ${src_doc}
+        DEPENDS ${src_docs} ${_ssheet}
         WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
     )
 
-    _suggest_target_name(_targ)
-    set(_targ "${_targ}-handbook")
-    add_custom_target(${_targ} ALL DEPENDS ${_doc})
+    create_target_name(_targ ${build_doc})
+    add_custom_target(${_targ} ALL DEPENDS ${build_doc})
 
     if(KDOCTOOLS_ENABLE_HTMLHANDBOOK)
         set(_htmlDoc ${CMAKE_CURRENT_SOURCE_DIR}/index.html)
@@ -113,48 +118,40 @@ macro (KDOCTOOLS_CREATE_HANDBOOK _docbook)
         add_custom_target(htmlhandbook DEPENDS ${_htmlDoc})
     endif(KDOCTOOLS_ENABLE_HTMLHANDBOOK)
 
-    set(_args ${ARGN})
-
-    set(_installDest)
-    if(_args)
-        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")
-    endif(_args)
-
-    get_filename_component(dirname ${CMAKE_CURRENT_SOURCE_DIR} NAME_WE)
-    if(_args)
-        list(GET _args 0 _tmp)
-        if("${_tmp}" STREQUAL "SUBDIR")
-            list(GET _args 1 dirname )
-            list(REMOVE_AT _args 0 1)
-        endif("${_tmp}" STREQUAL "SUBDIR")
-    endif(_args)
-
-    if(_installDest)
-        file(GLOB _images *.png)
-        install(FILES ${_doc} ${_docs} ${_images} DESTINATION ${_installDest}/${dirname})
+    set(installDest "${ARGS_INSTALL_DESTINATION}")
+    if(installDest)
+        set(subdir "${ARGS_SUBDIR}")
+        file(GLOB images ${src_dir}/*.png)
+        install(FILES ${build_doc} ${src_docs} ${images} DESTINATION ${installDest}/${subdir})
         # TODO symlinks on non-unix platforms
         if (UNIX)
             # execute some cmake code on make install which creates the symlink
-            install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \"${_installDest}/common\"  \"\$ENV{DESTDIR}${_installDest}/${dirname}/common\" )" )
+            install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \"${installDest}/common\" \"\$ENV{DESTDIR}${installDest}/${subdir}/common\" )" )
         endif (UNIX)
-    endif(_installDest)
+    endif()
+
+endfunction()
 
-endmacro (KDOCTOOLS_CREATE_HANDBOOK)
 
+function (kdoctools_create_manpage docbook section)
+    # Parse arguments
+    set(options)
+    set(oneValueArgs INSTALL_DESTINATION)
+    set(multiValueArgs)
+    cmake_parse_arguments(ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
 
-macro (KDOCTOOLS_CREATE_MANPAGE _docbook _section)
-    get_filename_component(_input ${_docbook} ABSOLUTE)
-    get_filename_component(_base ${_input} NAME)
+    # Init vars
+    get_filename_component(docbook ${docbook} ABSOLUTE)
+    file(RELATIVE_PATH src_doc ${CMAKE_CURRENT_SOURCE_DIR} ${docbook})
+    get_filename_component(src_dir ${src_doc} DIRECTORY)
+    set(build_dir ${CMAKE_CURRENT_BINARY_DIR}/${src_dir})
 
-    string(REGEX REPLACE "\\.${_section}\\.docbook$" "" _base ${_base})
+    get_filename_component(name ${src_doc} NAME)
+    string(REGEX REPLACE "^man-(.*)\\.${section}\\.docbook$" "\\1" name ${name})
+    set(build_doc ${build_dir}/${name}.${section})
 
-    set(_doc ${CMAKE_CURRENT_BINARY_DIR}/${_base}.${_section})
-    # sometimes we have "man-" prepended
-    string(REGEX REPLACE "/man-" "/" _outdoc ${_doc})
+    # Create some place to store our files
+    file(MAKE_DIRECTORY ${build_dir})
 
     #Bootstrap
     if (_kdoctoolsBootStrapping)
@@ -164,47 +161,22 @@ macro (KDOCTOOLS_CREATE_MANPAGE _docbook _section)
     endif ()
     set(_ssheet "${KDOCTOOLS_CUSTOMIZATION_DIR}/kde-include-man.xsl")
 
-#    if (CMAKE_CROSSCOMPILING)
-#        set(IMPORT_MEINPROC5_EXECUTABLE "${KDE_HOST_TOOLS_PATH}/ImportMeinProc5Executable.cmake" CACHE FILEPATH "Point it to the export file of meinproc5 from a native build")
-#        include(${IMPORT_MEINPROC5_EXECUTABLE})
-#        set(KDOCTOOLS_MEINPROC_EXECUTABLE meinproc5)
-#    endif (CMAKE_CROSSCOMPILING)
-
-    add_custom_command(OUTPUT ${_outdoc}
-        COMMAND ${KDOCTOOLS_MEINPROC_EXECUTABLE} --stylesheet ${_ssheet} --check ${_bootstrapOption} ${_input}
-        DEPENDS ${_input} ${_ssheet}
+    add_custom_command(OUTPUT ${build_doc}
+        COMMAND ${KDOCTOOLS_MEINPROC_EXECUTABLE} --stylesheet ${_ssheet} --check ${_bootstrapOption} ${CMAKE_CURRENT_SOURCE_DIR}/${src_doc}
+        DEPENDS ${src_doc} ${_ssheet}
+        WORKING_DIRECTORY ${build_dir}
     )
-    _suggest_target_name(_targ)
-    set(_targ "${_targ}-manpage-${_base}")
-    add_custom_target(${_targ} ALL DEPENDS "${_outdoc}")
-
-    set(_args ${ARGN})
-
-    set(_installDest)
-    if(_args)
-        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")
-    endif(_args)
-
-    get_filename_component(dirname ${CMAKE_CURRENT_SOURCE_DIR} NAME_WE)
-    if(_args)
-        list(GET _args 0 _tmp)
-        if("${_tmp}" STREQUAL "SUBDIR")
-            list(GET _args 1 dirname )
-            list(REMOVE_AT _args 0 1)
-        endif("${_tmp}" STREQUAL "SUBDIR")
-    endif(_args)
-
-    if(_installDest)
-        install(FILES ${_outdoc} DESTINATION ${_installDest}/man${_section})
-    endif(_installDest)
-endmacro (KDOCTOOLS_CREATE_MANPAGE)
-
-
-function(KDOCTOOLS_INSTALL podir)
+
+    create_target_name(_targ ${build_doc})
+    add_custom_target(${_targ} ALL DEPENDS "${build_doc}")
+
+    if(ARGS_INSTALL_DESTINATION)
+        install(FILES ${build_doc} DESTINATION ${ARGS_INSTALL_DESTINATION}/man${section})
+    endif()
+endfunction()
+
+
+function(kdoctools_install podir)
     file(GLOB lang_dirs "${podir}/*")
     if (NOT MAN_INSTALL_DIR)
         set(MAN_INSTALL_DIR share/man)
diff --git a/tests/create-from-current-dir-test/CMakeLists.txt b/tests/create-from-current-dir-test/CMakeLists.txt
new file mode 100644
index 0000000..f2ddac1
--- /dev/null
+++ b/tests/create-from-current-dir-test/CMakeLists.txt
@@ -0,0 +1,5 @@
+cmake_minimum_required(VERSION 2.8)
+
+find_package(KF5DocTools REQUIRED)
+
+add_subdirectory(docs)
diff --git a/tests/create-from-current-dir-test/README.md b/tests/create-from-current-dir-test/README.md
new file mode 100644
index 0000000..a206b80
--- /dev/null
+++ b/tests/create-from-current-dir-test/README.md
@@ -0,0 +1,2 @@
+This tests verifies one can call `kdoctools_create_handbook()` in different
+directories using the same docbook filename.
diff --git a/tests/create-from-current-dir-test/docs/CMakeLists.txt b/tests/create-from-current-dir-test/docs/CMakeLists.txt
new file mode 100644
index 0000000..7507d6c
--- /dev/null
+++ b/tests/create-from-current-dir-test/docs/CMakeLists.txt
@@ -0,0 +1 @@
+add_subdirectory(kioslave)
diff --git a/tests/create-from-current-dir-test/docs/kioslave/CMakeLists.txt b/tests/create-from-current-dir-test/docs/kioslave/CMakeLists.txt
new file mode 100644
index 0000000..93d9b5a
--- /dev/null
+++ b/tests/create-from-current-dir-test/docs/kioslave/CMakeLists.txt
@@ -0,0 +1,2 @@
+add_subdirectory(data)
+add_subdirectory(file)
diff --git a/tests/create-from-current-dir-test/docs/kioslave/data/CMakeLists.txt b/tests/create-from-current-dir-test/docs/kioslave/data/CMakeLists.txt
new file mode 100644
index 0000000..028a0db
--- /dev/null
+++ b/tests/create-from-current-dir-test/docs/kioslave/data/CMakeLists.txt
@@ -0,0 +1,2 @@
+########### install files ###############
+kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kioslave5/data)
diff --git a/tests/create-from-current-dir-test/docs/kioslave/data/index.docbook b/tests/create-from-current-dir-test/docs/kioslave/data/index.docbook
new file mode 100644
index 0000000..2cb24b4
--- /dev/null
+++ b/tests/create-from-current-dir-test/docs/kioslave/data/index.docbook
@@ -0,0 +1,54 @@
+<?xml version="1.0" ?>
+<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN"
+"dtd/kdedbx45.dtd" [
+<!ENTITY % addindex "IGNORE">
+<!ENTITY % English "INCLUDE" > <!-- change language only here -->
+]>
+	
+<article lang="&language;" id="data">
+<title>Data URLs</title>
+
+<articleinfo>
+<authorgroup>
+<author><personname><firstname>Leo</firstname><surname>Savernik</surname></personname>
+<address><email>l.savernik at aon.at</email></address>
+</author>
+<!-- TRANS:ROLES_OF_TRANSLATORS -->
+</authorgroup>
+
+<date>2003-02-06</date>
+<!--releaseinfo>2.20.00</releaseinfo-->
+
+</articleinfo>
+
+<para>Data URLs allow small document data to be included in the URL itself.
+This is useful for very small HTML testcases or other occasions that do not
+justify a document of their own.</para>
+
+<para><userinput>data:,foobar</userinput>
+(note the comma after the colon) will deliver a text document that contains
+nothing but <literal>foobar</literal>
+</para>
+
+<para>The last example delivered a text document. For HTML documents one
+has to specify the MIME type <literal>text/html</literal>:
+<userinput>data:text/html,<title>Testcase</title><p>This
+is a testcase</p></userinput>. This will produce exactly the same
+output as if the content had been loaded from a document of its own.
+</para>
+
+<para>Specifying alternate character sets is also possible. Note that 8-Bit
+characters have to be escaped by a percentage sign and their two-digit
+hexadecimal codes:
+<userinput>data:;charset=iso-8859-1,Gr%FC%DFe aus Schl%E4gl</userinput>
+results in
+<literal>Grüße aus Schlägl</literal>
+whereas omitting the charset attribute might lead to something like
+<literal>Gr??e aus Schl?gl</literal>
+</para>
+
+<para><ulink url="http://www.ietf.org/rfc/rfc2397.txt">IETF
+RFC2397</ulink> provides more information.</para>
+
+</article>
+
diff --git a/tests/create-from-current-dir-test/docs/kioslave/file/CMakeLists.txt b/tests/create-from-current-dir-test/docs/kioslave/file/CMakeLists.txt
new file mode 100644
index 0000000..6786a09
--- /dev/null
+++ b/tests/create-from-current-dir-test/docs/kioslave/file/CMakeLists.txt
@@ -0,0 +1,2 @@
+########### install files ###############
+kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kioslave5/file)
diff --git a/tests/create-from-current-dir-test/docs/kioslave/file/index.docbook b/tests/create-from-current-dir-test/docs/kioslave/file/index.docbook
new file mode 100644
index 0000000..38e9d05
--- /dev/null
+++ b/tests/create-from-current-dir-test/docs/kioslave/file/index.docbook
@@ -0,0 +1,27 @@
+<?xml version="1.0" ?>
+<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN"
+"dtd/kdedbx45.dtd" [
+<!ENTITY % addindex "IGNORE">
+<!ENTITY % English "INCLUDE" > <!-- change language only here -->
+]>
+	
+<article lang="&language;" id="file">
+<title>file</title>
+<articleinfo>
+<authorgroup>
+<author>&Ferdinand.Gassauer; &Ferdinand.Gassauer.mail;</author>
+<!-- TRANS:ROLES_OF_TRANSLATORS -->
+</authorgroup>
+</articleinfo>
+
+<para>
+The <emphasis>file</emphasis> protocol is used by all &kde; applications to 
+display locally available files.
+</para>
+<para>
+Entering 
+<userinput><command>file:/directoryname</command></userinput> in &konqueror; 
+ lists the files of this folder.
+</para>
+
+</article>
diff --git a/tests/kdoctools_install-test/CMakeLists.txt b/tests/kdoctools_install-test/CMakeLists.txt
new file mode 100644
index 0000000..b9a3377
--- /dev/null
+++ b/tests/kdoctools_install-test/CMakeLists.txt
@@ -0,0 +1,5 @@
+cmake_minimum_required(VERSION 2.8)
+
+find_package(KF5DocTools REQUIRED)
+
+kdoctools_install(po)
diff --git a/tests/kdoctools_install-test/po/es/docs/index.docbook b/tests/kdoctools_install-test/po/es/docs/index.docbook
new file mode 100644
index 0000000..0862f30
--- /dev/null
+++ b/tests/kdoctools_install-test/po/es/docs/index.docbook
@@ -0,0 +1,124 @@
+<?xml version="1.0" ?>
+<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [
+  <!ENTITY kappname "&sonnet;">
+  <!ENTITY % French "INCLUDE"
+> <!-- change language only here -->
+  <!ENTITY % addindex "IGNORE">
+]>
+
+<article id="sonnet" lang="&language;">
+
+<articleinfo>
+<!--title
+>The &sonnet; Handbook</title-->
+<title
+>Outil de correction d'orthographe</title>
+
+<authorgroup>
+<author
+>&David.Sweet; &David.Sweet.mail;</author>
+
+&traducteurYvesDessertine;&traducteurJosephRichard; 
+</authorgroup>
+
+<date
+>02/09/2010</date>
+<releaseinfo
+>&kde; 4.5</releaseinfo>
+<abstract>
+<para
+>&sonnet; est le correcteur orthographique utilisé par les applications &kde;, telles que &kate;, &kmail; et &kword;. C'est une interface graphique pour différents correcteurs orthographiques. Vous trouverez davantage de renseignements sur les correcteurs orthographiques et dictionnaires requis dans la documentation du module de la &configurationDuSysteme; <ulink url="help:kcontrol/spellchecking"
+>Correcteur orthographique</ulink
+>.</para>
+
+</abstract>
+<keywordset>
+<keyword
+>orthographe</keyword>
+<keyword
+>orthographe</keyword>
+<keyword
+>sonnet</keyword>
+<keyword
+>Ispell</keyword>
+<keyword
+>Aspell</keyword>
+<keyword
+>vérification</keyword>
+<keyword
+>vérificateur</keyword>
+<keyword
+>KDE</keyword>
+</keywordset>
+</articleinfo>
+
+<para
+><anchor id="spelldlg"/> La première ligne de la fenêtre de dialogue affiche le mot potentiellement mal orthographié qui a été découvert dans votre document. &sonnet; tente de trouver un mot approprié pour le remplacer. Il peut en proposer un ou plusieurs.</para>
+<para
+>La proposition la plus pertinente est affichée à la droite de <guilabel
+>Remplacer par</guilabel
+>. Pour accepter ce remplacement, cliquez sur <guibutton
+>Remplacer</guibutton
+>.</para
+> 
+<para
+>Vous pouvez également sélectionner un mot depuis une liste de suggestions et ensuite cliquer sur <guibutton
+>Remplacer</guibutton
+> afin de remplacer le mot mal orthographié par la suggestion sélectionnée. Pour ajouter des suggestions supplémentaires depuis le dictionnaire, cliquez sur le bouton <guibutton
+>Suggérer</guibutton
+>.</para>
+
+<para
+>Pour conserver votre orthographe originale, cliquez sur <guilabel
+>Ignorer</guilabel
+>.</para>
+
+<para
+>Pour arrêter la vérification de l'orthographe tout en conservant les modifications déjà effectuées, cliquez sur <guibutton
+>Terminé</guibutton
+>.</para>
+
+<para
+>Pour arrêter la vérification de l'orthographe et annuler les modifications effectuées, cliquez sur <guibutton
+>Annuler</guibutton
+>.</para>
+
+<para
+>Cliquer sur <guibutton
+>Tout remplacer</guibutton
+> va effectuer la même fonction que si vous cliquiez sur <guibutton
+>Remplacer</guibutton
+>, mais va automatiquement remplacer le mot mal orthographié par le mot de remplacement choisi s'il réapparaît (plus loin) dans votre document.</para>
+
+<para
+>Le bouton <guibutton
+>Toujours ignorer</guibutton
+> ignore cette occurrence et toutes les occurrences futures du mot mal orthographié.</para>
+
+<para
+>Le fait de cliquer sur <guibutton
+>Ajouter au dictionnaire</guibutton
+> va ajouter le mot mal orthographié à votre dictionnaire personnel (celui-ci est dissocié du dictionnaire original du système, de sorte que les ajouts que vous effectuez ne soient pas visibles par les autres utilisateurs). Le fait de cliquer sur <guibutton
+>Ajouter</guibutton
+> va ajouter le mot mal orthographié à votre dictionnaire personnel (celui-ci est dissocié du dictionnaire original du système, de sorte que les ajouts que vous effectuez ne soient pas visibles par les autres utilisateurs).</para>
+
+<para
+>La liste déroulante <guilabel
+>Langue</guilabel
+> en bas de cette fenêtre de dialogue vous permet de changer temporairement de dictionnaire.</para>
+
+<para
+>Les options de la configuration par défaut sont accessibles dans le module de la &configurationDuSysteme; <ulink url="help:kcontrol/spellchecking"
+>Correcteur orthographique</ulink
+>.</para>
+
+</article>
+<!--
+Local Variables:
+mode: sgml
+sgml-omittag: nil
+sgml-shorttag: t
+sgml-general-insert-case: lower
+End:
+-->
+
diff --git a/tests/kdoctools_install-test/po/es/docs/kioslave5/fooslave/index.docbook b/tests/kdoctools_install-test/po/es/docs/kioslave5/fooslave/index.docbook
new file mode 100644
index 0000000..0862f30
--- /dev/null
+++ b/tests/kdoctools_install-test/po/es/docs/kioslave5/fooslave/index.docbook
@@ -0,0 +1,124 @@
+<?xml version="1.0" ?>
+<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [
+  <!ENTITY kappname "&sonnet;">
+  <!ENTITY % French "INCLUDE"
+> <!-- change language only here -->
+  <!ENTITY % addindex "IGNORE">
+]>
+
+<article id="sonnet" lang="&language;">
+
+<articleinfo>
+<!--title
+>The &sonnet; Handbook</title-->
+<title
+>Outil de correction d'orthographe</title>
+
+<authorgroup>
+<author
+>&David.Sweet; &David.Sweet.mail;</author>
+
+&traducteurYvesDessertine;&traducteurJosephRichard; 
+</authorgroup>
+
+<date
+>02/09/2010</date>
+<releaseinfo
+>&kde; 4.5</releaseinfo>
+<abstract>
+<para
+>&sonnet; est le correcteur orthographique utilisé par les applications &kde;, telles que &kate;, &kmail; et &kword;. C'est une interface graphique pour différents correcteurs orthographiques. Vous trouverez davantage de renseignements sur les correcteurs orthographiques et dictionnaires requis dans la documentation du module de la &configurationDuSysteme; <ulink url="help:kcontrol/spellchecking"
+>Correcteur orthographique</ulink
+>.</para>
+
+</abstract>
+<keywordset>
+<keyword
+>orthographe</keyword>
+<keyword
+>orthographe</keyword>
+<keyword
+>sonnet</keyword>
+<keyword
+>Ispell</keyword>
+<keyword
+>Aspell</keyword>
+<keyword
+>vérification</keyword>
+<keyword
+>vérificateur</keyword>
+<keyword
+>KDE</keyword>
+</keywordset>
+</articleinfo>
+
+<para
+><anchor id="spelldlg"/> La première ligne de la fenêtre de dialogue affiche le mot potentiellement mal orthographié qui a été découvert dans votre document. &sonnet; tente de trouver un mot approprié pour le remplacer. Il peut en proposer un ou plusieurs.</para>
+<para
+>La proposition la plus pertinente est affichée à la droite de <guilabel
+>Remplacer par</guilabel
+>. Pour accepter ce remplacement, cliquez sur <guibutton
+>Remplacer</guibutton
+>.</para
+> 
+<para
+>Vous pouvez également sélectionner un mot depuis une liste de suggestions et ensuite cliquer sur <guibutton
+>Remplacer</guibutton
+> afin de remplacer le mot mal orthographié par la suggestion sélectionnée. Pour ajouter des suggestions supplémentaires depuis le dictionnaire, cliquez sur le bouton <guibutton
+>Suggérer</guibutton
+>.</para>
+
+<para
+>Pour conserver votre orthographe originale, cliquez sur <guilabel
+>Ignorer</guilabel
+>.</para>
+
+<para
+>Pour arrêter la vérification de l'orthographe tout en conservant les modifications déjà effectuées, cliquez sur <guibutton
+>Terminé</guibutton
+>.</para>
+
+<para
+>Pour arrêter la vérification de l'orthographe et annuler les modifications effectuées, cliquez sur <guibutton
+>Annuler</guibutton
+>.</para>
+
+<para
+>Cliquer sur <guibutton
+>Tout remplacer</guibutton
+> va effectuer la même fonction que si vous cliquiez sur <guibutton
+>Remplacer</guibutton
+>, mais va automatiquement remplacer le mot mal orthographié par le mot de remplacement choisi s'il réapparaît (plus loin) dans votre document.</para>
+
+<para
+>Le bouton <guibutton
+>Toujours ignorer</guibutton
+> ignore cette occurrence et toutes les occurrences futures du mot mal orthographié.</para>
+
+<para
+>Le fait de cliquer sur <guibutton
+>Ajouter au dictionnaire</guibutton
+> va ajouter le mot mal orthographié à votre dictionnaire personnel (celui-ci est dissocié du dictionnaire original du système, de sorte que les ajouts que vous effectuez ne soient pas visibles par les autres utilisateurs). Le fait de cliquer sur <guibutton
+>Ajouter</guibutton
+> va ajouter le mot mal orthographié à votre dictionnaire personnel (celui-ci est dissocié du dictionnaire original du système, de sorte que les ajouts que vous effectuez ne soient pas visibles par les autres utilisateurs).</para>
+
+<para
+>La liste déroulante <guilabel
+>Langue</guilabel
+> en bas de cette fenêtre de dialogue vous permet de changer temporairement de dictionnaire.</para>
+
+<para
+>Les options de la configuration par défaut sont accessibles dans le module de la &configurationDuSysteme; <ulink url="help:kcontrol/spellchecking"
+>Correcteur orthographique</ulink
+>.</para>
+
+</article>
+<!--
+Local Variables:
+mode: sgml
+sgml-omittag: nil
+sgml-shorttag: t
+sgml-general-insert-case: lower
+End:
+-->
+
diff --git a/tests/kdoctools_install-test/po/es/docs/man-kjscmd.1.docbook b/tests/kdoctools_install-test/po/es/docs/man-kjscmd.1.docbook
new file mode 100644
index 0000000..6a3a7f5
--- /dev/null
+++ b/tests/kdoctools_install-test/po/es/docs/man-kjscmd.1.docbook
@@ -0,0 +1,293 @@
+<?xml version="1.0" ?>
+<!DOCTYPE refentry PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [
+  <!ENTITY % French "INCLUDE"
+><!-- change language only here -->
+]>
+
+<refentry>
+
+<refentryinfo>
+<title
+>Manuel de l'Utilisateur de &kde;</title>
+
+<!-- with help from http://linuxcommand.org/man_pages/kjscmd1.html -->
+
+<author
+><firstname
+>Harri</firstname
+> <surname
+>Porten</surname
+> <affiliation
+> <address
+><email
+>porten at kde.org</email
+></address>
+</affiliation>
+</author>
+
+<date
+>2008-10-16</date>
+<releaseinfo
+>0.01.01</releaseinfo>
+
+</refentryinfo>
+
+<refmeta>
+<refentrytitle
+><command
+>kjscmd</command
+></refentrytitle>
+<manvolnum
+>1</manvolnum>
+</refmeta>
+
+<refnamediv>
+<refname
+><command
+>kjscmd</command
+></refname>
+<refpurpose
+>Interpréteur KJSEmbed de &kde;</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<title
+>Synopsis</title>
+
+<cmdsynopsis
+><command
+>kjscmd</command
+> <arg choice="opt"
+>--help</arg
+> <group
+> <arg choice="opt"
+>-e</arg
+> <arg choice="opt"
+>--exec</arg
+> </group
+> <group
+> <arg choice="opt"
+>-i</arg
+> <arg choice="opt"
+>-interactive</arg
+> </group
+> <group
+> <arg choice="opt"
+>-n</arg
+> <arg choice="opt"
+>-no-kde</arg
+> </group
+> <arg choice="opt"
+>fichier</arg
+> </cmdsynopsis>
+</refsynopsisdiv>
+
+<refsect1>
+<title
+>Description</title>
+
+<para
+><command
+>kjscmd</command
+> est un outil permettant de lancer des scripts KJSEmbed depuis la ligne de commande. Il exécutera les scripts contenus dans le <parameter
+>fichier</parameter
+> nommé en utilisant KJSEmbed. Il n'accepte pas - (stdin) comme <parameter
+>fichier</parameter
+>. </para>
+</refsect1>
+<!--
+<refsect1>
+<title
+>Generic Options</title>
+<para>
+<variablelist>
+
+<varlistentry>
+<term
+><option
+>- -author</option
+></term>
+<listitem>
+<para>
+Show author information.
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><option
+>- -help</option
+></term>
+<listitem>
+<para>
+Show help about options.
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><option
+>- -help-all</option
+></term>
+<listitem>
+<para>
+Show all options.
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><option
+>- -help-kde</option
+></term>
+<listitem>
+<para>
+Show KDE specific options.
+</para>
+
+
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><option
+>- -help-qt</option
+></term>
+<listitem>
+<para>
+Show Qt specific options.
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><option
+>- -license</option
+></term>
+<listitem>
+<para>
+Show license information.
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><option
+>-v</option
+><option
+>- -version</option
+></term>
+<listitem>
+<para>
+Show version information
+</para>
+</listitem>
+</varlistentry>
+
+</variablelist>
+</para>
+</refsect1>
+-->
+
+<refsect1>
+<title
+>Options de l'Application</title>
+<variablelist>
+
+<varlistentry>
+<term
+><option
+>-e</option
+>,<option
+>--exec</option
+></term>
+<listitem>
+<para
+>exécute le script contenu dans le <parameter
+>fichier</parameter
+> sans interface graphique. </para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><option
+>-i</option
+>,<option
+>--interactive</option
+></term>
+<listitem>
+<para
+>lance l'interpréteur interactif <command
+>kjs</command
+>.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><option
+>-n</option
+>,<option
+>--no-kde</option
+></term>
+<listitem>
+<para
+>démarre sans gestion de KApplication de &kde;</para>
+</listitem>
+</varlistentry>
+
+
+</variablelist>
+
+</refsect1>
+
+<refsect1>
+<title
+>Utilisation</title>
+<para
+>La façon la plus fréquente de lancer <command
+>kjscmd</command
+> est simplement <literallayout>
+<userinput
+><command
+>kjscmd</command
+> <parameter
+>fichier</parameter>
+</userinput>
+</literallayout
+> Si aucun paramètre <parameter
+>fichier</parameter
+> n'est saisi, il exécute le script de test prédéfini qui permet de mesurer la vitesse de démarrage de<command
+>kjscmd</command
+>. </para>
+</refsect1>
+
+<refsect1>
+<title
+>Voir Aussi</title>
+<para
+><replaceable
+>kjs</replaceable
+>(1)</para>
+</refsect1>
+
+<refsect1>
+<title
+>Bogues</title>
+<para
+>Il y a probablement un tas de bogues. Utilisez <ulink url="http://bugs.kde.org"
+>bugs.kde.org</ulink
+> pour les signaler.</para>
+</refsect1>
+
+</refentry>
+
+
+
diff --git a/tests/kdoctools_install-test/po/fr/docs/index.docbook b/tests/kdoctools_install-test/po/fr/docs/index.docbook
new file mode 100644
index 0000000..0862f30
--- /dev/null
+++ b/tests/kdoctools_install-test/po/fr/docs/index.docbook
@@ -0,0 +1,124 @@
+<?xml version="1.0" ?>
+<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [
+  <!ENTITY kappname "&sonnet;">
+  <!ENTITY % French "INCLUDE"
+> <!-- change language only here -->
+  <!ENTITY % addindex "IGNORE">
+]>
+
+<article id="sonnet" lang="&language;">
+
+<articleinfo>
+<!--title
+>The &sonnet; Handbook</title-->
+<title
+>Outil de correction d'orthographe</title>
+
+<authorgroup>
+<author
+>&David.Sweet; &David.Sweet.mail;</author>
+
+&traducteurYvesDessertine;&traducteurJosephRichard; 
+</authorgroup>
+
+<date
+>02/09/2010</date>
+<releaseinfo
+>&kde; 4.5</releaseinfo>
+<abstract>
+<para
+>&sonnet; est le correcteur orthographique utilisé par les applications &kde;, telles que &kate;, &kmail; et &kword;. C'est une interface graphique pour différents correcteurs orthographiques. Vous trouverez davantage de renseignements sur les correcteurs orthographiques et dictionnaires requis dans la documentation du module de la &configurationDuSysteme; <ulink url="help:kcontrol/spellchecking"
+>Correcteur orthographique</ulink
+>.</para>
+
+</abstract>
+<keywordset>
+<keyword
+>orthographe</keyword>
+<keyword
+>orthographe</keyword>
+<keyword
+>sonnet</keyword>
+<keyword
+>Ispell</keyword>
+<keyword
+>Aspell</keyword>
+<keyword
+>vérification</keyword>
+<keyword
+>vérificateur</keyword>
+<keyword
+>KDE</keyword>
+</keywordset>
+</articleinfo>
+
+<para
+><anchor id="spelldlg"/> La première ligne de la fenêtre de dialogue affiche le mot potentiellement mal orthographié qui a été découvert dans votre document. &sonnet; tente de trouver un mot approprié pour le remplacer. Il peut en proposer un ou plusieurs.</para>
+<para
+>La proposition la plus pertinente est affichée à la droite de <guilabel
+>Remplacer par</guilabel
+>. Pour accepter ce remplacement, cliquez sur <guibutton
+>Remplacer</guibutton
+>.</para
+> 
+<para
+>Vous pouvez également sélectionner un mot depuis une liste de suggestions et ensuite cliquer sur <guibutton
+>Remplacer</guibutton
+> afin de remplacer le mot mal orthographié par la suggestion sélectionnée. Pour ajouter des suggestions supplémentaires depuis le dictionnaire, cliquez sur le bouton <guibutton
+>Suggérer</guibutton
+>.</para>
+
+<para
+>Pour conserver votre orthographe originale, cliquez sur <guilabel
+>Ignorer</guilabel
+>.</para>
+
+<para
+>Pour arrêter la vérification de l'orthographe tout en conservant les modifications déjà effectuées, cliquez sur <guibutton
+>Terminé</guibutton
+>.</para>
+
+<para
+>Pour arrêter la vérification de l'orthographe et annuler les modifications effectuées, cliquez sur <guibutton
+>Annuler</guibutton
+>.</para>
+
+<para
+>Cliquer sur <guibutton
+>Tout remplacer</guibutton
+> va effectuer la même fonction que si vous cliquiez sur <guibutton
+>Remplacer</guibutton
+>, mais va automatiquement remplacer le mot mal orthographié par le mot de remplacement choisi s'il réapparaît (plus loin) dans votre document.</para>
+
+<para
+>Le bouton <guibutton
+>Toujours ignorer</guibutton
+> ignore cette occurrence et toutes les occurrences futures du mot mal orthographié.</para>
+
+<para
+>Le fait de cliquer sur <guibutton
+>Ajouter au dictionnaire</guibutton
+> va ajouter le mot mal orthographié à votre dictionnaire personnel (celui-ci est dissocié du dictionnaire original du système, de sorte que les ajouts que vous effectuez ne soient pas visibles par les autres utilisateurs). Le fait de cliquer sur <guibutton
+>Ajouter</guibutton
+> va ajouter le mot mal orthographié à votre dictionnaire personnel (celui-ci est dissocié du dictionnaire original du système, de sorte que les ajouts que vous effectuez ne soient pas visibles par les autres utilisateurs).</para>
+
+<para
+>La liste déroulante <guilabel
+>Langue</guilabel
+> en bas de cette fenêtre de dialogue vous permet de changer temporairement de dictionnaire.</para>
+
+<para
+>Les options de la configuration par défaut sont accessibles dans le module de la &configurationDuSysteme; <ulink url="help:kcontrol/spellchecking"
+>Correcteur orthographique</ulink
+>.</para>
+
+</article>
+<!--
+Local Variables:
+mode: sgml
+sgml-omittag: nil
+sgml-shorttag: t
+sgml-general-insert-case: lower
+End:
+-->
+
diff --git a/tests/kdoctools_install-test/po/fr/docs/man-kjscmd.1.docbook b/tests/kdoctools_install-test/po/fr/docs/man-kjscmd.1.docbook
new file mode 100644
index 0000000..6a3a7f5
--- /dev/null
+++ b/tests/kdoctools_install-test/po/fr/docs/man-kjscmd.1.docbook
@@ -0,0 +1,293 @@
+<?xml version="1.0" ?>
+<!DOCTYPE refentry PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [
+  <!ENTITY % French "INCLUDE"
+><!-- change language only here -->
+]>
+
+<refentry>
+
+<refentryinfo>
+<title
+>Manuel de l'Utilisateur de &kde;</title>
+
+<!-- with help from http://linuxcommand.org/man_pages/kjscmd1.html -->
+
+<author
+><firstname
+>Harri</firstname
+> <surname
+>Porten</surname
+> <affiliation
+> <address
+><email
+>porten at kde.org</email
+></address>
+</affiliation>
+</author>
+
+<date
+>2008-10-16</date>
+<releaseinfo
+>0.01.01</releaseinfo>
+
+</refentryinfo>
+
+<refmeta>
+<refentrytitle
+><command
+>kjscmd</command
+></refentrytitle>
+<manvolnum
+>1</manvolnum>
+</refmeta>
+
+<refnamediv>
+<refname
+><command
+>kjscmd</command
+></refname>
+<refpurpose
+>Interpréteur KJSEmbed de &kde;</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<title
+>Synopsis</title>
+
+<cmdsynopsis
+><command
+>kjscmd</command
+> <arg choice="opt"
+>--help</arg
+> <group
+> <arg choice="opt"
+>-e</arg
+> <arg choice="opt"
+>--exec</arg
+> </group
+> <group
+> <arg choice="opt"
+>-i</arg
+> <arg choice="opt"
+>-interactive</arg
+> </group
+> <group
+> <arg choice="opt"
+>-n</arg
+> <arg choice="opt"
+>-no-kde</arg
+> </group
+> <arg choice="opt"
+>fichier</arg
+> </cmdsynopsis>
+</refsynopsisdiv>
+
+<refsect1>
+<title
+>Description</title>
+
+<para
+><command
+>kjscmd</command
+> est un outil permettant de lancer des scripts KJSEmbed depuis la ligne de commande. Il exécutera les scripts contenus dans le <parameter
+>fichier</parameter
+> nommé en utilisant KJSEmbed. Il n'accepte pas - (stdin) comme <parameter
+>fichier</parameter
+>. </para>
+</refsect1>
+<!--
+<refsect1>
+<title
+>Generic Options</title>
+<para>
+<variablelist>
+
+<varlistentry>
+<term
+><option
+>- -author</option
+></term>
+<listitem>
+<para>
+Show author information.
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><option
+>- -help</option
+></term>
+<listitem>
+<para>
+Show help about options.
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><option
+>- -help-all</option
+></term>
+<listitem>
+<para>
+Show all options.
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><option
+>- -help-kde</option
+></term>
+<listitem>
+<para>
+Show KDE specific options.
+</para>
+
+
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><option
+>- -help-qt</option
+></term>
+<listitem>
+<para>
+Show Qt specific options.
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><option
+>- -license</option
+></term>
+<listitem>
+<para>
+Show license information.
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><option
+>-v</option
+><option
+>- -version</option
+></term>
+<listitem>
+<para>
+Show version information
+</para>
+</listitem>
+</varlistentry>
+
+</variablelist>
+</para>
+</refsect1>
+-->
+
+<refsect1>
+<title
+>Options de l'Application</title>
+<variablelist>
+
+<varlistentry>
+<term
+><option
+>-e</option
+>,<option
+>--exec</option
+></term>
+<listitem>
+<para
+>exécute le script contenu dans le <parameter
+>fichier</parameter
+> sans interface graphique. </para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><option
+>-i</option
+>,<option
+>--interactive</option
+></term>
+<listitem>
+<para
+>lance l'interpréteur interactif <command
+>kjs</command
+>.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><option
+>-n</option
+>,<option
+>--no-kde</option
+></term>
+<listitem>
+<para
+>démarre sans gestion de KApplication de &kde;</para>
+</listitem>
+</varlistentry>
+
+
+</variablelist>
+
+</refsect1>
+
+<refsect1>
+<title
+>Utilisation</title>
+<para
+>La façon la plus fréquente de lancer <command
+>kjscmd</command
+> est simplement <literallayout>
+<userinput
+><command
+>kjscmd</command
+> <parameter
+>fichier</parameter>
+</userinput>
+</literallayout
+> Si aucun paramètre <parameter
+>fichier</parameter
+> n'est saisi, il exécute le script de test prédéfini qui permet de mesurer la vitesse de démarrage de<command
+>kjscmd</command
+>. </para>
+</refsect1>
+
+<refsect1>
+<title
+>Voir Aussi</title>
+<para
+><replaceable
+>kjs</replaceable
+>(1)</para>
+</refsect1>
+
+<refsect1>
+<title
+>Bogues</title>
+<para
+>Il y a probablement un tas de bogues. Utilisez <ulink url="http://bugs.kde.org"
+>bugs.kde.org</ulink
+> pour les signaler.</para>
+</refsect1>
+
+</refentry>
+
+
+


More information about the kde-doc-english mailing list