Result
This page has no server side at all. The table you paste is parsed by JavaScript inside your own browser, the chart is drawn on a canvas element on your machine, and the export file is assembled locally. Nothing is uploaded, stored or written to any log. You can disconnect from the network after the page has loaded and everything will still work — which is the simplest way to verify the claim yourself.
Facts and limits of this method
| Principle | Substitution by physical key position — the standard ЙЦУКЕН layout mapped over QWERTY |
|---|---|
| Auto-detection | Looks at which letters are more common in the text — Latin or Cyrillic |
| Case | Preserved — uppercase letters stay uppercase after conversion |
| Untouched characters | Digits and most punctuation not on a letter key are left unchanged |
When it misleads you
- Auto-detection decides by majority: if a text has more Latin letters than Cyrillic ones, it's treated as "Russian typed in English," and vice versa. On very short text, or text with roughly equal counts of both alphabets, auto-detection can guess wrong — pick the direction manually in that case.
- Short strings that happen to be real words in both languages after conversion either way are inherently ambiguous — the tool can't "guess" the author's intent and just applies the chosen direction mechanically.
- Characters not on the main alphabetic part of the layout (digits, most punctuation aside from the few standardly mapped to letter keys) aren't converted and are left as-is — that's a deliberate limitation of the standard key mapping, not a bug.
- The mapping accuracy is based on one common variant of the ЙЦУКЕН layout — on keyboards with a non-standard layout (some laptop or regional variants, for example), the result can differ slightly.
How it is calculated
The tool uses a key-mapping table: every letter on the English QWERTY layout is paired with the letter that sits in the same physical position on the Russian ЙЦУКЕН layout, and vice versa.
In auto-detect mode, the tool first counts how many Latin and how many Cyrillic letters the text has; if Latin letters are more or equal, the text is treated as "Russian typed as English," otherwise as "English typed as Russian."
Every character of the text is looked up in the corresponding table (in the chosen direction) and replaced with the match found; the letter's case (lowercase/uppercase) is preserved regardless of the case in the table.
Characters not found in the table — digits, most punctuation, characters from other alphabets — are left unchanged.
Questions and answers
How do I know which direction to convert?
Leave it on "detect automatically" — that usually works correctly. If the result comes out wrong, switch to the correct direction manually in the dropdown.
Why didn't digits and some punctuation change?
The standard key mapping is only defined for the alphabetic part of the layout — the number row and most punctuation aren't part of it, so they stay as they were in the original text.
Is letter case preserved during conversion?
Yes, an uppercase letter stays uppercase after conversion, a lowercase one stays lowercase.
Is my text sent anywhere?
No, all the processing runs in your browser.