GWT:如何为语言环境使用私有标记
GWT: How to use private tag for locale
我正在使用 GWT i18n 制作网络应用程序。在此应用程序中,我想设置自定义 属性 文件以支持与主要语言的差异。例如,我有一个 en_US
语言环境,但我也希望 en_US_x_custom
支持一些重新定义的 属性 字段(BCP 47 的规范说我可以使用 -x
标签私人标签支持)。
让我展示一下我现在拥有的东西:
我有接口
public interface TestMsg extends Messages {
String value();
}
和少数 属性 个文件:
TestMsg_en_US.properties
TestMsg_en_US_x_custom.properties
在app.gwt.xml
中,我有这行
<inherits name="com.google.gwt.i18n.I18N"/>
<inherits name="com.google.gwt.i18n.CldrLocales"/>
<extend-property name="locale" values="en_US"/>
<extend-property name="locale" values="en_US_x_custom"/>
但是,问题是编译失败并显示以下消息:
[ERROR] Type com.google.gwt.i18n.client.impl.LocaleInfoImpl_en_US_X-custom could not be referenced because it previously failed to compile with errors:
Tracing compile failure path for type 'com.google.gwt.i18n.client.impl.LocaleInfoImpl_en_US_X-custom'
[ERROR] Errors in 'generated://74EF808C0035420F02374EADB97661B8/com/google/gwt/i18n/client/impl/LocaleInfoImpl_en_US_X-custom.java'
[ERROR] Line 10: Syntax error on token "-", < expected
[ERROR] Line 17: The method getLocaleQueryParam() of type LocaleInfoImpl_en_US_X must override or implement a supertype method
[ERROR] Line 10: The public type LocaleInfoImpl_en_US_X must be defined in its own file
[ERROR] Line 22: The method getDateTimeFormatInfo() of type LocaleInfoImpl_en_US_X must override or implement a supertype method
[ERROR] Line 10: Syntax error, insert "AdditionalBoundList1" to complete TypeParameter1
[ERROR] Line 27: The method getNumberConstants() of type LocaleInfoImpl_en_US_X must override or implement a supertype method
[ERROR] Line 12: The method getLocaleName() of type LocaleInfoImpl_en_US_X must override or implement a supertype method
[ERROR] Errors in 'com/google/gwt/i18n/client/LocaleInfo.java'
[ERROR] Line 37: Rebind result 'com.google.gwt.i18n.client.impl.LocaleInfoImpl_en_US_X-custom' could not be found
如何消除这个编译错误?我该如何解决这个问题?
您可以省略 -x
部分语言环境。然后您可以将区域设置指定为 en_US_custom
并将 属性 文件命名为 TestMsg_en_US_CUSTOM.properties
(注意大写字母)。
我正在使用 GWT i18n 制作网络应用程序。在此应用程序中,我想设置自定义 属性 文件以支持与主要语言的差异。例如,我有一个 en_US
语言环境,但我也希望 en_US_x_custom
支持一些重新定义的 属性 字段(BCP 47 的规范说我可以使用 -x
标签私人标签支持)。
让我展示一下我现在拥有的东西:
我有接口
public interface TestMsg extends Messages {
String value();
}
和少数 属性 个文件:
TestMsg_en_US.properties
TestMsg_en_US_x_custom.properties
在app.gwt.xml
中,我有这行
<inherits name="com.google.gwt.i18n.I18N"/>
<inherits name="com.google.gwt.i18n.CldrLocales"/>
<extend-property name="locale" values="en_US"/>
<extend-property name="locale" values="en_US_x_custom"/>
但是,问题是编译失败并显示以下消息:
[ERROR] Type com.google.gwt.i18n.client.impl.LocaleInfoImpl_en_US_X-custom could not be referenced because it previously failed to compile with errors:
Tracing compile failure path for type 'com.google.gwt.i18n.client.impl.LocaleInfoImpl_en_US_X-custom'
[ERROR] Errors in 'generated://74EF808C0035420F02374EADB97661B8/com/google/gwt/i18n/client/impl/LocaleInfoImpl_en_US_X-custom.java'
[ERROR] Line 10: Syntax error on token "-", < expected
[ERROR] Line 17: The method getLocaleQueryParam() of type LocaleInfoImpl_en_US_X must override or implement a supertype method
[ERROR] Line 10: The public type LocaleInfoImpl_en_US_X must be defined in its own file
[ERROR] Line 22: The method getDateTimeFormatInfo() of type LocaleInfoImpl_en_US_X must override or implement a supertype method
[ERROR] Line 10: Syntax error, insert "AdditionalBoundList1" to complete TypeParameter1
[ERROR] Line 27: The method getNumberConstants() of type LocaleInfoImpl_en_US_X must override or implement a supertype method
[ERROR] Line 12: The method getLocaleName() of type LocaleInfoImpl_en_US_X must override or implement a supertype method
[ERROR] Errors in 'com/google/gwt/i18n/client/LocaleInfo.java'
[ERROR] Line 37: Rebind result 'com.google.gwt.i18n.client.impl.LocaleInfoImpl_en_US_X-custom' could not be found
如何消除这个编译错误?我该如何解决这个问题?
您可以省略 -x
部分语言环境。然后您可以将区域设置指定为 en_US_custom
并将 属性 文件命名为 TestMsg_en_US_CUSTOM.properties
(注意大写字母)。