Groovy/Grailsでドメインクラス名を人間が読めるようにする方法はありますか?たとえば、LibraryBookというクラスがあり、アプリケーションビューでは「Create LibraryBook」と表示されます。 Grailsにこれを "Create Library Book"と表示させることは可能ですか?Groovy/Grailsでモデル名を人間が読めるようにする
答えて
あなたgrails-app/views/libraryBook/create.gsp
ファイルの先頭を見れば、あなたのようなものが表示されます。これは、あなたがLibraryBook
のデフォルト名を上書きするlibraryBook.label
メッセージのプロパティを設定することができます示し
<g:set var="entityName" value="${message(code: 'libraryBook.label', default: 'LibraryBook')}" />
を。このプロパティはgrails-app/i18n/message.properties
ファイルで設定する必要があります。このcan be found hereのドキュメント
興味深いことに(推奨されるベストプラクティスではありません)、デフォルトのgrailsスキャフォールディングテンプレートを変更することができます。まず、あなたとテンプレートをインストールする必要があります。
grails install-templates
次に、ファイルsrc/templates/scaffolding/create.gsp
(およびlist.gsp
、など)を編集し、行を変更することができます
<g:set var="entityName" value="\${message(code: '${domainClass.propertyName}.label', default: '${className.replaceAll(/\B[A-Z]/){ " $it" }}')}" />
に
<g:set var="entityName" value="\${message(code: '${domainClass.propertyName}.label', default: '${className}')}" />
を
ご覧のとおり、このコード:
className.replaceAll(/\B[A-Z]/){ " $it" }
CamelCaseクラス名をとり、大文字(最初の文字とは別)を空白文字の後の文字に置き換えます。あなたがgenerate-views
やgenerate-all
を呼び出すとき
その後、新しく作成されたGSPはそれに
をスペースで、このデフォルト名を持つことになりますGrailsDomainClassは、あなたが使用することができます性質を持っています。プロパティの名前にはGrailsNameUtils.getNaturalName()を使用することもできます。
まだ、ローカライズはできません。
通常、@ temp_yatesと同様に、className.label = Class Name
とclassName.propertyName.label=Property Name
からmessages.properties
のようなメッセージを追加します。
- 1. MS Accessでタイムスタンプを人間が読めるように変換する
- 2. エポックタイムを特定のタイムゾーンで人間が読めるように変換する
- 3. Ruby on Railsで人間が読めるクラス名を取得するには?
- 4. momentjsを人間が読めるように書式設定する方法は?
- 5. MongoDbで人間が読めるIDを作成するには
- 6. Enunciate - RESTリソースに人間が読める名前を提供する
- 7. 署名を人間が読める形式に変換する(バウンシーキャスル)
- 8. ハスケル:人間が読める日付
- 9. Linuxカーネルの人間が読めるタイムスタンプ
- 10. ブーストエラーコード、人間が読める記述
- 11. Newtonsoft.Json.Schema.Generation:人間が読める「定義」セクション
- 12. Wicket人間が読めるURL
- 13. jsfiddle.netコードスニペットに人間が読める名前を付けるにはどうすればいいですか?
- 14. dmesg人間が読める時間を印刷する
- 15. wbxmlを人間が読める形式にデコードするには?
- 16. 人間が読めるJSONファイルをPigにロードするには?
- 17. Webkit/chromeタイムスタンプから人間が読める時間をjavaで
- 18. int idを人間が読めるidに変換する
- 19. 出力を他の人に読めるようにする
- 20. Unix上で人間が読めるファイルを見つける
- 21. 人間が読める文書はSpockで可能ですか?
- 22. anglejsで人間が読める式にCron式
- 23. Javaソースをコンパイルできないにもかかわらず人間が読めるようにする
- 24. PLCrashReporter:人間が読めるスタックトレースを作成する
- 25. C++コードから人間が読めるASTを取得する
- 26. エポックから人間が読める時間にリストを変換する
- 27. 人間の読めるUTC日時
- 28. clojure.spec人間が読める形ですか?
- 29. 人間が読める相対時間の解析
- 30. カサンドラCLI:人間が読める形式に進値に変換
が正しいです。しかし、私は彼がメッセージのプロパティがi18lライブラリのmessage.propertiesファイルにあることに言及していないと思います。私は彼の2番目の解決策は過度のものであり、それは非常に国際化が容易ではないと信じています。 – sbglasius
@sbglasius私は、第二の方法ではなく、第一の方法に向かって、私の答えをより強く語っていたはずです。 2番目は、デフォルトの足場テンプレートがどのようにベストプラクティスのデモよりも構成可能であるかのデモンストレーションでした...残念です...私はこれをもっと明白にするために私の答えを変更します。間違ったやり方で(そして人々を間違った道筋に導く)長期的には誰も助けない –