.. Copyright 2011-2018 Olivier Carrère
.. Cette œuvre est mise à disposition selon les termes de la licence Creative
.. Commons Attribution - Pas d'utilisation commerciale - Partage dans les mêmes
.. conditions 4.0 international.
.. code review: yes
.. _gerer-les-projets-de-documentation-multilingues-dita-xml:
Gérer les projets de documentation multilingues DITA XML
========================================================
|dita| est un formidable format pour gérer les
projets de documentation. Pour les projets multilingues, cependant, le
|techwriter| doit créer un fichier *ditamap*, qui contient la
structure de table des matières des documents, par version. Ceci entraîne un
risque d'erreurs et d'incohérences. Heureusement, une méthodologie appropriée et
un script d'automatisation destiné à la chaîne de publication |dita-ot|
remédient à ce problème.
Méthodologie de gestion des projets de documentation multilingues DITA XML
--------------------------------------------------------------------------
#. Le fichier *ditamap* ne doit pas comporter de section *navtitle*, qui
contient un titre en toutes lettres, au lieu d'extraire le titre de la
section |dita| correspondante, et est donc propre à chaque langue.
#. Dès le début de votre projet |dita|, placez les fichiers de contenu
|dita| dans un sous-répertoire spécifique à la langue dans laquelle
il est initialement rédigé.
Par exemple :
- product
- en_US
- images
- tasks
- topics
et non :
- product
- images
- tasks
- topics
#. Remplacez dans le fichier *ditamap* toutes les occurrences du nom du
répertoire propre à la langue par une chaîne unique provisoire.
Par exemple, utilisez la chaîne *@language-code@* :
.. code-block:: xml
et non :
.. code-block:: xml
#. Pour générer les fichiers cibles, vous pouvez maintenant :
a. modifier dans le fichier :file:`demo/fo/build.xml` le paramètre
:samp:`default.locale`,
#. remplacer dans le fichier *ditamap* la variable de langue par le
nom du répertoire de langue,
#. modifier le paramètre de langue :samp:`xml:lang` dans le fichier
*ditamap* et dans les fichiers de contenu |dita|,
#. pour les fichiers cibles PDF, modifier les dimensions de page (A4 ou US
letter, par exemple) selon la langue,
#. générer les fichiers cibles,
#. rétablir les valeurs initiales dans les fichiers sources.
Heureusement, un script Bash (GNU/Linux) simple permet d'automatiser cela.
.. rubric:: Prérequis
- Vous avez installé |dita-ot|.
- Votre projet |dita| ne comporte qu'un fichier *ditamap*.
- Vos fichiers de contenu |dita| ont l'extension :file:`.dita`.
- Les noms des répertoires des versions linguistiques correspondent aux codes de
langues supportés par Dita Open Toolkit (:file:`fr_FR` ou :file:`en_US`, par
exemple).
- Vos fichiers de contenu |dita| se trouvent dans des sous-répertoires des
répertoires des versions linguistiques (par exemple, dans :file:`fr_FR/tasks/`
et :file:`fr_FR/topics/`).
Les valeurs supportées pour la dimension des pages PDF sont :samp:`fr_FR` (A4)
et :samp:`en_US` (US letter). Ce script peut être bien entendu facilement
adapté, ou inspirer un nouveau script.
.. attention::
Ce script est fourni sans garantie. Avant toute exécution de ce script,
effectuez une sauvegarde de l'ensemble de votre projet |dita|, fichiers de
configuration inclus (par exemple sous un système de gestion de
versions). Assurez-vous de pouvoir restaurer facilement le projet dans son
intégralité en cas d'erreur ou de comportement inattendu.
Pour utiliser ce script :
#. Téléchargez le `script de génération multilingue DITA XML`_
dans le
répertoire contenant le fichier *ditamap* du projet.
#. Dans un terminal, placez-vous dans ce répertoire, puis entrez :
.. code-block:: console
$ chmod +x dita2target.sh
#. Dans le terminal, entrez :
.. code-block:: console
$ mkdir out
pour créer le répertoire qui contiendra les fichiers cibles.
#. Entrez :
.. code-block:: console
$ ./dita2target.sh \
pour générer les fichiers cibles.
L'argument *format cible* accepte les valeurs gérées par |dita-ot|.
.. rubric:: Exemple
.. code-block:: console
./dita2target.sh firewall.ditamap en_US pdf2
Le fichier PDF :file:`firewall.pdf` est alors généré dans le répertoire
:file:`out` (spécifié *en dur* dans le script).
.. text review: yes