charger des fichiers de localisation par une adresse web

0 views
Skip to first unread message

ths otra

unread,
Oct 20, 2009, 6:39:27 AM10/20/09
to vegasos
Salut tout le monde !

Juste un mot sur le sujet de "bien débuter avec vegas" avant une question. Pour en avoir fait les frais, je peux dire qu'il faut y aller tranquillement, suivre attentivement les tutoriels, faire les exemples, et ... prendre son temps ! j'ai fais l'erreur de me précipiter et au final mon application ne tirait plus du tout parti de la puissance de ce framework. Je n'avais capté ni son véritable intérêt, ni la manière d'organiser un projet avec (voir et dépouiller astr' pour ça).
Bref, c'était pour mettre mon grain de sel dans la discussion précédente, je ne suis tujours pas un expert, mais ça va un peu mieux !


Sinon, j'avais juste une question: (par avance je sais que tu es pointilleux sur le vocabulaire, donc n'hésite à me corriger ! (surtout sur le terme "par une adresse web" )  )

J'ai cru voir quelques parts dans la lecture des tutoriels et autres infos, des conseils et indications pour charger des fichiers de localisation par une adresse web (dans mon cas: http://www.xxx.com/page=charger_langue&lang=fr ), si tu sais l'article en question, peux-tu m'indiquer un lien je relis un peu partout mais ne trouve plus !

Tiens, en passant, je chercher à faire pareil avec un fichier XML de configuration au lancement de l'application ( http://www.xxx.com?page=charger_conf&domaine="ths"&date="date_SQL").

Merci d'avance !

PS: le vote est fermé, trop tard ! j'ai pas eu le temps.

bonne journée à tous,

thomas


ekameleon

unread,
Oct 20, 2009, 8:19:15 AM10/20/09
to veg...@googlegroups.com
Hello :)

Je comprends plus ou moins ta question mais il manque quelques infos pour te donner une bonne réponse ;)

Tu cherches à faire quoi exactement charger une configuration localisée ? Si c'est le cas tu devrais lire mon article sur le sujet :

http://docs.google.com/Doc?id=dfd9s8cg_29cdqrshrj

Tu peux lire la partie 9 de cet article sur les ressources de type i18n :)

Ensuite si tu cherches à envoyer vers ton flash des variables provenant de l'url de la page web où se trouve ton animation flash il faut utiliser un passage de variable dans l'url de ton swf et donc les fonctionnalités de "FlashVars" de ton animation Flash.

Donc de façon général pour utiliser les FlashVars faut cibler dans le "root" de ton application l'objet "loaderInfo.parameters" et tu trouveras dedans toutes les variables provenant du conteneur de l'animation flash :)

Au sujet de l'intégration des FlashVars le mieux c'est d'utiliser SWFObject : http://egypte.olympe-network.com/swfobject-francais.html

Lis le chapitre 'Comment utiliser les objets JavaScript pour définir mes propres flashvars, params et attributes d'objets ?'

EKA+ :)

thomas

unread,
Oct 20, 2009, 8:36:27 AM10/20/09
to veg...@googlegroups.com
Hello et merci de ta réponse,

Je vais tenter d' être un peu plus clair. Pour l'application que je
développe j'ai effectivement besoin d'un moteur de localization, il
marche très bien et s'appuie sur des ressources de type i18n (exactement
identique à l'article que dont tu as mis le lien puisque c'est ce que
j'ai suivi pour le développer).
Ma question est plutôt: comment charger des ressources de type i18n avec
une url ? J'ai une fonction php qui pourrait générer les fichiers eden
en fonction du contenu d'une base de données.

Exemple:
Mon application charge bien actuellement les fichiers localize_fr.eden ,
localize_en.eden... mais je voudrais pouvoir les charger en faisant
plutôt: **
http://www.xxx.com/spip.php?page=charger_langue&lang=fr
<http://www.xxx.com/page=charger_langue&lang=fr> pour obtenir un
équivalent du localize_fr.eden actuel
http://www.xxx.com/
<http://www.xxx.com/page=charger_langue&lang=fr>spip.php?
<http://www.xxx.com/page=charger_langue&lang=fr>page=charger_langue&lang=en
<http://www.xxx.com/page=charger_langue&lang=fr> pour obtenir un
équivalent du localize_en.eden actuel

