0

是否可以在 HTML 中强制使用 Wicket 消息的语言?

我有一些检票口页面和通用组件,它们在用户的语言环境已知和未知时都使用。当语言环境未知时,我需要以两种官方语言(在本例中为英语和德语)显示消息。现在我已经为这两种语言制作了特定于语言的页面,并为“未知”情况制作了一个默认页面:

MyComponent.html
MyComponent_en.hmtl
MyComponent_de.html

“未知”页面 (MyComponent.html) 包含两种语言的消息元素。目前,其中一种语言是默认语言,对于公共组件,我必须通过将语言代码附加到消息键来复制其他语言的消息:

我的组件.html:

<span lang="en"><wicket:message key="myMessageKey"/></span>
<span lang="de"><wicket:message key="myMessageKey.de"/></span>

wicket_package.properties:

myMessageKey=My hovercraft is full of eels
myMessageKey.de=Mein Luftkissenfahrzeug ist voller Aale

wicket_package_de.properties:

myMessageKey=Mein Luftkissenfahrzeug ist voller Aale

显然,这种本地化的重复是疯狂的。有没有一种方法可以让我在 HTML 中强制使用 wicket:message 的语言并避免重复本地化?我正在寻找类似 <wicket:message key="myMessageKey" lang="de"/> 或类似的东西。

一种选择似乎是我自己做的WicketMessageResolver,但如果可以避免的话,我宁愿不做这项工作。

4

1 回答 1

1

当前的 Wicket (9.8.0) 中没有这样的功能。

我也不愿意实施类似的东西WicketMessageResolver!但是使用非自动组件(自动组件都是从标记创建 - <wicket:xyz>)实现非常简单,即使用Panel具有两个Labels 模型用于Localizer.get()获取本地化值的自定义。

于 2022-02-16T07:11:35.890 回答