Tapestry:起始页面使用英语语言环境而不是默认语言环境

Fab*_*ien 11 java locale tapestry

我们使用Tapestry 5.1.0.5构建了一个网站,当我们点击起始页时,我们偶尔遇到一个缺少关键问题.

这个问题只出现了4次,这是一个随机的问题.

实际配置:

  • configuration.add(SymbolConstants.SUPPORTED_LOCALES, "fr");=>所以默认本地是fr和不en

  • configuration.add("tapestry.start-page-name", "Accueil");=>所以当我们点击/tapestry重定向我们/accueil

这是我们有时会看到的问题:

当命中/tapestry搜索键*_en.properties而不是*_fr.properties但如果我们点击/accueiltapestry搜索键*_fr.properties.

跟踪日志:

Caused by: java.lang.NumberFormatException: For input string: **"[[missing key: prehome.store.opening.delay]]"**
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
        at java.lang.Integer.parseInt(Integer.java:447)
        at java.lang.Integer.parseInt(Integer.java:497)
        at XXXXXXX.tapestry.components.overlayer.StoreOverlayer.initStoresAndRegions(StoreOverlayer.java:652)
        at XXXXXXX.tapestry.components.overlayer.StoreOverlayer.setupRender(StoreOverlayer.java)
        at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.invokeComponent(ComponentPageElementImpl.java:184)
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.run(ComponentPageElementImpl.java:164)
        at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:933)
        ... 94 more

01-02-2012 11:55:52:979 23120252 ERROR org.apache.tapestry5.internal.services.InternalModule.PagePool  - Page Page[Accueil en] is dirty, and will be discarded (rather than returned to the page pool).
Run Code Online (Sandbox Code Playgroud)

有谁有这个问题?

你知道为什么当我们点击起始页时,tapestry使用enlocale而不是我们的默认语言环境fr吗?

小智 5

我想说如果你想确保默认语言环境是法语,那么只需将所有message_fr.properties重命名为message.properties.

另请查看浏览器设置.如果您的浏览器要求提供该网站的英文版本,则Tapestry会遵守.您可以覆盖该行为,但我建议将其视为一个功能(因为用户正在获取与其偏好相关的网站)而不是错误.

最后提示,如果您支持多种语言,则将它们全部列在支持的语言环境中.

- =编辑= - 也可能值得检查你是否有英文或法文的全球messages.properties文件