Extensions francaises de Pascal

Des nouvelles intriguent, portent à réactions ; des rumeurs courent et vous voulez débattre le vrai du faux. C'est simple : ce forum est dédié à ceux qui se sont laissés tenter par la pomme de la connaissance.
Répondre
NaWer
Lézard à collerette
Messages : 407
Inscription : 28 juin 2004, 16:16

Extensions francaises de Pascal

Message par NaWer »

On en avait déja parlé, les nom francais des extensions de Pascal ne plait pas a TEM (d'ailleur, peu de choses leurs plaisent :lol:)

Voila que le sujet ressort sur le forum de TEM :
http://www.extensionsmirror.nl/index.php?showtopic=3012
Sboulema a écrit :Because of that they would be really hard to find on TEM
(trad rapide :Car elles seront vraiment trop dures a retrouver sur TEM)

:shock:
esprit fermé sur un projet ouvert...

j'en reparle car ca m'avait ennervé, et ca m'ennerve encore.
:arrow: La FAQ - La Recherche - Le profil
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

On devrait mettre en place un système identique sur Geckozone : toutes les extensions qui ont un nom à consonnance non francophone ou avec une description pas en français seraient systématiquement refusées... c'est vraiment désolant :roll:
nomade
Iguane
Messages : 985
Inscription : 03 sept. 2003, 04:15

Message par nomade »

à propos de la description de l'extension, l'auteur d'AutoCopy a réussi à la localiser... peut-être que pascal pourrait faire pareil ?
La liberté des uns commence là où commence celle des autres.
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Ou peut-être qu'ils arriveraient à mettre ça nativement dans une prochaine version de Firefox... :roll:
nomade
Iguane
Messages : 985
Inscription : 03 sept. 2003, 04:15

Message par nomade »

Evidemment, mais le mieux est l'ennemi du bien, et un tiens vaut mieux que deux tu l'auras :D :roll:
La liberté des uns commence là où commence celle des autres.
arno.
Varan
Messages : 1347
Inscription : 19 août 2004, 12:26

Message par arno. »

je suis en train d'essayer la technique d'Autocopy pour localiser la description, j'y comprends pas grand chose, :?
je vous tiens au courant si j'y arrive
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

J'ai déjà cherché à comprendre aussi, et je n'ai pas compris :?
arno.
Varan
Messages : 1347
Inscription : 19 août 2004, 12:26

Message par arno. »

dans le dossier local, y'a un autocopy.properties avec la description dedans :

Code : Tout sélectionner

autocopy-description=Copie automatiquement le texte sélectionné dans le presse-papier.
dans le xul overlay, y'a

Code : Tout sélectionner

<stringbundle id="autocopyStrings" src="chrome://autocopy/locale/autocopy.properties"/>
et dans le javascript overlay, y'a :

Code : Tout sélectionner

    var strings = document.getElementById("autocopyStrings");

        var autocopyLocalizationPrefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("extensions.{0FED7D55-65D4-47b6-A6DE-9A4ADB55355F}.");
        var autocopylocaledescription = strings.getString("autocopy-description");
        var str = Components.classes[ "@mozilla.org/supports-string;1" ].createInstance( Components.interfaces.nsISupportsString );
        str.data = autocopylocaledescription;
        autocopyLocalizationPrefs.setComplexValue( "description", Components.interfaces.nsISupportsString, str );
J'ai l'impression que ça vient de là, mais j'arrive pas à reproduire. En plus, j'y comprends pas grand chose à ce truc d'overlays, quand je modifie la chaine dans le fichier autocopy.properties, faut que je supprime complétement le profil puis que je réinstalle pour que la modif soit prise en compte. C'est pas le pied pour les tests :(
nomade
Iguane
Messages : 985
Inscription : 03 sept. 2003, 04:15

Message par nomade »

sinon demandez directement à l'auteur, il est très sympa et partagera sûrement volontiers sur ce sujet parce qu'il est très content de lui ;)
La liberté des uns commence là où commence celle des autres.
arno.
Varan
Messages : 1347
Inscription : 19 août 2004, 12:26

Message par arno. »

edit=y'avait au gros bug

alors je viens de réussir, (toujours en me basant sur Autocopy) à localiser la description.

alors zou, mini tuto à l'arrache. Mettons que l'extension s'appelle tournicoti (et pourquoi pas hein ?) et que la description s'appelle une extension qui va vous faire tourner la tête

Donc dans ta locale, tu vas créer une fichier tournicoti.properties et tu vas écrire dedans :
tournicoti.description=une extension qui va vous faire tourner la tête
(si le fichier existe déjà ben tu lui rajoutes juste cette ligne

ensuite tu vas dans le dossier content et tu trouves le fichier .xul d'overlay

dedans, probablement vers le début, tu vas trouver une ou plusieurs lignes qui ressemble grosso modo à ça :

Code : Tout sélectionner

<overlay id="tournicoti"  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
bon eh ben juste après tu vas écrire de ta plus belle encre :

Code : Tout sélectionner

     <script type="application/x-javascript" src="tournicoti-overlay.js"/>
<stringbundleset id="stringbundleset">
   <stringbundle id="tournicoti-overlay-strings" src="chrome://clines/locale/tournicoti.properties"/>
</stringbundleset>
(pour la ligne src="chrome://clines/locale/tournicoti.properties"/> ça dépend de la structure de l'extension, il faudra parfois adapter, mais c'est la configuration la plus courante.)

ensuite, tu vas créer, dans le même dossier le fichier tournicoti-overlay.js et dedans, tu vas graver au burin ces lignes là :

Code : Tout sélectionner

window.addEventListener("load",function() {init();} ,false);

function () init {
   var tournicotiLocalizationPrefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("extensions.{616f2aa8-9674-4009-90de-94ce4ea9d29a}.");
   var str=Components.classes[ "@mozilla.org/supports-string;1" ].createInstance( Components.interfaces.nsISupportsString );
   str.data=document.getElementById("tournicoti-overlay-strings").getString("tournicoti.description");
   tournicotiLocalizationPrefs.setComplexValue( "description", Components.interfaces.nsISupportsString, str );
}

(pour {616f2aa8-9674-4009-90de-94ce4ea9d29a}, c'est juste un exemple, c'est l'identifiant de l'extension, on peut le trouver dans le fichier install.rdf)

(autre chose, si le fichier .js d'overlay existe déjà, ben .... il faut adapter )

voila et la grossière erreur à ne pas faire qui m'a fait perdre un temps fou, c'est de ne pas créer de fichier .js d'overlay et d'essayer de tout mettre dans le fichier .xul par

Code : Tout sélectionner

 <script type="text/x-javascript"> .... </script>
Je sais pas pourquoi, mais ça marche pas.

Bon voila, j'espère que ça vous sera utile, c'est vrai que c'est pas super clair comme mini-tuto, et que c'est plutot orienté pour ceux qui maitrisent déjà un peu, mais tout de suite, j'ai pas le courage de faire plus détaillé. Si personne ne le fait, je ferais ptet un truc plus complet un de ces 4, mais je promets rien.
Goofy
Iguane
Messages : 593
Inscription : 23 juil. 2004, 22:39

Message par Goofy »

Bouhouhou, j'y arrive pô... je vois bien que je serais jamais un geek :? :) ... j'ai bien tout essayé comme le disait Arno, avac des tas de variantes pour voir si ça irait pas mieux en recollant les bouts de code ici oo là...

Si quelqu'un veut voir là-dedans...

http://goofy37.perso.cegetel.net/blockx ... ocTest.xpi

(dans cette dernière et vaine tentative, j'ai mis à part les fichiers d'overlay . xul et .js en les affectant du numéro 2. N'importe quoi, je suppose... Enfin bon, c'était juste pour ne pas mélanger avec le reste du fonctionnement de l'extension)
arno.
Varan
Messages : 1347
Inscription : 19 août 2004, 12:26

Message par arno. »

Ne te décourage pas Goofy, tu peux devenir un geek, d'autres que toi y sont arrivés, il n'y a pas de raison.
Avant toute chose, il te faura suivre tout l'enseignement de maitre foo :
http://www.faqs.org/docs/artu/ten-thousand.html
quand tu seras bien prêt et que tu te seras imprégné de toute la philosophie zen des vrais geeks, tu pourras lire ce qui suit :

Bon, pour ta première tentative, t'es tombé sur un cas particulier :)
T'avais pourtant tout bien fait. Bon j'explique :

window.addEventListener("load",function() {init();} ,false);

c'est ce qui appelle la fonction init au démarrage de Firefox (au chargement de l'overlay pour être plus précis), laquelle fonction va localiser la description.

Mais il se trouve que dans le cas de ton extension, il y a déjà une fonction appelée au démarrage (voir fichier .xul : window.addEventListener("load", loadBlockXXX, true);). Tirons parti maintenant de l'enseignement de master foo qui nous dit de toujours profiter de ce qui a déjà été fait.
Puisqu'il y a déjà une fonction appelée au démarrage, on va mettre les quelques lignes de l-ex fonction init dans cette fonction (au début de la fonction) qui se trouve vers la fin du fichier .js

Donc pour récapituler : dans le fichier .xul : tu rajoutes juste les 3 lignes des stringbundle, tu appelles pas le script ; et dans le fichier .js, tu vas à la fonction loadBlockXXX et tu rajoutes les quelques lignes qu'il faut au début de cette fonction.

Chez moi ça marche :D (je vais pas t'envoyer les fichiers quand même, le but c'est que t'apprennes à le faire toi-même :wink: )

dernière petite précision : la première ligne de la fonction :
var tournicotiLocalizationPrefs= .... normalement var c'est sur la même ligne que le reste, c'est juste que le forum qu'a pas voulu mettre tout sur la même ligne; je ne sais pas si ça change grand chose. donc, les deux premières lignes, en fait c'est que une seule ligne.

Voila, je ne sais pas si j'ai été très clair, mais je pense que tu es capable de t'en sortir quand même. Si ce n'est pas le cas, n'hésite pas à reposer des questions.
Goofy
Iguane
Messages : 593
Inscription : 23 juil. 2004, 22:39

Message par Goofy »

Merci d'aider un gros lourd de la comprenotte.

VICTOIRE ! et champagne pour tout le monde...
je m'y suis encore repris à trois fois pour jongler avec les petits bouts de javascript, mais ça marche...


MERCI à Arno !
pour sa compétence, et surtout le temps qu'il a pris pour expliquer patiemment les choses.

Je pense que d'autres pourront en profiter...


Donc merci.
(et surtout, merci !)
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités