2014-10-08 4 views
2

자바 스크립트에서 Play의 설정 값에 액세스 할 수 있습니까? 특히 현재 선택된 lang을 알고 있습니까? (v2.2.3)자바 스크립트에서 Play Framework 설정 값

편집 :

가 더 구체적으로 내가 클라이언트 측에서이 구성 요소를 지역화하려는, 그리고 나는의 페이지를 렌더링하는 데 사용했다 재생하여 lang을 알 필요가 자바 스크립트 파일.

Play's i18n documentation

: 새로운 사용자의 첫 번째 요청에

는 재생 기본 언어를 사용하는 추측됩니다. HTTP 수락 언어 헤더를 구문 분석하면됩니다. 그런 다음 선택한 언어를 PLAY_LANG 쿠키에 저장합니다. 따라서 다음 요청은 동일한 언어를 사용합니다.

어떤 이유로이 쿠키가 클라이언트 측에서 표시되지 않습니다.

내 질문은 무엇입니까? 클라이언트 측에서 Play의 lang을 알 수있는 다른 방법이 있습니까? b) 왜이 쿠키가 작동하지 않습니까?

+0

그것을 읽는 당신은 [이] (https를 시도 해 봤나 :

나는 서버 측에서 쿠키를 설정하여 내 문제를 해결 //www.playframework을. com/documentation/2.2.x/api/java/play/mvc/Controller.html # lang())? 설명 : _ 현재 lang_Returns – fxfour

답변

0

play.Application.Configuration().asMap() 또는 Configuration 클래스의 다른 방법 중 하나를 살펴보십시오. 당신은 그것에 대해 docs에서 읽을 수 있습니다.

관심있는 설정을 얻은 후에는 HTML/JS를 통해 제공 할 수 있지만 수동으로해야 할 일입니다.

그러나 나는 이 무엇을 의미하는지 확실하지 않습니다. 현재 선택된 언어는입니다. Play는 상태가 저장되지 않으며 언어는 클라이언트의 요청에 따라 다릅니다. 반대로 구성의 값은 정적입니다 (예 : application.langs.

편집 : 컨트롤러의 langmethod 결정 (따라서 "현재 언어"입니다) 된 최상의 언어를 반환

는, 어쩌면 당신이 원하는 것입니다.

0

Play에서 일하는 방식을 살펴본 결과 내 질문이 잘못된 것 같습니다. 누구나이 문제가 생길 경우에 대비해 여기에 답변을 게시하고 있습니다.

연극 1.1.2에서는 Play_lang 쿠키를 설정합니다. 버전 2.2.3에서는 쿠키가 설정되지 않았습니다.

response().setCookie("Language", play.mvc.Controller.lang().code(), 360, "", "", false, false); 

를 그리고 자바 스크립트

var value = "; " + document.cookie; 
var parts = value.split("; Language="); 
if (parts.length == 2) { 
var culture = parts.pop().split(";").shift(); }