Yoshihiro ICHIYANAGI
ichan****@im*****
2005年 10月 2日 (日) 05:40:40 JST
おはようございます。
> XDocletの書き方もメッセージとLaszloMessageクラスからの取得が1:1なので
>
> //@i18n.test.org-msg="TEST MESSAGE {1}"
> LaszloMessage.getMessage("test_message",Params);
TOGさん、ちょっとrubyでですがつくってみました。
original source側は
// @laszlo-18n.test.begin
// org-mes: "LPS requires a servlet container" +" that can implements ServletContent.getRealPath()"
respondWithInitError(req, res, LaszloMessages.getMessage(PREFIX_NAME,
"must_upper_ver2.3"));
// @laszlo-i18n.test.end
とコメントしてあれば
package org.openlaszlo.i18n.test;
import junit.framework.TestCase;
public class LaszloMessagesTester extends TestCase {
public LaszloMessagesTester() {
super(LaszloMessagesTester.class.toString());
// TODO Auto-generated constructor stub
}
public LaszloMessagesTester(String name) {
super(name);
// TODO Auto-generated constructor stub
}
protected void setUp() throws Exception {
}
public void testLaszloMessages(){
asserts("LZServlet-1",
"LPS requires a servlet container" +" that can implements ServletContent.getRealPath()",
LaszloMessages,getMessage("org.openlaszlo.servlets.LZServlet", "must_upper_ver2.3"));
}
}
を自動生成します。
#だたしまだ多少のソース修正をしないとコンパイルは通りません
#またmessageの数に比例してtestLaszloMessages()メソッドが肥大化していきます
このようなgeneratorの利点は、
1.original messageとpropertiesファイルとのメッセージチェックが行える
2.コピペと同じなので、実装された生source codeの稼動チェックが行える
3.コメント生成規約が生ずるため、かならずoriginalのmessageを残すようになる
あと、もしLaszloMessages.getMessage()の実装はしたけど、コメントを書き忘れた
ということもあるので
"//@laszlo-i18n.test.begin"と"LaszloMessages.getMessage()"の
出現数をカウントしてそれが一致していればOK
みたいなチェックもしてくれることです。
#XDocletの方が正道だと思います、がちょっと大変そうです (^^;
#コメントをもうすこしXDoclet風にしといた方がカッコイイかもしれませんね
#XDoctletへの移行も考慮して
ichan