lipimala for Dart

pub version License: MIT

IAST-style transliteration for Devanagari and Gujarati, with canonical reverse conversion, direct script conversion, and Plain-English or Hunterian output.

Install

dart pub add lipimala

Requires Dart 3.0 or newer.

Use

import 'package:lipimala/lipimala.dart';

void main() {
  print('Kṛṣṇa'.toDevanagariFromIast()); // कृष्ण
  print('કૃષ્ણ'.toCanonicalIastFromGujarati()); // kṛṣṇa
  print('कानपुर'.toPlainEnglishFromDevanagari()); // kaanpur
  print('આજ મારે'.toPlainEnglishFromGujarati()); // aaj maare
  print('कृष्ण'.toCanonicalGujaratiFromDevanagari()); // કૃષ્ણ
}

Use toHunterianFromDevanagari() and toHunterianFromGujarati() for Hunterian output. List extensions such as toDevanagariFromIast() also work on List<String>.

Profiles and options

Forward conversion accepts strictIast, iso15919Core, or extendedIndic profiles. The default is extendedIndic. Options control normalization, unknown input, digits, punctuation, Vedic accents, whitespace, and exact-source metadata.

Direct Brahmic transcription accepts BrahmicPlainEnglishOptions for language selection, schwa deletion, vowel length, terminal anusvara, Gujarati ʿayn, and other pronunciation choices.

Preserve the original input

The rendered script may not encode the original Latin spelling, capitalization, or normalization. A result envelope keeps the original alongside the rendered value:

final result = 'Kṛṣṇa'.toDevanagari();
print(result.rendered);          // कृष्ण
print(result.restoreOriginal()); // Kṛṣṇa

For a standalone string, set embedExactSourceMetadata: true in the conversion options and use an exact reverse method such as toExactIastFromDevanagari(). Unicode-tag metadata can be removed by systems that sanitize invisible characters.

License

MIT. See LICENSE.