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

时间:2012-02-09 15:09:58

标签: java locale tapestry

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

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

实际配置:

  • configuration.add(SymbolConstants.SUPPORTED_LOCALES, "fr"); =>因此默认本地为fr而不是en

  • configuration.add("tapestry.start-page-name", "Accueil"); =>所以,当我们点击/挂毯时,我们会在/accueil

  • 上重定向我们

以下是我们有时会遇到的问题:

点击/ tapestry时,*_en.properties代替*_fr.properties搜索密钥,但如果我们点击/accueil,则会在*_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).

有人有这个问题吗?

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

1 个答案:

答案 0 :(得分:5)

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

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

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

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