2011-11-14 40 views
0

我正在开发带有Vaadin的Liferay Portal中的portlet,主要包含英文组件标题(名称),如“取消”,“返回”,“下一步”等。现在我必须让portlet“多语言就绪”,这意味着如果用户已经将他的Li​​feray页面的语言设置为英语,他应该看到我的portlet标题以英语显示,但是如果用户将他的Li​​feray页面的语言设置为德语, portlet标题应该用德语显示。Vaadin多语言portlet组件标题

有没有办法检查用户设置为主语言的至少一种语言?

一个简单的例子:

约翰是纽约的主要语言,所以只要他登录自己的帐户的Portlet组件字幕的语言应以英文显示

亨氏是为英语柏林的主要语言是德语,所以一旦他登录到他的帐户,Portlet组件标题的语言应该用德语显示。

回答

1

为了从你的财产得到字幕文件,您可以用(假设上面的类)

Button button = new Button() { 
    @Override 
    public void attach() { 
     ResourceBundle bundle = ResourceBundle.getBundle(Translation_portletApplication.class.getName(), user.getLocale()); 
     setCaption(bundle.getString("first_name")); 
    } 
}; 
window.addComponent(button); 

要看到答案的完整的上下文是指this so question

尝试
1

您可以致电Liferay API的user.getLocale()

要获取用户对象,请检查this。更详细的信息发现here(可能已过时)。