是否有与Java MessageFormat等价的Ruby?

是否有与Java MessageFormat等价的Ruby?,ruby,messageformat,Ruby,Messageformat,我有一个字符串的格式: 你好{0},今天是{1},时间是{2}。你会吃{3}吗? 给定一个数组[“sir”,“Monday”,“12:00”,“tacos”],此字符串的格式应为: 您好,先生,今天是星期一,时间是12:00。你会吃玉米卷吗? Ruby是否有某种内置方法来实现这一点?还是有宝石?还是我只需要替换字符串 编辑:我想补充一点,我不允许编辑这些字符串。因此,类似sprintf的解决方案将不起作用。您可以这样做: message = "Hello %{tile}, today is %{

我有一个字符串的格式:

你好{0},今天是{1},时间是{2}。你会吃{3}吗?

给定一个数组
[“sir”,“Monday”,“12:00”,“tacos”]
,此字符串的格式应为:

您好,先生,今天是星期一,时间是12:00。你会吃玉米卷吗?

Ruby是否有某种内置方法来实现这一点?还是有宝石?还是我只需要替换字符串


编辑:我想补充一点,我不允许编辑这些字符串。因此,类似sprintf的解决方案将不起作用。

您可以这样做:

message = "Hello %{tile}, today is %{day_name} and the time is %{time}. Will you be eating %{food}?"

p message % { title: "sir", day_name: "Monday", time: "12:00", food: "tacos" }
检查我的答案


希望有帮助

您可以这样做:

message = "Hello %{tile}, today is %{day_name} and the time is %{time}. Will you be eating %{food}?"

p message % { title: "sir", day_name: "Monday", time: "12:00", food: "tacos" }
检查我的答案

希望有帮助

带有:

与:


我喜欢,但由于Ruby不是我的强项,任何改进都将不胜感激。源代码已打开。

I,但由于Ruby不是我的强项,任何改进都将不胜感激。源代码已打开。

您可以使用
%1$s
%2$s
%3$s
等将特定参数作为目标。您可以使用
%1$s
%2$s
%3$s
等将特定参数作为目标。
"Hello %s, today is %s and the time is %s. Will you be eating %s?" % ["sir", "Monday", "12:00", "tacos"]
 "Hello %s, today is %s and the time is %s. Will you be eating %s?" % ["sir", "Monday", "12:00", "tacos"]
# => "Hello sir, today is Monday and the time is 12:00. Will you be eating tacos?"