diff --git a/js/block.js b/js/block.js index ff125a27b6..2af7be4db5 100644 --- a/js/block.js +++ b/js/block.js @@ -2471,28 +2471,35 @@ class Block { c2 = this.blocks.blockList[c].connections[2]; if (this.blocks.blockList[c2].name === "number") { if (this.blocks.blockList[c1].name === "solfege") { - const solfnotes_ = _("ti la sol fa mi re do").split(" "); + // English reference for logic + const solfnotesRef = ["ti", "la", "sol", "fa", "mi", "re", "do"]; + // Localized notes for display + const solfnotesLocalized = _("ti la sol fa mi re do").split(" "); + const stripped = this.blocks.blockList[c1].value .replace(SHARP, "") .replace(FLAT, "") .replace(DOUBLESHARP, "") .replace(DOUBLEFLAT, ""); - const i = ["ti", "la", "sol", "fa", "mi", "re", "do"].indexOf(stripped); + + const i = solfnotesRef.indexOf(stripped); + if (i === -1) { + // fallback if note not found + return stripped + " " + this.blocks.blockList[c2].value; + } + if (this.blocks.blockList[c1].value.includes(SHARP)) { - return solfnotes_[i] + SHARP + " " + this.blocks.blockList[c2].value; + return solfnotesLocalized[i] + SHARP + " " + this.blocks.blockList[c2].value; } else if (this.blocks.blockList[c1].value.includes(FLAT)) { - return solfnotes_[i] + FLAT + " " + this.blocks.blockList[c2].value; + return solfnotesLocalized[i] + FLAT + " " + this.blocks.blockList[c2].value; } else if (this.blocks.blockList[c1].value.includes(DOUBLESHARP)) { - return ( - solfnotes_[i] + DOUBLESHARP + " " + this.blocks.blockList[c2].value - ); + return solfnotesLocalized[i] + DOUBLESHARP + " " + this.blocks.blockList[c2].value; } else if (this.blocks.blockList[c1].value.includes(DOUBLEFLAT)) { - return ( - solfnotes_[i] + DOUBLEFLAT + " " + this.blocks.blockList[c2].value - ); + return solfnotesLocalized[i] + DOUBLEFLAT + " " + this.blocks.blockList[c2].value; } else { - return solfnotes_[i] + " " + this.blocks.blockList[c2].value; + return solfnotesLocalized[i] + " " + this.blocks.blockList[c2].value; } + } else if (this.blocks.blockList[c1].name === "notename") { return ( this.blocks.blockList[c1].value + " " + this.blocks.blockList[c2].value diff --git a/js/utils/utils.js b/js/utils/utils.js index c6940e2359..93317952ae 100644 --- a/js/utils/utils.js +++ b/js/utils/utils.js @@ -94,28 +94,8 @@ function _(text, options = {}) { }; translated = resolveObj(text); - if (!translated || translated === text) translated = resolveObj(cleanedText); - if (!translated || translated === text) translated = resolveObj(text.toLowerCase()); - if (!translated || translated === text) { - const titleCase = text.charAt(0).toUpperCase() + text.slice(1).toLowerCase(); - translated = resolveObj(titleCase); - } - if (!translated || translated === text) { - const hyphenatedText = cleanedText.replace(/ /g, "-"); - translated = resolveObj(hyphenatedText); - } } else { translated = i18next.t(text, options); - if (!translated || translated === text) translated = i18next.t(cleanedText, options); - if (!translated || translated === text) translated = i18next.t(text.toLowerCase(), options); - if (!translated || translated === text) { - const titleCase = text.charAt(0).toUpperCase() + text.slice(1).toLowerCase(); - translated = i18next.t(titleCase, options); - } - if (!translated || translated === text) { - const hyphenatedText = cleanedText.replace(/ /g, "-"); - translated = i18next.t(hyphenatedText, options); - } } return translated || text; @@ -1649,4 +1629,4 @@ if (typeof module !== "undefined" && module.exports) { hexToRGB, hex2rgb }; -} \ No newline at end of file +}