Sure,
thanks!

-Bruno

2008/7/4 Adrian Crum <[EMAIL PROTECTED]>:

> 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