Pour plusieurs raisons cela serait plus simple qu'ils soient générés par
une requête plutôt qu'en dur dans un dossier. Idem pour une ressource
XML qui se générait en ligne par un requête.

J'espère que je suis plus clair là ... désolé !

ekameleon a écrit :


> Hello :)
>
> Je comprends plus ou moins ta question mais il manque quelques infos
> pour te donner une bonne réponse ;)
>
> Tu cherches à faire quoi exactement charger une configuration
> localisée ? Si c'est le cas tu devrais lire mon article sur le sujet :
>
> http://docs.google.com/Doc?id=dfd9s8cg_29cdqrshrj
>
> Tu peux lire la partie 9 de cet article sur les ressources de type i18n :)
>
> Ensuite si tu cherches à envoyer vers ton flash des variables
> provenant de l'url de la page web où se trouve ton animation flash il
> faut utiliser un passage de variable dans l'url de ton swf et donc les
> fonctionnalités de "FlashVars" de ton animation Flash.
>
> Donc de façon général pour utiliser les FlashVars faut cibler dans le
> "root" de ton application l'objet "loaderInfo.parameters" et tu
> trouveras dedans toutes les variables provenant du conteneur de
> l'animation flash :)
>
> Au sujet de l'intégration des FlashVars le mieux c'est d'utiliser
> SWFObject : http://egypte.olympe-network.com/swfobject-francais.html
>
> Lis le chapitre 'Comment utiliser les objets JavaScript pour définir

> mes propres |flashvars|, |params| et |attributes| d'objets ?'


>
> EKA+ :)
>
>
> Le 20 octobre 2009 12:39, ths otra <ths....@gmail.com

> <mailto:ths....@gmail.com>> a écrit :

ekameleon

unread,
Oct 20, 2009, 9:00:01 AM10/20/09
to veg...@googlegroups.com
Hello :)

Il y a plusieurs possibilités :

1 - faire un service AMFPHP et charger l'objet PHP directement dans l'application et injecter l'objet directement pour la langue courante dans l'objet de localization sans passer par l'ioc :)

Dans la classe Localization tu as la méthode append qui sert à cela :)

http://www.ekameleon.net/vegas/docs/andromeda/i18n/Localization.html#append%28%29

Donc en gros en tapant :

Localization.getInstance().append( "fr" , init ) ;

Tu peux injecter des données en + dans ta localisation chargée par défaut avec l'ioc en récupérant le contenu via ton php.

2 - tu peux changer les paramètres de la ressource i18n pour cibler un script différent style

{ resource : "fr" , prefix : "script.php?lang=" , path : "http://www.xxx.com/" , suffix:"" }

Faut tester la ligne au dessus dans le moteur de resource de mon framework ioc mais cela devrait fonctionner :)

PS : je dois ajouter dans peu de temps des nouvelles fonctionnalités sur le moteur de ressources de type i18n pour mettre des nouveaux modes :

http://code.google.com/p/andromed-as/issues/detail?id=39

Cela simplifiera pas mal l'utilisation de celles ci... je penserai à ce moment là à bien tester ce genre de problème :)

EKA+ :)

thomas

unread,
Oct 20, 2009, 9:17:33 AM10/20/09
to veg...@googlegroups.com
Ouahou, si la solution 2 fonctionne, c'est génial.
Je teste ça dés demain et te tiens au jus !

Merci,


// ah oui, j'en profite pour te poser une question. Un ami cherche à
constituer une équipe pour une création de spectacle (musque
expérimentale, contemporaine et vidéo). Dans cette équipe, et pour la
version web de son spectacle, il est à la recherche d'un développeur
flash (en Vegas serait mieux !) pour réaliser une instrument sonore
interactif. Un dossier technique est en cours de rédaction. Aurais-tu
quelques contacts à me filer ? (où des gens dans la liste qui pourraient
être intéressé?, je ferai peut-être un post dédié bientôt avec davantage
de détails)


ekameleon a écrit :
> Hello :)
>

