The Best Non-Latin Text Expander (Arabic, Cyrillic, Hebrew, CJK)

Quick answer: Most text expanders are built around Latin keyboards and silently do nothing when you switch to Arabic, Russian, Hebrew, Japanese or Hindi input. Lightning Assist is a native desktop text expander (Windows, macOS, Linux) that reads your keys through the keyboard layout your operating system has active. On keyboards that type letters directly (Arabic, Persian, Hebrew, Cyrillic and Greek) your snippets expand inline, as you type. On keyboards that compose text through an input method or whose keys the app can't read one by one (Chinese, Japanese, Korean, Thai, Vietnamese, Hindi and other Indic scripts) you use Hotkey mode: type the abbreviation, then press a key such as F1. A new account starts with a greeting snippet in its own language, beginning with a symbol its keyboard types without Shift.
This post explains what happens with each script family, and what a correctly behaving non-Latin text expander looks like.
Why Non-Latin Keyboards Break Many Text Expanders
Many as-you-type text expanders work the same way under the hood: they watch your keystrokes for a prefix character (commonly ; or /) that signals "what follows is a snippet abbreviation, not regular text." When the tool sees the prefix followed by a known abbreviation, it erases what you typed and inserts the full text.
The problem: that prefix is usually chosen for a Latin keyboard, where ; sits on its own key. On many non-Latin keyboards the same physical key types a letter instead. And Chinese, Japanese and Korean text is composed through an Input Method Editor (IME) that sits between the keyboard and the application, so reading raw keystrokes is unreliable whichever prefix a tool picks.
The result is rarely an error message. The expander just does nothing, every time, on a keyboard it wasn't built for. Users assume they configured something wrong and spend hours in settings, when the real cause is a trigger design that only fits one kind of keyboard.
How Lightning Assist Approaches It
Two things make the difference:
- The prefix belongs to each snippet, not to the app. Every snippet has an abbreviation and an optional Prefix field (symbols only). You can use
;,=, another symbol, or none, snippet by snippet. If you pick a symbol your current keyboard can't type directly, the snippet editor warns you before you save. - The starter snippet fits your keyboard. A new account gets a greeting snippet in its system language, starting with a symbol that language's usual keyboard types without Shift. The first time the app's Activation screen opens, it checks that symbol against your real keyboard and swaps it if needed.
The activation mode is one setting for your account, on the app's Activation screen: Inline (the default) or Hotkey. When that screen sees a keyboard where Inline can't work, it marks Inline as unavailable and switches you to Hotkey.
Script by Script
Arabic and Persian: Inline, with =
On Arabic keyboard layouts, the key where English keyboards have ; types the letter ك (kaf), and the Arabic semicolon ؛ needs Shift. A tool that waits for ; never fires. Arabic is a direct-input script, though: what you type lands straight in the text field, with no composition step, so Lightning Assist reads it like any Latin keyboard and expands inline.
The Arabic and Persian layouts both type = without Shift, and = never appears inside a word, so new accounts start with =مرحبا (Arabic) or =سلام (Persian). Full walkthrough: the Arabic text expander guide.
Hebrew: Inline, with ;
Hebrew keyboards are direct-input too, and ; is on the base layer of the Hebrew layout, so Hebrew accounts start with ;שלום. Write your abbreviations in Hebrew and type them on your Hebrew keyboard.
Cyrillic (Russian, Ukrainian, Bulgarian…): Inline, with = or ;
Cyrillic is direct-input, and snippets expand inline. What differs is punctuation: on the Russian and Ukrainian ЙЦУКЕН layouts, ;, , and / all need Shift, while = doesn't. So Russian accounts start with =привет, Ukrainian with =привит and Belarusian with =прывітанне. The Bulgarian layouts do have ; on the base layer, so Bulgarian accounts start with ;здравей. Full walkthrough: text expander for Russian & Cyrillic keyboards.
Greek: Inline, with =
Greek is typed directly as well. ; is a poor choice there: on the Greek layout the key where English keyboards have ; is the accent (tonos) key, and ; is also the Greek question mark. So Greek uses =, and new accounts start with =γεια. Greek accounts created before version 2.6.6 of the app started in Hotkey mode; they can switch to Inline on the Activation screen.
Chinese, Japanese and Korean: Hotkey mode
Japanese, Korean and Chinese input goes through an Input Method Editor (IME). You type phonetic characters (romaji, pinyin or jamo), the IME shows candidates, and you pick one before the final text reaches the application. While text sits in the IME's composition buffer, the application hasn't received it yet, so an expander that watches keystrokes can't reliably tell what you are typing.
So Lightning Assist uses Hotkey mode for these keyboards: type your abbreviation, through the IME or in direct input, then press your hotkey, and the finished text is replaced with the snippet. The starter snippets are 你好, こんにちは and 안녕, with no prefix. More in the Chinese, Japanese & Korean guide.
Thai, Vietnamese, Hindi and Other Indic Scripts: Hotkey mode
On Thai, Vietnamese (Telex, VNI), Hindi and other Indic keyboards, Georgian, Armenian, Khmer, Lao and Myanmar, the app can't reliably read what you type key by key: either the text is composed by an input method, or the keys don't map one-to-one to the letters that appear. These keyboards use Hotkey mode: type the abbreviation, press your hotkey, and the expansion replaces what you typed. Starter snippets such as สวัสดี or नमस्ते have no prefix.
Inline vs. Hotkey Mode: A Reference Table
| Script / Keyboard | Mode | Starter snippet |
|---|---|---|
| Latin (QWERTY, QWERTZ, AZERTY, etc.) | Inline | ;hello (or the greeting in your language) |
| Arabic | Inline | =مرحبا |
| Persian | Inline | =سلام |
| Hebrew | Inline | ;שלום |
| Russian | Inline | =привет |
| Ukrainian | Inline | =привит |
| Bulgarian | Inline | ;здравей |
| Greek | Inline | =γεια |
| Japanese | Hotkey | こんにちは |
| Korean | Hotkey | 안녕 |
| Chinese (Simplified/Traditional) | Hotkey | 你好 |
| Vietnamese | Hotkey | — |
| Thai | Hotkey | สวัสดี |
| Hindi / Indic | Hotkey | नमस्ते |
The always-current version of this table lives on the supported languages and keyboards page.
What Is Hotkey Mode and How Does It Work?
Hotkey mode expands a snippet when you press a key, instead of watching your typing:
- You type your snippet's abbreviation as usual, through your IME or keyboard, without the prefix.
- You press your hotkey. You pick it from a list in the app: function keys such as F1, or combinations with Alt or Ctrl.
- Lightning Assist replaces the abbreviation with the snippet, right at your cursor.
The advantage: Hotkey mode reads the finished text instead of intercepting keys mid-composition, so it doesn't interfere with an IME.
The tradeoff: expansion isn't automatic. You type the abbreviation, then press the key. On keyboards where Inline works (Latin, Arabic, Hebrew, Cyrillic, Greek), Inline is faster for snippets you use all day. On Linux under Wayland, a single key such as F1 can't be reserved system-wide, so choose a Ctrl combination there.
Works in Every App, Not Just Browsers
Lightning Assist is a native desktop application. It works in:
- Email clients (Outlook, Gmail in the browser, Apple Mail, Thunderbird)
- Web browsers (Chrome, Firefox, Safari, Edge)
- Office suites (Word, Google Docs, LibreOffice)
- Chat and communication apps (Slack, Teams, WhatsApp Web)
- Code editors (VS Code, JetBrains IDEs)
- Other desktop applications with a text field
Browser extensions are limited to the browser. A desktop app is what lets keystroke-level inline expansion work for direct-input scripts like Arabic, Hebrew, Cyrillic and Greek, and Hotkey mode work for every other keyboard, in any app.
How Other Tools Compare
TextExpander offers apps for Mac and Windows and an extension for Chrome; its download page lists no Linux app.
Espanso is free and cross-platform (Windows, macOS, Linux). Its snippets ("matches") live in YAML files that you edit in a text editor; there is no built-in visual editor. Working with a non-Latin trigger means typing those characters correctly into the configuration file. A strong option for people comfortable with configuration files; a high barrier for everyone else.
Lightning Assist gives each script a starting point that fits its keyboard (a symbol you can type, or Hotkey mode where inline can't work), and lets you change the prefix snippet by snippet in a visual editor.
Getting Started with Non-Latin Snippet Expansion
Step 1 — Download Lightning Assist. Try free for 14 days, no credit card required. Available for Windows, macOS, and Linux.
Step 2 — Try your starter snippet. Your library already has a greeting snippet in your system language. Type it with your keyboard active and watch it expand (or, in Hotkey mode, type it and press your hotkey).
Step 3 — Check the Activation screen. It shows Inline or Hotkey. On keyboards where Inline can't work, Inline is marked as unavailable and Hotkey is used.
Step 4 — Create snippets in your language. Abbreviations and snippet text accept any Unicode text. In Inline mode, give each snippet a prefix your keyboard types directly, or none. In Hotkey mode, make the abbreviation something you can comfortably type or compose through your IME.
Step 5 — Use it everywhere. Start typing in your email client, browser, or any other app. Expansion works whichever app is in focus.
Pricing
Lightning Assist's free plan includes up to 20 snippets, folders and one team, with unlimited expansion. Pro is $5.99/month for an unlimited library, suggestions as you type, Lightning Recall and up to 15 teams. There is a 14-day free trial with no credit card required. Use promo code LIFETIME50 for $2.99/month. Full plan details on the pricing page.
AI features (AI Chat, AI Commands, AI Enhance) work on every plan and consume AI Credits; push-to-talk voice typing (AI Speech) consumes Speech credits. Pro includes 1000 of each every month, and on the free plan you buy credits as you need them.
Frequently Asked Questions
Which non-Latin keyboards support inline (as-you-type) text expansion?
Arabic, Persian, Hebrew, Cyrillic (Russian, Ukrainian, Bulgarian and others) and Greek: they are typed directly, so snippets expand as you type. Chinese, Japanese and Korean (through an IME), Thai, Vietnamese, Hindi and other Indic scripts use Hotkey mode.
Why do some starter snippets begin with = instead of ;?
Because ; needs Shift, or isn't there at all, on those keyboards. On Russian and Ukrainian layouts ; is Shift+4; on Arabic the ; key types ك; on Greek it is the accent key. = is typed without Shift on all of them. The prefix is optional and set per snippet, so you can change it.
I type in both Arabic and English. Do I need separate snippet libraries?
No. One library works across all keyboard layouts. Each snippet has its own prefix and abbreviation, so =شكر and ;sig can sit side by side, and each fires when you type its exact characters.
Can I use Japanese or Chinese snippets?
Yes, through Hotkey mode. Type the abbreviation, press your hotkey, and Lightning Assist replaces it with the snippet. Snippet text can be any Unicode text, including Japanese, Chinese or Korean.
Does Lightning Assist send my keystrokes anywhere to detect my keyboard?
No. The app asks your operating system which keyboard layout is active, on your device. Your keystrokes are matched locally and are never sent to a server.
What happens if I switch keyboard layouts mid-session?
Lightning Assist reads your keys through whichever layout is active, so each snippet fires when you type its exact characters, on any layout. The mode itself (Inline or Hotkey) doesn't switch back and forth; it is one setting for your account. If the Activation screen sees a keyboard where Inline can't work, it switches the account to Hotkey, and you can switch back yourself.
Is there a Linux version?
Yes. Lightning Assist runs natively on Windows, macOS, and Linux. TextExpander's download page lists no Linux app.
Sources
- Unicode character U+061B — Arabic semicolon — Unicode reference
- Russian keyboard layout — ЙЦУКЕН — layout reference
- Arabic (101) keyboard layout — layout reference
- Input Method Editor — Microsoft documentation — IME architecture
- TextExpander downloads — platforms offered
- Espanso — Getting started — how matches are configured
- Lightning Assist pricing — official plan details