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