> Il y a plusieurs possibilités :
>
> 1 - faire un service AMFPHP et charger l'objet PHP directement dans
> l'application et injecter l'objet directement pour la langue courante
> dans l'objet de localization sans passer par l'ioc :)
>
> Dans la classe Localization tu as la méthode append qui sert à cela :)
>
> http://www.ekameleon.net/vegas/docs/andromeda/i18n/Localization.html#append%28%29
>
> Donc en gros en tapant :
>
> Localization.getInstance().append( "fr" , init ) ;
>
> Tu peux injecter des données en + dans ta localisation chargée par
> défaut avec l'ioc en récupérant le contenu via ton php.
>
> 2 - tu peux changer les paramètres de la ressource i18n pour cibler un
> script différent style
>
> { resource : "fr" , prefix : "script.php?lang=" , path :
> "http://www.xxx.com/" , suffix:"" }
>
> Faut tester la ligne au dessus dans le moteur de resource de mon
> framework ioc mais cela devrait fonctionner :)
>
> PS : je dois ajouter dans peu de temps des nouvelles fonctionnalités
> sur le moteur de ressources de type i18n pour mettre des nouveaux modes :
>
> http://code.google.com/p/andromed-as/issues/detail?id=39
>
> Cela simplifiera pas mal l'utilisation de celles ci... je penserai à
> ce moment là à bien tester ce genre de problème :)
>
> EKA+ :)
>
> Le 20 octobre 2009 14:36, thomas <ths....@gmail.com

> <mailto:ths....@gmail.com>> a écrit :


>
>
> Hello et merci de ta réponse,
>
> Je vais tenter d' être un peu plus clair. Pour l'application que
> je développe j'ai effectivement besoin d'un moteur de
> localization, il marche très bien et s'appuie sur des ressources
> de type i18n (exactement identique à l'article que dont tu as mis
> le lien puisque c'est ce que j'ai suivi pour le développer).
> Ma question est plutôt: comment charger des ressources de type
> i18n avec une url ? J'ai une fonction php qui pourrait générer les
> fichiers eden en fonction du contenu d'une base de données.
>
> Exemple:
> Mon application charge bien actuellement les fichiers
> localize_fr.eden , localize_en.eden... mais je voudrais pouvoir
> les charger en faisant plutôt: **
> http://www.xxx.com/spip.php?page=charger_langue&lang=fr

> <http://www.xxx.com/spip.php?page=charger_langue&lang=fr>
> <http://www.xxx.com/page=charger_langue&lang=fr

> <mailto:ths....@gmail.com> <mailto:ths....@gmail.com

ekameleon

unread,
Oct 20, 2009, 9:24:02 AM10/20/09
to veg...@googlegroups.com
Hello :)

cool que cela fonctionne ;)

Pour ton projet je fais passer l'info ;)

EKA+ :)

Le 20 octobre 2009 15:17, thomas <ths....@gmail.com> a écrit :

Fay

unread,
Oct 20, 2009, 9:53:12 AM10/20/09
to veg...@googlegroups.com
Le 20 octobre 2009 15:17, thomas <ths....@gmail.com> a écrit :


// ah oui, j'en profite pour te poser une question. Un ami cherche à constituer une équipe pour une création de spectacle (musque expérimentale, contemporaine et vidéo). Dans cette équipe, et pour la version web de son spectacle, il est à la recherche d'un développeur flash (en Vegas serait mieux !) pour réaliser une instrument sonore interactif. Un dossier technique est en cours de rédaction.  Aurais-tu quelques contacts à me filer ? (où des gens dans la liste qui pourraient être intéressé?, je ferai peut-être un post dédié bientôt avec davantage de détails)

Ben avec plus d'info faut voir...
ça dépend du besoin ...
doit on commander flash avec une interface midi...? style synthé, batterie electro ou simplement des capteurs....
les sons seront des loops pré enregistrées, ou à faire en live...?
le but c'est de controler du visuel par le son ou l'inverse..?
etc etc...

avec plus d'infos, plus de réponces... ;-)
 
Have fun
Faya

thomas

unread,
Oct 20, 2009, 1:22:44 PM10/20/09
to veg...@googlegroups.com
Fay a écrit :

>
>
> Le 20 octobre 2009 15:17, thomas <ths....@gmail.com
> <mailto:ths....@gmail.com>> a écrit :
// ok, je voulais savoir si du monde pouvait être intéressé ici.
J'attends le dossier technique dans la semaine, je poste ici dès que
j'ai davantage de détails

ths otra

