{"id":28321438,"url":"https://github.com/dagonmetric/ng-translit","last_synced_at":"2025-06-12T13:40:46.150Z","repository":{"id":39259421,"uuid":"190706408","full_name":"DagonMetric/ng-translit","owner":"DagonMetric","description":"General purpose transliterate service for Angular which can be used in swapping letters such as α → a, ၎ → ၎င်း or Zawgyi-One to standard Myanmar Unicode.","archived":false,"fork":false,"pushed_at":"2024-08-14T19:31:12.000Z","size":3904,"stargazers_count":10,"open_issues_count":24,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-25T12:14:01.565Z","etag":null,"topics":["alphabet-converter","angular","angular-transliterate","internationalization","intl","language-tools","myanmar-tools","script-converting","script-tools","swapping-letters","transliterate","transliterate-rules","transliteration","transliteration-service","typescript","unicode-tools","zawgyi-unicode-converter","zawgyi-unicode-translit-rules"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/DagonMetric.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2019-06-07T07:44:15.000Z","updated_at":"2024-06-11T04:29:53.000Z","dependencies_parsed_at":"2024-05-13T20:40:41.506Z","dependency_job_id":"f1afdcc3-ffd0-4d33-b8c6-ffd365d6d703","html_url":"https://github.com/DagonMetric/ng-translit","commit_stats":{"total_commits":1053,"total_committers":3,"mean_commits":351.0,"dds":"0.24216524216524216","last_synced_commit":"d1815818ab7d6124b9998e6e2de6afd1bbbd591e"},"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/DagonMetric/ng-translit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DagonMetric%2Fng-translit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DagonMetric%2Fng-translit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DagonMetric%2Fng-translit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DagonMetric%2Fng-translit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DagonMetric","download_url":"https://codeload.github.com/DagonMetric/ng-translit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DagonMetric%2Fng-translit/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259474539,"owners_count":22863696,"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":["alphabet-converter","angular","angular-transliterate","internationalization","intl","language-tools","myanmar-tools","script-converting","script-tools","swapping-letters","transliterate","transliterate-rules","transliteration","transliteration-service","typescript","unicode-tools","zawgyi-unicode-converter","zawgyi-unicode-translit-rules"],"created_at":"2025-05-25T12:13:58.409Z","updated_at":"2025-06-12T13:40:46.134Z","avatar_url":"https://github.com/DagonMetric.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Transliterate Service for Angular\n\n[![GitHub Actions Status](https://github.com/DagonMetric/ng-translit/workflows/Main%20Workflow/badge.svg)](https://github.com/DagonMetric/ng-translit/actions)\n[![Azure Pipeline Status](https://dev.azure.com/DagonMetric/ng-translit/_apis/build/status/DagonMetric.ng-translit?branchName=master)](https://dev.azure.com/DagonMetric/ng-translit/_build?definitionId=8)\n[![codecov](https://codecov.io/gh/DagonMetric/ng-translit/branch/master/graph/badge.svg)](https://codecov.io/gh/DagonMetric/ng-translit)\n[![npm version](https://badge.fury.io/js/%40dagonmetric%2Fng-translit.svg)](https://www.npmjs.com/package/@dagonmetric/ng-translit)\n[![Gitter](https://badges.gitter.im/DagonMetric/general.svg)](https://gitter.im/DagonMetric/general?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge)\n\nGeneral-purpose transliteration service for Angular applications which can be used in swapping letters such as α → a, ၎ → ၎င်း or Zawgyi-One to standard Myanmar Unicode.\n\n## Features\n\n* Can transliterate/convert any script or Unicode letters by using from a simplest rule definition (just with `from` and `to` rules) to more powerful rule definition (with `tplVar`, `tplSeq`, `when`, `postRules`, etc.)\n* Can use transliteration rules in both design-time and run-time with JSON file which can be loaded lazily or eagerly using extendable `TranslitRuleLoader` (see built-in [HttpTranslitRuleLoader](https://github.com/DagonMetric/ng-translit/blob/master/modules/ng-translit/http-loader/src/http-translit-rule-loader.ts) for implementation demo)\n* Can transliterate input phase by phase\n* Can define template variables with `tplVar` to reduce JSON size and to avoid repetition\n* Can define template loop sequences with `tplSeq` for sequential rules checking and replacement\n* Quick test input string checking with `quickTests` and `minLength` options for better performance\n* Can check converted left portion string with `hasLeft` boolean option and `left` regular expression option\n* Can check right part after matched input string with `right` regular expression option\n* Conditional rules processing with `when` and `skip` options\n* Can define post-rules with `postRules` for step-by-step conversions\n* Can use `postRulesDef` and `postRulesRef`  to reduce JSON size and to avoid repetition in defining `postRules`\n* Conversion trace information can be included in output result for debugging purpose\n* Work with latest versions of Angular\n* Compatible with Angular Universal (Server Side Rendering - SSR)\n* Powered with RxJS\n\n## Getting Started\n\n### Installation\n\nnpm\n\n```bash\nnpm install @dagonmetric/ng-translit\n```\n\nor yarn\n\n```bash\nyarn add @dagonmetric/ng-translit\n```\n\n### Module Setup (app.module.ts)\n\nThe following code is a simple module setup with no rule loader.\n\n```typescript\nimport { TranslitModule } from '@dagonmetric/ng-translit';\n\n@NgModule({\n  imports: [\n    // Other module imports\n\n    // ng-translit module\n    TranslitModule\n  ]\n})\nexport class AppModule { }\n```\n\nLive edit [app.module.ts in stackblitz](https://stackblitz.com/github/dagonmetric/ng-translit/tree/master/samples/demo-app?file=src%2Fapp%2Fapp.module.ts)\n\n### Usage (app.component.ts)\n\n```typescript\nimport { Component } from '@angular/core';\n\nimport { TranslitRuleItem, TranslitService } from '@dagonmetric/ng-translit';\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html'\n})\nexport class AppComponent {\n  constructor(private readonly translitService: TranslitService) {\n    const zg2uniRules: TranslitRuleItem[] = [{\n      from: '\\u103B([\\u1000-\\u1021])',\n      to: '$1\\u103C'\n    },\n    {\n      from: '\\u1039',\n      to: '\\u103A'\n    }];\n\n    this.translitService.translit('ျမန္မာစာ', 'zg2uni', zg2uniRules)\n      .subscribe(result =\u003e {\n        // output: မြန်မာစာ\n        console.log('output: ', result.outputText);\n      });\n  }\n}\n```\n\nLive edit [app.component.ts in stackblitz](https://stackblitz.com/github/dagonmetric/ng-translit/tree/master/samples/demo-app?file=src%2Fapp%2Fapp.component.ts)\n\n## Samples\n\n* Demo app [view source](https://github.com/DagonMetric/ng-translit/tree/master/samples/demo-app) / [live edit in stackblitz](https://stackblitz.com/github/dagonmetric/ng-translit/tree/master/samples/demo-app)\n\n### Documentation\n\n* [ng-translit wiki](https://github.com/DagonMetric/ng-translit/wiki)\n\n## Transliterate Rules\n\n* [zawgyi-unicode-translit-rules](https://github.com/myanmartools/zawgyi-unicode-translit-rules) - Zawgyi Unicode convert/transliterate rules in JSON and JavaScript formats using `ng-translit`\n\n## Live Application\n\n* [Zawgyi Unicode Converter](https://zawgyi-unicode-converter.myanmartools.org) - Angular Progress Web Application designed to convert Myanmar font encodings between Zawgyi-One and Standard Myanmar Unicode\n\n## Feedback and Contributing\n\nCheck out the [Contributing](https://github.com/DagonMetric/ng-translit/blob/master/CONTRIBUTING.md) page.\n\n## License\n\nThis repository is licensed with the [MIT](https://github.com/DagonMetric/ng-translit/blob/master/LICENSE) license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdagonmetric%2Fng-translit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdagonmetric%2Fng-translit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdagonmetric%2Fng-translit/lists"}