The same thing can be accomplished without the ?interpret add-on.

Wait a little while longer on this - I am looking through the FreeMarker code 
trying to find a better way.

-Adrian


--- On Fri, 7/4/08, Bruno Busco <[EMAIL PROTECTED]> wrote:

> From: Bruno Busco <[EMAIL PROTECTED]>
> Subject: Re: How to include parameters into UiLabels strings?
> To: dev@ofbiz.apache.org
> Date: Friday, July 4, 2008, 1:34 PM
> Googling around I found this:
> http://lists.ofbiz.org/pipermail/dev/2003-November/003762.html
> 
> so in the .FTL I have used the following:
> <div><#assign
> ProductOnlyShowingFirstN=uiLabelMap.ProductOnlyShowingFirstN?interpret><@ProductOnlyShowingFirstN/>.</div>
> 
> and so doing it is not necessary to change the screens XML
> files to insert
> the <set> tag.
> If there are no objections it could still be "the way
> to go"
> 
> Thank you,
> -Bruno
> 
> 
> 2008/7/4 Adrian Crum <[EMAIL PROTECTED]>:
> 
> > Doing so would require a change to the Freemarker
> code. It would be worth
> > looking into.
> >
> > -Adrian
> >
> >
> > BJ Freeman wrote:
> >
> >> wouldn't be easier to change the rendering
> code
> >> instead of doing this for every line that has
> split labels with variables.
> >> just seems more of a quick fix but not a
> solution\
> >>
> >>
> >> Adrian Crum sent the following on 7/3/2008 12:42
> PM:
> >>
> >>> Keep it simple:
> >>>
> >>> <set
> field="ProductOnlyShowingFirstN"
> >>>
> value="${uiLabelMap.ProductOnlyShowingFirstN}"/>
> >>>
> >>> and
> >>>
> >>> ${ProductOnlyShowingFirstN}
> >>>
> >>> -Adrian
> >>>
> >>> Bruno Busco wrote:
> >>>
> >>>> Adrian,
> >>>> yes I did read your solution and now I
> have also tested and solved the
> >>>> problem.
> >>>> Thank you.
> >>>>
> >>>> BTW, since this is something that will
> happen more than once (above
> >>>> all if
> >>>> we replace some splitted english-ordered
> sentences with a whole label)
> >>>> I ask
> >>>> for a best practice to do it.
> >>>> I propose the one that I have implemented
> right now as following:
> >>>>
> >>>> In order to display the following UILabel:
> >>>> <property
> key="ProductOnlyShowingFirstN">
> >>>>    <value
> xml:lang="en">NOTE: Only showing the first
> ${viewSize} of
> >>>> ${listSize} products. To view the rest,
> use the Products tab for this
> >>>> category.</value>
> >>>>    <value
> xml:lang="it">NOTA: Sono elencati solo
> ${viewSize} di
> >>>> ${listSize}
> >>>> prodotti. Per visualizzare gli altri, usa
> il pannello Prodotti di questa
> >>>> categoria.</value>
> >>>> </property>
> >>>>
> >>>> I have used the following line in the
> actions tag:
> >>>> <set
> field="uiLabelMap_ProductOnlyShowingFirstN"
> >>>>
> value="${uiLabelMap.ProductOnlyShowingFirstN}"/>
> >>>>
> >>>> and the following line in the .FTL file
> >>>> ${uiLabelMap_ProductOnlyShowingFirstN}
> >>>>
> >>>>
> >>>> So the guideline could be that the field
> used has the same name has the
> >>>> UiLabel except the "." replaced
> by the "_"
> >>>>
> >>>> Does this make sense?
> >>>>
> >>>> Thank you,
> >>>> Bruno
> >>>>
> >>>> P.S.
> >>>> To implement this it has been necessary to
> change the screen xml file
> >>>> and
> >>>> the ftl file.
> >>>> I also tried to use the #assign tag in
> order to have this local to the
> >>>> .FTL
> >>>> file with the following lines:
> >>>>
> >>>>                    <#assign
> uiLabelMap_ProductOnlyShowingFirstN =
> >>>> uiLabelMap.ProductOnlyShowingFirstN>
> >>>>                   
> <div>${uiLabelMap_ProductOnlyShowingFirstN}.</div>
> >>>>
> >>>> but this does not work :-(
> >>>> There are no way to make this work?
> >>>>
> >>>> 2008/7/3 BJ Freeman
> <[EMAIL PROTECTED]>:
> >>>>
> >>>>  Ok sorry now it makes sense.
> >>>>> my languages are limited but like in
> spanish the sentence structure is
> >>>>> different than english so the
> placement of the variables would be
> >>>>> different.
> >>>>>
> >>>>> so the approach have the $() in the
> uilabels files is what you are
> >>>>> suggesting.
> >>>>>
> >>>>> Bruno Busco sent the following on
> 7/3/2008 1:15 AM:
> >>>>>
> >>>>>> So the only solution is to split
> the strings and have the ${} into the
> >>>>>>
> >>>>> ftl ?
> >>>>>
> >>>>>> It is not the case to think to
> implement an iterative strings
> >>>>>> rendering
> >>>>>> until no more ${} are found?
> >>>>>> (this is why I used dev ml)
> >>>>>>
> >>>>>> This would also solve the issue
> that splitting the sentence in several
> >>>>>> labels it is necessary to stick to
> english words order that
> >>>>>> generally is
> >>>>>> different from other languages.
> >>>>>>
> >>>>>> Thank you
> >>>>>> -Bruno
> >>>>>>
> >>>>>> 2008/7/3 BJ Freeman
> <[EMAIL PROTECTED]>:
> >>>>>>
> >>>>>>  probably should be in user ml
> >>>>>>> use
> >>>>>>>  uiLabelMap.yourstringid
> >>>>>>> then move the text to
> >>>>>>> config/name of
> fileUiLabels.xml
> >>>>>>>
> >>>>>>> take a look at
> CatalogCommonScreens.xml  for where you may find the
> >>>>>>> UiLabels.xml files like
> >>>>>>>               <property-map
> resource="ProductUiLabels"
> >>>>>>>
> map-name="uiLabelMap"
> global="true"/>
> >>>>>>>               <property-map
> resource="CommonUiLabels"
> >>>>>>>
> map-name="uiLabelMap"
> global="true"/>
> >>>>>>>
> >>>>>>> note you will have to break it
> up so the $() stay in the ftl, i
> >>>>>>> believe.
> >>>>>>>
> >>>>>>>
> >>>>>>> Bruno Busco sent the following
> on 7/2/2008 11:15 PM:
> >>>>>>>
> >>>>>>>> Thank you very much for
> your suggestions, I have been able to answer
> >>>>>>>>
> >>>>>>> you
> >>>>>
> >>>>>> only now...
> >>>>>>>>
> >>>>>>>> The issue, i think, is not
> related to the availability of the
> >>>>>>>>
> >>>>>>> information
> >>>>>
> >>>>>> in
> >>>>>>>
> >>>>>>>> the context, the two
> variables are already defined in the context.
> >>>>>>>> The
> >>>>>>>> problem I have is that the
> UI label rendering should do a "double
> >>>>>>>>
> >>>>>>> rendering"
> >>>>>>>
> >>>>>>>> and it seems not to do so.
> >>>>>>>>
> >>>>>>>> I try to better explain
> (sorry for the message length).
> >>>>>>>>
> >>>>>>>> I am working on the file
> >>>>>>>>
> \applications\product\webapp\catalog\find\miniproductlist.ftl.
> At
> >>>>>>>> lines
> >>>>>>>> 46-50 of this file there
> is the following:
> >>>>>>>>              <#if
> (listSize > viewSize)>
> >>>>>>>>                 
> <div>
> >>>>>>>>                   
> <div>NOTE: Only showing the first ${viewSize} of
> >>>>>>>> ${listSize} products. To
> view the rest, use the Products tab for
> >>>>>>>> this
> >>>>>>>> category.</div>
> >>>>>>>>                 
> </div>
> >>>>>>>>              </#if>
> >>>>>>>>
> >>>>>>>> The viewSize and listSize
> variables are correctly rendered since
> >>>>>>>> they
> >>>>>>>>
> >>>>>>> are
> >>>>>
> >>>>>> correctly defined in the context
> by the miniproductlist.groovy
> >>>>>>>> script.
> >>>>>>>> The problem is that this
> string is english only and I would like to
> >>>>>>>> transform in a standard
> UiLabel, so I added the following in the
> >>>>>>>> ProductUiLabels.xml file:
> >>>>>>>>
> >>>>>>>>    <property
> key="ProductOnlyShowingFirstN">
> >>>>>>>>        <value
> xml:lang="en">NOTE: Only showing the first
> ${viewSize}
> >>>>>>>>
> >>>>>>> of
> >>>>>
> >>>>>> ${listSize} products. To view the
> rest, use the Products tab for this
> >>>>>>>> category.</value>
> >>>>>>>>        <value
> xml:lang="it">NOTA: Sono elencati solo
> ${viewSize} di
> >>>>>>>> ${listSize} prodotti. Per
> visualizzare gli altri, usa il pannello
> >>>>>>>>
> >>>>>>> Prodotti
> >>>>>>>
> >>>>>>>> di questa
> categoria.</value>
> >>>>>>>>    </property>
> >>>>>>>>
> >>>>>>>> and replaced the above
> lines in the miniproductlist.ftl file with
> >>>>>>>> the
> >>>>>>>> following:
> >>>>>>>>
> >>>>>>>>              <#if
> (listSize > viewSize)>
> >>>>>>>>                 
> <div>
> >>>>>>>>                   
> <div>${uiLabelMap.ProductOnlyShowingFirstN}</div>
> >>>>>>>>                 
> </div>
> >>>>>>>>              </#if>
> >>>>>>>>
> >>>>>>>> well, in this case what I
> get on the screen is the following:
> >>>>>>>>
> >>>>>>>> NOTE: Only showing the
> first ${viewSize} of ${listSize} products. To
> >>>>>>>>
> >>>>>>> view
> >>>>>
> >>>>>> the rest, use the Products tab for
> this category.
> >>>>>>>>
> >>>>>>>> where you can see that the
> variables are not rendered even if they
> >>>>>>>> are
> >>>>>>>> defined in the context.
> >>>>>>>>
> >>>>>>>> In my opinion a cyclic
> rendering should be done on the string
> >>>>>>>> until no
> >>>>>>>>
> >>>>>>> more
> >>>>>>>
> >>>>>>>> ${} are found because all
> have been rendered.
> >>>>>>>>
> >>>>>>>> I think that this is the
> reason why in many cases labels are divided
> >>>>>>>>
> >>>>>>> into
> >>>>>
> >>>>>> several labels (sometimes of one
> word only) that are then included in
> >>>>>>>>
> >>>>>>> ftl
> >>>>>
> >>>>>> files to form the whole sentence.
> Doing this can be a workaround for
> >>>>>>>>
> >>>>>>> the
> >>>>>
> >>>>>> variables rendering (because the
> variables are not included in the
> >>>>>>>>
> >>>>>>> UiLabels
> >>>>>>>
> >>>>>>>> string but in the ftl
> directly) but we already discussed in the ML
> >>>>>>>> that
> >>>>>>>>
> >>>>>>> this
> >>>>>>>
> >>>>>>>> should be avoided because
> it imposes the english words order that is
> >>>>>>>>
> >>>>>>> often
> >>>>>>>
> >>>>>>>> different for other
> languages.
> >>>>>>>>
> >>>>>>>> Many thanks,
> >>>>>>>> -Bruno
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> 2008/6/30 Ashish
> Vijaywargiya <[EMAIL PROTECTED]>:
> >>>>>>>>
> >>>>>>>>  Hello Bruno,
> >>>>>>>>>
> >>>>>>>>>> Unfortunately I
> see that the parameters ${viewSize} and
> >>>>>>>>>> ${listSize}
> >>>>>>>>>>
> >>>>>>>>> are
> >>>>>
> >>>>>> not
> >>>>>>>>>
> >>>>>>>>>> rendered as
> expected but the whole string is displayed as it
> >>>>>>>>>> appears
> >>>>>>>>>>
> >>>>>>>>> in
> >>>>>
> >>>>>> the
> >>>>>>>>>
> >>>>>>>>>> UiLabel.xml file.
> >>>>>>>>>>
> >>>>>>>>> ${viewSize} and
> ${listSize} means that we should put this values in
> >>>>>>>>>
> >>>>>>>> the
> >>>>>
> >>>>>> screen context first then this
> will be available in the UiLabel.xml
> >>>>>>>>> file.Suppose you are
> preparing context in the *Screens.xml then you
> >>>>>>>>>
> >>>>>>>> should
> >>>>>>>
> >>>>>>>> write down something like
> this :-
> >>>>>>>>>
> >>>>>>>>> <set
> field="viewSize" value="2"/>
> >>>>>>>>> <set
> field="listSize" value="2"/>
> >>>>>>>>>
> >>>>>>>>> Or if you would like
> to put this values in the *.bsh file that is
> >>>>>>>>>
> >>>>>>>> included
> >>>>>>>
> >>>>>>>> in your *Screens.xml file
> then you should write down the following
> >>>>>>>>>
> >>>>>>>> code.
> >>>>>
> >>>>>>
> context.put("viewSize","2");
> >>>>>>>>>
> context.put("listSize","2");
> >>>>>>>>>
> >>>>>>>>> If you are keeping
> your values in the parameters then you should
> >>>>>>>>> read
> >>>>>>>>>
> >>>>>>>> the
> >>>>>>>
> >>>>>>>> values from the parameters
> map inside your UiLabel.xml file.
> >>>>>>>>> In this case you will
> read by ${parameters.viewSize} &
> >>>>>>>>> ${parameters.listSize}
> >>>>>>>>> For example :-
> >>>>>>>>> <set
> field="parameters.viewSize"
> value="2"/>
> >>>>>>>>> <set
> field="parameters.listSize"
> value="2"/>
> >>>>>>>>>
> >>>>>>>>> & while putting
> the values in *.bsh
> >>>>>>>>>
> >>>>>>>>>
> parameters.put("viewSize","2");
> >>>>>>>>>
> parameters.put("listSize","2");
> >>>>>>>>>
> >>>>>>>>> You should notice that
> in the screen definition all the Decorator
> >>>>>>>>>
> >>>>>>>> comes
> >>>>>
> >>>>>> after setting this context values
> and decorator includes(set) the
> >>>>>>>>>
> >>>>>>>> values
> >>>>>
> >>>>>> from Property Files.So all the
> values kept in the context(either in
> >>>>>>>>> parameters or context
> map) will be available in those *UiLabel.xml
> >>>>>>>>>
> >>>>>>>> files.
> >>>>>>>
> >>>>>>>> And for the localization
> thing I agree from the Scott's comment.
> >>>>>>>>> So I think I am safe
> on that point :-)
> >>>>>>>>>
> >>>>>>>>> Please let us know if
> you still have some more question.
> >>>>>>>>>
> >>>>>>>>> --
> >>>>>>>>> Ashish
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> On Sun, Jun 29, 2008
> at 2:25 PM, Scott Gray <[EMAIL PROTECTED]>
> >>>>>>>>>
> >>>>>>>> wrote:
> >>>>>
> >>>>>> Hi Bruno
> >>>>>>>>>>
> >>>>>>>>>> I think you're
> looking for something like this:
> >>>>>>>>>>
> UtilProperties.getMessage(resource,
> >>>>>>>>>>
> "AccountingAdditionalShippingChargeForShipment",
> >>>>>>>>>>
> UtilMisc.toMap("shipmentId", shipmentId),
> locale);
> >>>>>>>>>>
> >>>>>>>>>> Regard
> >>>>>>>>>>
> >>>>>>>>>> 2008/6/29 Bruno
> Busco <[EMAIL PROTECTED]>:
> >>>>>>>>>>
> >>>>>>>>>>  Hi,
> >>>>>>>>>>> I am trying to
> add the following UiLabel that includes some
> >>>>>>>>>>>
> >>>>>>>>>> parameters
> >>>>>
> >>>>>>   <property
> key="ProductOnlyShowingFirstN">
> >>>>>>>>>>>      
> <value xml:lang="en">NOTE: Only showing the
> first
> >>>>>>>>>>> ${viewSize}
> >>>>>>>>>>>
> >>>>>>>>>> of
> >>>>>>>
> >>>>>>>> ${listSize} products. To
> view the rest, use the Products tab for
> >>>>>>>>>>>
> >>>>>>>>>> this
> >>>>>
> >>>>>> category.</value>
> >>>>>>>>>>>      
> <value xml:lang="it">NOTA: Sono elencati
> solo
> >>>>>>>>>>> ${viewSize} di
> >>>>>>>>>>> ${listSize}
> prodotti. Per visualizzare gli altri, usa il pannello
> >>>>>>>>>>>
> >>>>>>>>>> Prodotti
> >>>>>>>>>>
> >>>>>>>>>>> di questa
> categoria.</value>
> >>>>>>>>>>>  
> </property>
> >>>>>>>>>>>
> >>>>>>>>>>> I would like
> to use it in miniproductlist.ftl to replace an
> >>>>>>>>>>> english
> >>>>>>>>>>> constant
> >>>>>>>>>>> text.
> >>>>>>>>>>> Unfortunately
> I see that the parameters ${viewSize} and
> >>>>>>>>>>> ${listSize}
> >>>>>>>>>>>
> >>>>>>>>>> are
> >>>>>>>
> >>>>>>>> not
> >>>>>>>>>>
> >>>>>>>>>>> rendered as
> expected but the whole string is displayed as it
> >>>>>>>>>>> appears
> >>>>>>>>>>>
> >>>>>>>>>> in
> >>>>>>>
> >>>>>>>> the
> >>>>>>>>>>
> >>>>>>>>>>> UiLabel.xml
> file.
> >>>>>>>>>>>
> >>>>>>>>>>> What is the
> correct way to display parametrized labels?
> >>>>>>>>>>>
> >>>>>>>>>>> Many thanks,
> >>>>>>>>>>> Bruno
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>
> >>>
> >>
> >>


      

Reply via email to