如何在 messages.properties 文件中使用命名参数?

2022-09-01 16:48:46

有没有办法让 message.properties 记录如下

message.myMessage=This message is for ${name} in ${location}

message.myMessage = This message is for {0} in {1}

当我创建消息时,我不一定知道顺序/需要多少参数,但我可以按名称传入几个属性,并且只使用正确的属性。


答案 1

在面对完全相同的问题并戳入源代码之后,我发现了一个“漏洞”,它以一种非常简单的方式使它成为可能:

message.myMessage = This message is for {0,,name} in {1,,location}

这种方法不会消除数字的使用。使用它的原因是给翻译人员一些提示。


答案 2

恐怕不是,参数是一个对象数组,所以没有办法为它们定义名称。如果您总是以相同的顺序传入参数数组,但您可以像这样使用它们:

message.myMessage = This message is for {0} in {1}
message.myNameMessage = This message is for {0}
message.myLocationMessage = This message is for people in {1}
message.myAlternateMessage = The message params are location: {1}; name: {0}

推荐