From: Mazet Laurent Date: Thu, 6 Aug 2026 07:49:52 +0000 (+0200) Subject: generate optimized language bags X-Git-Url: https://secure.softndesign.org/git/?a=commitdiff_plain;h=2dc8f355597e42a60bf6f623134a06671f6a5ab1;p=trivabble.git generate optimized language bags --- diff --git a/README.md b/README.md index d9bb4da..3750e12 100644 --- a/README.md +++ b/README.md @@ -278,6 +278,16 @@ Some lists of words are too huge (for example Hungarian or Turkish are agglutina Some languages don't have any Aspell dictionary. +### Optimized bag generator + +Once dictionaries have been build, script 'dict-dists-extractor/make_optimized_bag.js' can generate optimized language bagѕ based on dictionary statistics. The /smart/ algorithm which defines number and value of a tile is described as follow: + + Alphabet size is denoted by 'N' + Letter statistic is defined by 'r' as the occurance number over total number. + Number of letter is defined by 'floor(r * 100 + 1/4)' + Calculus 'floor((N - 15) / 10))' defines an index to choose parameter 'p' from set '{0.8 0.7 0.65 0.6}'. + Letter value is defined by 'min(floor(1 + 9 ceil(r^p) * 100), 10)' + ### Credits Thanks [Laurent Mazet](http://www.softndesign.org/~mazet/) for many contributions. diff --git a/dict-dists-extractor/make_optimized_bag.js b/dict-dists-extractor/make_optimized_bag.js new file mode 100755 index 0000000..032c639 --- /dev/null +++ b/dict-dists-extractor/make_optimized_bag.js @@ -0,0 +1,105 @@ +#!/usr/bin/env node +// vim: noai:ts=4:sw=4 + +// eslint-disable no-sync + +"use strict"; + +const fs = require("fs"); +const path = require("path"); + +const DICTS = path.join(__dirname, "..", "public", "dict"); +const LANGS = path.join(__dirname, "..", "server", "lang"); + +/* Build optimized bagѕ */ + +for (const arg of fs.readdirSync(DICTS)) { + + /* get language code */ + const lang = arg.replace(/\.dict/, ""); + + /* check if standard bag exists */ + if (!fs.existsSync(path.join(LANGS, lang + ".json"))) { + continue; + } + + /* start processing */ + console.info("Processing " + lang); + + /* read standard bag */ + const stdbag = require(path.join(LANGS, lang + ".json")); // eslint-disable-line global-require + + /* orderer letters */ + let letters = []; + for (const letter in stdbag.letterValues) { + if (letter == " ") { + continue; + } + if (letter.length > 1) { + letters.unshift(letter); + } else { + letters.push(letter); + } + } + + /* read dictionary */ + let dict; + try { + dict = fs.readFileSync(path.join(DICTS, lang + ".dict"), {encoding: "utf-8"}); // eslint-disable-line global-require + } catch (e) { + console.warn("can't read dictionary for " + lang); + } + + /* build statictics */ + let stats = {}; + for (const letter of letters) { + stats[letter] = 0; + } + let total = 0; + for (const word of dict.split(/\r?\n/)) { + for (let i = 0; i < word.length; i++) { + for (const letter of letters) { + if (word.substring(i, i + letter.length) === letter) { + stats[letter]++; + i += letter.length - 1; + total++; + break; + } + } + } + } + + /* init bag variables */ + let bag = "\n \" \", \" \""; + let values = " \" \": 0"; + + /* generate bag */ + for (const letter of letters) { + let ratio = stats[letter] / total; + let nb = Math.floor(ratio * 100 + 1/4); + if (nb === 0) nb = 1; + bag += ",\n \"" + letter + "\""; + while (--nb) { bag += ", \"" + letter + "\""; } + const p = [0.8, 0.7, 0.65, 0.6].at(Math.floor((letters.length - 15) / 10)); + const v = Math.min(10, Math.floor(1 + 9 / Math.ceil(Math.pow(ratio, p) * 100))); + values += ",\n \"" + letter + "\": " + v; + } + + /* write board file */ + let file = "{\n"; + file += " \"code\": \"" + lang + "-opt\",\n"; + file += " \"name\": \"" + stdbag.name + " optimized\",\n"; + file += "\n"; + file += " \"bag\": [" + bag + "\n ],\n"; + file += "\n"; + file += " \"letterValues\": {\n"; + file += values; + file += "\n }\n"; + file += "\n}\n"; + try { + fs.writeFileSync(path.join(LANGS, lang + "-opt.json"), file); + console.info("build optimized bag for " + lang); + } catch (e) { + console.error("can't write language bag for " + lang); + } +} diff --git a/server/lang/bg-opt.json b/server/lang/bg-opt.json new file mode 100644 index 0000000..2094cc7 --- /dev/null +++ b/server/lang/bg-opt.json @@ -0,0 +1,73 @@ +{ + "code": "bg-opt", + "name": "Bulgarian optimized", + + "bag": [ + " ", " ", + "А", "А", "А", "А", "А", "А", "А", "А", "А", "А", "А", "А", "А", + "О", "О", "О", "О", "О", "О", "О", "О", + "Е", "Е", "Е", "Е", "Е", "Е", "Е", "Е", + "И", "И", "И", "И", "И", "И", "И", "И", + "Т", "Т", "Т", "Т", "Т", "Т", "Т", + "Н", "Н", "Н", "Н", "Н", "Н", + "П", "П", "П", "П", + "Р", "Р", "Р", "Р", "Р", "Р", + "С", "С", "С", + "В", "В", "В", "В", "В", + "М", "М", + "Б", + "Д", "Д", + "К", "К", + "Л", "Л", "Л", "Л", "Л", + "Г", + "Ъ", + "Ж", + "З", "З", "З", + "У", + "Ч", + "Я", "Я", "Я", + "Й", + "Х", + "Ц", + "Ш", + "Ю", + "Ф", + "Щ", + "Ь" + ], + + "letterValues": { + " ": 0, + "А": 1, + "О": 1, + "Е": 1, + "И": 1, + "Т": 1, + "Н": 1, + "П": 1, + "Р": 1, + "С": 1, + "В": 1, + "М": 2, + "Б": 2, + "Д": 2, + "К": 2, + "Л": 1, + "Г": 2, + "Ъ": 2, + "Ж": 4, + "З": 2, + "У": 2, + "Ч": 2, + "Я": 1, + "Й": 4, + "Х": 2, + "Ц": 4, + "Ш": 3, + "Ю": 10, + "Ф": 5, + "Щ": 2, + "Ь": 10 + } + +} diff --git a/server/lang/br-opt.json b/server/lang/br-opt.json new file mode 100644 index 0000000..9284519 --- /dev/null +++ b/server/lang/br-opt.json @@ -0,0 +1,65 @@ +{ + "code": "br-opt", + "name": "Breton optimized", + + "bag": [ + " ", " ", + "C'H", + "CH", + "ZH", + "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", + "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", + "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", + "R", "R", "R", "R", "R", "R", "R", "R", + "O", "O", "O", "O", "O", "O", + "T", "T", "T", "T", + "U", "U", "U", "U", + "I", "I", "I", "I", "I", "I", "I", + "L", "L", "L", "L", "L", "L", + "D", "D", "D", "D", "D", + "G", "G", "G", + "S", "S", "S", + "V", + "H", + "B", "B", + "K", "K", "K", + "M", "M", + "Z", + "P", "P", + "F", + "J", + "W", + "Y" + ], + + "letterValues": { + " ": 0, + "C'H": 3, + "CH": 4, + "ZH": 2, + "E": 1, + "A": 1, + "N": 1, + "R": 1, + "O": 1, + "T": 1, + "U": 1, + "I": 1, + "L": 1, + "D": 1, + "G": 2, + "S": 1, + "V": 2, + "H": 3, + "B": 2, + "K": 1, + "M": 2, + "Z": 2, + "P": 2, + "F": 2, + "J": 4, + "W": 4, + "Y": 10 + } + +} diff --git a/server/lang/ca-opt.json b/server/lang/ca-opt.json new file mode 100644 index 0000000..39ae528 --- /dev/null +++ b/server/lang/ca-opt.json @@ -0,0 +1,59 @@ +{ + "code": "ca-opt", + "name": "Catalan optimized", + + "bag": [ + " ", " ", + "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", + "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", + "I", "I", "I", "I", "I", "I", "I", "I", "I", + "R", "R", "R", "R", "R", "R", "R", "R", + "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", + "N", "N", "N", "N", "N", "N", + "O", "O", "O", "O", "O", + "T", "T", "T", "T", "T", + "L", "L", "L", "L", + "U", "U", "U", "U", + "C", "C", "C", + "D", "D", "D", + "M", "M", "M", + "B", + "G", "G", + "P", "P", + "F", + "V", + "H", + "J", + "Q", + "Z", + "Ç" + ], + + "letterValues": { + " ": 0, + "E": 1, + "A": 1, + "I": 1, + "R": 1, + "S": 1, + "N": 1, + "O": 2, + "T": 1, + "L": 2, + "U": 2, + "C": 2, + "D": 2, + "M": 2, + "B": 3, + "G": 2, + "P": 2, + "F": 4, + "V": 3, + "H": 10, + "J": 5, + "Q": 5, + "Z": 5, + "Ç": 10 + } + +} diff --git a/server/lang/cy-opt.json b/server/lang/cy-opt.json new file mode 100644 index 0000000..8b65fdd --- /dev/null +++ b/server/lang/cy-opt.json @@ -0,0 +1,69 @@ +{ + "code": "cy-opt", + "name": "Welsh optimized", + + "bag": [ + " ", " ", + "RH", + "NG", + "LL", + "CH", "CH", "CH", + "TH", + "FF", + "DD", "DD", + "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", + "E", "E", "E", "E", "E", "E", "E", "E", + "N", "N", "N", "N", "N", "N", "N", + "I", "I", "I", "I", "I", "I", "I", "I", + "R", "R", "R", "R", "R", "R", + "Y", "Y", "Y", "Y", "Y", "Y", "Y", + "D", "D", "D", "D", "D", + "O", "O", "O", "O", "O", + "W", "W", "W", "W", + "F", "F", "F", + "G", "G", "G", + "L", "L", "L", + "U", + "S", "S", "S", "S", "S", "S", + "B", + "M", "M", "M", + "T", "T", "T", + "C", + "H", "H", + "P", + "J" + ], + + "letterValues": { + " ": 0, + "RH": 5, + "NG": 4, + "LL": 3, + "CH": 2, + "TH": 2, + "FF": 4, + "DD": 2, + "A": 1, + "E": 1, + "N": 1, + "I": 1, + "R": 1, + "Y": 1, + "D": 1, + "O": 1, + "W": 1, + "F": 2, + "G": 1, + "L": 1, + "U": 2, + "S": 1, + "B": 2, + "M": 2, + "T": 1, + "C": 2, + "H": 2, + "P": 4, + "J": 10 + } + +} diff --git a/server/lang/da-opt.json b/server/lang/da-opt.json new file mode 100644 index 0000000..3b4f654 --- /dev/null +++ b/server/lang/da-opt.json @@ -0,0 +1,67 @@ +{ + "code": "da-opt", + "name": "Danish optimized", + + "bag": [ + " ", " ", + "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", + "A", "A", "A", "A", "A", + "N", "N", "N", "N", "N", "N", "N", "N", "N", + "R", "R", "R", "R", "R", "R", "R", "R", "R", + "D", "D", "D", "D", + "L", "L", "L", "L", "L", + "O", "O", "O", "O", + "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", + "T", "T", "T", "T", "T", "T", + "B", "B", + "I", "I", "I", "I", "I", "I", + "K", "K", "K", + "F", "F", + "G", "G", "G", "G", + "M", "M", + "U", "U", + "V", + "H", + "J", + "P", + "Y", + "Æ", + "Ø", + "Å", + "C", + "X", + "Z" + ], + + "letterValues": { + " ": 0, + "E": 1, + "A": 1, + "N": 1, + "R": 1, + "D": 1, + "L": 1, + "O": 1, + "S": 1, + "T": 1, + "B": 2, + "I": 1, + "K": 1, + "F": 2, + "G": 1, + "M": 2, + "U": 2, + "V": 2, + "H": 3, + "J": 3, + "P": 2, + "Y": 3, + "Æ": 2, + "Ø": 3, + "Å": 4, + "C": 4, + "X": 10, + "Z": 10 + } + +} diff --git a/server/lang/de-opt.json b/server/lang/de-opt.json new file mode 100644 index 0000000..00ae00b --- /dev/null +++ b/server/lang/de-opt.json @@ -0,0 +1,71 @@ +{ + "code": "de-opt", + "name": "German optimized", + + "bag": [ + " ", " ", + "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", + "N", "N", "N", "N", "N", "N", "N", "N", + "S", "S", "S", "S", "S", "S", "S", "S", + "I", "I", "I", "I", "I", "I", + "R", "R", "R", "R", "R", "R", "R", "R", + "T", "T", "T", "T", "T", "T", "T", + "U", "U", "U", + "A", "A", "A", "A", "A", + "D", "D", "D", + "H", "H", "H", "H", + "G", "G", "G", + "L", "L", "L", "L", + "O", "O", + "M", "M", + "B", "B", + "W", + "Z", + "C", "C", "C", + "F", "F", + "K", "K", + "P", + "Ä", + "J", + "Ü", + "V", + "Ö", + "X", + "Q", + "Y" + ], + + "letterValues": { + " ": 0, + "E": 1, + "N": 1, + "S": 1, + "I": 1, + "R": 1, + "T": 1, + "U": 1, + "A": 1, + "D": 2, + "H": 1, + "G": 1, + "L": 1, + "O": 2, + "M": 2, + "B": 2, + "W": 3, + "Z": 2, + "C": 2, + "F": 2, + "K": 2, + "P": 2, + "Ä": 3, + "J": 10, + "Ü": 3, + "V": 3, + "Ö": 5, + "X": 10, + "Q": 10, + "Y": 10 + } + +} diff --git a/server/lang/el-opt.json b/server/lang/el-opt.json new file mode 100644 index 0000000..206fe41 --- /dev/null +++ b/server/lang/el-opt.json @@ -0,0 +1,61 @@ +{ + "code": "el-opt", + "name": "Greek optimized", + + "bag": [ + " ", " ", + "Α", "Α", "Α", "Α", "Α", "Α", "Α", "Α", "Α", "Α", "Α", "Α", + "Ε", "Ε", "Ε", "Ε", "Ε", "Ε", "Ε", "Ε", "Ε", + "Ι", "Ι", "Ι", "Ι", "Ι", "Ι", "Ι", "Ι", + "Τ", "Τ", "Τ", "Τ", "Τ", "Τ", "Τ", + "Η", "Η", "Η", + "Σ", "Σ", "Σ", "Σ", "Σ", "Σ", "Σ", "Σ", + "Ν", "Ν", "Ν", "Ν", "Ν", "Ν", + "Ο", "Ο", "Ο", "Ο", "Ο", "Ο", "Ο", "Ο", "Ο", "Ο", + "Κ", "Κ", "Κ", "Κ", + "Π", "Π", "Π", + "Ρ", "Ρ", "Ρ", "Ρ", "Ρ", + "Υ", "Υ", "Υ", "Υ", "Υ", + "Λ", "Λ", "Λ", + "Μ", "Μ", "Μ", "Μ", + "Ω", "Ω", + "Γ", + "Δ", + "Β", + "Φ", + "Χ", + "Ζ", + "Θ", + "Ξ", + "Ψ" + ], + + "letterValues": { + " ": 0, + "Α": 1, + "Ε": 1, + "Ι": 1, + "Τ": 1, + "Η": 2, + "Σ": 1, + "Ν": 1, + "Ο": 1, + "Κ": 2, + "Π": 2, + "Ρ": 1, + "Υ": 2, + "Λ": 2, + "Μ": 2, + "Ω": 2, + "Γ": 3, + "Δ": 3, + "Β": 4, + "Φ": 4, + "Χ": 4, + "Ζ": 4, + "Θ": 4, + "Ξ": 5, + "Ψ": 10 + } + +} diff --git a/server/lang/en-opt.json b/server/lang/en-opt.json new file mode 100644 index 0000000..742048b --- /dev/null +++ b/server/lang/en-opt.json @@ -0,0 +1,65 @@ +{ + "code": "en-opt", + "name": "English optimized", + + "bag": [ + " ", " ", + "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", + "A", "A", "A", "A", "A", "A", "A", "A", + "I", + "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", + "R", "R", "R", "R", "R", "R", "R", + "N", "N", "N", "N", "N", "N", "N", + "T", "T", "T", "T", "T", "T", + "L", "L", "L", "L", "L", + "S", "S", "S", "S", "S", "S", "S", "S", "S", + "U", "U", "U", + "D", "D", "D", "D", + "G", "G", "G", + "B", "B", + "C", "C", "C", "C", + "M", "M", "M", + "P", "P", "P", + "F", + "H", "H", + "V", + "W", + "Y", + "K", + "J", + "X", + "Q", + "Z" + ], + + "letterValues": { + " ": 0, + "E": 1, + "A": 1, + "I": 10, + "O": 1, + "R": 1, + "N": 1, + "T": 1, + "L": 1, + "S": 1, + "U": 1, + "D": 1, + "G": 2, + "B": 2, + "C": 1, + "M": 2, + "P": 2, + "F": 2, + "H": 2, + "V": 2, + "W": 3, + "Y": 2, + "K": 3, + "J": 5, + "X": 5, + "Q": 5, + "Z": 4 + } + +} diff --git a/server/lang/eo-opt.json b/server/lang/eo-opt.json new file mode 100644 index 0000000..79cac8d --- /dev/null +++ b/server/lang/eo-opt.json @@ -0,0 +1,69 @@ +{ + "code": "eo-opt", + "name": "Esperanto optimized", + + "bag": [ + " ", " ", + "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", + "E", "E", "E", "E", "E", "E", "E", "E", + "I", "I", "I", "I", "I", "I", "I", "I", "I", + "O", "O", "O", "O", "O", "O", "O", "O", + "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", + "R", "R", "R", "R", "R", + "S", "S", "S", "S", + "L", "L", "L", "L", + "T", "T", "T", "T", "T", "T", "T", + "U", "U", "U", + "K", "K", "K", + "M", "M", "M", + "D", "D", "D", "D", + "J", "J", "J", + "P", "P", + "F", + "G", "G", "G", + "Ĝ", + "V", + "B", + "Ĉ", + "C", + "Ŝ", + "Z", + "H", + "Ŭ", + "Ĥ", + "Ĵ" + ], + + "letterValues": { + " ": 0, + "A": 1, + "E": 1, + "I": 1, + "O": 1, + "N": 1, + "R": 1, + "S": 1, + "L": 1, + "T": 1, + "U": 2, + "K": 1, + "M": 2, + "D": 1, + "J": 1, + "P": 2, + "F": 2, + "G": 2, + "Ĝ": 2, + "V": 2, + "B": 2, + "Ĉ": 5, + "C": 3, + "Ŝ": 4, + "Z": 4, + "H": 5, + "Ŭ": 5, + "Ĥ": 10, + "Ĵ": 5 + } + +} diff --git a/server/lang/es-opt.json b/server/lang/es-opt.json new file mode 100644 index 0000000..ad05dc6 --- /dev/null +++ b/server/lang/es-opt.json @@ -0,0 +1,69 @@ +{ + "code": "es-opt", + "name": "Spanish optimized", + + "bag": [ + " ", " ", + "RR", + "LL", + "CH", + "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", + "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", + "O", "O", "O", "O", "O", "O", "O", "O", + "I", "I", "I", "I", "I", "I", "I", + "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", + "N", "N", "N", "N", "N", "N", + "R", "R", "R", "R", "R", "R", "R", + "U", "U", + "L", "L", "L", "L", "L", + "T", "T", "T", "T", + "D", "D", "D", "D", + "G", + "C", "C", "C", + "B", "B", + "M", "M", "M", + "P", "P", + "H", + "F", + "V", + "Y", + "Q", + "J", + "Ñ", + "X", + "Z" + ], + + "letterValues": { + " ": 0, + "RR": 5, + "LL": 5, + "CH": 5, + "A": 1, + "E": 1, + "O": 1, + "I": 1, + "S": 1, + "N": 1, + "R": 1, + "U": 2, + "L": 1, + "T": 1, + "D": 1, + "G": 2, + "C": 1, + "B": 2, + "M": 1, + "P": 2, + "H": 5, + "F": 3, + "V": 3, + "Y": 10, + "Q": 4, + "J": 4, + "Ñ": 5, + "X": 5, + "Z": 3 + } + +} diff --git a/server/lang/fr-opt.json b/server/lang/fr-opt.json new file mode 100644 index 0000000..654dd49 --- /dev/null +++ b/server/lang/fr-opt.json @@ -0,0 +1,65 @@ +{ + "code": "fr-opt", + "name": "French optimized", + + "bag": [ + " ", " ", + "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", + "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", + "I", "I", "I", "I", "I", "I", "I", "I", "I", + "N", "N", "N", "N", "N", "N", "N", + "O", "O", "O", "O", "O", "O", + "R", "R", "R", "R", "R", "R", "R", "R", + "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", + "T", "T", "T", "T", "T", "T", "T", + "U", "U", "U", + "L", "L", "L", "L", + "D", "D", + "M", "M", + "G", + "B", + "C", "C", "C", + "P", "P", + "F", + "H", + "V", + "J", + "Q", + "K", + "W", + "X", + "Y", + "Z" + ], + + "letterValues": { + " ": 0, + "E": 1, + "A": 1, + "I": 1, + "N": 1, + "O": 1, + "R": 1, + "S": 1, + "T": 1, + "U": 1, + "L": 1, + "D": 2, + "M": 2, + "G": 2, + "B": 2, + "C": 1, + "P": 2, + "F": 2, + "H": 2, + "V": 3, + "J": 5, + "Q": 4, + "K": 10, + "W": 10, + "X": 5, + "Y": 5, + "Z": 2 + } + +} diff --git a/server/lang/ga-opt.json b/server/lang/ga-opt.json new file mode 100644 index 0000000..47aca44 --- /dev/null +++ b/server/lang/ga-opt.json @@ -0,0 +1,59 @@ +{ + "code": "ga-opt", + "name": "Irish optimized", + + "bag": [ + " ", " ", + "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", + "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", + "I", "I", "I", "I", "I", "I", "I", "I", "I", "I", "I", "I", "I", "I", + "N", "N", "N", "N", "N", "N", + "R", "R", "R", "R", "R", "R", + "E", "E", "E", "E", "E", + "S", "S", "S", "S", + "C", "C", "C", "C", "C", + "D", "D", "D", "D", + "L", "L", "L", "L", + "O", "O", "O", "O", "O", "O", + "T", "T", "T", "T", "T", + "G", "G", "G", + "U", "U", + "F", "F", + "M", "M", "M", + "Á", + "Í", + "É", + "Ó", + "Ú", + "B", "B", + "P" + ], + + "letterValues": { + " ": 0, + "A": 1, + "H": 1, + "I": 1, + "N": 1, + "R": 1, + "E": 1, + "S": 2, + "C": 1, + "D": 2, + "L": 2, + "O": 1, + "T": 1, + "G": 2, + "U": 2, + "F": 2, + "M": 2, + "Á": 10, + "Í": 10, + "É": 10, + "Ó": 10, + "Ú": 10, + "B": 2, + "P": 4 + } + +} diff --git a/server/lang/hr-opt.json b/server/lang/hr-opt.json new file mode 100644 index 0000000..009f312 --- /dev/null +++ b/server/lang/hr-opt.json @@ -0,0 +1,73 @@ +{ + "code": "hr-opt", + "name": "Croatian optimized", + + "bag": [ + " ", " ", + "DŽ", + "NJ", + "LJ", + "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", + "I", "I", "I", "I", "I", "I", "I", "I", "I", "I", "I", + "E", "E", "E", "E", "E", "E", "E", + "O", "O", "O", "O", "O", "O", "O", "O", + "N", "N", "N", "N", "N", "N", + "R", "R", "R", "R", "R", "R", + "S", "S", "S", "S", + "T", "T", "T", "T", + "J", "J", "J", + "U", "U", "U", "U", + "K", "K", "K", + "M", "M", "M", "M", + "P", "P", "P", + "V", "V", "V", + "D", "D", + "G", + "L", "L", "L", + "Z", "Z", + "B", + "Č", + "C", + "H", + "Š", + "Ž", + "Ć", + "F", + "Đ" + ], + + "letterValues": { + " ": 0, + "DŽ": 10, + "NJ": 2, + "LJ": 3, + "A": 1, + "I": 1, + "E": 1, + "O": 1, + "N": 1, + "R": 1, + "S": 1, + "T": 1, + "J": 2, + "U": 1, + "K": 1, + "M": 1, + "P": 1, + "V": 2, + "D": 2, + "G": 2, + "L": 2, + "Z": 2, + "B": 2, + "Č": 2, + "C": 2, + "H": 3, + "Š": 2, + "Ž": 4, + "Ć": 4, + "F": 5, + "Đ": 5 + } + +} diff --git a/server/lang/hy-opt.json b/server/lang/hy-opt.json new file mode 100644 index 0000000..9406a6f --- /dev/null +++ b/server/lang/hy-opt.json @@ -0,0 +1,89 @@ +{ + "code": "hy-opt", + "name": "Armenian optimized", + + "bag": [ + " ", " ", + "Ա", "Ա", "Ա", "Ա", "Ա", "Ա", "Ա", "Ա", "Ա", "Ա", "Ա", "Ա", "Ա", "Ա", + "Ե", "Ե", "Ե", "Ե", "Ե", "Ե", + "Ի", "Ի", "Ի", "Ի", "Ի", + "Կ", "Կ", "Կ", + "Ն", "Ն", "Ն", "Ն", "Ն", "Ն", "Ն", "Ն", "Ն", "Ն", + "Ո", "Ո", "Ո", "Ո", "Ո", "Ո", "Ո", "Ո", "Ո", + "Ս", "Ս", + "Է", + "Հ", + "Մ", "Մ", "Մ", + "Յ", "Յ", + "Պ", + "Տ", "Տ", + "Ր", "Ր", "Ր", "Ր", "Ր", "Ր", "Ր", + "Ւ", "Ւ", "Ւ", "Ւ", "Ւ", "Ւ", "Ւ", + "Բ", + "Գ", + "Դ", + "Լ", "Լ", + "Վ", "Վ", + "Ք", + "Խ", + "Շ", + "Ռ", + "Թ", "Թ", "Թ", + "Ծ", + "Ղ", + "Ց", "Ց", + "Զ", + "Ճ", + "Չ", + "Ջ", + "Ժ", + "Ձ", + "Փ", + "Օ", + "Ը", + "Ֆ" + ], + + "letterValues": { + " ": 0, + "Ա": 1, + "Ե": 1, + "Ի": 1, + "Կ": 1, + "Ն": 1, + "Ո": 1, + "Ս": 2, + "Է": 3, + "Հ": 2, + "Մ": 1, + "Յ": 1, + "Պ": 2, + "Տ": 1, + "Ր": 1, + "Ւ": 1, + "Բ": 2, + "Գ": 2, + "Դ": 2, + "Լ": 2, + "Վ": 2, + "Ք": 2, + "Խ": 2, + "Շ": 2, + "Ռ": 2, + "Թ": 1, + "Ծ": 2, + "Ղ": 2, + "Ց": 1, + "Զ": 2, + "Ճ": 4, + "Չ": 3, + "Ջ": 4, + "Ժ": 4, + "Ձ": 4, + "Փ": 3, + "Օ": 4, + "Ը": 2, + "Ֆ": 10 + } + +} diff --git a/server/lang/is-opt.json b/server/lang/is-opt.json new file mode 100644 index 0000000..bf40a53 --- /dev/null +++ b/server/lang/is-opt.json @@ -0,0 +1,77 @@ +{ + "code": "is-opt", + "name": "Icelandic optimized", + + "bag": [ + " ", " ", + "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", + "I", "I", "I", "I", "I", "I", "I", + "N", "N", "N", "N", "N", "N", "N", "N", "N", + "R", "R", "R", "R", "R", "R", "R", "R", "R", + "E", "E", "E", "E", + "S", "S", "S", "S", "S", "S", + "U", "U", "U", "U", "U", "U", + "T", "T", "T", "T", "T", + "Ð", "Ð", "Ð", + "G", "G", "G", "G", + "K", "K", "K", + "L", "L", "L", "L", "L", + "M", "M", "M", + "F", "F", "F", + "O", + "H", + "V", + "Á", + "D", "D", + "Í", + "Þ", + "J", + "Æ", + "B", + "É", + "Ó", + "Ö", + "Y", + "P", + "Ú", + "Ý", + "X" + ], + + "letterValues": { + " ": 0, + "A": 1, + "I": 1, + "N": 1, + "R": 1, + "E": 1, + "S": 1, + "U": 1, + "T": 1, + "Ð": 1, + "G": 1, + "K": 1, + "L": 1, + "M": 1, + "F": 2, + "O": 2, + "H": 2, + "V": 2, + "Á": 2, + "D": 2, + "Í": 3, + "Þ": 4, + "J": 2, + "Æ": 2, + "B": 2, + "É": 5, + "Ó": 2, + "Ö": 2, + "Y": 3, + "P": 2, + "Ú": 4, + "Ý": 5, + "X": 10 + } + +} diff --git a/server/lang/it-opt.json b/server/lang/it-opt.json new file mode 100644 index 0000000..6e56799 --- /dev/null +++ b/server/lang/it-opt.json @@ -0,0 +1,55 @@ +{ + "code": "it-opt", + "name": "Italian optimized", + + "bag": [ + " ", " ", + "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", + "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", + "I", + "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", + "C", "C", "C", "C", "C", + "R", "R", "R", "R", "R", "R", "R", + "S", "S", "S", "S", "S", + "T", "T", "T", "T", "T", "T", "T", + "L", "L", "L", "L", "L", "L", "L", + "M", "M", "M", + "N", "N", "N", "N", "N", "N", + "U", + "B", + "D", "D", "D", + "F", + "P", "P", + "V", "V", + "G", "G", "G", + "H", + "Z", + "Q" + ], + + "letterValues": { + " ": 0, + "O": 1, + "A": 1, + "I": 10, + "E": 1, + "C": 1, + "R": 1, + "S": 1, + "T": 1, + "L": 1, + "M": 2, + "N": 1, + "U": 3, + "B": 4, + "D": 2, + "F": 4, + "P": 2, + "V": 2, + "G": 2, + "H": 5, + "Z": 3, + "Q": 10 + } + +} diff --git a/server/lang/lv-opt.json b/server/lang/lv-opt.json new file mode 100644 index 0000000..9f41084 --- /dev/null +++ b/server/lang/lv-opt.json @@ -0,0 +1,79 @@ +{ + "code": "lv-opt", + "name": "Latvian optimized", + + "bag": [ + " ", " ", + "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", + "I", "I", "I", "I", "I", "I", "I", "I", + "S", "S", "S", "S", "S", "S", + "E", "E", "E", "E", "E", "E", "E", "E", + "T", "T", "T", "T", "T", + "R", "R", "R", "R", + "U", "U", "U", "U", "U", "U", + "Ā", "Ā", "Ā", + "K", "K", + "M", "M", "M", "M", + "N", "N", "N", "N", "N", + "L", "L", "L", + "P", "P", "P", "P", + "D", "D", + "O", "O", "O", "O", "O", "O", "O", + "V", + "Z", "Z", + "Ē", + "Ī", + "J", "J", "J", "J", "J", + "B", + "C", + "G", + "Ņ", + "Š", "Š", "Š", + "Ū", + "Ļ", + "Ž", + "Č", + "F", + "Ģ", + "H", + "Ķ" + ], + + "letterValues": { + " ": 0, + "A": 1, + "I": 1, + "S": 1, + "E": 1, + "T": 1, + "R": 1, + "U": 1, + "Ā": 2, + "K": 2, + "M": 1, + "N": 1, + "L": 2, + "P": 1, + "D": 2, + "O": 1, + "V": 2, + "Z": 2, + "Ē": 3, + "Ī": 3, + "J": 1, + "B": 3, + "C": 4, + "G": 2, + "Ņ": 5, + "Š": 1, + "Ū": 5, + "Ļ": 5, + "Ž": 5, + "Č": 10, + "F": 10, + "Ģ": 10, + "H": 10, + "Ķ": 5 + } + +} diff --git a/server/lang/nl-opt.json b/server/lang/nl-opt.json new file mode 100644 index 0000000..d5e823a --- /dev/null +++ b/server/lang/nl-opt.json @@ -0,0 +1,67 @@ +{ + "code": "nl-opt", + "name": "Dutch optimized", + + "bag": [ + " ", " ", + "IJ", + "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", + "N", "N", "N", "N", "N", "N", "N", "N", + "A", "A", "A", "A", "A", "A", + "O", "O", "O", "O", "O", "O", + "I", "I", "I", "I", "I", "I", + "D", "D", "D", "D", + "R", "R", "R", "R", "R", "R", "R", "R", + "T", "T", "T", "T", "T", "T", "T", + "S", "S", "S", "S", "S", "S", + "G", "G", "G", "G", + "K", "K", "K", + "L", "L", "L", "L", + "M", "M", + "B", "B", + "P", "P", + "U", "U", + "H", "H", + "J", + "V", "V", + "Z", + "F", + "C", "C", + "W", + "X", + "Y", + "Q" + ], + + "letterValues": { + " ": 0, + "IJ": 3, + "E": 1, + "N": 1, + "A": 1, + "O": 1, + "I": 1, + "D": 1, + "R": 1, + "T": 1, + "S": 1, + "G": 1, + "K": 2, + "L": 1, + "M": 2, + "B": 2, + "P": 2, + "U": 2, + "H": 2, + "J": 4, + "V": 2, + "Z": 3, + "F": 2, + "C": 2, + "W": 2, + "X": 10, + "Y": 10, + "Q": 10 + } + +} diff --git a/server/lang/no-opt.json b/server/lang/no-opt.json new file mode 100644 index 0000000..4147c79 --- /dev/null +++ b/server/lang/no-opt.json @@ -0,0 +1,65 @@ +{ + "code": "no-opt", + "name": "Norwegian optimized", + + "bag": [ + " ", " ", + "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", + "A", "A", "A", "A", "A", + "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", + "R", "R", "R", "R", "R", "R", "R", "R", + "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", + "T", "T", "T", "T", "T", "T", "T", + "D", "D", "D", + "I", "I", "I", "I", "I", "I", + "L", "L", "L", "L", "L", + "F", "F", + "G", "G", "G", + "K", "K", "K", "K", + "O", "O", "O", "O", + "M", "M", + "H", + "B", + "U", "U", + "V", "V", + "J", + "P", "P", + "Å", + "Ø", + "Y", + "Æ", + "W", + "C" + ], + + "letterValues": { + " ": 0, + "E": 1, + "A": 1, + "N": 1, + "R": 1, + "S": 1, + "T": 1, + "D": 2, + "I": 1, + "L": 1, + "F": 2, + "G": 1, + "K": 1, + "O": 1, + "M": 2, + "H": 3, + "B": 2, + "U": 2, + "V": 2, + "J": 2, + "P": 2, + "Å": 4, + "Ø": 3, + "Y": 3, + "Æ": 5, + "W": 10, + "C": 10 + } + +} diff --git a/server/lang/pl-opt.json b/server/lang/pl-opt.json new file mode 100644 index 0000000..2fdbcf3 --- /dev/null +++ b/server/lang/pl-opt.json @@ -0,0 +1,77 @@ +{ + "code": "pl-opt", + "name": "Polish optimized", + + "bag": [ + " ", " ", + "A", "A", "A", "A", "A", "A", "A", "A", "A", + "I", "I", "I", "I", "I", "I", "I", "I", "I", + "E", "E", "E", "E", "E", "E", "E", "E", + "O", "O", "O", "O", "O", "O", "O", "O", + "N", "N", "N", "N", "N", "N", "N", + "Z", "Z", "Z", "Z", + "R", "R", "R", "R", + "S", "S", "S", + "W", "W", "W", "W", + "Y", "Y", "Y", "Y", "Y", + "C", "C", "C", "C", + "D", "D", + "K", "K", "K", + "L", "L", + "M", "M", "M", "M", + "P", "P", "P", + "T", "T", "T", + "B", "B", + "G", + "H", + "J", "J", + "Ł", "Ł", + "U", "U", + "Ą", + "Ę", + "F", + "Ó", + "Ś", + "Ż", + "Ć", + "Ń", + "Ź" + ], + + "letterValues": { + " ": 0, + "A": 1, + "I": 1, + "E": 1, + "O": 1, + "N": 1, + "Z": 1, + "R": 1, + "S": 1, + "W": 1, + "Y": 1, + "C": 1, + "D": 2, + "K": 2, + "L": 2, + "M": 1, + "P": 2, + "T": 2, + "B": 2, + "G": 2, + "H": 2, + "J": 2, + "Ł": 2, + "U": 2, + "Ą": 2, + "Ę": 4, + "F": 4, + "Ó": 5, + "Ś": 3, + "Ż": 4, + "Ć": 10, + "Ń": 5, + "Ź": 10 + } + +} diff --git a/server/lang/pt-opt.json b/server/lang/pt-opt.json new file mode 100644 index 0000000..f0b4e2a --- /dev/null +++ b/server/lang/pt-opt.json @@ -0,0 +1,61 @@ +{ + "code": "pt-opt", + "name": "Portuguese optimized", + + "bag": [ + " ", " ", + "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", + "I", "I", "I", "I", "I", "I", "I", "I", "I", + "O", "O", "O", "O", "O", "O", "O", "O", "O", + "S", "S", "S", "S", "S", + "U", "U", "U", + "M", "M", "M", + "R", "R", "R", "R", "R", "R", "R", "R", "R", + "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", + "T", "T", "T", "T", "T", + "C", "C", "C", "C", + "P", "P", + "D", "D", "D", "D", + "L", "L", "L", "L", + "N", "N", "N", "N", "N", + "B", + "Ç", + "F", + "G", + "H", + "V", "V", + "J", + "Q", + "X", + "Z" + ], + + "letterValues": { + " ": 0, + "A": 1, + "I": 1, + "O": 1, + "S": 1, + "U": 2, + "M": 2, + "R": 1, + "E": 1, + "T": 1, + "C": 2, + "P": 2, + "D": 2, + "L": 2, + "N": 1, + "B": 3, + "Ç": 5, + "F": 4, + "G": 3, + "H": 4, + "V": 3, + "J": 5, + "Q": 5, + "X": 5, + "Z": 5 + } + +} diff --git a/server/lang/ro-opt.json b/server/lang/ro-opt.json new file mode 100644 index 0000000..48346e1 --- /dev/null +++ b/server/lang/ro-opt.json @@ -0,0 +1,57 @@ +{ + "code": "ro-opt", + "name": "Romanian optimized", + + "bag": [ + " ", " ", + "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", + "I", "I", "I", "I", "I", "I", "I", "I", "I", "I", "I", "I", "I", + "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", + "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", + "T", "T", "T", "T", "T", "T", "T", + "N", "N", "N", "N", "N", "N", + "U", "U", "U", "U", "U", + "C", "C", "C", "C", + "O", "O", "O", "O", "O", "O", + "S", "S", "S", "S", + "L", "L", "L", "L", "L", "L", + "D", "D", + "P", "P", + "M", "M", + "F", + "V", + "B", + "G", + "H", + "J", + "X", + "Z" + ], + + "letterValues": { + " ": 0, + "A": 1, + "I": 1, + "E": 1, + "R": 1, + "T": 1, + "N": 1, + "U": 2, + "C": 2, + "O": 1, + "S": 2, + "L": 1, + "D": 2, + "P": 2, + "M": 2, + "F": 4, + "V": 4, + "B": 3, + "G": 3, + "H": 5, + "J": 10, + "X": 10, + "Z": 3 + } + +} diff --git a/server/lang/ru-opt.json b/server/lang/ru-opt.json new file mode 100644 index 0000000..debe6b8 --- /dev/null +++ b/server/lang/ru-opt.json @@ -0,0 +1,79 @@ +{ + "code": "ru-opt", + "name": "Russian optimized", + + "bag": [ + " ", " ", + "О", "О", "О", "О", "О", "О", "О", "О", "О", + "Е", "Е", "Е", "Е", "Е", "Е", "Е", "Е", + "И", "И", "И", "И", "И", "И", "И", + "А", "А", "А", "А", "А", "А", "А", "А", + "Н", "Н", "Н", "Н", "Н", "Н", + "Р", "Р", "Р", "Р", "Р", + "Т", "Т", "Т", "Т", + "В", "В", "В", "В", "В", "В", + "С", "С", "С", "С", "С", + "Д", "Д", + "К", "К", "К", + "Л", "Л", "Л", "Л", + "М", "М", "М", "М", + "П", "П", "П", + "У", "У", "У", + "Я", "Я", + "Б", + "Г", + "Ë", + "Ь", + "Й", + "Ы", "Ы", + "Ж", + "З", "З", + "Х", + "Ц", + "Ч", + "Ш", "Ш", + "Э", + "Ю", "Ю", + "Ф", + "Щ", + "Ъ" + ], + + "letterValues": { + " ": 0, + "О": 1, + "Е": 1, + "И": 1, + "А": 1, + "Н": 1, + "Р": 1, + "Т": 1, + "В": 1, + "С": 1, + "Д": 2, + "К": 2, + "Л": 1, + "М": 1, + "П": 2, + "У": 2, + "Я": 2, + "Б": 2, + "Г": 2, + "Ë": 10, + "Ь": 2, + "Й": 2, + "Ы": 2, + "Ж": 4, + "З": 2, + "Х": 2, + "Ц": 4, + "Ч": 2, + "Ш": 2, + "Э": 10, + "Ю": 2, + "Ф": 5, + "Щ": 2, + "Ъ": 10 + } + +} diff --git a/server/lang/sk-opt.json b/server/lang/sk-opt.json new file mode 100644 index 0000000..c11a1bd --- /dev/null +++ b/server/lang/sk-opt.json @@ -0,0 +1,95 @@ +{ + "code": "sk-opt", + "name": "Slovak optimized", + + "bag": [ + " ", " ", + "A", "A", "A", "A", "A", "A", + "O", "O", "O", "O", "O", "O", "O", "O", + "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", + "I", "I", "I", "I", "I", "I", + "N", "N", "N", "N", "N", "N", "N", "N", + "R", "R", "R", "R", + "S", "S", "S", + "T", "T", "T", "T", + "V", "V", "V", "V", + "M", "M", "M", "M", + "D", "D", + "K", "K", "K", + "L", "L", "L", + "P", "P", + "J", "J", "J", + "U", "U", "U", + "B", + "H", "H", + "Y", + "Z", "Z", + "Á", + "C", "C", + "Č", + "Ž", + "Š", "Š", "Š", + "Í", + "Ý", + "Ľ", + "Ť", + "É", + "Ú", + "Ď", + "F", + "G", + "Ň", + "Ô", + "Ĺ", + "Ŕ", + "X", + "Ä", + "Ó" + ], + + "letterValues": { + " ": 0, + "A": 1, + "O": 1, + "E": 1, + "I": 1, + "N": 1, + "R": 1, + "S": 1, + "T": 1, + "V": 1, + "M": 1, + "D": 2, + "K": 1, + "L": 1, + "P": 1, + "J": 1, + "U": 1, + "B": 2, + "H": 2, + "Y": 2, + "Z": 2, + "Á": 2, + "C": 2, + "Č": 2, + "Ž": 4, + "Š": 1, + "Í": 2, + "Ý": 2, + "Ľ": 4, + "Ť": 3, + "É": 3, + "Ú": 2, + "Ď": 10, + "F": 4, + "G": 4, + "Ň": 5, + "Ô": 10, + "Ĺ": 10, + "Ŕ": 10, + "X": 10, + "Ä": 5, + "Ó": 5 + } + +} diff --git a/server/lang/sl-opt.json b/server/lang/sl-opt.json new file mode 100644 index 0000000..a541e3a --- /dev/null +++ b/server/lang/sl-opt.json @@ -0,0 +1,63 @@ +{ + "code": "sl-opt", + "name": "Slovenian optimized", + + "bag": [ + " ", " ", + "E", "E", "E", "E", "E", "E", "E", "E", "E", + "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", + "I", "I", "I", "I", "I", "I", "I", "I", "I", "I", + "O", "O", "O", "O", "O", "O", "O", "O", + "N", "N", "N", "N", "N", "N", "N", "N", + "R", "R", "R", "R", "R", + "S", "S", "S", + "J", "J", "J", + "L", "L", "L", "L", + "T", "T", "T", "T", + "D", "D", + "V", "V", "V", "V", + "K", "K", "K", "K", + "M", "M", "M", "M", "M", + "P", "P", + "U", "U", + "B", + "G", + "Z", + "Č", "Č", "Č", + "H", + "Š", + "C", + "F", + "Ž" + ], + + "letterValues": { + " ": 0, + "E": 1, + "A": 1, + "I": 1, + "O": 1, + "N": 1, + "R": 1, + "S": 1, + "J": 1, + "L": 1, + "T": 1, + "D": 2, + "V": 1, + "K": 1, + "M": 1, + "P": 2, + "U": 2, + "B": 2, + "G": 2, + "Z": 2, + "Č": 2, + "H": 2, + "Š": 2, + "C": 3, + "F": 5, + "Ž": 4 + } + +} diff --git a/server/lang/sv-opt.json b/server/lang/sv-opt.json new file mode 100644 index 0000000..63f72f4 --- /dev/null +++ b/server/lang/sv-opt.json @@ -0,0 +1,67 @@ +{ + "code": "sv-opt", + "name": "Swedish optimized", + + "bag": [ + " ", " ", + "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", + "R", "R", "R", "R", "R", "R", "R", "R", "R", + "S", "S", "S", "S", "S", "S", "S", "S", "S", + "T", "T", "T", "T", "T", "T", "T", + "E", "E", "E", "E", "E", "E", "E", "E", "E", + "N", "N", "N", "N", "N", "N", "N", "N", "N", + "D", "D", "D", "D", + "I", "I", "I", "I", "I", + "L", "L", "L", "L", "L", + "O", "O", "O", + "G", "G", "G", + "K", "K", "K", "K", + "M", "M", + "H", + "Ä", "Ä", + "F", "F", + "V", "V", + "U", "U", + "B", + "Ö", + "P", "P", + "Å", + "J", + "Y", + "C", + "X", + "Z" + ], + + "letterValues": { + " ": 0, + "A": 1, + "R": 1, + "S": 1, + "T": 1, + "E": 1, + "N": 1, + "D": 1, + "I": 1, + "L": 1, + "O": 1, + "G": 1, + "K": 1, + "M": 2, + "H": 2, + "Ä": 2, + "F": 2, + "V": 2, + "U": 2, + "B": 2, + "Ö": 2, + "P": 2, + "Å": 3, + "J": 4, + "Y": 3, + "C": 4, + "X": 5, + "Z": 10 + } + +} diff --git a/server/lang/uk-opt.json b/server/lang/uk-opt.json new file mode 100644 index 0000000..70875f5 --- /dev/null +++ b/server/lang/uk-opt.json @@ -0,0 +1,81 @@ +{ + "code": "uk-opt", + "name": "Ukrainian optimized", + + "bag": [ + " ", " ", + "‍'‍", + "О", "О", "О", "О", "О", "О", "О", "О", "О", + "А", "А", "А", "А", "А", "А", "А", "А", + "И", "И", "И", "И", "И", "И", + "Н", "Н", "Н", "Н", "Н", "Н", + "В", "В", "В", "В", "В", + "Е", "Е", "Е", "Е", "Е", + "І", "І", "І", "І", + "Т", "Т", "Т", "Т", "Т", + "К", "К", "К", + "Р", "Р", "Р", "Р", "Р", + "С", "С", "С", "С", "С", + "Д", "Д", + "Л", "Л", "Л", "Л", + "М", "М", "М", "М", + "У", "У", "У", "У", + "П", "П", "П", + "З", "З", + "Я", "Я", + "Ь", "Ь", + "Б", + "Г", + "Ч", + "Х", + "Є", + "Ї", + "Й", + "Ж", + "Ц", + "Ш", + "Ю", + "Ґ", + "Ф", + "Щ" + ], + + "letterValues": { + " ": 0, + "‍'‍": 10, + "О": 1, + "А": 1, + "И": 1, + "Н": 1, + "В": 1, + "Е": 1, + "І": 1, + "Т": 1, + "К": 2, + "Р": 1, + "С": 1, + "Д": 2, + "Л": 1, + "М": 1, + "У": 1, + "П": 2, + "З": 2, + "Я": 2, + "Ь": 2, + "Б": 2, + "Г": 2, + "Ч": 2, + "Х": 3, + "Є": 3, + "Ї": 5, + "Й": 2, + "Ж": 4, + "Ц": 4, + "Ш": 3, + "Ю": 2, + "Ґ": 10, + "Ф": 4, + "Щ": 5 + } + +}