Search by

jayeshmepani / lipimala

jayeshmepani

Exact round-trip IAST and extended Indic transliteration for Devanagari, Gujarati, plain English, canonical reverse conversion, and direct Gujarati/Devanagari conversion.

1.2.0 2026-10-14 11:49 UTC

This package is auto-updated.

Last update: 2026-10-14 11:56:42 UTC


README

Packagist version PHP version License: MIT

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

Install

composer require jayeshmepani/lipimala

Requires PHP 8.3 or newer. The package has no runtime dependencies and does not require intl or mbstring.

Use

<?php

use function Lipimala\toDevanagariFromIast;
use function Lipimala\toCanonicalIastFromGujarati;
use function Lipimala\toPlainEnglishFromDevanagari;
use function Lipimala\toPlainEnglishFromGujarati;
use function Lipimala\toCanonicalGujaratiFromDevanagari;

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

Use toHunterianFromDevanagari() and toHunterianFromGujarati() for simplified ASCII Hunterian: one letter per long vowel and no consonant dots. That is the map and signboard spelling, not the 1954 macron form (jān). See the API reference. Array helpers such as toDevanagariFromIastList() convert lists of strings.

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 Devanagari and Gujarati reading accepts BrahmicPlainEnglishOptions. Defaults stay the 1.1 output. 1.2.0 adds an opt-in natural reading. Examples are in the API reference.

Preserve the original input

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

<?php

use function Lipimala\toDevanagari;

$result = toDevanagari('Kṛṣṇa');
echo $result->rendered;          // कृष्ण
echo $result->restoreOriginal(); // Kṛṣṇa

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

License

MIT. See LICENSE.