jayeshmepani / lipimala
Exact round-trip IAST and extended Indic transliteration for Devanagari, Gujarati, plain English, canonical reverse conversion, and direct Gujarati/Devanagari conversion.
Requires
- php: >=8.3
Requires (Dev)
- laravel/pint: ^1.32
- rector/rector: ^2.7
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
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.