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