如何使用gwt实现定制国际化?
我想为我的gwt应用程序定制国际化。这意味着什么?想象一下,我的应用程序必须针对男性和女性进行国际化。(id=男性,id=女性)。 是否可以创建两个不同的.properties文件,如 MyAppMessages\u men\u en.properties MyAppMessages_women_en.properties MyAppMessages\u men\u fr.properties MyAppMessages\u men\u fr.properties 等等 例如,我的应用程序主机页将按如下方式访问 这必须为男性加载英文版本如何使用gwt实现定制国际化?,gwt,internationalization,Gwt,Internationalization,我想为我的gwt应用程序定制国际化。这意味着什么?想象一下,我的应用程序必须针对男性和女性进行国际化。(id=男性,id=女性)。 是否可以创建两个不同的.properties文件,如 MyAppMessages\u men\u en.properties MyAppMessages_women_en.properties MyAppMessages\u men\u fr.properties MyAppMessages\u men\u fr.properties 等等 例如,我的应用程序主机页
谢谢。对于其他地区,如何使用虚构的地区标识符,例如
en_US_Men
和en_US_Men
等等?
(请注意,只要包含区域设置的变体,就应该包含国家/地区)
否则,我建议对消息使用抽象工厂,并在不同的属性(男性与女性)上使用延迟绑定切换具体实现:
接口MyAppMessagesFactory{MyAppMessages create();}
类MyAppMessagesFactory\u实现MyAppMessagesFactory{
@凌驾
public MyAppMessages create(){return GWT.create(MyAppMessages_Men.class);}
}
类MyAppMessagesFactory\u实现MyAppMessagesFactory{
@凌驾
public MyAppMessages create(){返回GWT.create(MyAppMessages_.class);}
}
然后,您将拥有MyAppMessages\u Men\u en.properties和MyAppMessages\u Women\u en.properties。是的,我想使用en\u US Men和en\u US Men,但我的gwt应用程序如何理解当我这样访问它时,它对用户en\u Men有什么影响:这样我请求我的应用程序使用locale en\u US和id=Men,所以我想使用en\u US Men。使用locale=en_US_Men(作为一个参数传递)也不是问题。我必须对不同的bing做些什么吗?如果你使用
locale=en\u US\u Men
你不应该再做任何改变。否则,您必须为区域设置
属性提供自己的属性提供程序(这将读取两个查询字符串参数并将它们连接起来以形成属性值)。我尝试了这个方法。我创建了两个属性文件MyMessages_en_US_Women.properties和MyMessages_en_US_Men.properties,我在myApp.gwt.xml中添加了这两个属性:当我用&locale=en_US_Men点击主机页时,我收到一个错误,说“找不到密钥的资源…”如果我将属性文件的名称更改为MyMessages_enumens.properties并使用locale=enumens(类似于女性),那么一切都会正常工作。