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 >>>>>>>>>>> >>>>>>>>>>> >>> >>> >> >>