2013-07-18 60 views
0

我faces-config.xml文件的一部分是這樣的:JSF 2 - 多語言支持問題

<locale-config> 
    <default-locale>el</default-locale> 
    <supported-locale>en</supported-locale> 
</locale-config> 
<resource-bundle> 
    <base-name>com.application.model.resources.Labels</base-name> 
    <var>labels</var> 
</resource-bundle> 

我也有相應的包/文件夾中的文件Labels_el.properties和Labels_en.properties。

問題是這樣的:

火狐

當我啓動應用程序,所有文字都希臘語(默認環境)。每當我點擊一個commandButton或commandLink時,所有文本都會以英文進行更改。但是,語言環境仍然是希臘語(el)。

應用程序可以正常啓動在希臘語言和頁面導航過程中的語言保持不變。我有一個可以更改語言環境的下拉列表。當我將語言環境更改爲英語(en)時,該頁面會正確刷新。之後,當我點擊一個commandButton或commandLink時,語言環境的值仍然是英文,但文本再次變爲希臘語。

因此,問題是,頁面導航過程中,Firefox中的語言更改爲英語,並在Chrome變爲希臘(語言環境不會改變,除非我從下拉列表中選擇所需的)。

此問題的任何解決方案?

+1

你在哪裏保持區域?它必須保存在session範圍內,你必須強迫你的視圖中使用它,[聲明](http://www.jsftoolbox.com/documentation/help/12-TagReference/core/f_view.html)的'locale'屬性爲'f:view'標籤。 –

+0

你是對的!使用f:view標籤是解決方案! :) – Puma

+0

你想讓我把它作爲答案發布嗎?否則,你可以寫你自己的答案,以紀念線程作爲封閉當然;-) –

回答

1

你必須使用<f:view/>標籤以其locale屬性,(如果你只想要你的應用程序的特定部分是用不同的語言或其他範圍)應綁定到SessionScoped豆變量。這將呈現基於該語言環境值的當前視圖。