我该如何处理Xtext中的模板字符串?

时间:2012-03-08 14:06:56

标签: internationalization xtext messageformat

我有以下输入:

 a: "a is {Foo foo}"

其中foo的类型为Foo;业务层最终将为变量提供值。处理完输入后,将生成两个文件:属性文件和Java类:

 a=a is {0}

 public static I18nMessage a( Foo foo ) {
     return new I18nMessageBuilder().id( "a" ).args( foo ).build();
 }

我的想法是我为每条消息分配一个id,它给我一个包含方法(其中name == id)的Java类,并接受类型参数来完成消息。

我的问题:我应该如何处理Xtext语法中的文本字符串?我想为参数类型(Foo)完成代码,但我不知道如何处理可以包含空格和任何有效Unicode字符的字符串的其余部分。

建议?

1 个答案:

答案 0 :(得分:0)

我找到了一个更好的解决方案,它提供了一个非常简单的语法并解决了其他一些问题:

a(Foo foo): "a is " foo;

因此,文本消息是字符串和参数的列表。这样,代码完成非常简单,如果要添加格式化程序,则不需要转义序列:

a(Date d): "Date is " d( "short" );