gizmobench

Russian Keyboard

The ЙЦУКЕН layout, clicked rather than installed: press a key and that letter lands where the cursor is, so you can click a few characters, type a few more in the box, and carry on in order. Shift gives the capitals and stays on until you press it again, ё has a key of its own, and Undo puts back the last hundred steps with the cursor where it was. Four more scripts sit alongside it with the keys those scripts actually need, not a Russian board with letters swapped: Greek with the final sigma ς and an accent palette that composes ά into one character, Ukrainian with і, ї, є, ґ and the apostrophe, Persian right to left with ی and ک, the Persian digits and a real zero-width non-joiner key, and Thai as grouped consonants, vowels and tone marks rather than a pretend QWERTY. Nothing here translates or transliterates: it types the characters you press, as ordinary Unicode, and none of it leaves your browser.

The ЙЦУКЕН layout, the one printed on a Russian keycap set, with ё on a key of its own.

0 / 100,000 characters
Yo, on its own key

Click a key, or type in the box with your own keyboard.

Language
Case
Characters
0 / 100,000

Click a key and the character lands where the cursor is, so you can click, type, click again and it stays in order. Your own keyboard types into the box as usual: this page does not remap your keys, it gives you the characters they do not have. Shift stays on until you press it again, and Thai and Persian have no case, so the control is not offered there. Backspace here removes a character together with the marks sitting on it, and Undo puts back the last hundred steps, text and cursor together.

What comes out

  • привет, key by keyeach key lands at the caret, in order
    привет
  • Greek καλημέραthe accented letter is one composed character
    καλημέρα
  • Ukrainian українськаі, ї, є and ґ, not Russian substitutions
    українська
  • Thai กา and ก่าthe tone mark keeps its own codepoint
    กา ก่า
  • Persian متن‌فارسیthe zero-width non-joiner is kept
    متن‌فارسی
Exact about characters: Every key inserts the character it shows, encoded as ordinary Unicode, at the cursor: this types text and does not translate or transliterate it. Greek accents are composed into single characters, Persian keeps the zero-width non-joiner, and deletion removes a character with its combining marks rather than leaving one behind. Nothing you type leaves the browser. Your draft and the language you picked are kept in this browser alone, and the Start over button at the top of the page forgets them. Sub-pages open in their own script without changing the language you chose here.

Common questions

How do I type Russian letters without a Russian keyboard?
Click them. The three rows on the stage are the ЙЦУКЕН layout, the one printed on a Russian keycap set, and each key inserts its letter where the cursor is in the box above. Clicking and typing interleave: put the cursor in the middle of a word, click a key, and the letter goes there rather than at the end. Shift switches the whole board to capitals and stays on until you press it again, which is what you want for a name or a heading, and ё sits on a key of its own under the board because the layout puts it outside the letter rows. Your own keyboard still types into the box as it always does: this page does not remap your keys, it gives you the characters they do not have. When you are done, Copy puts the text on the clipboard and Download saves it as a UTF-8 text file.
Does this translate English into Russian?
No, and it does not transliterate either. Some on-screen keyboard pages take "privet" and guess at привет. This one inserts exactly the character on the key you pressed, so what you get is what you chose, character by character. That is the honest trade: you need to know which letters you want, and in exchange nothing is guessed, corrected or auto-completed on the way in, and the text that lands on your clipboard is ordinary Unicode that matches a search and a spell check anywhere you paste it.
Is anything I type sent to a server?
No. The five layouts are part of the page and the typing happens in your browser, so there is nothing to upload and no account to make. Once the page has loaded it keeps working with no connection. Your draft and the language you picked are kept in this browser alone so the page opens where you left it, and the Start over button at the top of the page forgets both. The box holds up to 100,000 characters; past that a key press is refused with the limit named, rather than the text being quietly cut.
Which other scripts are here, and why those four?
Greek, Ukrainian, Thai and Persian, because each one needs keys a Russian board cannot give it. Greek has the final sigma ς and a palette of the monotonic accents and diaereses, and pressing one composes the letter into a single character rather than a letter followed by a floating mark. Ukrainian has і, ї, є, ґ and the apostrophe, and none of the Russian ы, э, ъ or ё, which is the difference that matters when the text is going into a form. Persian runs right to left with Persian ی and ک rather than their Arabic lookalikes, the Persian digits, and a zero-width non-joiner key. Thai is all 44 consonants, the vowels, the tone marks and the Thai digits. Switching script keeps whatever you have already written.
Is the Thai section a real Thai keyboard layout?
It is a grouped character palette, and the page says so rather than implying otherwise. The keys are arranged as consonants first, in code order from ก to ฮ, then the vowels, then the tone marks, signs and Thai digits, which is how you find a character you can see but cannot touch-type. It is not the Kedmanee arrangement a physical Thai keyboard is printed with, so the positions here will not teach you where the keys are on that board. What it does give you is every Thai character, inserted exactly as its own code point: ก followed by า stays two characters, and ก with a tone mark and a vowel keeps all three in the order you pressed them.
What is the ZWNJ key on the Persian layout for?
It inserts U+200C, the zero-width non-joiner, the invisible character that keeps two letters from joining while leaving no space between them. Persian needs it constantly, in plurals and in compounds, and it is the thing most on-screen keyboards leave out: type the words without it and the text looks subtly wrong to a reader. Here it is a key like any other, labelled ZWNJ because it draws as nothing, and it survives everything the page does with your text. Copy and download both hand back the characters in the order you typed them, with no direction marks added, so the non-joiner arrives in the document exactly where you put it.
Why does one backspace sometimes remove two characters?
Because a character and the marks sitting on it are one thing to delete. Backspace on this page removes a whole grapheme: a Thai consonant leaves with its tone mark, a Greek letter leaves with its diaeresis, and a Persian letter leaves with the non-joiner that followed it. The alternative, taking one code point at a time, leaves an orphan mark that jumps onto the character in front of it and looks like a bug in the font. Undo works the same way round: it restores the text and the cursor position together, up to a hundred steps back, so a mistaken click is one press away from being fixed.

Every key inserts the character it shows, encoded as ordinary Unicode, at the cursor: this types text and does not translate or transliterate it. Greek accents are composed into single characters, Persian keeps the zero-width non-joiner, and deletion removes a character with its combining marks rather than leaving one behind. Nothing you type leaves the browser.