OK, next question. What if they want to use their own helper object to change the pattern?
Say, a browser-detection bean? So, the "smart forward" has some replacement switch. When the switch is true, it calls a method that returns a string. The string is merged into the path (or equivalent field). The locale version is then a concrete implementation that uses the local helper in the session. If we want to be really stupid, one version could return an array, and look for {0}, {1}. BTW, why is it that we don't use an array for the message replacements. Something to do with the taglibs? "Craig R. McClanahan" wrote: > > On Fri, 14 Dec 2001, Ted Husted wrote: > > > Date: Fri, 14 Dec 2001 18:18:18 -0500 > > From: Ted Husted <[EMAIL PROTECTED]> > > Reply-To: Struts Developers List <[EMAIL PROTECTED]> > > To: [EMAIL PROTECTED] > > Subject: i18n Forwards > > > > Have we ever talked about a standard subclass for ActionForward that > > would automatically expand a path based on the user's locale. I'm pretty > > sure this has come up on the user list, where people were changing the > > forward dynamically in the Action. But maybe we should have a standard > > ActionForward subclass so that you could do like > > > > <forward name="whatever" path="\pages\{*}\whatever.jsp" locale="true"/> > > > > and have it expand to > > > > \pages\es\whatever.jsp or > > \pages\en\whatever.jsp > > > > at runtime. > > > > Or is that too application specific? > > > > The message resources are great for cobbling together messages, but I > > doubt that it would be a good solution for larger sites. > > > > But then, what do I know about i18n projects ;-) > > > > I like the idea. > > I think the Apache pattern is to add a Locale suffix (/pages/whatever.jsp > --> /pages/whatever.jsp.es). This would probably not work well when JSP > pages are extension mapped, but using a replacement pattern lets the user > configure this to match their own environment. > > I would suggest the following as implementation considerations: > > * We can just make the existing ActionForward class smarter by adding > a Locale property that defaults to "false". > > * IMHO, the existing "path" property getter method should continue to > return the pattern itself. > > * We would add new getPath(Locale locale) method (or some such) that > performs the replacement if locale is true, or the value of getPath() > if locale is false. > > * Perhaps the replacement code in the pattern should be {0} so that it > acts like internationalized message strings in resource bundles? > > Craig -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>