2014-10-08 110 views
2

是否可以在Javascript中访问Play的配置值?具体了解当前选择的语言? (V2.2.3)在JavaScript中播放框架配置值

编辑:

更具体地说我要本地化我对客户端的组件,然后我需要知道那部戏已经用于呈现在页面郎JavaScript文件。

Play's i18n documentation

在来自新用户第一次请求,播放会猜测默认的语言使用。它通过解析HTTP Accept-language头来完成。然后它会将所选语言保存在PLAY_LANG Cookie中。所以下一个请求将使用相同的语言。

由于某种原因,我在客户端看不到这个cookie。

我的问题是a)是否有其他方法可以在客户端知道Play的朗? b)为什么这个cookie不起作用?

+0

读它,你是否尝试过[这](HTTPS://www.playframework。 COM /文档/ 2.2.x中/ API/JAVA /播放/ MVC/Controller.html#郎())?描述说:_返回当前lang_ – fxfour 2014-10-08 15:44:16

回答

0

看看play.Application.Configuration().asMap()Configuration类的其他方法之一。你可以在docs中阅读。

获得您感兴趣的设置后,您可以通过HTML/JS提供它们,但这是您必须手动执行的操作。

但是我不确定你的意思是当前选中的语言。游戏是无国籍的,语言取决于客户的要求。相反,配置中的值是静态的,例如, application.langs

编辑:

控制器的langmethod返回确定(因此是“当前语言”)最好的语言,也许这就是你想要的。

0

既然我已经花了一天的时间来看待Play如何做,我的问题似乎是错误的。我只是在这里发布答案,以防任何人有这个问题。

在播放1.1.2中设置了Play_lang cookie。在我使用的版本中2.2.3没有设置cookie。

我解决我的问题,通过在服务器端设置一个cookie:

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

使用JavaScript

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