unread,
Oct 22, 2009, 1:43:04 PM10/22/09
to veg...@googlegroups.com
Ok, super, ça fonctionne très bien. A un détail près: il faut un espace (suffix :" ") à l'attribut suffix.

    { resource : "fr" , type: "i18n" ,prefix :"spip.php?action=charger_langue&lang=" ,  path : "http://xxx.net/",suffix :" "},
    { resource : "en" , type: "i18n" ,prefix :"spip.php?action=charger_langue&lang=" ,  path : "http://xxxx.net/",suffix :" "},

Et rien que pour trouver ça, je viens de cramer ma journée. ;-)

ekameleon

unread,
Oct 22, 2009, 2:12:30 PM10/22/09
to veg...@googlegroups.com
Hello :)

c'était pourtant dans ma réponse plus haut suffisait de bien regarder ;)

Mais à mon avis il y a moyen que j'optimise tout cela dans ma mise à jour des ressources i18n ... je vais y réfléchir :)

EKA+ :)

ekameleon

unread,
Oct 22, 2009, 2:13:43 PM10/22/09
to veg...@googlegroups.com
Hello :)

En fait j'ai peut être mal compris le problème .. tu parles de mettre un espace " " ?? une chaine vide "" ne fonctionne pas ? :)

Faudra que je teste cela ce week end :)

EKA+ :)

ths otra

unread,
Oct 22, 2009, 3:28:51 PM10/22/09
to veg...@googlegroups.com
ouais, je teste avec une chaine vide là, et ça ne passe pas !



Une ch'tite question en passant:

Je dois charger un XML de configuration différent selon les sous-domaines où sera chargé l'application.
http://riri.XXX.net ---> resource xml pour "momo"
http://fifi.XXX.net ---> resource xml pour "fifi"
http://loulou.XXX.net ---> resource xml pour "loulou"

Pour l'instant avec un fichier xml générique tout va bien (normal), mais je  voulais faire un truc du genre:
{ resource : "charger_conf" ,type : "xml" , id : "configuration"  , path : "http://xxx.net/spip.php?action=",verbose:true}, )

Ne pouvant utiliser les flashvar, je pensai découper l'url et en extraire le sous-domaine. Le passer en paramètre d'une fonction pour générer le xml de configuration mais ... c'est impossible à cause des problèmes de referrer  (http://kb2.adobe.com/cps/171/b06f1712.html) !!!

Donc, je me demandais si je pouvais importer manuellement un resource xml, avant de procéder au chargement avec un ECMAObjectLoader( "application.eden" , "context/" ) et rendre toujours possible le cablage des deux ?


Est-ce bien ce dont tu parles ici ?
La classe andromeda.ioc.io.ObjectResource implémente un design pattern de type "value object". Ce pattern permet d'assurer l'utilisation d'un objet simple contenant toutes les valeurs nécessaires pour définir et charger une ressource externe en fonction d'un type et parfois d'un identifiant défini par l'utilisateur dans le fichier de configuration de la fabrique. Les objets de types ObjectResource (qui héritent de cette classe) pourront être définis simplement en eden ou transférés via un protocole AMF par exemple avec Flash Remoting ou autre.

et ici (dans ta deuxième réponse à ce message):

"faire un service AMFPHP et charger l'objet PHP directement dans l'application et injecter l'objet directement"


Bon, je fais une petite pause là, pfiou.

bonne soirée !

ekameleon

unread,
Oct 22, 2009, 4:56:45 PM10/22/09
to veg...@googlegroups.com
Hello :)

1 - pourquoi tu utilises du XML alors que tu as du eden à dispo plus simple à utiliser ? Franchement faire de la config en XML pour moi c'est tout sauf pratique :)

2 - tu peux charger des données venant de l'extérieur sans l'ioc avec les classes XMLLoader ou EdenLoader ou autre :)

3 - Pour ce qui est du referrer ??? Tu me donnes un lien pour des scripts en AS2... sinon il est vrai que tu peux récupérer le referrer en regardant la classe system.URI ou core.uri dans VEGAS ;) Pratique pour parser une url :)

Voir :

http://www.ekameleon.net/vegas/docs/core/uri.html (même classe mais plus légère)

ou encore tu peux utiliser la classe HTTPHost plus basique mais basée sur l'implémentation APACHE :


Il faut avant d'utiliser l'ioc regarder mes classes plus simple dans VEGAS et tu verras qu'il est très simple de charger un fichier de tout type ou même une config en eden surtout (voir moteur de configuration de base avec explication complète dans les ressources de type "config" dans le doc de l'ioc)

Sinon oui il est possible de créer des ressources de type AMFPHP mais c'est pas exactement la même chose dont je parlais au dessus même si on peut fusionner les deux idées ;)

Il est en effet possible :

1 - de charger tout simplement avec AMFPHP un objet contenant les données nécessaires pour une langue donnée avec un service simple et ensuite d'utiliser le moteur de localisation directement sans passer par l'ioc et son moteur de ressource... pour cela il suffit juste de bien comprendre comment marche le moteur de localisation et là encore tout est expliqué dans le document sur les ressources de type i18n :)

2 - créer une nouvelle ressource en se basant sur les ressources déjà existantes et l'utiliser ... maintenant faut vraiment que je prenne le temps d'améliorer mon moteur de ressource dans les prochaines semaines... car il y a de quoi faire de ce côté là :) 

EKA+ :)

ths otra

unread,
Oct 22, 2009, 8:37:45 PM10/22/09
to veg...@googlegroups.com
hello,

1. Il ne s'agit pas de la config ioc à proprement parler. De plus,à terme j'aimerais pouvoir récupérer ces fichiers dans un logiciel qui s'appelle pure data et il y a un parseur xml très pratique.

2. Effectivement, maintenant j'utilise la class XMLLoader pour le charger le xml ... mais comment  câbler certaines de ces valeurs avec le reste de la fabrique ioc ? (ce serait quand même rudement pratique ! ;-) )

3. Pour ce qui est du referrer, je crois que nous ne nous sommes pas bie n compris:
Quand tu fais par exemple un getURL(), les informations  "referrer" ne sont pas inclus dans le header. Donc pas de découpe par php de l'url possible. Donc, je suis d'accord, ça se passe dans flash (regexp va bien) mais .... pas moyen de faire ça dans l'attribut path d'une resource xml ! Donc, il faut bien le charger différemment. Et là, je suis bloqué. J'ai essayé de faire des objects mais pas moyen de cabler les deux !

Ah, et oui, tu as raison de dire que beaucoup de choses sont expliquées dans la doc, mais en fait, on s'en aperçoit quand on avance dans les tests. De prime abord, on a beau comprendre, on ne perçoit pas d'emblée la portée de telle ou telle fonction dans telle ou telle contexte.

-j'abandonne pour ce soir ! Mais je m'y recolle dés demain matin !


bye et merci de ta patience et tes conseils !

ekameleon

unread,
Oct 23, 2009, 2:51:00 AM10/23/09
to veg...@googlegroups.com
Hello :)

Pour éditer les fichiers eden tu peux utiliser JSEclipse en complément de FDT ou FlexBuilder... c'est super puissant pour coder tout ce qui ressemble à du Javascript ;) Ensuite pour manipuler une config au format eden c'est bien plus simple qu'un xml (avis perso mais à mon avis suffit de bien cerner les possibilités de eden pour s'en rendre compte :))

Pour injecter des objets dans la fabrique suffit de créer des définitions d'objets à la main :) Tu peux créer une définition d'objet à la main en tapant un objet identique à celui que tu pourrais créer dans le fichier de config externe au format eden et en utilisant ObjectDefinition.create( init:Object ) :)

Regarde bien comment fonctionne la classe ObjectDefinition et les méthodes addObjectDefinition etc .de ta fabrique ;)

EKA+ :)

ths otra

unread,
Oct 24, 2009, 2:45:46 AM10/24/09
to veg...@googlegroups.com
Hello,

Bon, ce n'est pas encore très propre mais grâce à tes conseils, j'ai pu réussir.

1. Je load un xml de configuration avec la classe XMLloader (l'url pouvant être découper par flash, et c'est du bonheur pour récupérer ce qu'on veut de l'adresse: dans mon cas le sous-domaine pour charger xml dédié)

2. Un fois le xml chargé je crée un Object et le remplis des valeurs du xml

3. var conf:Config = Config.getInstance() ;
    conf.map(xmlconfig)

4. je charge l'application en eden avec la class ECMAObjectLoader

5. les objects de l'application peuvent être câbler comme d'habitude
avec l'attribut config.

6. ça marche impeccable (pour l'instant)

Bon, peut-être un peu bringbalante, mais elle a le mérite de fonctionner pour l'instant.

bonne soirée tout le monde !

tranquillement,

Thomas
Reply all
Reply to author
Forward
0 new messages