vendrce
Messages postés7Date d'inscriptionmercredi 7 novembre 2007StatutMembreDernière intervention10 décembre 2009
-
8 nov. 2007 à 11:15
vendrce
Messages postés7Date d'inscriptionmercredi 7 novembre 2007StatutMembreDernière intervention10 décembre 2009
-
12 nov. 2007 à 11:29
Bonjour,
je viens d'hétité d'une appli en coldfusion et je dois l'adapter au multilinguisme. Après quelques recherches, je me suis dit que le plus simple était de faire un custom tag qui recevrait 3 parametres :
- file : un fichier xml dns lequel se trouve les traductions
- id :id de l'element que je veux traduire
- lng : la langue
Mais j'ai certains problèmes.
1. Comment fait-on pour que coldfusion reconnaisse mon custom tag. Pour l'instant, j'ai le message suivant : Unknown tag: CFTRANS
2. Comment utiliser mes paramètres dans mon custom tag? Je m'explique. Voici mon code (il n'est pas fini, je cherche). J'aimerais remplacer les string en dur (en gras) par les paramètres (en rouge).
<CFPARAM name= "Attributes.lng" default="EN">
<cfif isDefined('Attributes.file') and isDefined ('Attributes.id')>>
<cffile action="read"
file= "/ec/prod/app/webroot/external/secure/SANCO/idb/web.xml" a remplacer par le parametre FILE
variable ="myxml">
<cfscript>
myxmldoc = XmlParse(myxml);
selectedElements = XmlSearch(myxmldoc, "/web-app/security-role(ID)/role-name(LNG)" a remplacer par les parametres I D / LNG ); for (i 1; i LTE ArrayLen(selectedElements); i i + 1)
writeoutput(selectedElements[i].XmlText & "
");
</cfscript>
</cfif>
Je sais que ces questions doivent sembler basique pour pas mal de gens mais je viens d'un monde PowerBuilder et tout ceci me dépasse un peu pour l'instant.
vendrce
Messages postés7Date d'inscriptionmercredi 7 novembre 2007StatutMembreDernière intervention10 décembre 2009 8 nov. 2007 à 12:29
Bon, j'ai résolu certains problèmes. Maintenant, j'affiche bien les données se trouvant dans le fichier xml et j'utilise correctement les parametres.
Mais, je suis obligé de mettre mon fichier CFTRANS.cmf dans le répertoire ou se trouve mes cfm qui l'utilisent.
Autre chose, et je ne vois absolument pas pourquoi, mon custom tag semble etre appele 2 fois. En effet, a la place d'avoir mon libellé traduit, je l'ai deux fois.
nickadele
Messages postés1251Date d'inscriptionmercredi 7 août 2002StatutModérateurDernière intervention10 avril 2013 8 nov. 2007 à 13:48
Bonjour,
lorsque l'on utilise un module sous forme de customTag il est normal qu'il soit appelé 2 fois :
1. à l'ouverture de la balise
2. à la fermeture de la balise
Pour bien définir un custom tag il faut définir au sein du code ce qu'il faut faire lors de l'appel de l'ouverture ou celui de fermeture comme ci dessous :
<cfif thistag.executionmode EQ "start">
<!--- démarrage du custom tag, c'est ici que l'on récupéreère l'ensemnble des paramètres --->
<cfelse>
<!--- fin du custom tag, généralement c'est ici que l'on renvoie le résultat, éventuellement il peut être agrémenté du contenu qui se trouve entre la balise d'ouverture et de fermeture--->
</cfif>
Pour pouvoir utiliser un autre répertoire (exemple un répertoire reprenant l'ensemble des customtags) il suffit d'utiliser la fonction cfimport :
<cfimport taglib="le path de la librairie" prefix="le nom du préfix, facultatif">
Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle