2013-07-18 3 views
0

내 faces-config.xml 파일의 일부가 이것이다. 나는 응용 프로그램을 시작하면 모든 텍스트는 그리스어 (기본 로케일)에,JSF 2 다중 언어 지원 문제

파이어 폭스

:

문제

이있다. commandButton이나 commandLink를 클릭 할 때마다 모든 텍스트가 영어로 변경됩니다. 그러나 로켈은 그리스어 (el)로 유지됩니다.

크롬

응용 프로그램은 언어가 동일하게 유지 그리스어와 페이지 탐색 중 제대로 시작합니다. 로케일을 변경할 수있는 드롭 다운 목록이 있습니다. 로케일을 영어 (en)로 변경하면 페이지가 올바르게 새로 고쳐집니다. 그 후 commandButton이나 commandLink를 클릭하면 로켈의 값은 영어로 유지되지만 텍스트는 다시 그리스어로 바뀝니다.

따라서 페이지 탐색 중에 Firefox의 언어가 영어로 변경되고 Chrome에서 그리스어로 변경됩니다 (드롭 다운 목록에서 원하는 언어를 선택하지 않으면 언어가 변경되지 않습니다).

이 문제점에 대한 해결책?

+1

로케일을 어디에 보관하고 있습니까? 그것은 세션 범위에 보관되어야하며 사용을 위해보기를 강제해야합니다. [notice] (http://www.jsftoolbox.com/documentation/help/12-TagReference/core/f_view.html) 'locale' 속성은'f : view' 태그를위한 것입니다. –

+0

네 말이 맞다! f : view 태그를 사용하는 것이 해결책입니다! :) – Puma

+0

내가 대답으로 게시하길 원하십니까? 그렇지 않으면 자신의 답변을 작성하여 스레드를 닫은 상태로 표시 할 수 있습니다 ;-) –

답변

1

locale 속성과 함께 <f:view/> 태그를 사용해야합니다.이 변수는 SessionScoped bean 변수 (또는 응용 프로그램의 특정 부분 만 다른 언어로 원할 경우 다른 범위)에 바인딩해야합니다. 그러면 현재 로캘 값을 기반으로 현재보기가 렌더링됩니다.