我有仅针对特定语言的属性文件(page_ru_RU.prop和page_en_GB.prop).在这个页面上的用户使用locale en US - 他得到了例外,因为找不到合适的语言环境.我是否可以通过这种方式将somwhere检查到手动设置区域设置如果用户没有任何可用的区域设置而没有make default locale(page.prop)如果我不清楚,请告诉我.
如果您仅使用语言创建属性文件,它将用于所有变体:因此page_en_GB.properties,您可以使用a page_en.properties,它将用于所有en_*sublocales.
你也可以有一个普通的page.peroperties,用于不适合更具体类别的每个人.
更新:拿两个,如何Locale完全控制选择.
Wicket中的Locale存储在Session对象中,可以使用getLocale()and 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" ) );
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是你想要的那种东西吗?