Utilisation de plusieurs DTD

Généralement il n'y a qu'un unique ficher DTD (Document Type Definition) pour la localisation d'un fichier XUL 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.

DTD unique

Pour rendre localisables les chaînes de votre fichier XUL, vous devez ajouter une déclaration DTD au début du fichier comme ceci :

<!DOCTYPE window SYSTEM "chrome://myextension/locale/mainwindow.dtd">

window est le nom local de l'élément (racine) du document.

Par exemple, si vous avez une entité appelée someButton.label définie dans mainwindow.dtd, vous pouvez y accéder comme ceci :

<button id="somebutton" label="&someButton.label">

DTD multiples

Si vous voulez utiliser plusieurs DTD pour votre fichier XUL, vous pouvez simplement lister tous les fichiers DTD dans votre déclaration DTD :

<!DOCTYPE window [
  <!ENTITY % commonDTD SYSTEM "chrome://myextensions/locale/common.dtd">
  %commonDTD;
  <!ENTITY % mainwindowDTD SYSTEM "chrome://myextension/locale/mainwindow.dtd">
  %mainwindowDTD;
]>

Vous pouvez maintenant accéder aux entités déclarées dans les DTD comme indiqué ci-dessus. Supposons que vous avez une entité okButton.label définie dans le fichier common.dtd, alors l'accès aux entités des deux DTD ressemblera à cela :

<button id="somebutton" label="&someButton.label">
...
<button id="okbutton" label="&okButton.label">

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.

Étiquettes et contributeurs liés au document

Étiquettes : 
 Contributeurs à cette page : loella16, Goofy, Fredchat
 Dernière mise à jour par : loella16,