https://lingojam.com/edit/22bb1f655429e065ac08ef2e5e1856d4 ###name, Name of your translator...: ◦୦◦◯◦୦◦ ###subtitle, Subtitle (optional): ◦୦◦◯◦୦◦⠀       ⠀◦୦◦◯◦୦◦ ###language1, Language1 name...: ☐ ###language2, Language2 name...: ◯ ###description, Description...: ‭[![](HTTP://WEB.ARCHIVE.ⓄRG/web/2if_/ⓄⓄⓄⓄIIIIIIIIⓄⓄⓄⓄ-ⓄⓄⓄⓄIIIIIIIIⓄⓄⓄⓄ.STATIC.HF.SPACE/%EA%93%A8V%C6%A7.%F0%96%A5%95%E2%A6%BF%F0%96%A5%95.SVG)](http://ARCHIVE.PH/ⓄⓄⓄⓄⓄⓄⓄⓄⓄⓄⓄⓄⓄⓄⓄⓄⓄⓄⓄⓄⓄⓄⓄⓄⓄⓄⓄ.CARRD.CⓄ) ###email, Admin email (optional)...: 888000888OOO888000888@PROTON.ME ###phrases1, ☐ list...: ###phrases2, ◯ list...: ###words1, ☐ list...: ###words2, ◯ list...: ###intraword1, ☐ list...: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z А Б В Г Д Е Ё Ж З І И Й К Л М Н О П Р С Т У Ў Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z а б в г д е ё ж з і и й к л м н о п р с т у ў ф х ц ч ш щ ъ ы ь э ю я ###intraword2, ◯ list...: ⵔ · ꞉ ⋮ ⁘ ⸭ ⠿ ፨ ❋ ‭𐧾‭ ⛋ 𖢌 ⯏ 🟗 ꖅ 𖥠 Ⱉ ⊞ ⵙ ‭𐫰‭ ✻ ◇ ✸ 𑽇 Ⓞ 🝊 ¤ ⦻ 𖧷 ✢ ‭𐫱‭ 🟅 🟏 ꕤ ✧ 🝱 ⛋ ⧲ 𖢌 🮻 🟗 🜊 🜋 𐋅 ᪥ ∣ ∣ ꖌ ✻ ◇ ✸ ⊞ Ⓞ ☐ 🝊 ⯏ ✢ ✧ ✦ 𖥠 ꕤ ⧮ ⑄ ◫ ⎅ ❂ ∣❁∣ ❁ 𖡛 𖥤 ⵙ  𖢄  ⵔ · ꞉ ⋮ ⁘ ⸭ ⠿ ፨ ❋ ‭𐧾‭ ⛋ 𖢌 ⯏ 🟗 ꖅ 𖥠 Ⱉ ⊞ ⵙ ‭𐫰‭ ✻ ◇ ✸ 𑽇 Ⓞ 🝊 ¤ ⦻ 𖧷 ✢ ‭𐫱‭ 🟅 🟏 ꕤ ✧ 🝱 ⛋ ⧲ 𖢌 🮻 🟗 🜊 🜋 𐋅 ᪥ ∣ ∣ ꖌ ✻ ◇ ✸ ⊞ Ⓞ ☐ 🝊 ⯏ ✢ ✧ ✦ 𖥠 ꕤ ⧮ ⑄ ◫ ⎅ ❂ ∣❁∣ ❁ 𖡛 𖥤 ⵙ  𖢄  ###prefixes1, ☐ list...: ###prefixes2, ◯ list...: ###suffixes1, ☐ list...: ###suffixes2, ◯ list...: ###regex1, ☐ list...: ###regex2, ◯ list...: ###rev_regex1, ◯ list...: ###rev_regex2, ☐ list...: ###ordering1, ☐ list...: ###ordering2, ◯ list...: ###defaulttext, One random default text string per line...: ###disable-reverse, : on ###custom-script, Define your functions here...: // ===================== // FORCE CENTER ALIGNMENT (input + output) // ===================== function forceCenterAlignment() { function applyCenter() { const textareas = document.querySelectorAll("textarea"); textareas.forEach(t => { t.style.textAlign = "center"; t.style.whiteSpace = "pre"; t.style.color = "#D9D9D9"; }); } applyCenter(); // Re-apply repeatedly because Lingojam rewrites DOM setInterval(applyCenter,84.406022589954030768899117092091000289089388918088900852079*1000/Math.pow(3,6)); } if (typeof window !== "undefined") { window.addEventListener("load", forceCenterAlignment); } // ===================== // Forward translation // letters → symbols // per-word palindrome // multiline palindrome // ===================== function forward(input) { const map = { // Cyrillic 'Й':'ꖌ','Ц':'⧮','У':'✧','К':'✻','Е':'🜊','Н':'⊞', 'А':'⛋','Б':'⧲','В':'𖢌','Г':'🮻','Д':'🟗','Ё':'🜋', 'Ж':'𐋅','З':'᪥','І':'∣','И':'∣','Л':'◇','М':'✸', 'О':'Ⓞ','П':'☐','Р':'🝊','С':'⯏','Т':'✢','Ў':'✦', 'Ф':'𖥠','Х':'ꕤ','Ч':'⑄','Ш':'◫','Щ':'⎅','Ъ':'❂', 'Ы':'∣❁∣','Ь':'❁','Э':'𖡛','Ю':'𖥤','Я':'ⵙ', // Latin 'A':'⛋','B':'𖢌','C':'⯏','D':'🟗','E':'🜊','F':'𖥠', 'G':'Ⱉ','H':'⊞','I':'ⵙ','J':'𐫰','K':'✻','L':'◇', 'M':'✸','N':'𑽇','O':'Ⓞ','P':'🝊','Q':'¤','R':'⦻', 'S':'𖧷','T':'✢','U':'𐫱','V':'🟅','W':'🟏','X':'ꕤ', 'Y':'✧','Z':'🝱', // Digits '0':'ⵔ','1':'꞉','2':'⋮','3':'⁘','4':'⸭', '5':'⠿','6':'፨','7':'❋','8':'𐧾','9':'ⵔ' }; const lines = input.split('\n'); const converted = lines.map(line => { const words = line.split(/(\s+)/); return words.map(word => { if (/^\s+$/.test(word)) return word; const symbols = Array.from(word.toUpperCase()).map(c => map[c] || c); if (!symbols.length) return ''; const MOM = symbols[0]; const XMMX = symbols.slice(1); return XMMX.slice().reverse().join('') + MOM + XMMX.join(''); }).join(''); }); const reversed = converted.slice().reverse(); return [...reversed, ...converted.slice(1)].join('\n'); } // ===================== // Backward translation // ===================== function backward(input) { const reverseMap = { // Cyrillic 'ꖌ':'Й','⧮':'Ц','✧':'У','✻':'К','🜊':'Е','⊞':'Н', '⛋':'А','⧲':'Б','𖢌':'В','🮻':'Г','🟗':'Д','🜋':'Ё', '𐋅':'Ж','᪥':'З','∣':'І','◇':'Л','✸':'М','Ⓞ':'О', '☐':'П','🝊':'Р','⯏':'С','✢':'Т','✦':'Ў','𖥠':'Ф', 'ꕤ':'Х','⑄':'Ч','◫':'Ш','⎅':'Щ','❂':'Ъ','∣❁∣':'Ы', '❁':'Ь','𖡛':'Э','𖥤':'Ю','ⵙ':'Я', // Latin '⛋':'A','𖢌':'B','⯏':'C','🟗':'D','🜊':'E','𖥠':'F', 'Ⱉ':'G','⊞':'H','ⵙ':'I','𐫰':'J','✻':'K','◇':'L', '✸':'M','𑽇':'N','Ⓞ':'O','🝊':'P','¤':'Q','⦻':'R', '𖧷':'S','✢':'T','𐫱':'U','🟅':'V','🟏':'W','ꕤ':'X', '✧':'Y','🝱':'Z' }; const lines = input.split('\n'); const centerIndex = Math.floor(lines.length / 2); const centerLine = lines[centerIndex]; const words = centerLine.split(/(\s+)/); return words.map(word => { if (/^\s+$/.test(word)) return word; let decoded = ''; let remaining = word; const keys = Object.keys(reverseMap).sort((a,b) => b.length - a.length); while (remaining.length) { let matched = false; for (const k of keys) { if (remaining.startsWith(k)) { decoded += reverseMap[k]; remaining = remaining.slice(k.length); matched = true; break; } } if (!matched) { decoded += remaining[0]; remaining = remaining.slice(1); } } const mid = Math.floor(decoded.length / 2); return (decoded[mid] + decoded.slice(mid + 1)).toUpperCase(); }).join(''); } ###title-extra, e.g. '(and reverse translation)': ###background-image-source, http://example.com/my_image.png: https://ooooiiiiiiiioooo-ooooiiiiiiiioooo.static.hf.space/ꓨИꟼ.ꓨИꟼ.ꓨVƧ.ꓨVƧ.....⬜𐧾⬜.....SVG.SVG.PNG.PNG ###title-font-name, Name of custom font...: ###title-font-size, Size of title (default=5.5)...: 9 ###language1-font, Language1 font...: ###language2-font, Language2 font...: ###language1-font-size, Language1 font size (default=24)...: 27 ###language2-font-size, Language2 font size (default=24)...: 27