我创建了一些DateTextFields
。它们工作得很好,但我想使用另一种语言和另一种日期格式。
根据wicket-bootstrap我创建了这样的字段:
final DateTextField startDate = new DateTextField("startDate", new DateTextFieldConfig().withLanguage("es");
但这没有效果。我搜索了一段时间,我发现的唯一一件事是我可以使用像这样的构造函数(JavaDocs)更改默认日期模式:
final DateTextField startDate = new DateTextField("startDate", "dd-MM-yyyy");
两种方式都没有效果。还有其他方法可以改变语言和日期模式吗?
答案 0 :(得分:3)
每个组件都有方法getLocale。如果要更改语言,则应覆盖它。当您想要将语言更改为斯洛伐克语时,这应该有效:
final DateTextField startDate = new DateTextField("startDate", "dd-MM-yyyy") {
@Override
public Locale getLocale() {
return new Locale("sk", "SK");
}
};
这只是更改当前组件的语言。如果要将语言更改为所有组件,则应更改会话的语言环境:
add(new Link<Void>("goSk") {
private static final long serialVersionUID = 1L;
@Override
public void onClick() {
getSession().setLocale(new Locale("sk", "SK"));
}
});
add(new Link<Void>("goEn") {
private static final long serialVersionUID = 1L;
@Override
public void onClick() {
getSession().setLocale(Locale.US);
}
});