diff --git a/public/js/script.js b/public/js/script.js index b2aa2480c..c988e9309 100644 --- a/public/js/script.js +++ b/public/js/script.js @@ -38,6 +38,7 @@ let manualRestart = false; let bailout = false; let notSignedInLastResult = null; let caretAnimating = true; +let isLanguageLeftToRight = true; let themeColors = { bg: "#323437", @@ -554,12 +555,6 @@ function initWords() { wordsList.push(w[i]); } } - //special case right-to-left languages (currently only Hebrew) - if (config.language === "hebrew") { - arrangeCharactersRightToLeft(); - } else { - arrangeCharactersLeftToRight(); - } showWords(); } @@ -1412,9 +1407,7 @@ function updateCaretPosition() { .querySelectorAll("letter")[currentLetterIndex]; if ($(currentLetter).length == 0) return; - //special case right to left languages (currently only Hebrew) - const isLeftToRight = config.language !== "hebrew"; - let currentLetterPosLeft = isLeftToRight + let currentLetterPosLeft = isLanguageLeftToRight ? currentLetter.offsetLeft : currentLetter.offsetLeft + $(currentLetter).width(); let currentLetterPosTop = currentLetter.offsetTop; @@ -1424,11 +1417,11 @@ function updateCaretPosition() { newTop = currentLetterPosTop - letterHeight / 4; if (inputLen == 0) { - newLeft = isLeftToRight + newLeft = isLanguageLeftToRight ? currentLetterPosLeft - caret.width() / 2 : currentLetterPosLeft + caret.width() / 2; } else { - newLeft = isLeftToRight + newLeft = isLanguageLeftToRight ? currentLetterPosLeft + $(currentLetter).width() - caret.width() / 2 : currentLetterPosLeft - $(currentLetter).width() + caret.width() / 2; } diff --git a/public/js/userconfig.js b/public/js/userconfig.js index 56941c1cd..07c9b7758 100644 --- a/public/js/userconfig.js +++ b/public/js/userconfig.js @@ -874,6 +874,14 @@ function changeLanguage(language, nosave) { language = "english"; } config.language = language; + //right-to-left languages + if (["hebrew"].includes(language)) { + isLanguageLeftToRight = false; + arrangeCharactersRightToLeft(); + } else { + isLanguageLeftToRight = true; + arrangeCharactersLeftToRight(); + } try { firebase.analytics().logEvent("changedLanguage", { language: language,