Blog
Text tools

Transliterator: Cyrillic ⇄ Latin

Paste Cyrillic text and get its Latin-letter spelling, suitable for URLs, filenames and messaging with people who don't have a Russian keyboard layout. Or paste Latin text and the tool will try to reconstruct the original Cyrillic. Direction and scheme are both configurable.

Your data never leaves this device

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

"Russian → Latin" direction Every Cyrillic letter is replaced using a lookup table; the letter's case is preserved
"Latin → Russian" direction Latin letters and digraphs (sh, ch, shch/sch, kh/h, yo, yu, ya) are matched against Cyrillic, longest match first
Auto-detect Counts Cyrillic and Latin letters in the text; whichever script is more common wins
Practical scheme е→e, ё→yo, ж→zh, х→kh, ц→ts, ч→ch, ш→sh, щ→shch, ъ/ь→dropped, ы→y, э→e, ю→yu, я→ya
Compact scheme Same idea, shorter: х→h, ц→c, щ→sch, ё→e — fewer digraphs, shorter URLs
Official standard This is NOT the formal GOST 7.79 standard or the passport transliteration scheme — it's a common practical web variant

When it misleads you

How it is calculated

For Cyrillic → Latin, the text is walked character by character: each letter is looked up case-insensitively in the chosen scheme's table, and the result is inserted with case preserved — if the original letter was uppercase, only the first letter of the resulting digraph is capitalized ("Ш" → "Sh").

For Latin → Russian, the table is inverted and the resulting pairs are sorted from the longest Latin sequences to the shortest — that way "shch" is recognized before its substring "sh", instead of being split incorrectly.

The text is scanned left to right: at every position the tool tries the longest matching sequence from the table; if a match is found it's replaced with the corresponding Cyrillic letter and the position advances by the match length; if not, the character is copied unchanged.

Auto-detecting direction counts Cyrillic and Latin letters across the whole text with regular expressions and picks the direction toward whichever script is less represented — on the assumption that "garbled" text is mostly made of characters produced by transliterating the other way.

Questions and answers

Can I use this for a passport or official document transliteration?

No. This is a practical web scheme meant for URLs and messaging; it does not match the official GOST 7.79 standard or passport transliteration rules. For documents, use your government's official transliteration service.

Why does the Latin → Russian conversion sometimes produce the wrong word?

Reverse transliteration is inherently ambiguous: several different Russian letters (for example "й" and "ы") can both turn into the same Latin letter "y", and there's no automatic way to know which one was in the original.

What's the difference between the practical and compact schemes?

The practical scheme is closer to how the sound is actually pronounced (щ → shch, х → kh); the compact scheme is shorter and easier for URLs and hashtags (щ → sch, х → h), but less precise about pronunciation.

What happens to the hard and soft signs when converting to Latin?

They're dropped entirely — no apostrophe or other character is inserted in their place. Converting Latin back to Cyrillic can't restore them, because nothing in the Latin text marks where they were.

How does auto-detecting the direction work?

The tool counts Cyrillic and Latin letters in your text. If Cyrillic is equal or more common, it converts to Latin; if Latin is more common, it converts to Cyrillic. On mixed text this heuristic can guess wrong, so pick the direction manually in that case.

Related tools

All tools