下面的代碼將顯示該代碼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