Localisation des .js dans une extension Firefox
Localisation des .js dans une extension Firefox
Bonjour,
Y a t'il un moyen d'utiliser les fichier de locale d'une extension firefox pour localiser un script en JS ?
Je m'explique : tout le mécanisme de localisation à base de fichier dtd fonctionne pour les fichiers .xul (browser.xul et options.xul par exemple), une ref en début de ces fichiers :
<!DOCTYPE xxxSYSTEM "chrome://xxx/locale/translations.dtd"> et toutes entité &toto; sera remplacée par sa déclaration dans le fichier .dtd.
Mais comment faire pour le fichier .js qui est lancé par l'extension et qui doit renvoyer un texte (dans une alert("Au secours !") par exemple), comment lui faire interpréter les entités de la DTD ?
J'ai essayé avec un document.write = '<!DOCTYPE xxxSYSTEM "chrome://xxx/locale/translations.dtd">', mais ça ne marche pas.
Quelqu'un aurait une idée ?
jh
Y a t'il un moyen d'utiliser les fichier de locale d'une extension firefox pour localiser un script en JS ?
Je m'explique : tout le mécanisme de localisation à base de fichier dtd fonctionne pour les fichiers .xul (browser.xul et options.xul par exemple), une ref en début de ces fichiers :
<!DOCTYPE xxxSYSTEM "chrome://xxx/locale/translations.dtd"> et toutes entité &toto; sera remplacée par sa déclaration dans le fichier .dtd.
Mais comment faire pour le fichier .js qui est lancé par l'extension et qui doit renvoyer un texte (dans une alert("Au secours !") par exemple), comment lui faire interpréter les entités de la DTD ?
J'ai essayé avec un document.write = '<!DOCTYPE xxxSYSTEM "chrome://xxx/locale/translations.dtd">', mais ça ne marche pas.
Quelqu'un aurait une idée ?
jh
Re: Localisation des .js dans une extension Firefox
Ma devise : Etre convaincu (en 3 mots)
Mes extensions
Mes extensions
Re: Localisation des .js dans une extension Firefox
En relisant, c'est peut-être pas super clair.
Un exemple plutôt.
Dans mon fichier XUL j'ai :
Dans le fichier RemoveSearchplugins.properties, situé comme tu le vois avec les dtd dans les différents répertoires locale/* :
Et dans mon fichier JS une fonction :
que j'appelle par :
L'encapsulage du stringbundle dans une fonction permet de récupérer des chaines avec formatage ou non (%s, %c, ...) et de gérer les erreur, mais tu peux directement utiliser
Un exemple plutôt.
Dans mon fichier XUL j'ai :
Code : Tout sélectionner
<stringbundleset id="stringbundleset">
<stringbundle id="removesearchplugins-strings" src="chrome://RemoveSearchplugins/locale/RemoveSearchplugins.properties"/>
</stringbundleset>
Code : Tout sélectionner
delete=Suppression de plugin de recherche
deletePluginPrompt=Voulez-vous supprimer le plugin %S ?\n
Code : Tout sélectionner
getLocaleString : function(strName, formattingValues) {
var str = null;
try {
var strbundle = document.getElementById("removesearchplugins-strings");
if (formattingValues === undefined) {
str = strbundle.getString(strName);
} else {
str = strbundle.getFormattedString(strName, formattingValues);
}
} catch (err) {
dump("Couldn't get string: " + strName + "\n");
}
return str;
},
Code : Tout sélectionner
var name = popupNode.label;
var delstr1 = this.getLocaleString('delete');
var delstr1 = this.getLocaleString('deletePluginPrompt', [name]));
Code : Tout sélectionner
var delstr1 = document.getElementById("removesearchplugins-strings").getString('delete');
Ma devise : Etre convaincu (en 3 mots)
Mes extensions
Mes extensions
Re: Localisation des .js dans une extension Firefox
OK, merci pour toutes ces bonnes infos, je vais essayer...
Re: Localisation des .js dans une extension Firefox
On peut aussi se dispenser de créer le stringbundkle dans le xul en le créant en tête du fichier .js
Voir ici
http://www.babelzilla.org/index.php?opt ... 18&Itemid=
Voir ici
http://www.babelzilla.org/index.php?opt ... 18&Itemid=
Re: Localisation des .js dans une extension Firefox
Oui c'est plus simple, mais peut-on encore utiliser des chaines avec des %s à l'intérieur sans avoir à les remplacer "à la main" ?
Re: Localisation des .js dans une extension Firefox
Je ne suis pas sûr de comprendre ta question mais on peut bien sûr localiser avec des placeholders aussi http://babelwiki.babelzilla.org/index.p ... a_.js_filejhb2529 a écrit :Oui c'est plus simple, mais peut-on encore utiliser des chaines avec des %s à l'intérieur sans avoir à les remplacer "à la main" ?
Qui est en ligne ?
Utilisateurs parcourant ce forum : Semrush [Bot] et 8 invités