playframework 2.2 java:如何从子域设置语言(i18n)

playframework 2.2 java:如何从子域设置语言(i18n),第1张

playframework 2.2 java:如何从子域设置语言(i18n)

您可以为此使用超类的ie

changeLang(Stringpre)
方法
play.mvc.Controller

然后,您需要告诉您的语言解析器,哪个域使用我们默认的语言,为此使用探查

application.conf
或数据库记录。接下来,根据您要实现的目标,只需使用Global类来拦截您的所有请求,或者创建一个简单的 *** 作即可更改语言,然后它们将返回同一页面(因此用户可以自己决定要使用哪种语言)

这是一种基于cookie的机制,因此我不确定是否不需要执行强制页面重新加载(即,通过重定向到同一路径),我想您会告诉我们何时进行检查; )

编辑:

那可能就是 喜欢

public Action onRequest(final Http.Request request, final Method actionMethod) {    if (request.host().equals("de.yourdomain.tld") && (request.cookie("PLAY_LANG") == null || !request.cookie("PLAY_LANG").value().equals("de"))) {        return new Action.Simple() { public Result call(Http.Context ctx) throws Throwable {     ctx.changeLang("de");     return redirect(request.path()); }        };    } else {        return super.onRequest(request, actionMethod);    }}

只需确保已

de
添加lang
application.conf
,否则您将获得漂亮的,无尽的重定向循环。这
PLAY_LANG
是用于存储所选语言的典型Play曲奇名称。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5565531.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存