我现在通过message.properties在我的应用程序中显示文本,在某些情况下,我必须显示类似的消息,稍作修改。是否可以像以下一样检查消息属性中的条件:
if (a == salary) {
code = your salary for this month is {0}
}else if (a == tax) {
code = your tax for this month is {0}
}
现在在这种情况下,文本的唯一区别是工资和税,而不是在控制器中检查它,或者我只想在message.properties中检查这个条件。可能吗 ?如果是的话怎么样?
谢谢!提前。
答案 0 :(得分:1)
我认为您不需要检查messages.properties,只需将代码更改为
即可your {0} for this month is {1}
并将a
作为参数传递给
g.message(code: 'adminUsers.restore.confirm.message', args: [a, 'XXX'])
答案 1 :(得分:1)
不,不是。由于属性只是属性文件。但我知道有些插件可以扩展使用属性文件的功能。我认为在你的情况下你必须分裂逻辑'部分到您的controller \ service并且只留下* .properties文件中的消息
答案 2 :(得分:0)
可以创建条件消息来处理复数/单数(使用MessageFormat / choice)。
但你所要求的并不是正确使用这种能力。
your {0} for this month is {1}
也是一个坏主意,因为它会破坏翻译。
某些语言中“税”和“薪水”可能有不同的性别,这可能会影响句子中的词语。
最好在属性中使用完整的句子,没有条件,替换等技巧。
为什么你还想要这个呢?保存几句话?