Many thanks, Adrian!

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

> Bruno,
>
> The expressions inside UI labels issue has been fixed in rev 674387.
>
> -Adrian
>
>
> Bruno Busco wrote:
>
>> 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
>>>>
>>>>> ...
>
> [Messaggio troncato]

Reply via email to