[英]Rails Translation variables in javascript
Rails提供了將變量傳遞給翻譯的功能:
http://guides.rubyonrails.org/i18n.html#passing-variables-to-translations
我希望能夠在客戶端(即Javascript)中使用這些文件。 這些文件已經轉換為JSON,但是我希望能夠在轉換后的字符串中設置參數。
例如:
There are %{apple_count} apples in basket ID %{basket_id}.
其中%{apple_count}
和%{basket_id}
將被替換為參數。
這是我想在JS中使用的調用(即,我想實現origStr
):
var str = replaceParams(origStr, {apple_count: 5, basket_id: "aaa"});
我猜最好的策略是使用正則表達式。 如果是這樣,請提供一個良好的正則表達式。 但我願意聽到其他選擇。
如果您始終提供所有參數(即,從不忽略它們),並且模板中沒有使用多個參數,則無需使用正則表達式。
function replaceParams(origStr, params) {
for (var p in params) origStr = origStr.replace("%{" + p+ "}", params[p]);
return origStr;
}
在其他情況下,如果您只想使用正則表達式,則可以通過回調替換輕松實現:
function replaceParams(origStr, params) {
return origStr.replace(/%{(\w+)}/g, function(m, pName){
return params[pName];
// this will return "undefined" if you forget to pass some param.
// you may use `params[pName] || ""` but it would make param's value `0` (number)
// rendered as empty string. You may check whether param is passed with
// if (pName in params)
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.