mirror of
https://github.com/monkeytypegame/monkeytype.git
synced 2025-02-03 12:29:46 +08:00
refactor right-to-left language support
This commit is contained in:
parent
74036d5eb9
commit
6a3de3f8d8
2 changed files with 12 additions and 11 deletions
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in a new issue