しおしお

IntelliJのあれやこれや

Grails:画面項目名を変更する方法

最近Grailsの勉強をしてみたので最近学んだことをメモしてみるよ。

画面項目名を変更方法

画面項目名は、grails-app/i18n/配下のpropertyファイルに設定してあげると言語ごとに好きな項目名を使うことができると。

以下のドメインの登録画面を例にすると・・・

class User {

  String name
  String password
  String confirmPassword

  static constraints = {
    name blank: false, maxSize: 100
    password blank: false, minSize: 8, maxSize: 12
    confirmPassword blank: false, validator: {
      it == password
    }
  }
}

デフォルトのままだと、言語が日本語の場合でも英語の項目名が表示されてしまいます。
f:id:sioiri:20120619230023p:plain

日本語用の項目名を表示したい場合には、日本語用のpropertyファイルの「messages_ja.properties」に以下の設定を追加すると、日本語項目名を表示できます。

user.name.label=名前
user.password.label=パスワード
user.confirmPassword.label=確認用パスワード

例えばnameフィールドを例にしてみると、gspのコードで項目名を「code="user.name.label"」で取得しているため、言語ごとのpropertyファイルに「user.name.label」の設定があればその値が、なければdefault血で指定された「Name」が表示されます。

<label for="name">
  <g:message code="user.name.label" default="Name" />
  <span class="required-indicator">*</span>
</label>
<g:textField name="name" maxlength="100" required=""
        value="${userInstance?.name}" />
</div>

設定後の画面はちゃんと日本語で表示されますね。
f:id:sioiri:20120619231044p:plain

ちなみに、言語を変えてし確認したい場合は、getパラメータで言語を送ってあげると(例えば日本語の場合は、「lang=ja」)任意の言語で動作確認ができるようです。

おわり。