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'))