为什么我收到com.google.gwt.i18n.rebind.AbstractResource $ MissingResourceException:找不到关键字&#39; <key>&#39;?

时间:2016-06-20 22:12:03

标签: gwt internationalization

我来这里很简单MenuViewMessage

package com.mz.client.landing.resource.lang;

import com.google.gwt.core.client.GWT;
import com.google.gwt.i18n.client.Messages;

public interface MenuViewMessages extends Messages {

    public static final MenuViewMessages LANG = GWT.create(MenuViewMessages.class);

    String registerBusiness();
}

相同com.mz.client.landing.resource.lang中的 .properties 文件一样:

menuviewmessages.properties

registerBusiness=Register Business

menuviewmessages_en.properties

registerBusiness=Register Business

menuviewmessages_de.properties

registerBusiness=Gewerbe anmelden

但是,如果我编译它,我就会

[INFO]       Compiling module com.mz.client.ClientEntryPoint
[INFO]          Computing all possible rebind results for 'com.mz.client.landing.resource.lang.MenuViewMessages'
[INFO]             Rebinding com.mz.client.landing.resource.lang.MenuViewMessages
[INFO]                Invoking generator com.google.gwt.i18n.rebind.LocalizableGenerator
[INFO]                   Processing interface com.mz.client.landing.resource.lang.MenuViewMessages
[INFO]                      Generating method body for registerbusiness()
[INFO]                         [ERROR] No resource found for key 'registerbusiness'
[INFO] com.google.gwt.i18n.rebind.AbstractResource$MissingResourceException: No resource found for key 'registerbusiness'

知道为什么会这样吗?

2 个答案:

答案 0 :(得分:0)

尝试在邮件中添加密钥注释:

@Key("registerBusiness")
String registerBusiness();

此外,如果您将类命名为MenuViewMessages,则应使用与属性相同的格式:MenuViewMessages.properties

答案 1 :(得分:0)

可能是因为您没有指定默认消息文件(例如MenuViewMessages.properties)以及您支持的不同语言的自定义文件。

或者您可以简单地删除默认消息文件(例如MenuViewMessages.properties)并使用注释,例如@DefaultMessage

以下是一个例子:

package com.mz.client.landing.resource.lang;

import com.google.gwt.core.client.GWT;
import com.google.gwt.i18n.client.Messages;

public interface MenuViewMessages extends Messages {

       public static final MenuViewMessages LANG = GWT.create(MenuViewMessages.class);

       @DefaultMessage("please register your business")
       String registerBusiness();
}