Custom LocaleResolver cannot fall back to using the locale from the request's 
Accept-Language header
----------------------------------------------------------------------------------------------------

                 Key: SLING-1905
                 URL: https://issues.apache.org/jira/browse/SLING-1905
             Project: Sling
          Issue Type: Improvement
          Components: Extensions
    Affects Versions: I18n 2.0.4
            Reporter: Alexander Klimetschek


It is difficult for a custom LocaleResolver to use the default request locale 
(based on the HTTP Accept-Language header), because:

1) the I18NFilter passes its own wrapped request object to the LocaleResolver 
(instead of the original one), resulting in an endless loop if 
request.getLocales() is used inside the LocaleResolver
2) LocaleResolver.resolveLocale() returns a List<Locale> whereas 
request.getLocales() returns Enumeration<Locale>, making conversion 
unnecessarily difficult
3) the default LocaleResolver which uses the original request's getLocale() is 
not available as a fallback, it is solely used if no custom LocaleResolver is 
used at all

Ideas:
1) could easily be solved by passing this.getSlingRequest()
2) + 3) a public DefaultLocaleResolver class (as base for custom ones) could 
provide this fallback in its resolveLocale() implementation

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

Reply via email to