在GWT中,我必须指定应用程序中支持的语言环境.代码在各种文件中编译,每个文件位置一个(在其他版本旁边),但我必须为我的客户端提供一个唯一的URL.此URL应该是应根据浏览器首选的区域设置显示的页面.我不想为语言环境提供HTTP参数,因为我想更糟糕的浏览器首选的语言环境.如何在GWT中编码?
我应该尝试使用apache重写规则吗?我骗了它,但我认为我无法在重写规则中轻松访问这样的参数.
非常感谢,朱塞佩
小智 13
我遇到了和你一样的问题,但是因为我真的需要知道当前的语言环境(我要求第二台服务器提供我想要可本地化的数据)我找到了这个类:
com.google.gwt.i18n.client.LocaleInfo#getCurrentLocale().这应该会给你GWT目前使用的东西.
GWT对国际化有很好的支持.看到这个链接.该i18nCreator命令可以帮助您设置了类似projectCreator和applicationCreator建立GWT应用程序的方式国际化的基础设施.
如果您有需要国际化的静态字符串(即无效条目!),则不需要任何其他标志来使用i18nCreator命令来创建属性文件和基础结构.
如果您有需要接受参数的字符串(即Hello {0}),则需要将-createMessages标志传递给i18nCreator命令以创建属性文件和基础结构.
现在您的模块需要在MyApplication.gwt.xml中包含i18n模块:
<inherits name="com.google.gwt.i18n.I18N"/>
Run Code Online (Sandbox Code Playgroud)
在与扩展常量或消息的属性文件相同的包中定义Java接口,并定义所有返回字符串的方法(名称与属性条目匹配).
MyConstants.properties包含:
errorMessage=Invalid Entry!
Run Code Online (Sandbox Code Playgroud)
MyConstants.java包含:
import com.google.gwt.i18n.client.Constants;
public interface myConstants extends Constants {
String errorMessage();
}
Run Code Online (Sandbox Code Playgroud)
现在从您的应用程序访问这些国际化的字符串:
public class MyApplication implements EntryPoint {
private static final MyConstants constants = (MyConstants)GWT.create(MyConstants.class);
public void onModuleLoad() {
final Label errorMessage = new Label(constants.errorMessage);
}
}
Run Code Online (Sandbox Code Playgroud)
GWT自动为您实现界面.
您可以以类似的方式获取消息.
希望这可以帮助您开始.