Пиши на български и английски от една и съща клавиатура, без никога да превключваш подредбата. Просто пиши — LangAutoSwitcher разбира на кой език си писал и автоматично конвертира към правилната азбука.
Безплатно, с отворен код, native macOS приложение за въвеждане. Без регистрации, без проследяване. Единствената мрежова връзка е дневна проверка за нова версия (която можеш да изключиш в настройките на Sparkle).
| Платформа | Статус |
|---|---|
| macOS | ✅ Готово — изтегли и инсталирай по-долу |
| Linux (IBus) | 🚧 Скица — Rust ядрото работи, остава IBus частта. Помощ е добре дошла. |
| Windows | 🚧 Скица — Rust ядрото работи, остава TSF частта. Помощ е добре дошла. |
Фонетичното съпоставяне, речниците, разпознаването на език и автокорекцията — всичко това живее в общ Rust пакет (langauto-core). За да портнеш към друга операционна система е достатъчно да напишеш тънкия input-method адаптер за нея.
Пишеш: napisah now kod and sent email to John
Виждаш: написах нов код and sent email to John
Това е цялата идея. Без Cmd+Space. Без сгрешени пароли. Без полу-кирилица, полу-латиница във Facebook постовете.
За всеки, който всеки ден пише на български и английски и му е писнало от:
- Да забравя да превключи клавиатурата преди да напише парола
- Да праща месинджър съобщения, които започват на единия език и свършват на другия
- Постоянно да натиска
Cmd+Spaceпо средата на изречението - Стандартната БДС / Фонетична подредба, при която трябва да мислиш в кой режим си
LangAutoSwitcher просто следи какво пишеш и избира правилната азбука за всяка дума. Кирилската и английската ти клавиатура си остават както са — това е просто още една опция, която можеш да избереш от 🌐 иконата в горната лента.
- Пишеш нормално на обикновена QWERTY клавиатура.
- Буквите се показват подчертани, докато се изписва думата.
- В момента, в който натиснеш интервал, думата се проверява срещу:
- речник с 234 000 английски думи
- речник с 234 000 български думи (фонетично транслитерирани)
- Печелившият език побеждава — или остава както е (английски), или се конвертира в кирилица (български).
- Ако думата съществува на двата езика, тя следва езика на предишната дума, така че „потокът" ти се запазва.
Автоматично коригира и често срещани съкращения: u → you, r → are, плюс правописна корекция с разстояние 1 за двата езика.
| Пишеш | Виждаш | Какво се случи |
|---|---|---|
towa e samo proba |
това е само проба | Всички думи са BG → Кирилица |
hello how are you |
hello how are you | Всички думи са EN → остават |
napisah now kod and want to write |
написах нов код and want to write | Автоматично превключване по средата |
how r u |
how are you | Съкращението е разширено |
kak si |
как си | Български през транслитерация |
john@gmail.com |
john@gmail.com | Имейлите се запазват |
1. Изтегли най-новата версия: 👉 Изтегли LangAutoSwitcher-v2.7.15.dmg
2. Отвори DMG-то и щракни двукратно върху иконата Install LangAutoSwitcher. Малък диалог на български те води през инсталацията — без Terminal, без администраторска парола.
3. Излез от профила си и влез отново. (macOS открива нови методи за въвеждане само при влизане — няма как да го заобиколим, съжаляваме.)
4. Добави го като източник на въвеждане:
- Отвори Системни настройки → Клавиатура → Източници на въвеждане → Edit…
- Натисни + долу вляво → потърси „LangAutoSwitcher" → Add
5. Превключи към него. Натисни 🌐 / иконата на знаме в горната лента и избери LangAutoSwitcher.
Сега просто пиши. 🎉
Следващите обновления: LangAutoSwitcher проверява веднъж на ден за нова версия и показва диалог „Install Update", когато излезе такава. Ръчната инсталация е нужна само веднъж.
rm -rf ~/Library/Input\ Methods/LangAutoSwitcher.appСлед това излез / влез отново.
Всеки латински клавиш съответства на точно една кирилска буква (без диграфи за запомняне):
| Клавиш | → | Клавиш | → | Клавиш | → | Клавиш | → |
|---|---|---|---|---|---|---|---|
a |
а | i |
и | q |
я | y |
ъ |
b |
б | j |
й | r |
р | z |
з |
c |
ц | k |
к | s |
с | [ |
ш |
d |
д | l |
л | t |
т | ] |
щ |
e |
е | m |
м | u |
у | ; |
ж |
f |
ф | n |
н | v |
ж | ` |
ч |
g |
г | o |
о | w |
в | \ |
ю |
h |
х | p |
п | x |
ь | ' |
ь |
Почти никога няма да ти трябва тази таблица — повечето български думи се разпознават от речника директно от това, как естествено би ги напишеш (zdravei, blagodarq, dobre).
Не харесваш подразбраното съпоставяне? Натисни 🌐 менюто → LangAutoSwitcher → Edit Keymap…, за да отвориш ~/Library/Application Support/LangAutoSwitcher/keymap.json в редактора си. Промени която и да е двойка (например смени v на в вместо ж), запази файла и избери Reload Keymap от същото меню — твоите промени се прилагат веднага. Reset Keymap to Defaults възстановява стандартните настройки.
- macOS 14.0 (Sonoma) или по-нов
- Apple Silicon или Intel Mac
LangAutoSwitcher работи изцяло на твоя Mac. Той не:
- праща никакъв текст никъде
- събира статистика или телеметрия
- записва натисканията на клавиши на диска
Речниците са вградени в самото приложение.
Единствената мрежова връзка, която прави, е дневна HTTPS заявка към фийда си за обновления (https://bulgariamitko.github.io/lang-auto-switcher/appcast.xml), за да провери дали има нова версия — обработва се от отворената библиотека Sparkle. По всяко време можеш да изключиш проверките от диалога на Sparkle, който се показва при първото пускане.
Изисква Xcode, XcodeGen и Rust:
brew install xcodegen
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup target add x86_64-apple-darwin aarch64-apple-darwin
xcodegen generate
xcodebuild -project LangAutoSwitcher.xcodeproj -target LangAutoSwitcher -configuration Release build
bash install.shXcode buildът автоматично извиква scripts/build_rust.sh, за да компилира cross-platform langauto-core Rust пакета като универсална статична библиотека.
След това излез / влез отново и добави го от Системни настройки, както по-горе.
swift test_cases.swift # 163 Swift интеграционни теста
cargo test # 25 Rust юнит тестаlangauto-core/ Rust пакет — фонетика, речници, разпознаване, автокорекция
langauto-linux/ Linux IBus адаптер (скица)
langauto-windows/ Windows адаптер (скица)
LangAutoSwitcher/ macOS Swift приложение (свързва langauto-core като статична библиотека)
Цялата споделена логика живее в langauto-core. Всяка платформа пише свой тънък адаптер, който я свързва с ядрото. Виж langauto-core/README.md за C ABI-то.
Архитектурата поддържа всяка двойка „латиница ↔ нелатиница". За да добавиш нов:
- Добави съпоставяне в
map_char()отlangauto-core/src/phonetic.rs - Сложи списък с думи (по една на ред, в целевата азбука) в
LangAutoSwitcher/Resources/ - Свържи го в
langauto-core/src/detector.rs - Добави тестове в
test_cases.swiftиlangauto-core/src/*/tests - Отвори PR
Добри кандидати: руски, украински, сръбски (други кирилски езици), гръцки, грузински, арменски.
Pull request-и са добре дошли. За доклади за бъгове, моля включи:
- Версия на macOS
- Какво си написал
- Какво си очаквал спрямо какво се появи
MIT — прави с него каквото искаш, включително за комерсиална употреба.
Ако LangAutoSwitcher ти спестява време, добави ⭐ на repo-то и го сподели — така другите българи с Mac го намират.