[ 
https://issues.apache.org/jira/browse/TAPESTRY-1997?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12558276#action_12558276
 ] 

Howard M. Lewis Ship commented on TAPESTRY-1997:
------------------------------------------------

I can't see where this might be happening. It may be an issue with how the 
HttpServletRequest object reports the Locale.

The code doesn't seem to do anything special with the case of the locale:

public class PersistentLocaleImpl implements PersistentLocale
{
    /**
     * Name of the cookie written to the client web browser to identify the 
locale.
     */
    private static final String LOCALE_COOKIE_NAME = 
"org.apache.tapestry.locale";

    private final Cookies _cookieSource;

    public PersistentLocaleImpl(Cookies cookieSource)
    {
        _cookieSource = cookieSource;
    }

    public void set(Locale locale)
    {
        _cookieSource.writeCookieValue(LOCALE_COOKIE_NAME, locale.toString());
    }

    public Locale get()
    {
        String localeCookieValue = getCookieValue();

        return localeCookieValue != null ? new Locale(localeCookieValue) : null;
    }

    private String getCookieValue()
    {
        return _cookieSource.readCookieValue(LOCALE_COOKIE_NAME);
    }

    public boolean isSet()
    {
        return getCookieValue() != null;
    }

}

> PersistentLocale is lower-casing locales
> ----------------------------------------
>
>                 Key: TAPESTRY-1997
>                 URL: https://issues.apache.org/jira/browse/TAPESTRY-1997
>             Project: Tapestry
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.0.6
>            Reporter: Geoff Callender
>
> An issue affecting localization: PersistentLocale is converting locales from 
> mixed case to all lower case, which is useless for formatting.  For example, 
> if page 1 sets the locale like this:
>       @Inject
>       private PersistentLocale _persistentLocaleService;
>       Locale locale = Locale.UK;
>       _persistentLocaleService.set(locale);
>       System.out.println("locale is " + locale + " - " + 
> locale.getDisplayName());
>  
> then this is what prints:
>       locale is en_GB - English (United Kingdom)
> But when I'm in page 2 I get the locale and find it has mutated...
>       Locale locale = _persistentLocaleService.get();
>       System.out.println("locale is " + locale + " - " + 
> locale.getDisplayName());
> ...this is what prints:
>       locale is en_gb - en_gb
> This mutated locale in page 2 is useless for formatting.  Code like the 
> following produces default-styling instead of the styling for en_GB:
>       _myDateFormat = DateFormat.getDateInstance(DateFormat.LONG, locale);
>       System.out.println(_myDateFormat.format(new Date()));
> It seems this has also adversely affected how supported-locales are declared 
> (maybe in previous releases only).  See 
> http://thread.gmane.org/gmane.comp.java.tapestry.user/56526/focus=56527

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


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to