2013-04-10 57 views
1

我使用GWT I18N,它依賴於具有參數的消息的註釋。
例:Java註釋是否可以遍佈多行?

@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的約束嗎? (我很害怕,但找不到任何東西)
是否有解決方法?
感謝


編輯:鑑於第一次的答案,這個問題必須被改寫:這是可能的,而且我應該使用哪個字符顯示持續(如果有的話)?
註解處理器顯然需要某些東西來告訴他。 我嘗試「\」,因爲它是在財產文件中使用...炭
「+」也不起作用。

+0

@kaysush你在說什麼? – Andremoniy 2013-04-10 13:29:34

回答

6

Java不支持C風格串線的顯示,所以你不能既不註釋聲明,無論是在代碼的其他地方使用這種多線樣式。

如果你想乘單串線,你必須做這樣的事情:

是在編譯時完成
@DefaultMessage("Here is a long " + 
     "message <br/> with a " + 
     "param:{0}") 
+0

其實我試過「\」,因爲:1)「\」是用於屬性文件(財產上鍵入多行)的字符,和b):CHAR「+」不工作。我會更新我的問題以使其更清楚。不管怎麼說,還是要謝謝你。 – gerard 2013-04-10 13:57:41

+0

@gerard它怎麼可能是'+'不起作用?它是Java標準字符串連接運算符。看來,你只是錯過了一些複製時,我的例子... – Andremoniy 2013-04-10 14:00:41

+0

我再試一次...... – gerard 2013-04-10 15:56:37

0

嘗試字符串連接,所以:

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

我也試過,謝謝。 (編譯時間太晚了,這是註釋預處理器的問題)。 – gerard 2013-04-10 14:04:49

相關問題