多语言项目中,如何强制客户端的语言?

控制器kevin880 次浏览

Revel在控制器执行之前,会在I18nFilter过滤器中解析请求的语言,所以我们可以添加一个自定义过滤器ForceLanguageFilter,来修改这个语言参数。

func ForceLanguageFilter(c *Controller, fc []Filter) {
	c.Request.Locale = "我的语言"
	c.RenderArgs[CurrentLocaleRenderArg] = "我的语言"
	fc[0](c, fc[1:])
}

修改 app/init.go 中默认的过滤器栈revel.Filters,把ForceLanguageFilter放到I18nFilter之后。

共0个回复