How can I create a map with all i18n-messages in Grails

后端 未结 2 1659
闹比i
闹比i 2021-01-02 09:14

I need this to render a part of it in a controller like:

class MessageController {

  def index = {

    def messageMap = listAlli18nMessages() // the questi         


        
2条回答
  •  鱼传尺愫
    2021-01-02 09:40

    The approach you are taking doesn't look to be possible based on the API docs for PluginAwareResourceBundleMessageSource. This will get you close to a solution

    class MessageController {
        def messageSource
    
        def index = {
            Locale locale = new Locale('en');
            List codes = ['default.paginate.prev','default.paginate.next','default.boolean.true','default.boolean.false']
            def messageMap =  messagesForCodes(codes,locale)
            render (contentType: "text/xml") {
                 messageMap {key, message ->
                    ..
                 }
            }
        }
    
        private def messagesForCodes(codes, locale){
            Map messages = [:]
            codes.each{code->
                messages[code] = messageSource.getMessage(code,null,locale)
            }
            messages
        }
    }
    

提交回复
热议问题