[cai18n-dev] Type safe message definition
Takeshi Kondo
takeshi.kondo at gmail.com
Thu Aug 27 16:58:03 CEST 2009
Hi Ceki
I have two type safe message definition idea.
I've committed draft code to my cai18n project clone.
(http://github.com/takeshi/cai18n/tree/master)
Please take it in cai18n project, if you like it,.
My ideas is as follows.
1. Message definition by annotation
for instance,
public enum LocalizedColors {
@Message("green")
GREEN {
@Message("vert")
Locale fr = Locale.FRANCE;
@Message("midori")
Locale ja = Locale.JAPAN;
}
}
Using enum field declaration with annotation, we can define localized
message. It is simple , but we can't add other locale.
2. Message definition by switch case
for instance,
public class ColorDef_fr extends MessageDefinition<Colors> {
public Locale getLocale() {
return Locale.FRANCE;
}
public String getMessage(Colors e) {
switch (e) {
case BLUE:
return "blue";
case GREEN:
return "vert";
case RED:
return "rouge";
}
return null;
}
}
Using method return, we can define localized message.
It is not simple, but this we can define it per locale.
More information about the cal10n-dev
mailing list