【发布时间】:2011-09-20 07:18:59
【问题描述】:
我正在尝试重写几个月前编写的 GWT 应用程序。不过,应用程序视图逻辑已经过时,我还有其他理由重写它。
但是后端保持不变并且可以正常工作。
我的问题是项目的总体组织。我有客户端、服务器和共享包。客户端包含编译成 JavaScript 的客户端相关类,服务器包含发布到服务器上的 Java 类。 我在客户端使用常量接口,在服务器端使用属性文件。
我在共享包中有 DTO 和一些枚举,因为它们在客户端和服务器端都使用。虽然 DTO 不需要任何类型的翻译,因为它们只保存填充的信息,但枚举确实需要它们。 我的一个枚举如下所示:
public enum ItemFamily {
ARMORS(0, "A", "Armor"),
JEWELRY(1, "J", "Jewelry"),
MATERIALS(2, "M", "Materials"),
RECIPES(3, "R", "Recipes"),
WEAPONS(4, "W", "Weapons");
private final int id;
private final String label;
private final String name;
ItemFamily(final int id, final String label, final String name) {
this.id = id;
this.label = label;
this.name = name;
}
public int getId() {
return id;
}
public String toString() {
return label;
}
public String getName() {
return name;
}
public static ItemFamily fromString(final String str) {
for (ItemFamily e : ItemFamily.values()) {
if (e.toString().equalsIgnoreCase(str)) {
return e;
}
}
return null;
}
public static ItemFamily fromId(final int id) {
for (ItemFamily e : ItemFamily.values()) {
if (e.id == id) {
return e;
}
}
return null;
}
}
我想用常量替换“Armor”、“Jewelry”、“Recipes”等,这将根据客户端应用程序所需的语言环境进行调整。但是:如果我将枚举与客户端常量接口绑定得太紧,那么在服务器端使用枚举时可能会遇到麻烦,对吧?
非常欢迎任何关于翻译共享内容的适当方式的想法。非常感谢您阅读并帮助我!
P.s.:如果这个问题在某处被提及,请原谅。我搜索了开发人员指南(国际化)以及 stackoverflow。不过我没有找到合适的解决方案。
【问题讨论】:
标签: gwt