我想在本地化的消息字符串中替換多個變量/佔位符的最佳方式在我的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