Cyrillic ↔ Latin Keyboard & Converter

Type, convert, and transliterate between Cyrillic and Latin scripts with a fully customizable on-screen keyboard. Supports multiple languages with pluggable language packs. All processing happens in your browser.

How It Works

1

Pick a mode

Choose Converter for dual-pane live transliteration, or IME to type Latin keys on your physical keyboard and produce Cyrillic in real time.

2

Type or paste

Use the on-screen virtual keyboard, your physical keyboard, or paste text. The result updates instantly with the selected transliteration scheme.

3

Customize and save

Open the customizer to change key size, spacing, radius, colors, fonts, or override individual keys. Save your setup as a preset and export it as JSON.

Frequently Asked Questions

Which Cyrillic languages are supported?

Russian ships by default. Bulgarian, Serbian, Ukrainian, and Macedonian are planned and slot in via the same pluggable language-pack system, so adding one is a single data file.

What is the difference between Converter mode and IME mode?

Converter mode shows two synced text areas: type in one and the other updates with the transliteration in the opposite script. IME mode is a single editor where your physical Latin keystrokes produce Cyrillic characters in real time, like a native operating-system input method.

Which transliteration schemes are included?

For Russian: BGN/PCGN (English-language standard), ISO 9 (strict 1:1 bijective), GOST 7.79 System B (ASCII-safe with digraphs), and the ICAO Passport scheme used in Russian travel documents.

Why does typing 'sh' produce one Cyrillic letter instead of two?

Most schemes use multi-character digraphs (e.g. sh → ш, ch → ч, shch → щ). In IME mode the tool buffers the previous keystroke for a short window and rewrites it when a digraph match is found, so typing feels natural.

How does keyboard customization work?

Open the customizer to adjust global properties (key size, gap, corner radius, font, color theme) or click any key in the live preview to override its label, color, and width. Save the result as a named preset, switch between presets, or export and re-import them as JSON.

Is my text private?

Yes. All transliteration, customization, and preset storage happens entirely in your browser. Nothing is sent to a server, and presets are saved in your browser's localStorage.

Can I use this on mobile?

Yes. The layout is fully responsive: keys are sized for thumb tapping (≥44px), the virtual keyboard is full-width, and the customizer opens as a bottom sheet.

Is it accessible?

Every interactive element has an ARIA label, full keyboard navigation is supported (arrow keys in the virtual keyboard), focus rings are visible, and contrast meets WCAG-AA in both light and dark themes. Reduced-motion preferences are respected.