続label3


なにか意外なところで盛り上がった(wので、
ちょっと整理して、自分の意見を書きます。


/view/hoge/bbb.html

<title id="ccc">hoge</title>


/examples/teeda/web/hoge/label.properties

bbb.ccc=DDD
ccc=EEE


と書くと、titleにDDDが出力されます。
もしhtml名.keyで見つからない場合、keyだけで
サブアプリケーション内のlabel.propertiesを探しにいくようにします。


通常は画面ごとに必要なlabel項目があり、それ以外には
サブアプリケーション共通のlabel項目があるはずです。
これらでも見つからない場合は、rootPackage/webを
見に行くという仕様にしたいと思います。
rootPackage/webのlabel.propertiesはアプリケーション共通のlabel項目が
定義されています。


/examples/teeda/web/label.properties

ccc=FFF


で、appendする例についてじっくり考えてみたのですが
結論として、それはあまり一般的な要望では無いような気がします。
何故なら、labelが必要な場合というのは、画面上の表示項目を
ひとつのリソースファイルにまとめて保守性の向上を狙うのが主目的であると
思います。当然国際化なども目的の一つではありますが。
この場合、できるだけ必要なリソースが一つに固まっているのが望ましく、
画面上に散らばっているものをみなくてはいけないのはどうもしっくりきません。
サブアプリケーション内の項目(画面固有またはサブアプリケーション固有)に関しては、
ひとつのリソースから取得するのが望ましいのではないでしょうか。
one fact in one placeなところはきっちりしたいなと。
id:szk-takanoriさん、どうでしょうか?


次にid:yone098さんの案も確かに明示的で良いのですが、
Seasar2.4からは規約ベースなので、Teeda Extensionもできるだけ
その方針に従おうと思っています。
明示的な指定にしてしまうと視覚的にはわかりやすいかもしれませんが
修正の際のコストがかかってしまうかなと。
なので、上記のような案がいいと思うのですが
いかがでしょう?