blob: b8a892ecf07e6591e0010d80103aec5cfe87f19e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
---
title: Utilisation de plusieurs DTD
slug: Archive/Mozilla/XUL/Utilisation_de_plusieurs_DTD
tags:
- Localisation
- XUL
translation_of: Archive/Mozilla/XUL/Using_multiple_DTDs
---
<p>Généralement il n'y a qu'un unique ficher DTD (<strong>D</strong>ocument <strong>T</strong>ype <strong>D</strong>efinition) pour la localisation d'un fichier <a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XUL" title="fr/XUL">XUL</a> spécifique. Mais il existe des cas où l'utilisation de plusieurs DTD peut être nécessaire, comme par exemple pour la localisation de "widgets" couramment utilisés dans les fichiers XUL, en plus de ceux spécifiques au fichier à localiser.</p>
<h2 id="DTD_unique" name="DTD_unique">DTD unique</h2>
<p>Pour rendre localisables les chaînes de votre fichier <a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XUL" title="fr/XUL">XUL</a>, vous devez <a href="https://developer.mozilla.org/fr/docs/Mozilla/Tech/XUL/Tutoriel_XUL/Localisation" title="fr/Tutoriel_XUL/Localisation">ajouter une déclaration DTD</a> au début du fichier comme ceci :</p>
<pre class="eval line-numbers language-html"><code class="language-html"><span class="doctype token"><!DOCTYPE window SYSTEM "chrome://myextension/locale/mainwindow.dtd"></span></code></pre>
<p>où <code>window</code> est le nom local de l'élément (racine) du document.</p>
<p>Par exemple, si vous avez une entité appelée <code>someButton.label</code> définie dans <code>mainwindow.dtd</code>, vous pouvez y accéder comme ceci :</p>
<pre class="eval"><button id="somebutton" label="&someButton.label">
</pre>
<h2 id="DTD_multiples" name="DTD_multiples">DTD multiples</h2>
<p>Si vous voulez utiliser plusieurs DTD pour votre fichier XUL, vous pouvez simplement lister tous les fichiers DTD dans votre déclaration DTD :</p>
<pre class="eval line-numbers language-html"><code class="language-html"><span class="doctype token"><!DOCTYPE window [
<!ENTITY % commonDTD SYSTEM "chrome://myextensions/locale/common.dtd"></span>
%commonDTD;
<!ENTITY % mainwindowDTD SYSTEM "chrome://myextension/locale/mainwindow.dtd">
%mainwindowDTD;
]></code></pre>
<p>Vous pouvez maintenant accéder aux entités déclarées dans les DTD comme indiqué ci-dessus. Supposons que vous avez une entité <code>okButton.label</code> définie dans le fichier <code>common.dtd</code>, alors l'accès aux entités des deux DTD ressemblera à cela :</p>
<pre class="eval line-numbers language-html"><code class="language-html"><span class="tag token"><span class="tag token"><span class="punctuation token"><</span>button</span> <span class="attr-name token">id</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>somebutton<span class="punctuation token">"</span></span> <span class="attr-name token">label</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>&someButton.label<span class="punctuation token">"</span></span><span class="punctuation token">></span></span>
...
<span class="tag token"><span class="tag token"><span class="punctuation token"><</span>button</span> <span class="attr-name token">id</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>okbutton<span class="punctuation token">"</span></span> <span class="attr-name token">label</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>&okButton.label<span class="punctuation token">"</span></span><span class="punctuation token">></span></span></code></pre>
<p>Notez qu'il n'existe rien de comparable aux espaces de noms avec plusieurs DTD. Vous devez vous assurez qu'il n'y a pas de conflit entre les entités définies dans les différents DTD.</p>
|