{"id":15717232,"url":"https://github.com/gershnik/translit","last_synced_at":"2025-05-13T00:42:01.309Z","repository":{"id":208450633,"uuid":"720721811","full_name":"gershnik/Translit","owner":"gershnik","description":"macOS transliteration input method for Russian and Hebrew","archived":false,"fork":false,"pushed_at":"2025-02-02T06:42:30.000Z","size":637,"stargazers_count":9,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-01T05:11:39.525Z","etag":null,"topics":["cyrillic","hebrew","input-method","keyboard","macos","macosx","mnemonic","osx","phonetic","russian","translit","transliterate","transliterate-russian","transliteration","transliterator"],"latest_commit_sha":null,"homepage":"","language":"Objective-C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gershnik.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-19T11:53:34.000Z","updated_at":"2025-03-10T17:09:13.000Z","dependencies_parsed_at":"2023-11-26T09:22:35.502Z","dependency_job_id":"9f2ce0d7-e465-4d8a-8f72-45540e82b2ec","html_url":"https://github.com/gershnik/Translit","commit_stats":null,"previous_names":["gershnik/translit"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gershnik%2FTranslit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gershnik%2FTranslit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gershnik%2FTranslit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gershnik%2FTranslit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gershnik","download_url":"https://codeload.github.com/gershnik/Translit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253850849,"owners_count":21973667,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cyrillic","hebrew","input-method","keyboard","macos","macosx","mnemonic","osx","phonetic","russian","translit","transliterate","transliterate-russian","transliteration","transliterator"],"created_at":"2024-10-03T21:49:08.762Z","updated_at":"2025-05-13T00:42:01.278Z","avatar_url":"https://github.com/gershnik.png","language":"Objective-C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"#  Translit\n\n![macOS](https://img.shields.io/badge/macOS-10.13_and_above-blue?style=flat\u0026logo=apple\u0026logoColor=F0F0F0\u0026labelColor=black)\n[![License](https://img.shields.io/badge/license-GPLv3-red.svg)](https://opensource.org/license/gpl-3-0/)\n[![Tests](https://github.com/gershnik/Translit/actions/workflows/test.yml/badge.svg)](https://github.com/gershnik/Translit/actions/workflows/test.yml)\n\n\u003c!-- Links --\u003e\n[input_sources]:  https://support.apple.com/guide/mac-help/change-input-sources-settings-mchl84525d76/mac\n[translit_ru]: https://translit.ru\n[releases]: https://github.com/gershnik/Translit/releases\n[cyrillic-transliterator]: https://github.com/archagon/cyrillic-transliterator\n\n\u003c!-- End Links --\u003e\n\nThis macOS keyboard _[input source][input_sources]_ allows a user familiar only with Latin alphabet keyboard to \ntype in other languages by using common Latin transliteration of the target language letters. \nCurrently supported target languages are Hebrew and Russian. \nTo give an example, typing `privet` in Russian mode will produce `привет` and typing `hi` in Hebrew mode will produce `הי`.\n\n\n\u003c!-- TOC depthfrom:2 --\u003e\n\n- [Features](#features)\n- [Installation](#installation)\n    - [Keyboard shortcuts](#keyboard-shortcuts)\n    - [Viewing transliteration mappings](#viewing-transliteration-mappings)\n    - [Uninstallation](#uninstallation)\n- [Mappings](#mappings)\n    - [Russian](#russian)\n    - [Hebrew](#hebrew)\n- [Building](#building)\n\n\u003c!-- /TOC --\u003e\n\n## Features\n\n- Type normally in any window without copy/pasting from a separate app/browser\n- Supports multiple languages: currently Russian and Hebrew with an easy way to add more if desired.\n- Supports modern macOS versions\n- Distributed as signed and notarized installer - you don't need to build it yourself (but you can if you want to).\n- Reliable installation and uninstallation on recent versions of macOS.\u003cbr/\u003e \n  Starting roughly with macOS Ventura, Apple has introduced various bugs into its keyboard input sources architecture \n  that make adding and removing them unreliable, error prone and require log off. The installer and uninstaller for this\n  application makes the whole process reliable and simple for the user.\n- Not using punctuation like `'` or `#` for transliteration.\u003cbr/\u003e\n  When typing normally on macOS (as opposed to some \n  designated transliteration app) switching between input modes is more complicated - you cannot just press `ESC` like\n  [translit.ru][translit_ru] does. This makes typing text with lots of punctuation annoying. Additionally hijacking `'`\n  interferes with macOS \"smart quotes\" if you use this feature. Avoiding punctuation, such  as using `q` for `ь` \n  and `qq` for `ъ` makes typing much smoother.\n\n  There are existing macOS transliteration projects on Github such as [cyrillic-transliterator][cyrillic-transliterator] \n  and its forks but none of them supports all the features above.\n\n## Installation\n  \n* Navigate to [Releases][releases] page and download `Translit-x.y.pkg` package installer. \n* Run it and install the app\n* You will be prompted to log off at the end of the installation. This is unfortunately necessary. Apple provides\n  no way to avoid this.\n* After you log back in launch `System Preferences ⇒ Keyboard`\n* In the `Text Input` section press `Edit...` button for `Input Sources`\u003cbr/\u003e\u003cbr/\u003e\n  \u003cimg src=\"doc/Edit.png\" width=\"500px\"\u003e\u003cbr/\u003e\n* Press the `+` button to add an input source\u003cbr/\u003e\u003cbr/\u003e\n  \u003cimg src=\"doc/Plus.png\" width=\"500px\"\u003e\u003cbr/\u003e\n* Navigate to `Russian` or `Hebrew` language and select `Russian Translit` or `Hebrew Translit` as desired. If you wish \n  to use both press the `+` again after adding one.\n\nYou are all set. If you have enabled `Show Input menu in menu bar` setting\n\n\u003cimg src=\"doc/ShowMenu.png\" width=\"600px\"\u003e\n\nyou should see something like this in it\n\n\u003cimg src=\"doc/LangMenu.png\" width=\"200px\"\u003e\n\nSelect the newly added input method and you can start typing in it anywhere.\n\n### Keyboard shortcuts\n\nBy default macOS sets `⌃Space` and `⌃⌥Space` to switch between different input sources. Which is far more convenient when typing than using the menu bar.\n\nIf these aren't working navigate to `System Preferences ⇒ Keyboard ⇒ Keyboard Shortcuts ⇒ Input Sources` and enable or change them.\n\n### Viewing transliteration mappings\n\nWhen a transliteration input mode is selected the pop-up system menu will show addition entries like these\n\n\u003cimg src=\"doc/TranslitMenu.png\" width=\"200px\"\u003e\n\nSelect `Show Mappings` to display which Latin characters and combination map to which letters of the target language.\n\n\n### Uninstallation\n\nTo completely uninstall Translit issue the following commands in Terminal\n\n* If you installed Translit only for yourself\n\n```bash\n~/Library/Input\\ Methods/Translit.app/Contents/MacOS/Translit --uninstall\n```\n\n* If you installed Translit for all users\n\n```bash\n/Library/Input\\ Methods/Translit.app/Contents/MacOS/Translit --uninstall\n```\n\nYou can also see the exact command for your installation in `About Translit` menu with a translit mode selected.\n\nJust like with installation, you will be prompted for a logoff at the end. This, unfortunately, is also necessary due\nto Apple's bugs. \n\n## Mappings\n\nThe character mappings for Russian and Hebrew are given in the following tables\n\n### Russian\n\n\u003ctable\u003e\u003ctr\u003e\n\u003ctd\u003eА\u003c/td\u003e\u003ctd\u003eа\u003c/td\u003e\u003ctd\u003eБ\u003c/td\u003e\u003ctd\u003eб\u003c/td\u003e\u003ctd\u003eВ\u003c/td\u003e\u003ctd\u003eв\u003c/td\u003e\u003ctd\u003eГ\u003c/td\u003e\u003ctd\u003eг\u003c/td\u003e\n\u003ctd\u003eД\u003c/td\u003e\u003ctd\u003eд\u003c/td\u003e\u003ctd\u003eЕ\u003c/td\u003e\u003ctd\u003eе\u003c/td\u003e\u003ctd\u003eЁ\u003c/td\u003e\u003ctd\u003eё\u003c/td\u003e\u003ctd\u003eЖ\u003c/td\u003e\u003ctd\u003eж\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n\u003ctd\u003eA\u003c/td\u003e\u003ctd\u003ea\u003c/td\u003e\u003ctd\u003eB\u003c/td\u003e\u003ctd\u003eb\u003c/td\u003e\u003ctd\u003eV\u003c/td\u003e\u003ctd\u003ev\u003c/td\u003e\u003ctd\u003eG\u003c/td\u003e\u003ctd\u003eg\u003c/td\u003e\n\u003ctd\u003eD\u003c/td\u003e\u003ctd\u003ed\u003c/td\u003e\u003ctd\u003eE\u003c/td\u003e\u003ctd\u003ee\u003c/td\u003e\u003ctd\u003eJo\u003cbr\u003eYo\u003cbr\u003eÖ\u003cbr\u003eË\u003c/td\u003e\u003ctd\u003ejo\u003cbr\u003eyo\u003cbr\u003eö\u003cbr\u003eë\u003c/td\u003e\u003ctd\u003eZh\u003c/td\u003e\u003ctd\u003ezh\u003c/td\u003e\n\u003c/tr\u003e\u003c/table\u003e\n\u003ctable\u003e\u003ctr\u003e\n\u003ctd\u003eЗ\u003c/td\u003e\u003ctd\u003eз\u003c/td\u003e\u003ctd\u003eИ\u003c/td\u003e\u003ctd\u003eи\u003c/td\u003e\u003ctd\u003eЙ\u003c/td\u003e\u003ctd\u003eй\u003c/td\u003e\u003ctd\u003eК\u003c/td\u003e\u003ctd\u003eк\u003c/td\u003e\n\u003ctd\u003eЛ\u003c/td\u003e\u003ctd\u003eл\u003c/td\u003e\u003ctd\u003eМ\u003c/td\u003e\u003ctd\u003eм\u003c/td\u003e\u003ctd\u003eН\u003c/td\u003e\u003ctd\u003eн\u003c/td\u003e\u003ctd\u003eО\u003c/td\u003e\u003ctd\u003eо\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n\u003ctd\u003eZ\u003c/td\u003e\u003ctd\u003ez\u003c/td\u003e\u003ctd\u003eI\u003c/td\u003e\u003ctd\u003ei\u003c/td\u003e\u003ctd\u003eJ\u003c/td\u003e\u003ctd\u003ej\u003c/td\u003e\u003ctd\u003eK\u003c/td\u003e\u003ctd\u003ek\u003c/td\u003e\n\u003ctd\u003eL\u003c/td\u003e\u003ctd\u003el\u003c/td\u003e\u003ctd\u003eM\u003c/td\u003e\u003ctd\u003em\u003c/td\u003e\u003ctd\u003eN\u003c/td\u003e\u003ctd\u003en\u003c/td\u003e\u003ctd\u003eO\u003c/td\u003e\u003ctd\u003eo\u003c/td\u003e\n\u003c/tr\u003e\u003c/table\u003e\n\u003ctable\u003e\u003ctr\u003e\n\u003ctd\u003eП\u003c/td\u003e\u003ctd\u003eп\u003c/td\u003e\u003ctd\u003eР\u003c/td\u003e\u003ctd\u003eр\u003c/td\u003e\u003ctd\u003eС\u003c/td\u003e\u003ctd\u003eс\u003c/td\u003e\u003ctd\u003eТ\u003c/td\u003e\u003ctd\u003eт\u003c/td\u003e\n\u003ctd\u003eУ\u003c/td\u003e\u003ctd\u003eу\u003c/td\u003e\u003ctd\u003eФ\u003c/td\u003e\u003ctd\u003eф\u003c/td\u003e\u003ctd\u003eХ\u003c/td\u003e\u003ctd\u003eх\u003c/td\u003e\u003ctd\u003eЦ\u003c/td\u003e\u003ctd\u003eц\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n\u003ctd\u003eP\u003c/td\u003e\u003ctd\u003ep\u003c/td\u003e\u003ctd\u003eR\u003c/td\u003e\u003ctd\u003er\u003c/td\u003e\u003ctd\u003eS\u003c/td\u003e\u003ctd\u003es\u003c/td\u003e\u003ctd\u003eT\u003c/td\u003e\u003ctd\u003et\u003c/td\u003e\n\u003ctd\u003eU\u003c/td\u003e\u003ctd\u003eu\u003c/td\u003e\u003ctd\u003eF\u003c/td\u003e\u003ctd\u003ef\u003c/td\u003e\u003ctd\u003eH\u003cbr\u003eX\u003c/td\u003e\u003ctd\u003eh\u003cbr\u003ex\u003c/td\u003e\u003ctd\u003eC\u003c/td\u003e\u003ctd\u003ec\u003c/td\u003e\n\u003c/tr\u003e\u003c/table\u003e\n\n\u003ctable\u003e\u003ctr\u003e\n\u003ctd\u003eЧ\u003c/td\u003e\u003ctd\u003eч\u003c/td\u003e\u003ctd\u003eШ\u003c/td\u003e\u003ctd\u003eш\u003c/td\u003e\u003ctd\u003eЩ\u003c/td\u003e\u003ctd\u003eщ\u003c/td\u003e\u003ctd\u003eЪ\u003c/td\u003e\u003ctd\u003eъ\u003c/td\u003e\u003ctd\u003eЫ\u003c/td\u003e\u003ctd\u003eы\u003c/td\u003e\n\u003ctd\u003eЬ\u003c/td\u003e\u003ctd\u003eь\u003c/td\u003e\u003ctd\u003eЭ\u003c/td\u003e\u003ctd\u003eэ\u003c/td\u003e\u003ctd\u003eЮ\u003c/td\u003e\u003ctd\u003eю\u003c/td\u003e\u003ctd\u003eЯ\u003c/td\u003e\u003ctd\u003eя\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n\u003ctd\u003eCh\u003c/td\u003e\u003ctd\u003ech\u003c/td\u003e\u003ctd\u003eSh\u003c/td\u003e\u003ctd\u003esh\u003c/td\u003e\u003ctd\u003eW\u003cbr\u003eShh\u003c/td\u003e\u003ctd\u003ew\u003cbr\u003eshh\u003c/td\u003e\u003ctd\u003eQQ\u003c/td\u003e\u003ctd\u003eqq\u003c/td\u003e\u003ctd\u003eY\u003c/td\u003e\u003ctd\u003ey\u003c/td\u003e\n\u003ctd\u003eQ\u003c/td\u003e\u003ctd\u003eq\u003c/td\u003e\u003ctd\u003eJe\u003cbr\u003eÄ\u003c/td\u003e\u003ctd\u003eje\u003cbr\u003eä\u003c/td\u003e\u003ctd\u003eJu\u003cbr\u003eYu\u003cbr\u003eÜ\u003c/td\u003e\u003ctd\u003eju\u003cbr\u003eyu\u003cbr\u003eü\u003c/td\u003e\u003ctd\u003eJa\u003cbr\u003eYa\u003c/td\u003e\u003ctd\u003eja\u003cbr\u003eya\u003c/td\u003e\n\u003c/tr\u003e\u003c/table\u003e\n\n### Hebrew\n\n\u003ctable dir=\"rtl\"\u003e\u003ctr\u003e\n\u003ctd\u003eא\u003c/td\u003e\u003ctd\u003eב\u003c/td\u003e\u003ctd\u003eג\u003c/td\u003e\u003ctd\u003eד\u003c/td\u003e\u003ctd\u003eה\u003c/td\u003e\u003ctd\u003eו\u003c/td\u003e\u003ctd\u003eז\u003c/td\u003e\u003ctd\u003eח\u003c/td\u003e\n\u003ctd\u003eט\u003c/td\u003e\u003ctd\u003eי\u003c/td\u003e\u003ctd\u003eכ\u003c/td\u003e\u003ctd\u003eך\u003c/td\u003e\u003ctd\u003eל\u003c/td\u003e\u003ctd\u003eמ\u003c/td\u003e\u003ctd\u003eם\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n\u003ctd\u003ea\u003c/td\u003e\u003ctd\u003eb\u003c/td\u003e\u003ctd\u003eg\u003c/td\u003e\u003ctd\u003ed\u003c/td\u003e\u003ctd\u003eh\u003c/td\u003e\u003ctd\u003eo\u003cbr\u003eu\u003c/td\u003e\u003ctd\u003ez\u003c/td\u003e\u003ctd\u003ex\u003c/td\u003e\n\u003ctd\u003eT\u003c/td\u003e\u003ctd\u003ei\u003cbr\u003ej\u003c/td\u003e\u003ctd\u003ek\u003c/td\u003e\u003ctd\u003eK\u003c/td\u003e\u003ctd\u003el\u003c/td\u003e\u003ctd\u003em\u003c/td\u003e\u003ctd\u003eM\u003c/td\u003e\n\u003c/tr\u003e\u003c/table\u003e\n\u003ctable dir=\"rtl\"\u003e\u003ctr\u003e\n\u003ctd\u003eנ\u003c/td\u003e\u003ctd\u003eן\u003c/td\u003e\u003ctd\u003eס\u003c/td\u003e\u003ctd\u003eע\u003c/td\u003e\u003ctd\u003eפ\u003c/td\u003e\u003ctd\u003eף\u003c/td\u003e\n\u003ctd\u003eצ\u003c/td\u003e\u003ctd\u003eץ\u003c/td\u003e\u003ctd\u003eק\u003c/td\u003e\u003ctd\u003eר\u003c/td\u003e\u003ctd\u003eש\u003c/td\u003e\u003ctd\u003eת\u003c/td\u003e\n\u003c/tr\u003e\u003ctr\u003e\n\u003ctd\u003en\u003c/td\u003e\u003ctd\u003eN\u003c/td\u003e\u003ctd\u003es\u003c/td\u003e\u003ctd\u003ey\u003c/td\u003e\u003ctd\u003ef\u003cbr\u003ep\u003c/td\u003e\u003ctd\u003eF\u003cbr\u003eP\u003c/td\u003e\n\u003ctd\u003ec\u003c/td\u003e\u003ctd\u003eC\u003c/td\u003e\u003ctd\u003eq\u003c/td\u003e\u003ctd\u003er\u003c/td\u003e\u003ctd\u003ew\u003c/td\u003e\u003ctd\u003et\u003c/td\u003e\n\u003c/tr\u003e\u003c/table\u003e\n\n## Building\n\nXcode 15 or above and Python 3 are the only requirements to build Translit.\n\n* Download/clone the repo\n* Run `fetch` script from the top-level directory (current directory doesn't matter). This will fetch external dependencies\n* Open `Translit.workspace` and build the `Translit` or `Installer` scheme\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgershnik%2Ftranslit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgershnik%2Ftranslit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgershnik%2Ftranslit/lists"}