Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Impossible de récupérer les valeurs .properties

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.

# Re: Impossible de récupérer les valeurs .properties

Envoyé par : laurentj

Date : 08/12/2005 10:50

Un bout de code pourrait nous eclairer

# Re: Impossible de récupérer les valeurs .properties

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

# Re: Impossible de récupérer les valeurs .properties

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

        

# Re: Impossible de récupérer les valeurs .properties

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.

# Re: Impossible de récupérer les valeurs .properties

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:

  • chaines.properties encodé en UTF-8 BOM (UTF-8 dans SciTE): n'affiche rien, et pas d'erreur !
  • chaines.properties encodé en ISO-8859-1 (8 Bit dans SciTE): affiche uniquement 'Bo' !
  • chaines.properties encodé en UTF-8 sans BOM (UTF-8 Cookie dans SciTE): OK affiche bien 'Boîte' !

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

# Re: Impossible de récupérer les valeurs .properties

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

# Re: Impossible de récupérer les valeurs .properties

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.