下面的代码将显示该代码my.message.code的国际化属性文件相关联的标签:Grails的国际化 - 如何从信息切换到代码
<g:message code="my.message.code" />
这是很容易的,方便的并且运行良好,但我希望按需启用交换机,以便在正在运行的应用程序中显示my.error.code
。
这种功能的目的是使Grails应用程序的用户能够针对特定代码提出修改请求,这将使翻译员能够轻松查看和批量修改应用程序。
Grails可能吗?
谢谢。
下面的代码将显示该代码my.message.code的国际化属性文件相关联的标签:Grails的国际化 - 如何从信息切换到代码
<g:message code="my.message.code" />
这是很容易的,方便的并且运行良好,但我希望按需启用交换机,以便在正在运行的应用程序中显示my.error.code
。
这种功能的目的是使Grails应用程序的用户能够针对特定代码提出修改请求,这将使翻译员能够轻松查看和批量修改应用程序。
Grails可能吗?
谢谢。
您可以创建一个自定义标签做到这一点通过标签库(我相信你可以覆盖摹命名空间和信息标签,如果你需要的话):
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将永远当它显示代码找不到与其关联的消息。
您可以覆盖标准的消息标记。不是一个干净的解决方案,但它可以工作:
从http://grails.org/doc/latest/ref/Tags/message.html#message获取源代码,创建自己的taglib(带有标准命名空间'g')并将源复制并粘贴到您的taglib。这将避免必须更改所有gsp文件。
现在更改代码,使其显示消息代码(例如),如果区域设置具有特殊值(如“代码”)。
您能为i18n创建一个伪语言吗?它不会定义任何翻译?那不会显示标识符? – Piskvor 2011-02-10 19:14:18
嗯。不,当翻译缺失时,它似乎自动回退到英语。 – Titom 2011-02-18 19:19:56