我想在本地化的消息字符串中替换多个变量/占位符的最佳方式在我的Ruby on Rails应用程序中。替换单个占位符时,我使用了满意的方式:ROR:本地化消息字符串变量替换
en.yml: url_borked:“无法加载URL:$ url。” In: t(:url_borked)[“$ url”] = request.url
但是这不适用于多个占位符。它看起来丑陋,它不实际工作如:
在en.yml:
url_borked: "The URL: $url is badly formatted, perhaps you meant: $url_clean"
鉴于:
(t(:url_borked)["$url"] = request.url)["url_clean") = @suggested_url
我一直在使用字符串::子试过,但我不满意,因为它丑陋。例如:
(t(:url_borked).sub("$url", request.url).sub("url_clean", @suggested_url)
如果要替换一个占位符的多个实例,它也不起作用。例如: -
bad_url: "$url cannot be loaded, please try $url another time"
我也曾考虑printf函数,但这并不本地化的占位符的相对位置可以根据翻译转变工作。
有没有正确的方法来做这个消息占位符替换?
谢谢。
谢谢AlexT,你是绝对正确的,我觉得有点愚蠢,因为忽略了明显的。你只是打我回答我自己的问题,所以你得到大剔! 干杯。 – 2010-03-02 07:20:53