https://github.com/dagonmetric/ng-translit
General purpose transliterate service for Angular which can be used in swapping letters such as α → a, ၎ → ၎င်း or Zawgyi-One to standard Myanmar Unicode.
https://github.com/dagonmetric/ng-translit
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
Last synced: 4 months ago
JSON representation
General purpose transliterate service for Angular which can be used in swapping letters such as α → a, ၎ → ၎င်း or Zawgyi-One to standard Myanmar Unicode.
- Host: GitHub
- URL: https://github.com/dagonmetric/ng-translit
- Owner: DagonMetric
- License: mit
- Created: 2019-06-07T07:44:15.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-08-14T19:31:12.000Z (about 1 year ago)
- Last Synced: 2025-05-25T12:14:01.565Z (5 months ago)
- 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
- Language: TypeScript
- Homepage:
- Size: 3.72 MB
- Stars: 10
- Watchers: 3
- Forks: 1
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Transliterate Service for Angular
[](https://github.com/DagonMetric/ng-translit/actions)
[](https://dev.azure.com/DagonMetric/ng-translit/_build?definitionId=8)
[](https://codecov.io/gh/DagonMetric/ng-translit)
[](https://www.npmjs.com/package/@dagonmetric/ng-translit)
[](https://gitter.im/DagonMetric/general?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)General-purpose transliteration service for Angular applications which can be used in swapping letters such as α → a, ၎ → ၎င်း or Zawgyi-One to standard Myanmar Unicode.
## Features
* 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.)
* 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)
* Can transliterate input phase by phase
* Can define template variables with `tplVar` to reduce JSON size and to avoid repetition
* Can define template loop sequences with `tplSeq` for sequential rules checking and replacement
* Quick test input string checking with `quickTests` and `minLength` options for better performance
* Can check converted left portion string with `hasLeft` boolean option and `left` regular expression option
* Can check right part after matched input string with `right` regular expression option
* Conditional rules processing with `when` and `skip` options
* Can define post-rules with `postRules` for step-by-step conversions
* Can use `postRulesDef` and `postRulesRef` to reduce JSON size and to avoid repetition in defining `postRules`
* Conversion trace information can be included in output result for debugging purpose
* Work with latest versions of Angular
* Compatible with Angular Universal (Server Side Rendering - SSR)
* Powered with RxJS## Getting Started
### Installation
npm
```bash
npm install @dagonmetric/ng-translit
```or yarn
```bash
yarn add @dagonmetric/ng-translit
```### Module Setup (app.module.ts)
The following code is a simple module setup with no rule loader.
```typescript
import { TranslitModule } from '@dagonmetric/ng-translit';@NgModule({
imports: [
// Other module imports// ng-translit module
TranslitModule
]
})
export class AppModule { }
```Live edit [app.module.ts in stackblitz](https://stackblitz.com/github/dagonmetric/ng-translit/tree/master/samples/demo-app?file=src%2Fapp%2Fapp.module.ts)
### Usage (app.component.ts)
```typescript
import { Component } from '@angular/core';import { TranslitRuleItem, TranslitService } from '@dagonmetric/ng-translit';
@Component({
selector: 'app-root',
templateUrl: './app.component.html'
})
export class AppComponent {
constructor(private readonly translitService: TranslitService) {
const zg2uniRules: TranslitRuleItem[] = [{
from: '\u103B([\u1000-\u1021])',
to: '$1\u103C'
},
{
from: '\u1039',
to: '\u103A'
}];this.translitService.translit('ျမန္မာစာ', 'zg2uni', zg2uniRules)
.subscribe(result => {
// output: မြန်မာစာ
console.log('output: ', result.outputText);
});
}
}
```Live edit [app.component.ts in stackblitz](https://stackblitz.com/github/dagonmetric/ng-translit/tree/master/samples/demo-app?file=src%2Fapp%2Fapp.component.ts)
## Samples
* 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)
### Documentation
* [ng-translit wiki](https://github.com/DagonMetric/ng-translit/wiki)
## Transliterate Rules
* [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`
## Live Application
* [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
## Feedback and Contributing
Check out the [Contributing](https://github.com/DagonMetric/ng-translit/blob/master/CONTRIBUTING.md) page.
## License
This repository is licensed with the [MIT](https://github.com/DagonMetric/ng-translit/blob/master/LICENSE) license.