在wicket中设置指定的语言环境,其中默认(对于用户)不可用

时间:2011-02-02 14:27:10

标签: wicket locale

我的属性文件仅针对特定语言(page_ru_RU.prop和page_en_GB.prop)。在这个页面上的用户使用locale en US - 他得到了例外,因为找不到合适的语言环境。 如果用户没有任何可用的语言环境而没有make default locale(page.prop),我可以通过这种方式将somwhere检查到手动设置语言环境 如果我不清楚,请告诉我。

1 个答案:

答案 0 :(得分:4)

如果您仅使用该语言创建属性文件,则该文件将用于所有变体:因此,您可以使用page_en_GB.properties而不是page_en.properties代替page.peroperties,这将用于所有en_ * sublocales。

您还可以使用普通Locale,这将用于不适合更具体类别的所有人。

更新:选择两项,如何完全控制Session选项。

Wicket中的区域设置存储在getLocale()对象中,可以使用setLocale()//this is your application class public class MyApplication extends WebApplication { @Override public Session newSession( Request req, Response res ) { return new MySession( req ) } } //this is your session class public class MySession extends WebSession { public MySession( Request req ) { super( req ); } @Override public void setLocale( Locale locale ) { // your locale substitution code goes here, for example: if( locale.getLanguage().equals( "en" ) ) { super.setLocale( new Locale( "en", "GB" ) ); } } } 方法对其进行操作。仅此一项可能会为您提供解决方案,但您也可以拦截对这些方法的调用以自动覆盖区域设置选择。

{{1}}

这是你想要的事吗?