[
https://issues.apache.org/jira/browse/WW-4295?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
adam brin updated WW-4295:
--------------------------
Attachment: WW-4295.patch
-- perhaps it's easier to attach the PATCH file here instead, no luck cloning
on github --
First attempt at enabling value-labels to be pulled from Locale Files. Adding
listValueKey attribute to checkboxList, radioMap, and select tags.
Issues:
This implementation uses the <@s.text> tag to handle the localization with an
assignment. I presume this is less than idea, but I lack the knowledge of the
Struts2 tag model that would suggest where to check for this on the valueStack
or elsewhere.
Example:
public enum yesno {
YES, NO;
}
<@s.radio name="yes no" list="#{yesno.values()}" valueKey="name()" />
<!-- this will look for the name() in the locale file and emit the localized
value for the label of the radio button.
> provide better documentation and / or functionality for localization of
> struts2 tag elements (select, radio, etc.)
> ------------------------------------------------------------------------------------------------------------------
>
> Key: WW-4295
> URL: https://issues.apache.org/jira/browse/WW-4295
> Project: Struts 2
> Issue Type: Bug
> Affects Versions: 2.3.16
> Reporter: adam brin
> Fix For: 2.3.x
>
> Attachments: WW-4295.patch
>
>
> The <@s.text> macro is very useful for localization of text values. The
> <@s.textfield tag also takes a "key" > but, the select, radio, and checkbox
> options don't have good options for localization. One option raised on the
> list and identified in a few places is to construct a separate map of
> variables that have been localized in Freemarker and use that for
> localization
> (https://stackoverflow.com/questions/5548104/struts-select-tag-localization-implementation/17258640#17258640)...
> this does not seem sustainable or maintainable. Two possible methods for
> addressing this might be:
> # update the documentation to better identify how to localize these values in
> the "approved" way
> # implement a listKey parameter that like the textfield implementation or
> other implementations might call getText() on the key prior to rendering
> {code:title=Example Implementation for Radiobutton}
> <#if parameters.listKey??>
> <#assign itemValue><@s.text
> name="${stack.findString(parameters.listKey)}" /><#rt></#assign>
> <#elseif parameters.listValue??>
> <#assign itemValue = stack.findString(parameters.listValue)/>
> <#else>
> <#assign itemValue = stack.findString('top')/>
> </#if>
> {code}
--
This message was sent by Atlassian JIRA
(v6.2#6252)