General-purpose transliteration service for Angular applications which can be used in swapping letters such as α → a, ၎ → ၎င်း or Zawgyi-One to standard Myanmar Unicode.
- Can transliterate/convert any script or Unicode letters by using from a simplest rule definition (just with
from
andto
rules) to more powerful rule definition (withtplVar
,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 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
andminLength
options for better performance - Can check converted left portion string with
hasLeft
boolean option andleft
regular expression option - Can check right part after matched input string with
right
regular expression option - Conditional rules processing with
when
andskip
options - Can define post-rules with
postRules
for step-by-step conversions - Can use
postRulesDef
andpostRulesRef
to reduce JSON size and to avoid repetition in definingpostRules
- 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
npm
npm install @dagonmetric/ng-translit
or yarn
yarn add @dagonmetric/ng-translit
The following code is a simple module setup with no rule loader.
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
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
- Demo app view source / live edit in stackblitz
- zawgyi-unicode-translit-rules - Zawgyi Unicode convert/transliterate rules in JSON and JavaScript formats using
ng-translit
- Zawgyi Unicode Converter - Angular Progress Web Application designed to convert Myanmar font encodings between Zawgyi-One and Standard Myanmar Unicode
Check out the Contributing page.
This repository is licensed with the MIT license.