CRUDifyを日本語化してみます。Liftには標準で国際化のための仕組みが提供されています。
CRUDifyが使うメッセージリソースはi18n.lift-coreというリソースバンドルで定義されています(lift-webkit-xxxx.jarの中に入っています)。残念ながら最新のLift 2.3でも日本語用のプロパティファイルは含まれていないようなので、src/main/resources配下にi18nパッケージを作成し、lift-core_ja.propertiesを作成します。
とりあえずCRUDifyで使っていそうなメッセージだけ翻訳してみました(他にもあるかも…)。プロパティファイルはnative2asciiしておく必要があります。
View=参照 Edit=編集 Delete=削除 Create=作成 Save=保存 crudify.menu.view.displayName=%sの参照 crudify.menu.edit.displayName=%sの編集 crudify.menu.delete.displayName=%sの削除
ただ、CRUDifyはメッセージの外部化がいまいちいけてないところがあって、以下のようなコードがあったりします。
def createMenuName = S.??("Create")+" "+displayName
S.??("Create") の部分だけ翻訳してもダメなので、こういう部分はMetaMapperでcreateMenuName自体をオーバーライドします。ついでにdisplayNameをオーバーライドしてモデルの表示名も日本語にしてみます。
object Message extends Message with LongKeyedMetaMapper[Message] with CRUDify[Long, Message]{ override def displayName = "メッセージ" override def showAllMenuName = "メッセージの一覧" override def createMenuName = "メッセージの作成" override def editMenuName = "メッセージの編集" }
これでCRUDifyによるCRUDアプリが一通り日本語になりました。