I believe that #1 is what we should do. If you do #2, then the locale
will be changed away from what the view-root offers (and which might
be derived from the accept-header of the request, so you have the
possibility to implement #2) somehow "automagically" - without the
developer really knowing.
- First (that's the same issue as you had) - existing applications
behave differently.
- Second - also as a user, I'm expecting US-date format when I'm
looking at an application I18nized in en-US. If you give me German
date formats, you'll need to indicate this clearly, and that's
something a developer has to do manually and consciously (except
Trinidad has some automatic way of indicating date, time and
number-format to the user). So as a German-speaking user, this is not
the way I'd want the application to behave automatically.
regards,
Martin
On 10/25/06, Gabrielle Crawford <[EMAIL PROTECTED]> wrote:
>
>
> Arjuna Wijeyekoon wrote:
>
> > On 10/24/06, Adam Winer <[EMAIL PROTECTED]> wrote:
> >
> >>
> >>
> >> On 10/24/06, Arjuna Wijeyekoon <[EMAIL PROTECTED]> wrote:
> >> > I like #2 because:
> >> > 1. no new public apis.
> >>
> >> Maybe I didn't explain #2: in either case, we have a new public
> >> API. There's no way to add this feature without adding a public
API.
> >> The question is entirely what the behavior of that public API is.
> >
> >
> >
> > ok, I see. you will still need the
> > RequestContext.getFormattingLocale but
> > not the setFormattingLocale.
> >
> >
> >> 2. correct behaviour out-of-the-box
> >>
> >> But what is "correct" behavior? Is it the current JSF behavior
> >> (formatting locale is always exactly translation locale), or is
> >> it that formatting locale is always exactly the user's locale,
> >> irrespective of the translation locale.
> >
> >
> >
> > ok, I see the problem.
> > Personally, I feel that the user's locale is always correct.
> > But if it is in conflict with the translation locale, I am not sure
> > what to
> > do.
> > Using a date field as an example, often there is a hint
underneath the
> > field
> > indicating what the pattern is.
> > does this hint come from a translation bundle? If so, then it
would be
> > wrong
> > to use the user's locale instead of the
> > translation locale.
>
>
> That's a very good point. If they only have US translations, the help
> uses US formatting, now we come along and actually use UK
formatting, so
> the help is wrong.
>
> That does seem like a major problem for #2. Could we have a config
> setting to switch on #2, because I think #2 is very useful, but maybe
> they need to buy in, it's still a much less painful buy in than they
> have now with the converter 'locale' attribute....
>
> Thanks,
>
> Gab
>
> >
> >
> >> 3. we won't get into a weird state where locale is english_uk, but
> >> someone
> >>
> >> > programmatically sets formatting locale to english_us.
> >>
> >> That's a complete legal state; maybe unusual, but legal.
> >
> >
> >
> > It is more than unusual. It is completely wrong. If I expect my
dates
> > to be
> > in (UK) dd-MM-yyyy, and I am actually getting
> > (US) MM-dd-yyyy, that could cause me to miss my flight.
> > --arjuna
> >
> > -- Adam
> >
> >>
> >>
> >> > --arjuna
> >> >
> >> > On 10/23/06, Adam Winer < [EMAIL PROTECTED]> wrote:
> >> > >
> >> > > Arash,
> >> > >
> >> > > ViewHandler.calculateLocale() is used to set the Locale on
> >> > > the UIViewRoot; so no conflicts really. They're different
> >> > > Locales.
> >> > >
> >> > > There's two possibilities here, though, for the default
behavior:
> >> > >
> >> > > (1) RequestContext.getFormattingLocale() defaults to just
returning
> >> null;
> >> > > so, UIViewRoot.getLocale() - and, therefore,
> >> ViewHandler.calculateLocale()
> >> > > -
> >> > > always wins, unless someone explicitly calls
setFormattingLocale()
> >> for
> >> > > a given request.
> >> > >
> >> > > (2) The formatting locale defaults independently of
> >> > > ViewHandler.calculateLocale()
> >> > > and the "supported-languages" list, based on the user agent
> >> "Accepts".
> >> > > So, for example, if you only had English as a supported
> >> language, a
> >> > > German
> >> > > user would see English text, but German-formatted dates
> >> out-of-the-box.
> >> > >
> >> > > I'm leaning towards #1, because it doesn't change any existing
> >> behavior,
> >> > > and even if we implement #1, and application developer can
still
> >> choose
> >> > > to make an application behave like #2. But #2 is more like how
I'd
> >> > > want my applications to behave...
> >> > >
> >> > > -- Adam
> >> > >
> >> > >
> >> > >
> >> > > On 10/23/06, Arash Rajaeeyan < [EMAIL PROTECTED]>
wrote:
> >> > > > Hi adam
> >> > > >
> >> > > > I have some experience of using ADF in countries which
English
is
> >> not
> >> > > > primary language and their software needed to support more
than
> >> one
> >> > > language
> >> > > > at the same time.
> >> > > >
> >> > > > having a RequestContext.getFormattingLocale() looks like a
nice
> >> idea
> >> > > to
> >> > > > me, and it makes it easier to add internationalization and
support
> >> for
> >> > > > different locales to components.
> >> > > >
> >> > > > I think t is much better that components act intelligently
> >> according
> >> to
> >> > > > their users clients.
> >> > > >
> >> > > > it would be great if you could be sure this is no conflict
with
> >> method:
> >> > > >
> >> > > > abstract java.util.Locale calculateLocale(
> >> > > > javax.faces.context.FacesContext context)
> >> > > >
> >> > > > in following class of 1.1 API:
> >> > > >
> >> > > > javax.faces.application.ViewHandler
> >> > > >
> >> > > >
> >> > > > On 10/23/06, Adam Winer <[EMAIL PROTECTED]> wrote:
> >> > > > >
> >> > > > > JSF currently has support for one Locale, off of
> >> > > FacesContext.getLocale().
> >> > > > >
> >> > > > > It's also possible to override the locale on a
per-converter
> >> basis
> >> by
> >> > > > > explicitly setting the "locale" attribute on various
converters.
> >> > > > > This is useful for cases when you have, for example, only
> >> translations
> >> > > > > into a limited set of languages (for example, just American
> >> English),
> >> > > but
> >> > > > > need to show users dates formatted in the user's locale so
> >> > > > > there is no accidental misinterpretation of dates (e.g.,
British
> >> > > > > English or German). I've gotten some internal requirements
for
> >> > > > > using this functionality, but setting it on every single
> >> converter
> >> > > > > gets to be painful.
> >> > > > >
> >> > > > > To make this easier, I'd like to expose a new Locale on
> >> > > RequestContext:
> >> > > > >
> >> > > > > Locale RequestContext.getFormattingLocale()
> >> > > > > void RequestContext.setFormattingLocale(Locale locale)
> >> > > > >
> >> > > > > ... and have the DateTimeConverter and NumberConverter
overrides
> >> > > > > that Trinidad supplies automatically default to the
formatting
> >> locale
> >> > > > > if it is set to a non-null value.
> >> > > > >
> >> > > > > Comments?
> >> > > > >
> >> > > > > -- Adam
> >> > > > >
> >> > > >
> >> > > >
> >> > > >
> >> > > > --
> >> > > > Arash Rajaeeyan
> >> > > >
> >> > > >
> >> > >
> >> >
> >> >
> >>
> >
>
>
--
http://www.irian.at
Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German
Professional Support for Apache MyFaces