diff --git a/.firebaserc_example b/.firebaserc_example new file mode 100644 index 000000000..5a98f50cf --- /dev/null +++ b/.firebaserc_example @@ -0,0 +1,5 @@ +{ + "projects": { + "default": "your-firebase-project-id" + } +} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8541cb6fb..9ce02dbc7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -15,7 +15,7 @@ 1. [Install the Firebase CLI](https://firebase.google.com/docs/cli) 1. Run `firebase login` on your terminal to log in to the same google account as you just used to create the project. 1. Git clone this project. -1. Rename `.firebaserc_example` to `.firebaserc` and change the project name of default to the firebase project id you just created. +1. Duplicate `.firebaserc_example`, rename the new file to `.firebaserc` and change the project name of default to the firebase project id you just created. - If `.firebaserc_example` does not exist after cloning, create your own with: @@ -48,7 +48,6 @@ - Start in test mode - Select default location and enable - ## Building and Running 1. Run `npm install` in the project root directory to install dependencies. diff --git a/src/js/commandline-lists.js b/src/js/commandline-lists.js index 195d3fae3..a4353cbdd 100644 --- a/src/js/commandline-lists.js +++ b/src/js/commandline-lists.js @@ -22,14 +22,14 @@ function canBailOut() { return ( (Config.mode === "custom" && CustomText.isWordRandom && - CustomText.word >= 5000) || + (CustomText.word >= 5000 || CustomText.word == 0)) || (Config.mode === "custom" && !CustomText.isWordRandom && !CustomText.isTimeRandom && CustomText.text.length >= 5000) || (Config.mode === "custom" && CustomText.isTimeRandom && - CustomText.time >= 3600) || + (CustomText.time >= 3600 || CustomText.time == 0)) || (Config.mode === "words" && Config.words >= 5000) || Config.words === 0 || (Config.mode === "time" && (Config.time >= 3600 || Config.time === 0)) || @@ -54,7 +54,8 @@ if (Object.keys(layouts).length > 0) { id: "changeLayout" + Misc.capitalizeFirstLetter(layout), display: layout.replace(/_/g, " "), exec: () => { - UpdateConfig.setSavedLayout(layout); + // UpdateConfig.setSavedLayout(layout); + UpdateConfig.setLayout(layout); TestLogic.restart(); }, }); @@ -647,6 +648,33 @@ let commandsKeymapStyle = { ], }; +let commandsKeymapLegendStyle = { + title: "Change keymap legend style...", + list: [ + { + id: "setKeymapLegendStyleLowercase", + display: "lowercase", + exec: () => { + UpdateConfig.setKeymapLegendStyle("lowercase"); + }, + }, + { + id: "setKeymapLegendStyleUppercase", + display: "uppercase", + exec: () => { + UpdateConfig.setKeymapLegendStyle("uppercase"); + }, + }, + { + id: "setKeymapLegendStyleBlank", + display: "blank", + exec: () => { + UpdateConfig.setKeymapLegendStyle("blank"); + }, + }, + ], +}; + let commandsHighlightMode = { title: "Change highlight mode...", list: [ @@ -1678,6 +1706,16 @@ export let defaultCommands = { Commandline.show(); }, }, + { + id: "changeKeymapLegendStyle", + display: "Change keymap legend style...", + alias: "keyboard", + subgroup: true, + exec: () => { + current.push(commandsKeymapLegendStyle); + Commandline.show(); + }, + }, { id: "changeKeymapLayout", display: "Change keymap layout...", diff --git a/src/js/config.js b/src/js/config.js index 975edf36b..aaf991c38 100644 --- a/src/js/config.js +++ b/src/js/config.js @@ -86,6 +86,7 @@ let defaultConfig = { showAllLines: false, keymapMode: "off", keymapStyle: "staggered", + keymapLegendStyle: "lowercase", keymapLayout: "qwerty", fontFamily: "Roboto_Mono", smoothLineScroll: false, @@ -477,10 +478,12 @@ export function setPaceCaret(val, nosave) { if (val == undefined) { val = "off"; } - // if (val == "pb" && firebase.auth().currentUser === null) { - // Notifications.add("PB pace caret is unavailable without an account", 0); - // return; - // } + if (document.readyState === "complete") { + if (val == "pb" && firebase.auth().currentUser === null) { + Notifications.add("PB pace caret is unavailable without an account", 0); + return; + } + } // if (config.mode === "zen" && val != "off") { // Notifications.add(`Can't use pace caret with zen mode.`, 0); // val = "off"; @@ -1264,22 +1267,41 @@ export function setKeymapMode(mode, nosave) { if (!nosave) saveToCookie(); } +export function setKeymapLegendStyle(style, nosave) { + // Remove existing styles + const keymapLegendStyles = ["lowercase", "uppercase", "blank"]; + keymapLegendStyles.forEach((name) => { + $(".keymapLegendStyle").removeClass(name); + }); + + style = style || "lowercase"; + + // Mutate the keymap in the DOM, if it exists. + // 1. Remove everything + $(".keymap-key > .letter").css("display", ""); + $(".keymap-key > .letter").css("text-transform", ""); + + // 2. Append special styles onto the DOM elements + if (style === "uppercase") { + $(".keymap-key > .letter").css("text-transform", "capitalize"); + } + if (style === "blank") { + $(".keymap-key > .letter").css("display", "none"); + } + + // Update and save to cookie for persistence + $(".keymapLegendStyle").addClass(style); + config.keymapLegendStyle = style; + if (!nosave) saveToCookie(); +} + export function setKeymapStyle(style, nosave) { $(".keymap").removeClass("matrix"); $(".keymap").removeClass("split"); $(".keymap").removeClass("split_matrix"); + style = style || "staggered"; - if (style == null || style == undefined) { - style = "staggered"; - } - - if (style === "matrix") { - $(".keymap").addClass("matrix"); - } else if (style === "split") { - $(".keymap").addClass("split"); - } else if (style === "split_matrix") { - $(".keymap").addClass("split_matrix"); - } + $(".keymap").addClass(style); config.keymapStyle = style; if (!nosave) saveToCookie(); } @@ -1305,13 +1327,13 @@ export function setLayout(layout, nosave) { if (!nosave) saveToCookie(); } -export function setSavedLayout(layout, nosave) { - if (layout == null || layout == undefined) { - layout = "qwerty"; - } - config.savedLayout = layout; - setLayout(layout, nosave); -} +// export function setSavedLayout(layout, nosave) { +// if (layout == null || layout == undefined) { +// layout = "qwerty"; +// } +// config.savedLayout = layout; +// setLayout(layout, nosave); +// } export function setFontSize(fontSize, nosave) { if (fontSize == null || fontSize == undefined) { @@ -1414,7 +1436,8 @@ export function apply(configObj) { setWordCount(configObj.words, true); setLanguage(configObj.language, true); setCapsLockBackspace(configObj.capsLockBackspace, true); - setSavedLayout(configObj.savedLayout, true); + // setSavedLayout(configObj.savedLayout, true); + setLayout(configObj.layout, true); setFontSize(configObj.fontSize, true); setFreedomMode(configObj.freedomMode, true); setCaretStyle(configObj.caretStyle, true); @@ -1431,6 +1454,7 @@ export function apply(configObj) { setTimerOpacity(configObj.timerOpacity, true); setKeymapMode(configObj.keymapMode, true); setKeymapStyle(configObj.keymapStyle, true); + setKeymapLegendStyle(configObj.keymapLegendStyle, true); setKeymapLayout(configObj.keymapLayout, true); setFontFamily(configObj.fontFamily, true); setSmoothCaret(configObj.smoothCaret, true); diff --git a/src/js/popups/custom-background-filter.js b/src/js/popups/custom-background-filter.js index e67a63f44..3f3ddf0a4 100644 --- a/src/js/popups/custom-background-filter.js +++ b/src/js/popups/custom-background-filter.js @@ -52,6 +52,30 @@ function syncSliders() { ); } +function updateNumbers() { + $(".section.customBackgroundFilter .blur .value").html( + parseFloat(filters.blur.value).toFixed(1) + ); + $(".section.customBackgroundFilter .brightness .value").html( + parseFloat(filters.brightness.value).toFixed(1) + ); + $(".section.customBackgroundFilter .saturate .value").html( + parseFloat(filters.saturate.value).toFixed(1) + ); + $(".section.customBackgroundFilter .opacity .value").html( + parseFloat(filters.opacity.value).toFixed(1) + ); +} + +export function loadConfig(config) { + filters.blur.value = config[0]; + filters.brightness.value = config[1]; + filters.saturate.value = config[2]; + filters.opacity.value = config[3]; + updateNumbers(); + syncSliders(); +} + $(".section.customBackgroundFilter .blur input").on("input", (e) => { filters["blur"].value = $( ".section.customBackgroundFilter .blur input" @@ -92,27 +116,3 @@ $(".section.customBackgroundFilter .save.button").click((e) => { UpdateConfig.setCustomBackgroundFilter(arr, false); Notifications.add("Custom background filters saved", 1); }); - -export function loadConfig(config) { - filters.blur.value = config[0]; - filters.brightness.value = config[1]; - filters.saturate.value = config[2]; - filters.opacity.value = config[3]; - updateNumbers(); - syncSliders(); -} - -function updateNumbers() { - $(".section.customBackgroundFilter .blur .value").html( - parseFloat(filters.blur.value).toFixed(1) - ); - $(".section.customBackgroundFilter .brightness .value").html( - parseFloat(filters.brightness.value).toFixed(1) - ); - $(".section.customBackgroundFilter .saturate .value").html( - parseFloat(filters.saturate.value).toFixed(1) - ); - $(".section.customBackgroundFilter .opacity .value").html( - parseFloat(filters.opacity.value).toFixed(1) - ); -} diff --git a/src/js/settings.js b/src/js/settings.js index 405b46c10..a5daf775e 100644 --- a/src/js/settings.js +++ b/src/js/settings.js @@ -51,9 +51,11 @@ async function initGroups() { if (Config.keymapMode === "off") { $(".pageSettings .section.keymapStyle").addClass("hidden"); $(".pageSettings .section.keymapLayout").addClass("hidden"); + $(".pageSettings .section.keymapLegendStyle").addClass("hidden"); } else { $(".pageSettings .section.keymapStyle").removeClass("hidden"); $(".pageSettings .section.keymapLayout").removeClass("hidden"); + $(".pageSettings .section.keymapLegendStyle").removeClass("hidden"); } } ); @@ -65,6 +67,10 @@ async function initGroups() { "keymapLayout", UpdateConfig.setKeymapLayout ); + groups.keymapLegendStyle = new SettingsGroup( + "keymapLegendStyle", + UpdateConfig.setKeymapLegendStyle + ); groups.showKeyTips = new SettingsGroup( "showKeyTips", UpdateConfig.setKeyTips, @@ -213,7 +219,7 @@ async function initGroups() { "capsLockBackspace", UpdateConfig.setCapsLockBackspace ); - groups.layout = new SettingsGroup("layout", UpdateConfig.setSavedLayout); + groups.layout = new SettingsGroup("layout", UpdateConfig.layout); groups.language = new SettingsGroup("language", UpdateConfig.setLanguage); groups.fontSize = new SettingsGroup("fontSize", UpdateConfig.setFontSize); groups.pageWidth = new SettingsGroup("pageWidth", UpdateConfig.setPageWidth); @@ -578,7 +584,9 @@ $( ".pageSettings .section.discordIntegration .buttons .generateCodeButton" ).click((e) => { Loader.show(); - CloudFunctions.generatePairingCode({ uid: firebase.auth().currentUser.uid }) + CloudFunctions.generatePairingCode({ + uid: firebase.auth().currentUser.uid, + }) .then((ret) => { Loader.hide(); if (ret.data.status === 1 || ret.data.status === 2) { @@ -715,7 +723,9 @@ $(".pageSettings .sectionGroupTitle").click((e) => { { duration: 250, step: function (now) { - $(this).css({ transform: "rotate(" + now + "deg)" }); + $(this).css({ + transform: "rotate(" + now + "deg)", + }); }, } ); @@ -729,7 +739,9 @@ $(".pageSettings .sectionGroupTitle").click((e) => { { duration: 250, step: function (now) { - $(this).css({ transform: "rotate(" + now + "deg)" }); + $(this).css({ + transform: "rotate(" + now + "deg)", + }); }, } ); diff --git a/src/js/settings/settings-group.js b/src/js/settings/settings-group.js index 50226bc50..0c733c45f 100644 --- a/src/js/settings/settings-group.js +++ b/src/js/settings/settings-group.js @@ -9,11 +9,7 @@ export default class SettingsGroup { ) { this.configName = configName; this.configValue = Config[configName]; - if (this.configValue === true || this.configValue === false) { - this.onOff = true; - } else { - this.onOff = false; - } + this.onOff = typeof this.configValue === "boolean"; this.toggleFunction = toggleFunction; this.setCallback = setCallback; this.updateCallback = updateCallback; @@ -36,8 +32,8 @@ export default class SettingsGroup { this.updateButton(); if (this.setCallback !== null) this.setCallback(); } else { - let value = target.attr(configName); - let params = target.attr("params"); + const value = target.attr(configName); + const params = target.attr("params"); this.setValue(value, params); } } @@ -60,14 +56,9 @@ export default class SettingsGroup { "active" ); if (this.onOff) { - let onoffstring; - if (this.configValue) { - onoffstring = "on"; - } else { - onoffstring = "off"; - } + const onOffString = this.configValue ? "on" : "off"; $( - `.pageSettings .section.${this.configName} .buttons .button.${onoffstring}` + `.pageSettings .section.${this.configName} .buttons .button.${onOffString}` ).addClass("active"); } else { $( diff --git a/src/js/settings/theme-picker.js b/src/js/settings/theme-picker.js index ce442ce17..61669124a 100644 --- a/src/js/settings/theme-picker.js +++ b/src/js/settings/theme-picker.js @@ -217,7 +217,7 @@ $(".pageSettings .saveCustomThemeButton").click((e) => { ); UpdateConfig.setCustomThemeColors(save); ThemeController.set("custom"); - Notifications.add("Custom theme colors saved", 0); + Notifications.add("Custom theme colors saved", 1); }); $(".pageSettings #loadCustomColorsFromPreset").click((e) => { diff --git a/src/js/test/funbox.js b/src/js/test/funbox.js index 9d97494f0..7bca01486 100644 --- a/src/js/test/funbox.js +++ b/src/js/test/funbox.js @@ -12,6 +12,24 @@ export let modeSaved = null; let memoryTimer = null; let memoryInterval = null; +let settingsMemory = {}; + +function rememberSetting(settingName, value, setFunction) { + settingsMemory[settingName] ??= { + value, + setFunction, + }; +} + +function loadMemory() { + Notifications.add("Reverting funbox settings", 0); + Object.keys(settingsMemory).forEach((setting) => { + setting = settingsMemory[setting]; + setting.setFunction(setting.value, true); + }); + settingsMemory = {}; +} + function showMemoryTimer() { $("#typingTest #memoryTimer").stop(true, true).animate( { @@ -112,6 +130,11 @@ export async function activate(funbox, mode) { } if (funbox === "simon_says") { + rememberSetting( + "keymapMode", + Config.keymapMode, + UpdateConfig.setKeymapMode + ); UpdateConfig.setKeymapMode("next"); Settings.groups.keymapMode.updateButton(); TestLogic.restart(); @@ -122,45 +145,82 @@ export async function activate(funbox, mode) { funbox === "read_ahead_easy" || funbox === "read_ahead_hard" ) { + rememberSetting( + "highlightMode", + Config.highlightMode, + UpdateConfig.setHighlightMode + ); UpdateConfig.setHighlightMode("letter", true); TestLogic.restart(); } } else if (mode === "script") { if (funbox === "tts") { $("#funBoxTheme").attr("href", `funbox/simon_says.css`); + rememberSetting( + "keymapMode", + Config.keymapMode, + UpdateConfig.setKeymapMode + ); UpdateConfig.setKeymapMode("off"); Settings.groups.keymapMode.updateButton(); TestLogic.restart(); } else if (funbox === "layoutfluid") { + rememberSetting( + "keymapMode", + Config.keymapMode, + UpdateConfig.setKeymapMode + ); UpdateConfig.setKeymapMode("next"); Settings.groups.keymapMode.updateButton(); - UpdateConfig.setSavedLayout(Config.layout); + // UpdateConfig.setSavedLayout(Config.layout); + rememberSetting("layout", Config.layout, UpdateConfig.setLayout); UpdateConfig.setLayout("qwerty"); Settings.groups.layout.updateButton(); + rememberSetting( + "keymapLayout", + Config.keymapLayout, + UpdateConfig.setKeymapLayout + ); UpdateConfig.setKeymapLayout("qwerty"); Settings.groups.keymapLayout.updateButton(); TestLogic.restart(); } else if (funbox === "memory") { + rememberSetting("mode", Config.mode, UpdateConfig.setMode); UpdateConfig.setMode("words"); + rememberSetting( + "showAllLines", + Config.showAllLines, + UpdateConfig.setShowAllLines + ); UpdateConfig.setShowAllLines(true, true); TestLogic.restart(false, true); if (Config.keymapMode === "next") { + rememberSetting( + "keymapMode", + Config.keymapMode, + UpdateConfig.setKeymapMode + ); UpdateConfig.setKeymapMode("react"); } } else if (funbox === "nospace") { $("#words").addClass("nospace"); + rememberSetting( + "highlightMode", + Config.highlightMode, + UpdateConfig.setHighlightMode + ); UpdateConfig.setHighlightMode("letter", true); TestLogic.restart(false, true); } active = funbox; } - if (funbox !== "layoutfluid" || mode !== "script") { - if (Config.layout !== Config.savedLayout) { - UpdateConfig.setLayout(Config.savedLayout); - Settings.groups.layout.updateButton(); - } - } + // if (funbox !== "layoutfluid" || mode !== "script") { + // if (Config.layout !== Config.savedLayout) { + // UpdateConfig.setLayout(Config.savedLayout); + // Settings.groups.layout.updateButton(); + // } + // } TestUI.updateModesNotice(); return true; } @@ -172,6 +232,7 @@ export function setFunbox(funbox, mode) { ); return false; } + if (funbox === "none") loadMemory(); funboxSaved = funbox; modeSaved = mode; active = funbox; diff --git a/src/sass/style.scss b/src/sass/style.scss index cb650b3ae..d96e7113d 100644 --- a/src/sass/style.scss +++ b/src/sass/style.scss @@ -1652,7 +1652,7 @@ a:hover { justify-self: right; display: grid; // grid-auto-flow: row; - grid-template-rows: 1fr 1fr 1fr; + grid-template-rows: 0.7rem 0.7rem 0.7rem; grid-gap: 0.2rem; // width: min-content; // width: -moz-min-content; @@ -3041,6 +3041,7 @@ key { &.languageGroups, &.layout, &.keymapLayout, + &.keymapLegendStyle, &.fontFamily, &.funbox, &.keymapStyle, @@ -3553,6 +3554,7 @@ key { .pageSettings .section.language .buttons, .pageSettings .section.layout .buttons, .pageSettings .section.keymapLayout .buttons, + .pageSettings .section.keymapLegendStyle .buttons, .pageSettings .section.fontFamily .buttons, .pageSettings .section.funbox .buttons, .pageSettings .section.keymapStyle .buttons { @@ -3663,6 +3665,7 @@ key { .pageSettings .section.language .buttons, .pageSettings .section.layout .buttons, .pageSettings .section.keymapLayout .buttons, + .pageSettings .section.keymapLegendStyle .buttons, .pageSettings .section.fontFamily .buttons, .pageSettings .section.funbox .buttons, .pageSettings .section.keymapStyle .buttons { diff --git a/static/index.html b/static/index.html index 5b0511414..8e5a35bee 100644 --- a/static/index.html +++ b/static/index.html @@ -1660,6 +1660,20 @@
Robin
Sonicv6
Taran
+
Roux
+
Artem
+
DarkBlu
+
John
+
Gregory
+
Hopeless Love
+
Kalen
+
Ben
+
Jakub
+
Vincent
+
Connor
+
Zunaed
+
Emilio
+
Michael
@@ -2769,6 +2783,35 @@ +
+

keymap legend style

+
+
+ lowercase +
+
+ uppercase +
+
+ blank +
+
+

keymap layout

diff --git a/static/languages/_groups.json b/static/languages/_groups.json index 31b727ad4..d44469e36 100644 --- a/static/languages/_groups.json +++ b/static/languages/_groups.json @@ -31,6 +31,10 @@ "name": "portuguese", "languages": ["portuguese"] }, + { + "name": "lithuanian", + "languages": ["lithuanian", "lithuanian_1k"] + }, { "name": "indonesian", "languages": ["indonesian", "indonesian_1k"] @@ -65,7 +69,7 @@ }, { "name": "slovak", - "languages": ["slovak"] + "languages": ["slovak", "slovak_1k"] }, { "name": "slovenian", diff --git a/static/languages/_list.json b/static/languages/_list.json index 83d7b9810..558ee08a3 100644 --- a/static/languages/_list.json +++ b/static/languages/_list.json @@ -37,6 +37,7 @@ ,"czech_1k" ,"czech_10k" ,"slovak" + ,"slovak_1k" ,"slovenian" ,"croatian" ,"dutch" @@ -69,6 +70,8 @@ ,"maori_1k" ,"lojban_gismu" ,"lojban_cmavo" + ,"lithuanian" + ,"lithuanian_1k" ,"toki_pona" ,"twitch_emotes" ,"pig_latin" diff --git a/static/languages/lithuanian.json b/static/languages/lithuanian.json new file mode 100644 index 000000000..9219ef7d3 --- /dev/null +++ b/static/languages/lithuanian.json @@ -0,0 +1,210 @@ +{ + "name": "lithuanian", + "leftToRight": true, + "words": [ + "ir", + "jis", + "būti", + "tas", + "į", + "kad", + "aš", + "kuris", + "su", + "šis", + "galėti", + "o", + "iš", + "kaip", + "darbas", + "ar", + "kitas", + "turėti", + "visas", + "žmogus", + "Lietuva", + "kad", + "vienas", + "tik", + "savo", + "nuo", + "toks", + "bet", + "ne", + "apie", + "jau", + "labai", + "metai", + "dar", + "daug", + "tu", + "už", + "bei", + "arba", + "laikas", + "kai", + "taip", + "pats", + "reikėti", + "per", + "po", + "nebūti", + "čia", + "dėl", + "prie", + "tačiau", + "didelis", + "sistema", + "gamyba", + "įmonė", + "pirmas", + "nes", + "vieta", + "žemė", + "norėti", + "naujas", + "dabar", + "jei", + "koks", + "žinoti", + "pagal", + "įstatymas", + "vaikas", + "todėl", + "net", + "iki", + "gyvenimas", + "narys", + "du", + "pirmininkas", + "svarbus", + "ant", + "grupė", + "kiekvienas", + "dalis", + "atlikti", + "seimas", + "diena", + "tai", + "sakyti", + "valstybė", + "duomuo", + "gerai", + "prieš", + "kur", + "negalėti", + "dažnai", + "jeigu", + "pasaulis", + "niekas", + "sudaryti", + "šalis", + "klausimas", + "geras", + "nei", + "nustatyti", + "be", + "metas", + "savęs", + "viskas", + "pradėti", + "procesas", + "tada", + "kartas", + "kiek", + "priimti", + "gauti", + "veikla", + "ūkis", + "vanduo", + "įvairus", + "dirbti", + "gal", + "Vilnius", + "pagrindinis", + "pateikti", + "pavyzdys", + "imti", + "skirti", + "informacija", + "lietuvis", + "ligonis", + "tarp", + "ranka", + "tapti", + "dievas", + "bendras", + "vyriausybė", + "priemonė", + "kalbėti", + "miestas", + "žodis", + "projektas", + "respublika", + "kalba", + "daryti", + "kultūra", + "sąlyga", + "padėti", + "mažas", + "pasakyti", + "antras", + "aukštas", + "visai", + "naudoti", + "Europa", + "gyventi", + "nors", + "mano", + "atrodyti", + "vėl", + "matyti", + "jog", + "medžiaga", + "gerbti", + "būdas", + "senas", + "Kaunas", + "manyti", + "valdymas", + "ten", + "tyrimas", + "neturėti", + "mokslas", + "sprendimas", + "šiltas", + "keli", + "darbuotojas", + "operacija", + "priklausyti", + "knyga", + "vadinti", + "laikyti", + "ypač", + "suprasti", + "problema", + "tikslas", + "asmuo", + "forma", + "galva", + "sunkus", + "atvejis", + "metodas", + "skyrius", + "daugelis", + "eiti", + "leisti", + "moteris", + "straipsnis", + "padaryti", + "likti", + "toli", + "akis", + "tikrai", + "vyras", + "istorija", + "liga", + "organizacija", + "trys" + ] +} diff --git a/static/languages/lithuanian_1k.json b/static/languages/lithuanian_1k.json new file mode 100644 index 000000000..500a96347 --- /dev/null +++ b/static/languages/lithuanian_1k.json @@ -0,0 +1,497 @@ +{ + "name": "lithuanian_1k", + "leftToRight": true, + "words": [ + "ir", + "jis", + "būti", + "tas", + "į", + "kad", + "aš", + "kuris", + "su", + "šis", + "galėti", + "o", + "iš", + "kaip", + "darbas", + "ar", + "kitas", + "turėti", + "visas", + "žmogus", + "Lietuva", + "kad", + "vienas", + "tik", + "savo", + "nuo", + "toks", + "bet", + "ne", + "apie", + "jau", + "labai", + "metai", + "dar", + "daug", + "tu", + "už", + "bei", + "arba", + "laikas", + "kai", + "taip", + "pats", + "reikėti", + "per", + "po", + "nebūti", + "čia", + "dėl", + "prie", + "tačiau", + "didelis", + "sistema", + "gamyba", + "įmonė", + "pirmas", + "nes", + "vieta", + "žemė", + "norėti", + "naujas", + "dabar", + "jei", + "koks", + "žinoti", + "pagal", + "įstatymas", + "vaikas", + "todėl", + "net", + "iki", + "gyvenimas", + "narys", + "du", + "pirmininkas", + "svarbus", + "ant", + "grupė", + "kiekvienas", + "dalis", + "atlikti", + "seimas", + "diena", + "tai", + "sakyti", + "valstybė", + "duomuo", + "gerai", + "prieš", + "kur", + "negalėti", + "dažnai", + "jeigu", + "pasaulis", + "niekas", + "sudaryti", + "šalis", + "klausimas", + "geras", + "nei", + "nustatyti", + "be", + "metas", + "savęs", + "viskas", + "pradėti", + "procesas", + "tada", + "kartas", + "kiek", + "priimti", + "gauti", + "veikla", + "ūkis", + "vanduo", + "įvairus", + "dirbti", + "gal", + "Vilnius", + "pagrindinis", + "pateikti", + "pavyzdys", + "imti", + "skirti", + "informacija", + "lietuvis", + "ligonis", + "tarp", + "ranka", + "tapti", + "dievas", + "bendras", + "vyriausybė", + "priemonė", + "kalbėti", + "miestas", + "žodis", + "projektas", + "respublika", + "kalba", + "daryti", + "kultūra", + "sąlyga", + "padėti", + "mažas", + "pasakyti", + "antras", + "aukštas", + "visai", + "naudoti", + "Europa", + "gyventi", + "nors", + "mano", + "atrodyti", + "vėl", + "matyti", + "jog", + "medžiaga", + "gerbti", + "būdas", + "senas", + "Kaunas", + "manyti", + "valdymas", + "ten", + "tyrimas", + "neturėti", + "mokslas", + "sprendimas", + "šiltas", + "keli", + "darbuotojas", + "operacija", + "priklausyti", + "knyga", + "vadinti", + "laikyti", + "ypač", + "suprasti", + "problema", + "tikslas", + "asmuo", + "forma", + "galva", + "sunkus", + "atvejis", + "metodas", + "skyrius", + "daugelis", + "eiti", + "leisti", + "moteris", + "straipsnis", + "padaryti", + "likti", + "toli", + "akis", + "tikrai", + "vyras", + "istorija", + "liga", + "organizacija", + "trys", + "tam", + "tikras", + "dalykas", + "vėlai", + "pusė", + "mėnuo", + "kartu", + "struktūra", + "centras", + "veikti", + "gaminys", + "teisė", + "juk", + "numatyti", + "taiki", + "vadovas", + "lygis", + "joks", + "turtas", + "galimybė", + "objektas", + "rinka", + "beveik", + "siekti", + "rezultatas", + "visiškai", + "tauta", + "technologija", + "pagrindas", + "ministerija", + "sritis", + "šlaitas", + "greitai", + "šeima", + "dokumentas", + "mažai", + "tvarka", + "siūlyti", + "atsirasti", + "tiek", + "ryšys", + "mokykla", + "teikti", + "socialinis", + "atskiras", + "kokybė", + "komitetas", + "pradžia", + "santykis", + "norma", + "rašyti", + "programa", + "mokestis", + "ekonominis", + "skaičius", + "vykti", + "mintis", + "vis", + "jėga", + "reikalas", + "vardas", + "bankas", + "širdis", + "lyg", + "poreikis", + "kontrolė", + "kartais", + "techninis", + "kelias", + "pasiekti", + "rasti", + "vakarai", + "sukurti", + "fondas", + "kraštas", + "organizavimas", + "nurodyti", + "pritarti", + "abu", + "reikalingas", + "palikti", + "priežastis", + "amžius", + "prašom", + "kūnas", + "paprastai", + "funkcija", + "uoliena", + "paskutinis", + "įrengimas", + "namai", + "principas", + "kolega", + "balsas", + "baigti", + "grįžti", + "kurti", + "užsienis", + "ateiti", + "šiandien", + "latvis", + "gamta", + "rajonas", + "pinigas", + "ponas", + "baltas", + "kodėl", + "teikti", + "nuomonė", + "panašus", + "tikras", + "ilgas", + "atitikti", + "prašyti", + "taikyti", + "didis", + "dėmesys", + "praeiti", + "elementas", + "vaidmuo", + "pas", + "teigti", + "aiškus", + "pro", + "linija", + "registras", + "tiesa", + "duoti", + "ministras", + "štai", + "reikalavimas", + "koja", + "negu", + "spręsti", + "pasirodyti", + "tėvas", + "bažnyčia", + "situacija", + "vokietis", + "darbininkas", + "tikti", + "anksti", + "laukti", + "kaimas", + "prekė", + "informacinis", + "produkcija", + "nutarimas", + "tarnyba", + "valstybinis", + "jūra", + "minėti", + "tarsi", + "laisvė", + "pakeisti", + "planas", + "veiksmas", + "dalyvauti", + "gyventojas", + "visuomenė", + "pardavimas", + "durys", + "pataisa", + "nežinoti", + "paskui", + "veidas", + "kol", + "savas", + "prasmė", + "sutikti", + "pabaiga", + "ieškoti", + "bendrovė", + "prasmė", + "sutikti", + "pabaiga", + "ieškoti", + "bendrovė", + "organizuoti", + "detalė", + "kadangi", + "siena", + "valanda", + "žiūrėti", + "susyti", + "rytai", + "įvertinti", + "pramonė", + "suteikti", + "vos", + "mokėti", + "vartotojas", + "kilti", + "rodyti", + "tavo", + "konkretus", + "vykdyti", + "parengti", + "karas", + "teritorija", + "na", + "rytas", + "specialus", + "tipas", + "šaltinis", + "jausmas", + "autorius", + "jaunas", + "medicina", + "firma", + "ilgai", + "gana", + "pastaras", + "pavadinimas", + "įrankis", + "lėšos", + "atsakyti", + "ačiū", + "remontas", + "privalėti", + "savaitė", + "išeiti", + "kaina", + "tad", + "dydis", + "keletas", + "papildyti", + "universitetas", + "gydytojas", + "parodyti", + "prasidėti", + "prezidentas", + "miškas", + "analizė", + "estas", + "punktas", + "visada", + "galas", + "kitoks", + "mirtis", + "ligoninė", + "tėvai", + "daiktas", + "nereikėti", + "laisvas", + "stengtis", + "išskirti", + "sąjunga", + "trečias", + "kada", + "kažkas", + "kelti", + "oras", + "meilė", + "politinis", + "požiūris", + "bazė", + "savivaldybė", + "teismas", + "vakaras", + "balsuoti", + "reikšti", + "šiaurė", + "būdingas", + "sveikata", + "taryba", + "veiksnys", + "šviesa", + "gaminti", + "patvirtinti", + "išlaidos", + "vadovauti", + "įstaiga", + "įtaka", + "užduotis", + "vadintis", + "valdžia", + "asmenybė", + "medis", + "institucija", + "kraujas", + "uždavinys", + "vertinti", + "apskaičiuoti", + "vidus", + "mokslinis", + "statyba" + ] +} diff --git a/static/languages/slovak_1k.json b/static/languages/slovak_1k.json new file mode 100644 index 000000000..22dbf7ed1 --- /dev/null +++ b/static/languages/slovak_1k.json @@ -0,0 +1,1007 @@ +{ + "name": "slovak_1k", + "leftToRight": true, + "words": [ + "to", + "sa", + "je", + "si", + "a", + "som", + "na", + "že", + "čo", + "nie", + "v", + "ako", + "tak", + "ale", + "by", + "s", + "tu", + "mi", + "do", + "ja", + "o", + "sme", + "áno", + "ste", + "ma", + "z", + "už", + "len", + "ty", + "ho", + "ti", + "aby", + "dobre", + "keď", + "za", + "ťa", + "ak", + "tam", + "sú", + "pre", + "bol", + "hej", + "toto", + "teraz", + "niečo", + "prečo", + "no", + "mám", + "aj", + "ich", + "byť", + "ten", + "bude", + "všetko", + "vás", + "kde", + "ju", + "nič", + "ešte", + "vám", + "kto", + "tom", + "po", + "máš", + "k", + "môj", + "toho", + "bolo", + "prosím", + "alebo", + "vieš", + "myslím", + "má", + "takže", + "mňa", + "veľmi", + "bola", + "poriadku", + "nikdy", + "tým", + "jeho", + "viem", + "nás", + "ani", + "jej", + "mal", + "od", + "chcem", + "potom", + "ďakujem", + "so", + "možno", + "mu", + "neviem", + "povedal", + "oh", + "vy", + "teba", + "chceš", + "ísť", + "on", + "pane", + "ahoj", + "stále", + "viac", + "tie", + "pán", + "naozaj", + "nám", + "pretože", + "sem", + "máme", + "dnes", + "poďme", + "povedať", + "moja", + "poď", + "boli", + "musím", + "pozri", + "pred", + "môžem", + "vo", + "ok", + "budem", + "iba", + "všetci", + "myslíš", + "keby", + "niekto", + "tiež", + "ktorý", + "mali", + "nemôžem", + "moje", + "my", + "práve", + "bože", + "tú", + "asi", + "rád", + "či", + "čas", + "vždy", + "deň", + "tvoj", + "máte", + "mať", + "dobrý", + "tomu", + "veľa", + "jeden", + "ktoré", + "tá", + "trochu", + "ľudia", + "stalo", + "pri", + "jasné", + "otec", + "chcel", + "kurva", + "tento", + "zo", + "musíme", + "mohol", + "budeš", + "bez", + "mala", + "ide", + "mnou", + "až", + "dobré", + "môžeš", + "život", + "robiť", + "veci", + "mne", + "tebou", + "teda", + "presne", + "robíš", + "dosť", + "daj", + "môže", + "však", + "choď", + "nech", + "viete", + "musíš", + "ľudí", + "domov", + "nikto", + "všetky", + "prepáčte", + "ona", + "prepáč", + "preto", + "späť", + "povedz", + "deje", + "budeme", + "raz", + "každý", + "hneď", + "im", + "kým", + "urobiť", + "tvoja", + "lebo", + "vážne", + "rokov", + "nechcem", + "kedy", + "svoje", + "vďaka", + "vedieť", + "počkaj", + "noc", + "vec", + "také", + "kvôli", + "nejaké", + "takto", + "nemám", + "idem", + "svoju", + "kam", + "pravdu", + "videl", + "myslel", + "chce", + "povedala", + "než", + "pár", + "žiadne", + "vôbec", + "preč", + "samozrejme", + "ním", + "mohli", + "tvoje", + "miesto", + "problém", + "mama", + "vlastne", + "potrebujem", + "peniaze", + "lepšie", + "tebe", + "chcete", + "niekedy", + "rýchlo", + "musí", + "spolu", + "ideme", + "sám", + "u", + "vidieť", + "celý", + "tej", + "úplne", + "deti", + "prišiel", + "určite", + "taký", + "von", + "pod", + "večer", + "tých", + "vyzerá", + "dlho", + "pani", + "ráno", + "fajn", + "koľko", + "veď", + "seba", + "dva", + "aký", + "môžeme", + "nich", + "aké", + "všetkých", + "tri", + "príliš", + "dievča", + "rada", + "urobil", + "majú", + "pravda", + "hovoriť", + "meno", + "dostať", + "ktorá", + "budú", + "váš", + "cez", + "čom", + "môjho", + "pozor", + "zajtra", + "tieto", + "pomôcť", + "prestaň", + "mojej", + "nejaký", + "muž", + "nebude", + "riti", + "super", + "dole", + "tejto", + "niekoho", + "neho", + "žena", + "ano", + "svoj", + "dieťa", + "hore", + "môžete", + "správne", + "co", + "fakt", + "vaše", + "vidím", + "radšej", + "znamená", + "auto", + "dať", + "istý", + "jedno", + "oni", + "medzi", + "ďalej", + "pozrite", + "ku", + "hovorí", + "predtým", + "budete", + "moju", + "poviem", + "chvíľu", + "nechaj", + "nebol", + "zlatko", + "mami", + "páči", + "náš", + "chcela", + "proste", + "i", + "túto", + "ľúto", + "mohla", + "naše", + "nemôžeš", + "dostal", + "podľa", + "jedna", + "vie", + "táto", + "myslíte", + "jednu", + "pohode", + "neskôr", + "robí", + "aspoň", + "nej", + "dve", + "dal", + "nájsť", + "tomto", + "skoro", + "prácu", + "človek", + "vaša", + "vedel", + "nuž", + "ktorí", + "hovorím", + "haló", + "pomoc", + "nami", + "prvý", + "pekla", + "milujem", + "odtiaľto", + "nad", + "ideš", + "počúvaj", + "hovoril", + "vidíš", + "skôr", + "dúfam", + "čože", + "doma", + "ktorú", + "proti", + "okej", + "zlé", + "skutočne", + "veľký", + "vami", + "dvere", + "predsa", + "počul", + "koho", + "nemá", + "iné", + "pekne", + "minút", + "musíte", + "ňou", + "och", + "nemal", + "číslo", + "dobrá", + "uvidíme", + "hovoríš", + "svojho", + "malý", + "doktor", + "slečna", + "kámo", + "taká", + "buď", + "chlapci", + "okolo", + "nemáš", + "dom", + "znova", + "mŕtvy", + "ze", + "koniec", + "sakra", + "dám", + "zabiť", + "pokiaľ", + "moc", + "noci", + "sebe", + "dobrú", + "poďte", + "dnu", + "svete", + "svet", + "jedného", + "nemôže", + "dvaja", + "tvoju", + "volá", + "tí", + "the", + "dajte", + "myslela", + "života", + "ruky", + "páni", + "nebudem", + "príde", + "videla", + "celkom", + "sama", + "prišli", + "drž", + "matka", + "vonku", + "nebolo", + "zabil", + "našiel", + "cítim", + "chlapec", + "skvelé", + "vrátiť", + "zdá", + "boh", + "práca", + "sebou", + "problémy", + "syn", + "celé", + "otca", + "pekné", + "nápad", + "spraviť", + "priateľ", + "zase", + "chlap", + "roky", + "najlepšie", + "času", + "ach", + "svojej", + "rok", + "musel", + "zbraň", + "oci", + "niekde", + "potrebujeme", + "odísť", + "musieť", + "krát", + "vtedy", + "kapitán", + "žiadny", + "žiť", + "tohto", + "kúpiť", + "ňu", + "dokonca", + "inak", + "práce", + "poznám", + "ó", + "pozrieť", + "čím", + "zlato", + "hlavu", + "človeče", + "nemyslím", + "ceste", + "stane", + "nebola", + "robím", + "nemáme", + "robíte", + "počkajte", + "uh", + "nový", + "eur", + "celú", + "dá", + "ticho", + "nechať", + "brat", + "veľké", + "zatiaľ", + "ňom", + "chlape", + "znovu", + "ženy", + "cestu", + "pripravený", + "týždeň", + "počkať", + "hrať", + "oči", + "chlapče", + "tvojej", + "prísť", + "nechceš", + "povedali", + "choďte", + "iste", + "čokoľvek", + "ďalší", + "prišla", + "možné", + "toľko", + "chcú", + "pôjdem", + "zle", + "včera", + "našli", + "konečne", + "aká", + "slovo", + "malé", + "pocit", + "priamo", + "ťažké", + "nimi", + "pekná", + "ženu", + "okrem", + "nové", + "ocko", + "naša", + "hodín", + "starý", + "iný", + "chceli", + "videli", + "spravil", + "mojich", + "mojom", + "nejakú", + "týchto", + "odkiaľ", + "nevieš", + "neskoro", + "ta", + "výborne", + "prípade", + "nechajte", + "telo", + "nepovedal", + "svojich", + "srdce", + "päť", + "nemôžeme", + "istá", + "dní", + "živote", + "nevidel", + "robil", + "jednoducho", + "smrť", + "majster", + "volám", + "dôvod", + "potrebuje", + "vyzeráš", + "domu", + "dr", + "povedzte", + "isté", + "dni", + "neboj", + "môžu", + "dôležité", + "muža", + "jediný", + "príbeh", + "tvojho", + "treba", + "znie", + "aha", + "mieste", + "porozprávať", + "akoby", + "ruku", + "dvoch", + "vašu", + "ďaleko", + "nechcel", + "rozumiem", + "ono", + "vecí", + "všetkým", + "mimo", + "počas", + "loď", + "hubu", + "najlepší", + "vypadni", + "dostali", + "školy", + "šancu", + "urobím", + "rodina", + "priatelia", + "šťastie", + "zdravím", + "mesto", + "žiadna", + "myslí", + "pravdepodobne", + "pekný", + "týmto", + "nikoho", + "poznáš", + "našej", + "mohlo", + "zem", + "malo", + "láska", + "smrti", + "titulky", + "krv", + "vieme", + "potrebuješ", + "zlý", + "strach", + "nemohol", + "mesta", + "najprv", + "hodiny", + "vedela", + "urobila", + "plán", + "spať", + "stačí", + "jedlo", + "dome", + "sestra", + "veriť", + "začal", + "moji", + "našich", + "chyba", + "sveta", + "vziať", + "dievčatá", + "nevedel", + "zemi", + "zavolať", + "nemali", + "spôsob", + "štyri", + "dňa", + "opäť", + "zostať", + "nevie", + "úžasné", + "ukáž", + "telefón", + "všade", + "auta", + "pôjdeme", + "žiaden", + "ktorej", + "ďalšie", + "nerob", + "hmm", + "počuť", + "chlapík", + "vráť", + "pracovať", + "film", + "syna", + "čau", + "zober", + "madam", + "čoskoro", + "dámy", + "cesty", + "pamätáš", + "miláčik", + "roku", + "nechal", + "strane", + "tou", + "snáď", + "naspäť", + "jasne", + "bež", + "byt", + "ktorého", + "potrebovať", + "zavolám", + "urob", + "ha", + "t", + "urobili", + "ktorých", + "prachy", + "malá", + "pána", + "vašej", + "vidíte", + "povieš", + "priateľov", + "you", + "robia", + "akú", + "šťastný", + "chápem", + "poriadne", + "rokmi", + "ne", + "veľká", + "nechce", + "zomrel", + "okamžite", + "tvár", + "zbohom", + "jediná", + "rozprávať", + "našu", + "nemáte", + "mrzí", + "išiel", + "muži", + "začať", + "nemala", + "nemusíš", + "ked", + "obaja", + "dala", + "oveľa", + "časť", + "nakoniec", + "radi", + "mysli", + "kamoš", + "chceme", + "rodinu", + "škole", + "niekoľko", + "nemôžete", + "uveriť", + "počúvajte", + "nehovor", + "zastaviť", + "pol", + "vrátim", + "párty", + "rovnako", + "snažím", + "práci", + "zmysel", + "baby", + "otvor", + "odtiaľ", + "tými", + "dali", + "cesta", + "boha", + "pohyb", + "zavolaj", + "myslieť", + "odo", + "meste", + "slová", + "nohy", + "stať", + "blázon", + "odišiel", + "skutočnosti", + "peňazí", + "vravel", + "chcieť", + "hovoria", + "napríklad", + "vezmi", + "počula", + "zobrať", + "hlavy", + "ah", + "nášho", + "žije", + "vezmem", + "každého", + "strašne", + "polícia", + "zbrane", + "verím", + "nebudeš", + "sľubujem", + "blízko", + "prípad", + "hodinu", + "mužov", + "čoho", + "volal", + "sen", + "nejde", + "prichádza", + "stratil", + "začína", + "správy", + "menej", + "takmer", + "maj", + "trocha", + "dostala", + "posledný", + "čakať", + "zostaň", + "čaká", + "musia", + "mesiac", + "okay", + "trošku", + "prvé", + "dostanem", + "vášho", + "druhý", + "predstaviť", + "počuj", + "nejako", + "vnútri", + "náhodou", + "musela", + "pomôž", + "šesť", + "vrátil", + "chvíľku", + "zabudol", + "neboli", + "hovno", + "čase", + "hovorila", + "dávno", + "chlapi", + "človeka", + "šťastia", + "nikomu", + "pes", + "každú", + "tvojom", + "mojou", + "stará", + "hovor", + "ver", + "jednej", + "pokoj", + "prídem", + "rovno", + "rodičia", + "dolu", + "počuješ", + "nejaká", + "šaty", + "ježiši", + "skvelý", + "dcéra", + "stojí", + "večeru", + "miesta", + "naposledy", + "mnoho", + "drahá", + "hm", + "nevadí", + "urobíme", + "spoločnosť", + "dáš", + "bojovať", + "tvojich", + "vlasy", + "sex", + "chodiť", + "hovoríte", + "iného", + "stáť", + "hra", + "rozumieš", + "com", + "pomaly", + "dostane", + "cítiš", + "zabijem", + "často", + "vitajte", + "stretnúť", + "prisahám", + "prvá", + "aute", + "možnosť", + "srandu", + "desať", + "jediné", + "našla", + "žiadnu", + "obchod", + "otázka", + "posledné", + "hlavne", + "čerta", + "celá", + "strýko", + "vedeli", + "idú", + "rodiny", + "svojom", + "ukázať", + "najskôr", + "ľuďom", + "kávu", + "pozrime", + "milé", + "kľud", + "idiot", + "skús", + "moment", + "odkedy", + "navždy", + "záleží", + "pôjdeš", + "zomrieť", + "prestaňte", + "nerozumiem", + "hlas", + "vodu", + "jesť", + "poznáte", + "odpoveď", + "takú", + "právo", + "vzal", + "počuli", + "krásne", + "mladý", + "existuje", + "druhej", + "povie", + "dávaj", + "svetlo", + "poslal", + "zmeniť", + "mesiacov", + "zabudni", + "wow", + "ťažko", + "šiel", + "týždne", + "mimochodom", + "sadni" + ] +} \ No newline at end of file