Add i18n attribute-keying syntax to this very-much-not i18n loc code.

This commit is contained in:
50h100a
2023-07-11 03:15:30 -04:00
parent 8872492fcd
commit 2387ff54c0

View File

@@ -57,10 +57,20 @@
//find all the elements with `data-i18n` attribute
$("[data-i18n]").each(function () {
//read the translation from the language data
const key = $(this).data("i18n");
const text = data?.[language]?.[key]; // Ensure that the translated text is loaded correctly.
if (text) {
$(this).text(text);
const keys = $(this).data("i18n").split(';'); // Multi-key entries are ; delimited
for (const key of keys) {
const attrmatch = key.match(/\[(\S+)\](.+)/); // [attribute]key
if (attrmatch) { // attribute-tagged key
const locval = data?.[language]?.[attrmatch[2]];
if (locval) {
$(this).attr(attrmatch[1], locval);
}
} else { // No attribute tag, treat as 'text'
const locval = data?.[language]?.[key];
if (locval) {
$(this).text(locval);
}
}
}
});
});