如何在Grails插件中使用I18N消息

时间:2011-07-01 20:05:02

标签: plugins grails internationalization

我在插件中添加了一个新例外:

class UnzipException extends RuntimeException {
    String message
    String defaultMessage
    String fileName
}

. . .

        else {
            throw new UnzipException(
                message:"grailsant.unzipexception.badfile",
                defaultMessage: "Invalid zip file: ${zipFile}",
                fileName: zipFile)
        }
...

在插件的messages.properties中我有:

grailsant.unzipexception.badfile=Invalid zip file: {0}

两个问题:

  1. 如何使用fileName填充{0}?

  2. 应用程序是否可以覆盖grailsant.unzipexception.badfile消息?

1 个答案:

答案 0 :(得分:1)

(1)似乎必须由app:

完成
try {
  . . .
} catch (org.grails.plugins.grailsant.UnzipException e) {
     flash.message = e.message
     flash.args    = [e.fileName]
     flash.defaultMessage = e.defaultMessage
}

(2)是的,如果应用中的message.properties与插件具有相同的密钥,则将使用应用的值。