Envoyé par : Tristan
Date : 07/12/2005 23:36
Bonjour, j'ai passé quelques heures à cherher la solution mais ne venant pas à bout du problème, je demande de l'aide.
Firefox 1.5 sous environnement WXP SP2. Je lie un fichier fic.properties dans mon fichier.xul avec la balise <stringbundle> (URL chrome ou File même résultat). Lorsque je veux récupérer les valeurs de fic.properties (UTF-8 de Scite) dans le javascript par la méthode getString j'ai toujours le message : this.stringbundle has no properties. Quelqu'un aurait il une idée ? Merci.
Envoyé par : laurentj
Date : 08/12/2005 10:50
Un bout de code pourrait nous eclairer
Envoyé par : Tristan
Date : 08/12/2005 19:12
XUL
<stringbundle id="chaines" src="chrome://annuaire/locale/fic.properties"/> <script src="chrome://annuaire/content/javascript/gestion-erreurs.js" type="application/x-javascript" charset="UTF-8" />
Gestion-erreurs.js
messagesErreurs=document.getElementById("chaines"); alert(messagesErreurs.getString("statutok")); Ici il ne m'affiche rien
Fic.properties
statutok=Rien signaler
Envoyé par : Eric
Date : 10/12/2005 10:54
J'ai déjà eu ce genre de problèmes avec des fichier properties qui contenaient des accents et étaient convertis en UTF-8, depuis de l'ISO-8959-1.
Dans l'exemple suivant
cntr.SWZ=CH pstlAddr.pstlBox=Boîte pstlBox.postOffcBox=CP
je n'arrivais pas à lire la propriété pstlBox.postOffcBox en raison d'un problème sur le î de Boîte de la propriété pstlAddr.pstlBox. Il a fallu réécrire Boîte dans le fichier une fois converti en UTF-8.
D'un autre côté, j'utilise les stringbundle de la manière suivante :
var CC = Components.classes; var Ci = Components.interfaces; var strnBndlSrvc = CC["@mozilla.org/intl/stringbundle;1"].getService(); strnBndlSrvc = strnBndlSrvc.QueryInterface(Ci.nsIStringBundleService); var strnBndl = strnBndlSrvc.createBundle(aUrn); var myProp = strnBndl.GetStringFromName(aProperty)
et donc pas avec une fonction getString : http://www.xulplanet.com/references/xpcomref/ifaces/nsIStringBundle.html
Envoyé par : didjac
Date : 18/05/2006 23:06
Bonjour,
je reprends cette discussion car j'ai moi aussi ce pb et je ne parviens pas à le résoudre, soit en utilisant la manière standard avec getstring, soit le code ci-dessus.
Dans les 2 cas, j'obtiens une erreur identique dans la console javascript.
En ajoutant des alert, je vois que le script se déroule normalement jusqu'à la fonction getstring ou gestringfromname, après laquelle il ne se passe plus rien.
Ci-dessous le contenu de mon fichier properties
optionnondispo=Nondisponible
Voici ci-après le code des deux manières utilisées.
Manière standard
<stringbundleset id="sbs"> <stringbundle id="chaines" src="chrome://xul02/locale/menu.properties"/> </stringbundleset>
var strbundle=document.getElementById("chaines"); var ndi=strbundle.getString("optionnondispo");
Erreur : uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIStringBundle.GetStringFromName]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: XStringBundle :: getString :: line 17" data: no]
Manière "manuelle"
<stringbundleset id="sbs"> <stringbundle id="chaines" src="chrome://xul02/locale/menu.properties"/> </stringbundleset>
var CC = Components.classes; var Ci = Components.interfaces; var strnBndlSrvc = CC["@mozilla.org/intl/stringbundle;1"].getService(); strnBndlSrvc = strnBndlSrvc.QueryInterface(Ci.nsIStringBundleService); var strnBndl = strnBndlSrvc.createBundle("chrome://xul02/locale/menu.properties"); var myProp = strnBndl.GetStringFromName("optionnondispo") alert(myProp);
Erreur : uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIStringBundle.GetStringFromName]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: chrome://xul02/content/menu.xul :: trt_autres :: line 85" data: no]
Pour compléter le panorama, j'utilise Firefox 1.5.0.2 sous XP Pro sp2.
Tous les forums ou sites indiquent la manière standard; je ne comprends pas ce qui cloche. Merci de votre aide.
Envoyé par : thefab
Date : 19/05/2006 10:22
Hello,
J'ai trouvé la solution avec stringbundle en tant qu'élément dans un fichier XUL. Je pense que c'est la même chose pour la version que JS.
UTF-8 de Scite
J'utilise aussi SciTE (Scintilla Text Editor), mais il y a une erreur dans le menu File > Encoding: UTF-8 et UTF-8 Cookie sont inversés. (Cookie signifie BOM (Byte Order Mask)).
XUL
<stringbundleset> <stringbundle id="chaines" src="chrome.../chaines.properties"/> </stringbundleset>
Properties
box=Boîte
JS
var chaines = document.getElementById("chaines"); alert(chaines.getString("box"));
Le problème vient de l'encodage:
Donc, d'après les essais que j'ai fait, je dirais que les fichiers .properties doivent être enregistrés en UTF-8 Sans BOM (UTF-8 Cookie dans SciTE).
Fabrice
Envoyé par : Christophe Charron
Date : 19/05/2006 18:28
thefab a écrit:
Donc, d'après les essais que j'ai fait, je dirais
que les fichiers .properties doivent être
enregistrés en __UTF-8 Sans BOM (UTF-8 Cookie dans
SciTE)__.
Fabrice
Houla !! Ca c'est foireux de chez foireux !!! J'avais abandonné l'espoir d'utiliser les stringbundles !! Et avec PsPAd, quelle est l'option ? Car je n'ai qu'un type d'encodage utf-8 !!! Question subsidiaire : est-on là aussi obligé de passer par le chrome ?
Cordialement
Envoyé par : thefab
Date : 22/05/2006 16:18
Et avec PsPAd, quelle est l'option ?
Après l'avoir télécharger, installer, tester (je suis quand même sympa) je dirais qu'il enregistre en UTF-8 sans BOM, donc ça devrait être bon!
Rem: quand on écrit 'a', PSPad enregistre 'a\r\n' ???
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.