3

我使用 GWT I18N,它依赖于带有参数的消息的注释。
例子:

@DefaultMessage("Here is a message <br/> with a param:{0}")
String messageToLocalize(String param);

如果没有本地化翻译,将使用默认消息。
我有一些很长的字符串要处理,我想输入几行代码以提高代码的可读性(我不谈论渲染消息的多行)。

我试过这个:

@DefaultMessage("Here is a long \
message <br/> with a \
param:{0}")
String messageToLocalize(String param);

它失败(GWT PlugIn 4.2 和 SDK 2.5.1)并出现错误“无效的转义序列”。

我错过了什么 ?
它是对 Java 注释或 GWT 的约束吗?(恐怕是这样,但找不到任何东西)
有解决方法吗?
谢谢


编辑:给出第一个答案,必须改写问题:是否有可能,我应该使用哪个字符来显示延续(如果有)?
注释处理器显然需要告诉他一些事情。我尝试了“\”,因为它是在属性文件中使用的字符......
“+”也不起作用。

4

3 回答 3

6

Java 不支持 C 样式的字符串行表示,因此您不能在注释声明中使用这种多行样式,也不能在其他代码位置使用。

如果要多行单个字符串,则必须执行以下操作:

@DefaultMessage("Here is a long " +
        "message <br/> with a " +
        "param:{0}")
于 2013-04-10T13:27:56.740 回答
1

正如 Andremoniy 所说,它必须使用 Java 风格进行剪切。

但除此之外,我建议你看看 i18nCreator。它允许您在属性文件中管理 i18n 并自动生成这些消息接口文件: https ://developers.google.com/web-toolkit/doc/latest/RefCommandLineTools#i18nCreator

(还有一个maven插件:http: //mojo.codehaus.org/gwt-maven-plugin/user-guide/i18n.html

于 2013-04-10T13:38:48.533 回答
0

尝试在编译时完成的字符串连接,所以:

@DefaultMessage("Here is a long"+
"message <br/> with a " +
"param:{0}"")
于 2013-04-10T13:29:50.010 回答