下面的代码将在i18n属性文件中显示与代码my.message.code关联的标签:
<g:message code="my.message.code" />
这是非常简单,方便,工作良好,但我想启用按需切换,以便它显示my.error.code,而不是在运行的应用程序。
这样的功能的目的是使Grails应用程序的用户能够请求对特定代码的修改,它将使翻译者能够以一种简单的方式审查和批量修改应用程序。
使用Grails可以吗?
谢谢。
发布于 2011-02-11 04:24:54
您可以通过taglib创建一个自定义标记来完成此操作(如果需要,我相信您可以覆盖g名称空间和message标记):
def messageWithCode = {attrs, body ->
if (attrs.showCode) {//You will need to pass a boolean (or retrieve from a
// config file) to indicate whether to show the message or the code
out << attrs.code
} else {
out << g.message(attrs)
}
}此外,当grails找不到与之关联的消息时,它将始终显示代码。
发布于 2011-07-29 13:30:00
您可以覆盖标准消息标记。不是一个干净的解决方案,但它可以工作:
从http://grails.org/doc/latest/ref/Tags/message.html#message获取源代码,创建您自己的标记库(使用标准名称空间'g'),然后将源代码复制并粘贴到您的标记库。这将避免更改所有的gsp文件。
现在修改代码,如果语言环境有一个像' code‘这样的特殊值,它就会显示消息代码(例如)。
https://stackoverflow.com/questions/4961320
复制相似问题