{"id":35848423,"url":"https://github.com/r37r0m0d3l/translit-ed","last_synced_at":"2026-05-03T20:01:24.724Z","repository":{"id":57379187,"uuid":"290588318","full_name":"r37r0m0d3l/translit-ed","owner":"r37r0m0d3l","description":"Aggregator of various Cyrillic transliteration methods.","archived":false,"fork":false,"pushed_at":"2023-04-23T03:29:59.000Z","size":70,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-04T05:48:28.796Z","etag":null,"topics":["ascii","cyr2lat","cyrillic","romanization","translit","transliterate","transliteration","unicode"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/r37r0m0d3l.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"ko_fi":"r37r0m0d3l","open_collective":"r37r0m0d3l"}},"created_at":"2020-08-26T19:37:26.000Z","updated_at":"2023-04-23T03:30:03.000Z","dependencies_parsed_at":"2022-09-02T20:41:35.855Z","dependency_job_id":null,"html_url":"https://github.com/r37r0m0d3l/translit-ed","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/r37r0m0d3l/translit-ed","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r37r0m0d3l%2Ftranslit-ed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r37r0m0d3l%2Ftranslit-ed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r37r0m0d3l%2Ftranslit-ed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r37r0m0d3l%2Ftranslit-ed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/r37r0m0d3l","download_url":"https://codeload.github.com/r37r0m0d3l/translit-ed/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r37r0m0d3l%2Ftranslit-ed/sbom","scorecard":{"id":757036,"data":{"date":"2025-08-11","repo":{"name":"github.com/r37r0m0d3l/translit-ed","commit":"318792f8be2ae6487c6246469b121247c407945c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.4,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/14 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/linter.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/linter.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/r37r0m0d3l/translit-ed/linter.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/linter.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/r37r0m0d3l/translit-ed/linter.yml/master?enable=pin","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-22T21:58:06.583Z","repository_id":57379187,"created_at":"2025-08-22T21:58:06.583Z","updated_at":"2025-08-22T21:58:06.583Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29092741,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-04T03:31:03.593Z","status":"ssl_error","status_checked_at":"2026-02-04T03:29:50.742Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["ascii","cyr2lat","cyrillic","romanization","translit","transliterate","transliteration","unicode"],"created_at":"2026-01-08T06:58:34.087Z","updated_at":"2026-05-03T20:01:24.695Z","avatar_url":"https://github.com/r37r0m0d3l.png","language":"JavaScript","funding_links":["https://ko-fi.com/r37r0m0d3l","https://opencollective.com/r37r0m0d3l"],"categories":[],"sub_categories":[],"readme":"![Translit-Ed](.github/assets/banner.webp?raw=true \"Translit-Ed\")\n\n# Translit-Ed\n\n[![NPM Version][npm-version-img]][npm-version-url]\n[![NPM Downloads][npm-downloads-img]][npm-downloads-url]\n[![TypeScript Typings][ts-img]][ts-url]\n\nThis package provides **language-aware, standard-based transliteration** for Cyrillic scripts:\n\n|                 |                 |                |\n|-----------------|-----------------|----------------|\n| 🇧🇾 Belarusian | 🇲🇰 Macedonian | 🇷🇸 Serbian   |\n| 🇧🇬 Bulgarian  | 🇲🇳 Mongolian  | 🇺🇦 Ukrainian |\n| 🇰🇿 Kazakh     | 🇷🇺 Russian    | 🇺🇿 Uzbek     |\n\n## 🚀 Installation\n\n```bash\nnpm install translit-ed\n```\n\n## 🛠️ Usage\n\n```javascript\nimport {\n  cyrillicBelarusianToLatin,\n  cyrillicBulgarianToLatin,\n  cyrillicKazakhToLatin,\n  cyrillicMacedonianToLatin,\n  cyrillicMongolianToLatin,\n  cyrillicRussianToLatin,\n  cyrillicSerbianToLatin,\n  cyrillicToLatinUnicode, // Universal transliteration function\n  cyrillicUkrainianToLatin,\n  cyrillicUzbekToLatin,\n  ukrainianCyrillicToLatynka, // Two-way transliteration function\n} from \"translit-ed\";\n\nimport {\n  latinToCyrillicBelarusian,\n  latinToCyrillicBulgarian,\n  latinToCyrillicKazakh,\n  latinToCyrillicMacedonian,\n  latinToCyrillicMongolian,\n  latinToCyrillicRussian,\n  latinToCyrillicSerbian,\n  latinToCyrillicUkrainian,\n  latinToCyrillicUnicode, // Universal transliteration function\n  latinToCyrillicUzbek,\n  ukrainianLatynkaToCyrillic, // Two-way transliteration function\n} from \"translit-ed\";\n```\n\n---\n\n## 🏗️ Examples\n\n🇧🇾 Belarusian (Cyrillic, national standard)\n\n```javascript\ncyrillicBelarusianToLatin(\"Я і Юра ў Мінску.\")\n// Ja i Jura ŭ Minsku.\nlatinToCyrillicBelarusian(\"Ja i Jura ŭ Minsku.\")\n// Я і Юра ў Мінску.\n```\n\n🇧🇬 Bulgarian (Cyrillic, BGN/PCGN 2013)\n\n```javascript\ncyrillicBulgarianToLatin(\"Щъркелът е в ъгъла до гьола.\")\n// Shtarkelat e v agala do gyola.\nlatinToCyrillicBulgarian(\"Shtastie e v gyola.\")\n// Щастие е в гьола.\n```\n\n🇰🇿 Kazakh (Cyrillic, BGN/PCGN 1979)\n\n```javascript\ncyrillicKazakhToLatin(\"Әңгіме ғұрыппен қоңыр өгіз ұйықтап, үнімен һау деді.\")\n// Änggime ghuryppen qongyr ögiz uyyqtap, ünimen haū dedi.\n```\n\n🇲🇰 Macedonian (Cyrillic, national standard)\n\n```javascript\ncyrillicMacedonianToLatin(\"Ѓорѓи џвака ќебап со ѕвезда.\")\n// Gjorgji džvaka kjebap so dzvezda.\nlatinToCyrillicMacedonian(\"Kjutiot gjavol svira džez.\")\n// Ќутиот ѓавол свира џез.\n```\n\n🇲🇳 Mongolian (Cyrillic, national standard)\n\n```javascript\ncyrillicMongolianToLatin(\"Өндөр уул, үүлтэй өдөр.\")\n// Öndör uul, üültey ödör.\nlatinToCyrillicMongolian(\"Öndör üültey ödör.\")\n// Өндөр үүлтей өдөр.\n```\n\n🇷🇺 Russian (Cyrillic, national standard)\n\n```javascript\ncyrillicRussianToLatin(\"Съешь же ещё этих мягких французских булок, да выпей чаю.\")\n// S\"yesh' zhe yeshchyo etikh myagkikh frantsuzskikh bulok, da vypey chayu.\nlatinToCyrillicRussian(\"S\\\"yesh' zhe yeshchyo etikh myagkikh frantsuzskikh bulok, da vypey chayu.\")\n// Съешь же ещё этих мягких французских булок, да выпей чаю.\n```\n\n🇷🇸 Serbian (Cyrillic, national standard)\n\n```javascript\ncyrillicSerbianToLatin(\"Љубав и џез.\")\n// Ljubav i džez.\nlatinToCyrillicSerbian(\"Njegova džez ploča.\")\n// Његова џез плоча.\n```\n\n🇺🇦 Ukrainian (Cyrillic, national standard)\n\n```javascript\ncyrillicUkrainianToLatin(\"Є юний їжак, ґудзик і гілка в яру.\")\n// Ye yunyi yizhak, gudzyk i hilka v yaru.\nlatinToCyrillicUkrainian(\"Ye yunyi yizhak, gudzyk i hilka v yaru.\")\n// Є юний їжак, ґудзик і гілка в яру.\n```\n\n🇺🇦 Ukrainian (Cyrillic, Gajica (Гаєвиця) project)\n\nLossless or \"two-way\" transliteration – never lose any original characters.\n\n```javascript\nukrainianCyrillicToLatynka(\"Є юний їжак, ґудзик і гілка в яру.\")\n// \"Je junyj jižak, gudzyk i hilka v jaru.\"\nukrainianLatynkaToCyrillic(\"Je junyj jižak, gudzyk i hilka v jaru.\")\n// \"Є юний їжак, ґудзик і гілка в яру.\"\n```\n\n🇺🇿 Uzbek (Cyrillic, national standard)\n\n```javascript\ncyrillicUzbekToLatin(\"Ўзбекистонда қўшиқ ва ғазал.\")\n// O'zbekistonda qo'shiq va g'azal.\nlatinToCyrillicUzbek(\"G'oz va o'zbekcha so'z.\")\n// Ғоз ва ўзбекча сўз.\n```\n\n---\n\n## 💡️ Functions\n\n| From  \t                        | •    | To                          |\n|--------------------------------|------|-----------------------------|\n| `cyrillicBelarusianToLatin`  \t | 🇧🇾 | `latinToCyrillicBelarusian` |\n| `cyrillicBulgarianToLatin`     | 🇧🇬 | `latinToCyrillicBulgarian`  |\n| `cyrillicKazakhToLatin`        | 🇰🇿 | `latinToCyrillicKazakh`     |\n| `cyrillicMacedonianToLatin`    | 🇲🇰 | `latinToCyrillicMacedonian` |\n| `cyrillicMongolianToLatin`     | 🇲🇳 | `latinToCyrillicMongolian`  |\n| `cyrillicRussianToLatin`       | 🇷🇺 | `latinToCyrillicRussian`    |\n| `cyrillicSerbianToLatin`       | 🇷🇸 | `latinToCyrillicSerbian`    |\n| `cyrillicUkrainianToLatin`     | 🇺🇦 | `latinToCyrillicUkrainian`  | \n| `ukrainianCyrillicToLatynka`   | 🇺🇦 | `ukrainianLatynkaToCyrillic`|\n| `cyrillicUzbekToLatin`         | 🇺🇿 | `latinToCyrillicUzbek`      |\n| `cyrillicToLatinUnicode`       | 🌐   | `latinToCyrillicUnicode`    |\n\n## ⌨️ CLI Usage\n\nYou can use `translit-ed` via command line with `npx`:\n\n```bash\nnpx translit-ed -unicode-cyr2lat \"Текст на български\"\n# `Tekst na b\"lgarski`\n\nnpx translit-ed -ru-cyr2lat \"Текст на русском\"\n# `Tekst na russkom`\n\nnpx translit-ed -ua-gajica-cyr2lat \"Текст Українською Гаєвиця\"\n# `Tekst Ukrajinsjkoju Hajevycja`\n```\n\nRun `npx translit-ed` without arguments to see all available flags.\n\n## 📄 License\n\n[MIT](https://choosealicense.com/licenses/mit/)\n\n[//]: # (---)\n\n[//]: # ()\n[//]: # (## 🗺️ See also)\n\n[//]: # ()\n[//]: # ([My other projects]\u0026#40;https://r37r0m0d3l.icu/open_source_map\u0026#41;)\n\n[//]: # ()\n[//]: # (\u003cimg src=\"https://raw.githubusercontent.com/r37r0m0d3l/r37r0m0d3l/master/osmap.svg?sanitize=true\" width=\"960\" height=\"520\" style=\"display:block;height:auto;margin-left:auto;margin-right:auto;min-height:520px;min-width:960px;width:100%;\"\u003e)\n\n\u003c!-- Badges --\u003e\n\n[npm-downloads-img]: https://badgen.net/npm/dt/translit%2Ded?\u0026icon=terminal\u0026label=downloads\u0026color=009688\n[npm-downloads-url]: https://npmjs.com/package/translit-ed\n[npm-version-img]: https://badgen.net/npm/v/translit-ed?\u0026icon=npm\u0026label=npm\u0026color=DD3636\n[npm-version-url]: https://npmjs.com/package/translit-ed\n[ts-img]: https://badgen.net/npm/types/translit-ed?\u0026icon=typescript\u0026label=types\u0026color=1E90FF\n[ts-url]: https://github.com/r37r0m0d3l/translit-ed/blob/master/dist/translit-ed.d.ts\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fr37r0m0d3l%2Ftranslit-ed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fr37r0m0d3l%2Ftranslit-ed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fr37r0m0d3l%2Ftranslit-ed/lists"}