2012-02-09 123 views
11

我們建立了一個網站,其中Tapestry 5.1.0.5我們遇到了,有時候,我們遇到了一個缺失的關鍵問題,當我們點擊開始頁面。掛毯:開始頁面使用英語語言環境而不是默認語言環境

此問題只出現了4次,這是一個隨機問題。

實際配置:

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

  • configuration.add("tapestry.start-page-name", "Accueil"); =>所以,當我們打/掛毯重定向我們/accueil

這是我們有時會看到這個問題:

*_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). 

有沒有人有這個問題?

你知道爲什麼當我們打開起始頁面時,掛毯使用en區域代替我們的默認區域fr

回答

5

我想說,如果你想確保默認語言環境是法語,那麼只需將所有message_fr.properties重命名爲message.properties。

另請看看瀏覽器設置。如果您的瀏覽器正在請求英文版本的網站,那麼Tapestry會遵守。你可能會重寫這個行爲,但是我建議把它當作一個功能(因爲用戶正在獲取與他的偏好相關的網站)而不是bug。

最後提示,如果您支持多種語言,則將它們全部列入支持的語言環境常量中。

- =編輯= - 它也可能是值得檢查你是否有全球messages.properties文件的英文或法文

+0

我們認爲這個解決方案,但它並沒有幫助我們理解爲什麼掛毯搜索「en」語言環境。此外,我們使用「fr」作爲瀏覽器的語言環境。 – Fabien 2012-02-13 13:15:42