You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Paul Benedict (JIRA)" <ji...@apache.org> on 2007/08/20 12:01:53 UTC

[jira] Updated: (STR-1916) Cannot retrieve all MessageResources messages

     [ https://issues.apache.org/struts/browse/STR-1916?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Paul Benedict updated STR-1916:
-------------------------------

    Fix Version/s: Future

> Cannot retrieve all MessageResources messages
> ---------------------------------------------
>
>                 Key: STR-1916
>                 URL: https://issues.apache.org/struts/browse/STR-1916
>             Project: Struts 1
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 1.1.0
>         Environment: Operating System: Windows XP
> Platform: PC
>            Reporter: Jay Zylstra
>            Priority: Minor
>             Fix For: Future
>
>         Attachments: CedarMessageResources.java
>
>
> I'm developing an app that is localized into various European languages.  I've 
> used Struts' support for multiple resource bundles by creating topical bundles, 
> such as one of country names keyed by their ISO-3166 codes, and so forth, as 
> well as a default bundle of general messages.  I intend to use these topical 
> resource bundles to populate localized form drop-downs, but MessageResources 
> doesn't have any public methods nor fields to access all messages without first 
> knowing their keys.
> To solve this, I suggest a pair of methods like...
>   public java.lang.String[] getMessages();
>   public java.lang.String[] getMessages(java.util.Locale locale);
> ...to access all of the messages in a bundle.  Since I would also need to know 
> the messages' keys, I further suggest another method like...
>   public java.lang.String[] getKeys();
> ...which would also allow the use of parametric replacement when traversing a 
> bundle by passing each key into an existing getMessage() method.
> The benefit of returning String arrays is that they are immutable, protecting 
> the underlying resource bundle from corruption.  Alternately, an Iterator 
> implementation that ignores remove() could be returned, since remove() is 
> optional.  Because PropertyMessageResouces (MessageResources' concrete 
> subclass) is backed by a Map, neither approach should be very difficult.
> Finally, and this is probably beyond the scope of this suggestion, I need the 
> messages (not the keys) to be in alphabetical order, which would be quite 
> difficult using my suggested enhancement.  So, I'll probably have to subclass 
> PropertyMessageResources after all, but I thought I'd suggest this as an 
> enhancement anyhow, since others would obviously benefit from the 
> functionality.  Of course, I could manually sort the actual message bundle 
> contents, but that isn't nearly as elegant and is prone to error.
> JayZ

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.