我使用 i18n 国际化开发了一个 GWT 应用程序。在主机/开发模式下它工作正常,但是启动 GWT 编译会出现此错误:找不到 key xxx 的资源,如下所示。
Compiling module ...rte.RTE
Scanning for additional dependencies: file:/home/.../client/i18n/RTEValidationMessages.java
Computing all possible rebind results for '...client.i18n.RTEMessages'
Rebinding ...client.i18n.RTEMessages
Invoking com.google.gwt.dev.javac.StandardGeneratorContext@e7dfd0
Processing interface ...client.i18n.RTEMessages
Generating method body for txtIndirizzo3()
[ERROR] No resource found for key 'txtIndirizzo3'
消息通过后期绑定加载。
public class RTEValidationMessages {
private RTEMessages additionalMessages;
public RTEValidationMessages() {
additionalMessages = GWT.create(RTEMessages.class);
}
}
删除给出错误的方法,会导致另一个随机方法出错,也就是说不是接口中之前或之后的方法...client.i18n.RTEMessages。
非常感谢您的帮助。
我在使用国际化时也遇到过类似的错误。我有英语和波兰语的属性文件:
labels_en.properties
和labels_pl.properties
。解决方案是还创建一个文件 labels.properties
(在我的例子中,它只是 labels_en.properties
的副本)。这很奇怪,但不知何故它有所帮助。
您还应该将属性文件保存在与您的
RTEMessages
类相同的包中。
还有两件重要的事情(参见文档):
为了使用国际化 字符,请确保您的主机 HTML 文件包含 charset=utf8 元标记中的内容类型 标题:
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
您还必须确保所有相关 源文件和 .properties 文件已设置 位于您的 UTF-8 字符集中 IDE。