You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by "Carlos Montero Canabal (JIRA)" <ji...@apache.org> on 2016/05/24 18:45:13 UTC

[jira] [Commented] (TAP5-2551) module t5/core/messages and default locale

    [ https://issues.apache.org/jira/browse/TAP5-2551?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15298695#comment-15298695 ] 

Carlos Montero Canabal commented on TAP5-2551:
----------------------------------------------

I have found that ConfigureHTMLElementFilter writes:

html.attributes("data-locale", threadLocale.getLocale().toString());

But in some situations this code exectutes before another code that sets the Locale through LocalizationSetter (I have checked this implementation and all it's ok), and the ThreadLocaleImpl has the default locale as:

private Locale locale = Locale.getDefault();

For this, if the hosting java vm has a locale en_US and any code calls LocalizationSetter before ConfigureHTMLElementFilter writes data-locale attribute, it will be wrong and webapp fails on load messages module.

> module t5/core/messages and default locale
> ------------------------------------------
>
>                 Key: TAP5-2551
>                 URL: https://issues.apache.org/jira/browse/TAP5-2551
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.4, 5.4.1
>            Reporter: Carlos Montero Canabal
>              Labels: locale, messages
>         Attachments: image.jpeg
>
>
> In the js for module messages:
>     var locale;
>     locale = document.documentElement.getAttribute("data-locale") || "en";
>     define("t5/core/messages", ["./messages/" + locale, ....
> If my webapp is not configured for locale "en" requirejs returns a 404 not found error because the "t5/core/messages/en" doesn´t exist and the page doesn´t load (it only shows the mask meanwhile all modules are loading).  You will put the first locale configured into SymbolConstants.SUPPORTED_LOCALES as the documentation says.
> In fact, there is another bug but I don't found the point of code where it occurs. Yesterday a Google Chrome update force my locale to en_US (i'm spanish and my locales is es or es_ES) and when I enter on my webpage who load the messages module, the data-locale attribute was "en_US", but my webapp only have configured "es". I think there is a missing check between browser locale and locales supported. I have a webapp store and today any user can buy because the checkout page (with forms that require messages module) doesn´t load. I fix it with a workaound (threadLocale.setLocale(new Locale("es")) in the activate method of pages), but I think that it's a important bug because many websites as mine can be off.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)