[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