Skip to content

General purpose transliterate service for Angular which can be used in swapping letters such as α → a, ၎ → ၎င်း or Zawgyi-One to standard Myanmar Unicode.

License

Notifications You must be signed in to change notification settings

DagonMetric/ng-translit

Repository files navigation

Transliterate Service for Angular

GitHub Actions Status Azure Pipeline Status codecov npm version Gitter

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 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

npm install @dagonmetric/ng-translit

or yarn

yarn add @dagonmetric/ng-translit

Module Setup (app.module.ts)

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

Usage (app.component.ts)

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

Samples

Documentation

Transliterate Rules

Live Application

  • Zawgyi Unicode Converter - Angular Progress Web Application designed to convert Myanmar font encodings between Zawgyi-One and Standard Myanmar Unicode

Feedback and Contributing

Check out the Contributing page.

License

This repository is licensed with the MIT license.