Playframework 在JavaScript中播放框架配置值

Playframework 在JavaScript中播放框架配置值,playframework,playframework-2.2,Playframework,Playframework 2.2,可以在Javascript中访问Play的配置值吗?具体了解所选的当前语言?(v2.2.3) 编辑: 更具体地说,我想本地化客户端上的组件,我需要知道play用于在javascript文件中呈现页面的语言 : 对于新用户的第一个请求,Play将猜测要使用的默认语言。它通过解析HTTP Accept language头来实现这一点。然后将所选语言保存在PLAY__LANG cookie中。因此,下一个请求将使用相同的语言 出于某种原因,我在客户端看不到这个cookie 我的问题是a)是否有其他方法

可以在Javascript中访问Play的配置值吗?具体了解所选的当前语言?(v2.2.3)

编辑:

更具体地说,我想本地化客户端上的组件,我需要知道play用于在javascript文件中呈现页面的语言

:

对于新用户的第一个请求,Play将猜测要使用的默认语言。它通过解析HTTP Accept language头来实现这一点。然后将所选语言保存在PLAY__LANG cookie中。因此,下一个请求将使用相同的语言

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


我的问题是a)是否有其他方法可以了解该剧的客户端语言?b) 为什么此cookie不工作?

请查看
play.Application.Configuration().asMap()
Configuration
类的其他方法之一。你可以在报纸上看到

在获得您感兴趣的设置之后,您可以通过HTML/JS为它们提供服务,但这是您必须手动完成的事情

但我不确定你所说的当前所选语言是什么意思。播放是无状态的,语言取决于客户端的请求。相反,配置中的值是静态的,例如
application.langs

编辑:


控制器的
lang
返回已确定的最佳语言(因此是“当前语言”),这可能就是您想要的。

现在我已经花了一天的时间研究Play是如何做事情的,我的问题似乎是错的。我只是把答案贴在这里,以防有人有这个问题

在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(); }
你试过了吗?说明:返回当前语言