Qute消息如何自动select语言

How to automatically select language for Qute messages

在使用 Quarkus、RestEasy 和 Qute 的网络应用程序中,我已经成功地为不同的语言创建了一个 Qute 模板和消息包。但是,我还没有成功select 自动基于 HTTP header Accept-Language.

的语言

Qute References 状态:

When using quarkus-resteasy-qute the locale attribute is derived from the the Accept-Language header if not set by a user.

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

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

@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
    }
}

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