Page 1 sur 2
[traduction] Problème d'entités
Publié : 23 févr. 2007, 15:23
par Thunderseb
Bonjour à tous.
J'ai un problème avec les entités pour la traduction. Je suis en train de faire une petite extension, et je ne parviens pas à la rendre "traductible".
Voici mon fichier xul avec l'overlay (juste le début)
Code : Tout sélectionner
<!DOCTYPE overlay SYSTEM "chrome://ext/locale/extcode.dtd">
<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:html="http://www.w3.org/1999/xhtml">
<popup id="contentAreaContextMenu">
<menu label="Zcode">
<menupopup>
<menu label="Style">
<menupopup>
<menuitem class="context" id="context-zc-gras" label="&item-gras;" oncommand="InsererDoubleBalise('<gras>','</gras>');" />
l'entité que je veux traduire est &item-gras. Dans mon fichier .dtd, j'ai ceci :
Ce fichier se trouve dans le dossier /locale/fr-FR/ de l'extension.
J'ai déjà un peu recherché sur le forum après ce genre de problème, et je n'ai pas trouvé de bonnes réponses.
merci d'avance
Message envoyé avec : Opera/9.00 (Windows NT 5.1; U; fr)
Publié : 23 févr. 2007, 15:52
par martin
si tu tapes "chrome://foxycode/locale/foxycode.dtd" dans ta barre d'adresse, et que tu fais "Affichage > Code source de la page", vois tu correctement ta dtd ?
Publié : 23 févr. 2007, 15:59
par Thunderseb
En fait, il ne se passe rien, Firefox reste à la page où il se trouvait
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Publié : 23 févr. 2007, 16:08
par martin
alors c'est surement une erreur dans le chrome.manifest .
montre le nous

.
Publié : 23 févr. 2007, 16:16
par Thunderseb
Le voilà :
Code : Tout sélectionner
content foxycode chrome/content/
overlay chrome://browser/content/browser.xul chrome://foxycode/content/FoxyCode.xul
Publié : 23 févr. 2007, 16:25
par martin
rajoutes y la ligne :
note que d'après ce chrome.manifest, ton extension n'est pas dans un dans fichier .jar, ce qui est bien sûr préférable pendant le développement.
Publié : 23 févr. 2007, 16:32
par Thunderseb
J'ai ajouté la ligne, mais ça ne change rien.
Firefox me met ceci :
ca survient que je mets le "&" de l'entité
Ca change quoi de mettre dans un .jar ? Le reste de l'extension fonctionne bien

Publié : 23 févr. 2007, 16:50
par martin
Ferme complétement firefox, puis redémarre le, c'est nécessaire pour que les changements dans le chrome.manifest soient pris en compte.
J'espère aussi que l'entité &itemZCgras; est bien définie dans ta dtd.
Thunderseb a écrit :Ca change quoi de mettre dans un .jar ?
les déclarations dans le .manifest ne sont alors plus les mêmes

.
Publié : 23 févr. 2007, 17:15
par Thunderseb
Tout a l'air bon. La dtd, j'ai mis le code dans mon premier post. Voilà la journée que je suis dessus, ça comme à m'agacer ^^
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Publié : 23 févr. 2007, 17:29
par martin
l'entité 'itemZCgras' est elle bien définie dans ta dtd ? C'est celle ci que Firefox montre dans ta photo d'écran, et non 'item-gras'.
Publié : 23 févr. 2007, 17:31
par martin
soyons méthodique, maintenant vois tu le contenu de ta dtd si tu charges l'adresse directement dans la barre d'adresse et que tu fais afficher le source ?
Publié : 23 févr. 2007, 17:33
par Thunderseb
non, c'est juste. C'est parce que j'ai changé de nom par après, pour être plus logique avec le reste des scripts.
C'est bien l'entité &itemZCgras et al dtd est
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Publié : 23 févr. 2007, 17:46
par martin
après les changements dans le .manifest, et redémarrer, si tu tapes "chrome://foxycode/locale/foxycode.dtd" dans ta barre d'adresse, et que tu fais "Affichage > Code source de la page", vois tu correctement ta dtd ?
Publié : 23 févr. 2007, 18:24
par Thunderseb
Il me met "Fichier introuvable" alors qu'il y est. Enfin, bon, passons ^^ Je vais plutot prendre une extension simple et recopier le système de traduction et essayer de comprendre où je me plantais

Merci pour ton aide
J'ai une autre question, qui est plus pratique à mon avis. J'ai une liste xul :
Code : Tout sélectionner
<menulist id="liste_codes" editable="true">
<menupopup>
<menuitem value="html" label="XHTML" />
<menuitem value="css" label="CSS" />
<menuitem value="javascript" label="JavaScript" />
<menuitem value="xml" label="XML" />
<menuitem value="php" label="PHP" />
</menupopup>
</menulist>
Ce que je veux, c'est récupérer la valeur de lélément sélectionné. Je fais comme ça :
mais ça me donne le label

Même si j'utilise getAttribute("value") ^^ Comment je peux récupérer ce fameux attribut value ?
Publié : 23 févr. 2007, 20:10
par martin
Thunderseb a écrit :Il me met "Fichier introuvable" alors qu'il y est.
c'est donc toujours un problème d'enregistrement des dossiers de locales dans le .manifest, ou une erreur dans les urls y faisant référence (attention a la casse dans les noms de fichiers en partoculier.
Y'a pas, tant que c'est pas résolu, Firefox plantera sur l'entité.
essaie de mettre un fichier 'test.txt' dans le dossier fr-FR, contenant du texte, puis appelle le dans la barre d'adresse :
chrome://foxycode/locale/test.txt
si fichier introuvable, c'est le .manifest qui est en cause, si il s'affiche, c'est une erreur dans le chemin de la dtd.
Thunderseb a écrit :Il me met "Fichier introuvable" alors qu'il y est.
mais ça me donne le label

Même si j'utilise getAttribute("value") ^^ Comment je peux récupérer ce fameux attribut value ?
tu n'auras pas accés directement au menuitem sélectionné comme çà, comme dans un combo html.
Il te faut faire çà "à la main", quelque chose comme parcourir les menuitem enfants du menulist, et trouver celui qui a l'attribut checked à true.
http://developer.mozilla.org/en/docs/XUL:menulist
http://developer.mozilla.org/en/docs/XUL:menuitem
bon courage

, moi c'est apéro...