0

我现在通过 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 中检查这个条件。可能吗 ?如果是怎么办?

谢谢 !提前。

4

3 回答 3

1

我认为您不需要检查messages.properties,只需将您的代码更改为

your {0} for this month is {1}

a在消息中作为参数传递,例如

g.message(code: 'adminUsers.restore.confirm.message', args: [a, 'XXX'])
于 2013-10-08T09:25:41.143 回答
1

不它不是。由于属性只是属性文件。但我知道有些插件可以扩展处理属性文件的功能。我认为在您的情况下,您必须将“逻辑”部分拆分为您的控制器\服务,并在 *.properties 文件中只留下消息

于 2013-10-08T09:57:36.667 回答
0

可以创建条件消息来处理复数/单数(使用 MessageFormat / 选择)。

但是您要求的不是正确使用该功能。

your {0} for this month is {1}也是一个坏主意,因为它会弄乱翻译。在某些语言中,“tax”和“salary”可能有不同的性别,这可能会影响句子中远处的单词。

最好在属性中有完整的句子,不要使用条件、替换等技巧。

你为什么要这个?省了几句?

于 2013-10-09T06:37:10.043 回答