From bb345770af627e21cb71e4f8d00c8d8536e13989 Mon Sep 17 00:00:00 2001
From: Thomas Tanghus <thomas@tanghus.net>
Date: Fri, 5 Oct 2012 03:33:46 +0200
Subject: [PATCH] Suggestion for simple, yet efficient variable interpolation
 in js translations.

---
 core/js/js.js | 22 +++++++++++++++++++---
 1 file changed, 19 insertions(+), 3 deletions(-)

diff --git a/core/js/js.js b/core/js/js.js
index 657dd6d6f8..d87047dbc6 100644
--- a/core/js/js.js
+++ b/core/js/js.js
@@ -5,7 +5,7 @@
  * @return string
  */
 
-function t(app,text){
+function t(app,text, vars){
 	if( !( t.cache[app] )){
 		$.ajax(OC.filePath('core','ajax','translations.php'),{
 			async:false,//todo a proper sollution for this without sync ajax calls
@@ -21,11 +21,27 @@ function t(app,text){
 			t.cache[app] = [];
 		}
 	}
+	var _build = function(text, vars) {
+		return text.replace(/{([^{}]*)}/g,
+			function (a, b) {
+				var r = vars[b];
+				return typeof r === 'string' || typeof r === 'number' ? r : a;
+			}
+		);
+	}
 	if( typeof( t.cache[app][text] ) !== 'undefined' ){
-		return t.cache[app][text];
+		if(typeof vars === 'object') {
+			return _build(t.cache[app][text], vars);
+		} else {
+			return t.cache[app][text];
+		}
 	}
 	else{
-		return text;
+		if(typeof vars === 'object') {
+			return _build(text, vars);
+		} else {
+			return text;
+		}
 	}
 }
 t.cache={};
-- 
GitLab