在 Play 2.0 应用程序中,我使用 Jerkson 进行自定义 JSON 序列化。
在 JsonSerializer 类的实现中,我需要根据浏览器的主要语言对消息进行国际化。不幸的是,在该上下文中隐含的对象 Lang 是 JVM 语言,而不是请求的接受语言。
在控制器上下文之外访问浏览器语言的最佳方式(如果有的话)是什么?
class LangStringSerializer extends JsonSerializer[LangString] {
def serialize(string: LangString, json: JsonGenerator, provider: SerializerProvider) {
json.writeString(string.localized_value)
}
//the method localized_value has an implicit parameter Lang and must produce
//a localized string based on the browser main language.
}