4.6.1. L'attribut xml:lang

Spécifie la langue (et éventuellement les paramètres de lieu) du contenu de l'élément. L'intention déclarée avec xml:lang est censée s'appliquer à tous les attributs et au contenu de l'élément sur lequel il apparaît, sauf écrasement par une instance de xml:lang sur un autre élément au sein de ce contenu. Lorsqu'aucune valeur xml:lang n'est fournie, le processeur devrait supposer une valeur par défaut.

Cet attribut doit être affecté d'un identificateur de langue tel que défini par le document IETF RFC 4646 (http://www.ietf.org/rfc/rfc4646.txt) ou suivant.

Utilisation recommandée

Pour un document DITA avec une seule langue, l'élément au niveau supérieur comprenant le contenu devrait toujours affecter l'attribut xml:lang de la langue (et éventuellement des paramètres de lieux) qui s'applique au document. Puisque l'élément <dita> n'accepte pas l'attribut xml:lang, l'élément au niveau supérieur qui devrait l'indiquer est l'élément <topic> (ou les dérivés au même niveau).

Pour un document DITA avec plusieurs langues, l'élément au niveau supérieur devrait toujours affecer l'attribut xml:lang de la langue principale (et éventuellement du paramètre de lieu) qui s'applique au document. À chaque fois qu'une autre langue apparaît dans le document, l'élément contenant le texte ou la structure dans cette autre langue devrait affecter l'attribut xml:lang conformément. Cette façon de supplanter la langue par défaut du document s'applique à la fois aux éléments de type bloc et ceux de type en-ligne utilisant l'autre langue.

L'utilisation d'un balisage pour identifier la langue est fortement recommandée pour rendre le document aussi portable qui possible. En outre, le document balisé peut être lu et compris par des humains. Enfin, pour la mise à jour du document, les frontières de chaque langue sont claires, ce qui la facilite pour l'auteur.

Les applications devraient s'assurer que chaque élément <topic> au niveau supérieur et que l'élément racine <map< comportent explicitement l'attribut xml:lang.

Utilisation dans les cartes

L'attribut xml:lang peut être spécifié sur l'élément <map>. Le comportement d'héritage attendu de la langue sur la carte est similaire à celui sur le thème. À savoir, que la langue principale pour la carte devrait être établie sur l'élément <map> (ou supposée par l'application si non définie explicitement), et devrait rester active pour tous les sous-éléments sauf ceux définissant une valeur xml:lang différente.

Si la valeur xml:lang sur un élément <topicref> ne correspond pas à celle sur l'élément <topic>, la valeur sur l'élément <topic> prévaut.

Utilisation avec l'attribut conref

Si l'attribut conref est utilisé pour inclure un contenu de thème dans un thème, la valeur xml:lang doit être obtenue du thème inclus. Si le contenu inclus ne définit pas explicitement de valeur xml:lang, le processeur doit obtenir la valeur xml:lang du parent le plus proche du contenu inclus. Si le contenu inclus n'a pas d'élément parent qui définisse xml:lang, l'application devrait par défaut retenir la même valeur utilisée pour les thèmes qui ne définissent pas l'attribut xml:lang.

Ce comportement est montré dans l'exemple suivant, où la valeur xml:lang de la note incluse est obtenue de son élément ancêtre <section> (id="qqwwee") qui définit xml:lang. Dans cet exemple, la valeur xml:lang appliquée à la note d'identificateur "mynote" est "fr".

****************installingAcme.xml*********************
<?xml version="1.0"?>
<!DOCTYPE dita PUBLIC "-//OASIS//DTD DITA Composite//EN" "ditabase.dtd">
<dita>
    <topic id="topic_3FD87D" xml:lang="en">
        <title>Installing Acme</title>
        <shortdesc>Step by step details on how to install Acme</shortdesc>
        <body>
            <p id="p_60A72">Welcome message goes here</p>
            <section id="section_C25">
                <title>Before you begin</title>
                <p id="p_E57324D">Special notes when installing Acme in
                    France:</p>
                <note id="mynote" conref="warningsAcme.xml#topic_warnings/frenchwarnings"></note>
            </section>
        </body>
    </topic>
</dita>
*******************************************


****************warningsAcme.dita*********************
<?xml version="1.0"?>
<!DOCTYPE dita PUBLIC "-//OASIS//DTD DITA Composite//EN" "ditabase.dtd">
<dita>
    <topic id="topic_warnings">
        <title>Warnings</title>
        <shortdesc>warnings in all languages</shortdesc>
        <body>
            <section id="qqwwee" xml:lang="fr">
                <title>Avertissements en français</title>
                <p id="p_F2A">Voici les avertissements en français.</p>
                <note id="frenchwarnings">Note en français !</note>
            </section>
            <section xml:lang="en" id="aassdd">
                <title>English warnings</title>
                <p id="p_5F961">These are our English warnings.</p>
                <note id="englishwarnings">Note in English!</note>
            </section>
        </body>
    </topic>
</dita>
*************************************