Merge pull request #24 from owncloud/js_variable_interpolation
A suggestion for simple, yet efficient variable interpolation in js translations
This commit is contained in:
commit
a0c53619ff
|
@ -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,13 +21,29 @@ 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' ){
|
||||
if(typeof vars === 'object') {
|
||||
return _build(t.cache[app][text], vars);
|
||||
} else {
|
||||
return t.cache[app][text];
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(typeof vars === 'object') {
|
||||
return _build(text, vars);
|
||||
} else {
|
||||
return text;
|
||||
}
|
||||
}
|
||||
}
|
||||
t.cache={};
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue