mirror of
https://github.com/monkeytypegame/monkeytype.git
synced 2026-01-06 15:34:06 +08:00
Add support for right-to-left languages
This commit is contained in:
parent
87a362ec23
commit
47fe0c6a46
2 changed files with 35 additions and 4 deletions
|
|
@ -1522,6 +1522,16 @@ key {
|
|||
opacity: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* a little hack for right-to-left languages */
|
||||
div.pageTest.rightToLeftTest {
|
||||
#words {
|
||||
flex-direction: row-reverse;
|
||||
.word {
|
||||
flex-direction: row-reverse;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#showWordHistoryButton {
|
||||
|
|
|
|||
|
|
@ -554,9 +554,23 @@ function initWords() {
|
|||
wordsList.push(w[i]);
|
||||
}
|
||||
}
|
||||
//special case right-to-left languages.
|
||||
if (config.language == "hebrew") {
|
||||
arrangeCharactersRightToLeft();
|
||||
} else {
|
||||
arrangeCharactersLeftToRight();
|
||||
}
|
||||
showWords();
|
||||
}
|
||||
|
||||
function arrangeCharactersRightToLeft() {
|
||||
$("#middle > div.pageTest").addClass("rightToLeftTest");
|
||||
}
|
||||
|
||||
function arrangeCharactersLeftToRight() {
|
||||
$("#middle > div.pageTest").removeClass("rightToLeftTest");
|
||||
}
|
||||
|
||||
function setToggleSettings(state) {
|
||||
setPunctuation(state);
|
||||
setNumbers(state);
|
||||
|
|
@ -1398,7 +1412,11 @@ function updateCaretPosition() {
|
|||
.querySelectorAll("letter")[currentLetterIndex];
|
||||
|
||||
if ($(currentLetter).length == 0) return;
|
||||
let currentLetterPosLeft = currentLetter.offsetLeft;
|
||||
//special case right to left languages
|
||||
const isLeftToRight = config.language !== "hebrew";
|
||||
let currentLetterPosLeft = isLeftToRight
|
||||
? currentLetter.offsetLeft
|
||||
: currentLetter.offsetLeft + $(currentLetter).width();
|
||||
let currentLetterPosTop = currentLetter.offsetTop;
|
||||
let letterHeight = $(currentLetter).height();
|
||||
let newTop = 0;
|
||||
|
|
@ -1406,10 +1424,13 @@ function updateCaretPosition() {
|
|||
|
||||
newTop = currentLetterPosTop - letterHeight / 4;
|
||||
if (inputLen == 0) {
|
||||
newLeft = currentLetterPosLeft - caret.width() / 2;
|
||||
newLeft = isLeftToRight
|
||||
? currentLetterPosLeft - caret.width() / 2
|
||||
: currentLetterPosLeft + caret.width() / 2;
|
||||
} else {
|
||||
newLeft =
|
||||
currentLetterPosLeft + $(currentLetter).width() - caret.width() / 2;
|
||||
newLeft = isLeftToRight
|
||||
? currentLetterPosLeft + $(currentLetter).width() - caret.width() / 2
|
||||
: currentLetterPosLeft - $(currentLetter).width() + caret.width() / 2;
|
||||
}
|
||||
|
||||
let duration = 0;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue