【问题标题】:How to automatically select language for Qute messages如何为 Qute 消息自动选择语言
【发布时间】:2021-07-13 08:46:05
【问题描述】:

在一个使用 Quarkus、RestEasy 和 Qute 的网络应用程序中,我成功地为不同语言创建了一个 Qute 模板和消息包。但是,我没有成功让它根据 HTTP 标头 Accept-Language 自动选择语言。

Qute References 声明:

当使用quarkus-resteasy-qute 语言环境属性派生自 Accept-Language 标头(如果用户未设置)。

我正在使用quarkus-resteasy-qute 扩展名(在pom.xml 中),我可以看到Accept-Language 标头设置为Accept-Language: fr,en-US;q=0.7,en;q=0.3。但是页面是用英文显示的。那么我错过了什么?我需要添加一些代码吗?

如果我明确将语言设置为法语(见下文),它会以法语显示。所以模板是多语言的。

@Path("/test")
public class HomeController {
    @Location("home")
    Template homeTemplate;

    @GET
    @Produces(MediaType.TEXT_HTML)
    public TemplateInstance showHome() {
        return homeTemplate
                .instance()
                .setAttribute("locale", "fr"); // hard-coded language works
    }
}

【问题讨论】:

    标签: quarkus quarkus-qute


    【解决方案1】:

    resteasy-qute 集成尚不支持此功能。随时在此处创建功能请求:https://github.com/quarkusio/quarkus/issues

    您也可以尝试发送 PR ;-)。这个 JAX-RS ContainerResponseFilter 需要修改:https://github.com/quarkusio/quarkus/blob/main/extensions/resteasy-classic/resteasy-qute/runtime/src/main/java/io/quarkus/resteasy/qute/runtime/TemplateResponseFilter.java

    【讨论】:

    • 感谢您的快速回复。文档(“当使用 quarkus-resteasy-qute 时,语言环境属性是派生的......”)指的是什么?什么时候适用?
    猜你喜欢
    • 2010-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    • 1970-01-01
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多