JSFiddle - React, Tailwind, and code Playground
HTML
In the <span class="i18n">Clear</span> and also <span class="i18n">Save Widget</span>. I'm <span class="i18n">On</span> the <span class="i18n">sub3</span> and <span class="i18n">PDF</span>.
CSS
.i18n {
color: red;
}
JavaScript
var term = "";
var customDict = {
"Level One": {
"Clear": "1234",
"CSV": "CSV",
"First": "First",
"Last": "Last",
"Next": "Next",
"On": "42",
"Off": "Off",
"PDF": "alpha",
"Prev": "Prev",
"Rows": "Rows",
"Save Widget": "saver widgetor",
"Stats": "statistiques",
"sub": {
"sub2": {
"sub3": "inception"
}
}
}
};
function recursiveLookup(key, val) {
//test for a match between term and key
if (key === term) {
$('.i18n').each(function() {
if ($(this).text() === key) {
$(this).text(val);
}
});
}
//val is an object or no match? recur
if (val instanceof Object) {
$.each(val, function(key1, val1) {
recursiveLookup(key1, val1);
});
}
}
function convert() {
$('.i18n').each(function(key, val) {
term = $(this).text();
$.each(customDict, function(key, val) {
recursiveLookup(key, val);
});
});
}
/*call the function*/
convert();