[cai18n-dev] Type safe message definition
Ceki Gulcu
ceki at qos.ch
Thu Aug 27 23:11:38 CEST 2009
Hi Takeshi,
Thank you for sharing your new ideas. I just cloned
http://github.com/takeshi/cai18n/tree/master.
It looks like MessageDefinitionConveyor is referencing the class
ch.qos.cai18n.sample.ColorMessageConfiguration (part of the tests). This causes
the maven build to fail for me.
I'll look at the code some more tomorrow morning and come back to you with comments.
Cheers,
Takeshi Kondo wrote:
> 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._______________________________________________
--
Ceki Gülcü
Logback: The reliable, generic, fast and flexible logging framework for Java.
http://logback.qos.ch
More information about the cal10n-dev
mailing list