JSFiddle - React, Tailwind, and code Playground
JavaScript
var userLang = (navigator.language) ? navigator.language : navigator.userLanguage;
String.prototype.printf = function() {
var formatted = this;
for(i=0;i<arguments.length;i++) {
formatted = formatted.replace("%s", arguments[i]);
}
return formatted;
};
var Translation = {
userLang: 'es',
getLang: function() {
this.userLang = (navigator.language) ? navigator.language : navigator.userLanguage;
alert(this.userLang);
},
strTrans: {
'en': {'hola': 'hello',
'tu nombre es %s': 'you name is %s',
'tienes %s platano' : 'you have %s banana',
'tienes %s platanos' : 'you have %s bananas',
},
'ca': {'hola': 'hello',
'tu nombre es %s': 'el teu nom es %s',
'tienes %s platano' : 'tens %s platan',
'tienes %s platanos' : 'tens %s platans',
},
},
getText: function() {
var cadena = arguments[0];
if (typeof this.strTrans[this.userLang] !== "undefined") {
cadena = this.strTrans[this.userLang][cadena];
}
if(typeof cadena == "undefined") cadena = arguments[0];
total = arguments.length;
for(i=1;i<total;i++) {
valor = arguments[i];
cadena = cadena.replace("%s", arguments[i]);
}
return cadena;
}
}
//Translation.getLang();
Translation.userLang = 'en';
document.write(Translation.getText('tu nombre es %s','Donkey-Kong'));
document.write('<br />');
document.write(Translation.getText('tienes %s platano',1));
document.write('<br />');
document.write(Translation.getText('tienes %s platanos',4));
//document.write(Translation['en']['tu nombre es %s , %s'].printf('foo bar'))
//document.write(Translation['en']['tu nombre es %s'].printf('foo bar'))