GWT-国际化,默认值起作用,但当我将区域设置添加到URL时,仍然会得到默认值。有什么想法吗?
我现在已经开始认真地使用GWT进行实验,当然我被卡住了。我正在尝试一个非常简单的国际化,当我向我的URL添加区域设置(如下所示)时,它不起作用,并且总是获取默认数据GWT-国际化,默认值起作用,但当我将区域设置添加到URL时,仍然会得到默认值。有什么想法吗?,gwt,internationalization,locale,Gwt,Internationalization,Locale,我现在已经开始认真地使用GWT进行实验,当然我被卡住了。我正在尝试一个非常简单的国际化,当我向我的URL添加区域设置(如下所示)时,它不起作用,并且总是获取默认数据 http://127.0.0.1:8888/DoTime.html?gwt.codesvr=127.0.0.1:9997&locale=sv_SE 在下图中,您可以看到项目的结构。应用程序的名称为“DoTime” 在文件/client/properties/DoTimeConstants\u sv\u SE.proper
http://127.0.0.1:8888/DoTime.html?gwt.codesvr=127.0.0.1:9997&locale=sv_SE
在下图中,您可以看到项目的结构。应用程序的名称为“DoTime”
在文件/client/properties/DoTimeConstants\u sv\u SE.properties中,我有
localeTest = Vi skriver något på svenska för att testa om vi kan få det på svenska med locale.
appTitle = DoTime på svenska
package com.dotime.client;
import com.google.gwt.i18n.client.Constants;
public interface DoTimeConstants extends Constants {
@DefaultStringValue("haha we are writing something in default to test locale")
String localeTest();
@DefaultStringValue("DoTime default title")
String appTitle();
}
@DefaultMessage("''{0}'' is not a valid symbol.")
String invalidSymbol(String symbol);
@DefaultMessage("Last update: {0,date,medium} {0,time,medium}")
String lastUpdate(Date timestamp);
package com.dotime.client;
import com.google.gwt.i18n.client.Messages;
import java.util.Date;
public interface DoTimeMessages extends Messages {
@DefaultMessage("''{0}'' en symbol på svenska.")
String invalidSymbol(String symbol);
@DefaultMessage("Senaste uppdatering: {0,date,medium} {0,time,medium}")
String lastUpdate(Date timestamp);
}
在相应的文件/client/DoTimeConstants中,我有
localeTest = Vi skriver något på svenska för att testa om vi kan få det på svenska med locale.
appTitle = DoTime på svenska
package com.dotime.client;
import com.google.gwt.i18n.client.Constants;
public interface DoTimeConstants extends Constants {
@DefaultStringValue("haha we are writing something in default to test locale")
String localeTest();
@DefaultStringValue("DoTime default title")
String appTitle();
}
@DefaultMessage("''{0}'' is not a valid symbol.")
String invalidSymbol(String symbol);
@DefaultMessage("Last update: {0,date,medium} {0,time,medium}")
String lastUpdate(Date timestamp);
package com.dotime.client;
import com.google.gwt.i18n.client.Messages;
import java.util.Date;
public interface DoTimeMessages extends Messages {
@DefaultMessage("''{0}'' en symbol på svenska.")
String invalidSymbol(String symbol);
@DefaultMessage("Senaste uppdatering: {0,date,medium} {0,time,medium}")
String lastUpdate(Date timestamp);
}
我将文件/client/properties/DoTimeMessages\u sv\u SE.properties保存下来
localeTest = Vi skriver något på svenska för att testa om vi kan få det på svenska med locale.
appTitle = DoTime på svenska
package com.dotime.client;
import com.google.gwt.i18n.client.Constants;
public interface DoTimeConstants extends Constants {
@DefaultStringValue("haha we are writing something in default to test locale")
String localeTest();
@DefaultStringValue("DoTime default title")
String appTitle();
}
@DefaultMessage("''{0}'' is not a valid symbol.")
String invalidSymbol(String symbol);
@DefaultMessage("Last update: {0,date,medium} {0,time,medium}")
String lastUpdate(Date timestamp);
package com.dotime.client;
import com.google.gwt.i18n.client.Messages;
import java.util.Date;
public interface DoTimeMessages extends Messages {
@DefaultMessage("''{0}'' en symbol på svenska.")
String invalidSymbol(String symbol);
@DefaultMessage("Senaste uppdatering: {0,date,medium} {0,time,medium}")
String lastUpdate(Date timestamp);
}
在相应的文件/client/DoTimeMessages中,我有
localeTest = Vi skriver något på svenska för att testa om vi kan få det på svenska med locale.
appTitle = DoTime på svenska
package com.dotime.client;
import com.google.gwt.i18n.client.Constants;
public interface DoTimeConstants extends Constants {
@DefaultStringValue("haha we are writing something in default to test locale")
String localeTest();
@DefaultStringValue("DoTime default title")
String appTitle();
}
@DefaultMessage("''{0}'' is not a valid symbol.")
String invalidSymbol(String symbol);
@DefaultMessage("Last update: {0,date,medium} {0,time,medium}")
String lastUpdate(Date timestamp);
package com.dotime.client;
import com.google.gwt.i18n.client.Messages;
import java.util.Date;
public interface DoTimeMessages extends Messages {
@DefaultMessage("''{0}'' en symbol på svenska.")
String invalidSymbol(String symbol);
@DefaultMessage("Senaste uppdatering: {0,date,medium} {0,time,medium}")
String lastUpdate(Date timestamp);
}
在文件DoTime.gwt.xml中,我添加了add locale=“sv_SE”并添加了inherit I18N:
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.0//EN"
"http://google-web-toolkit.googlecode.com/svn/releases/2.0/distro-source/core/src/gwt-module.dtd">
<module rename-to="DoTime">
<!-- Inherit the core Web Toolkit stuff. -->
<inherits name='com.google.gwt.user.User'/>
<!-- Specify the app entry point class. -->
<entry-point class='com.dotime.client.DoTime'/>
<inherits name="com.google.gwt.i18n.I18N"/>
<extend-property name="locale" values="sv_SE"/>
<!-- Specify the app servlets. -->
<servlet path='/DoTimeService' class='com.dotime.server.DoTimeServiceImpl'/>
</module>
但是当我通过添加&locale=sv_SE来更改我的url时,什么也没有发生,我仍然拥有默认值
我确实尝试了第一次只使用locale文件扩展名locale=sv,但没有任何运气,后来改为sv_SE,但无论如何都不起作用。我错过了什么?你知道吗?非常感谢你提供的一些线索 除区域设置后缀和文件扩展名外,属性文件的名称必须与
常量
或消息
接口的名称完全相同。特别是在这里,它们必须在同一个包中;您不能将它们放在其他包(本例中为属性
子包)中,并期望GWT找到它们
旁注:
- 我认为
和URL中的语言环境必须使用Java表示法,使用破折号作为分隔符,而不是下划线gwt.xml
- 您不应该在
中使用gwt.xml
标记;它们由
运行时使用,但是您更愿意将特定于测试的模块GWTTestCase
作为应用程序模块,而不是将这些声明放在应用程序模块中