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