IAST

NAME

Lang::Transliterate::Sa::IAST - IAST (International Alphabet of Sanskrit Transliteration) module

SYNOPSIS

use Lang::Transliterate;
    use Lang::Transliterate::Sa::IAST;
# Create IAST transliterator
    my $iast = Lang::Transliterate::Sa::IAST.new;
# Forward transliteration (Devanagari to Latin IAST)
    say transliterate('संस्कृतम्', $iast);  # saṁskṛtam
# Using the transliterate function
    say transliterate('नमस्ते', $iast);     # namaste
    say transliterate('धर्म', $iast);       # dharma
    say transliterate('कर्म', $iast);       # karma
# Direct method calls
    say $iast.transliterate-context-aware('योग');  # yoga
# Reverse transliteration (Latin IAST to Devanagari)
    say $iast.transliterate-reverse('namaste');    # नमस्ते
    say $iast.transliterate-reverse('saṁskṛtam');  # संस्कृतम्
# Case-preserving transliteration
    say $iast.transliterate-preserve-case('राम Rama कृष्ण');  # rāma Rama kṛṣṇa
# Batch processing
    my $text = "गीता\nवेद\nउपनिषद्";
    say $iast.transliterate-lines($text);  # gītā\nveda\nupaniṣad

DESCRIPTION

This module implements the IAST (International Alphabet of Sanskrit Transliteration) standard for transliterating Devanagari script to Latin script and vice versa.

IAST is widely used in academic Sanskrit studies and provides an unambiguous representation of Devanagari text using Latin characters with diacritical marks.

Features

  • Complete character support for all Devanagari characters

  • Context-aware transliteration with proper inherent vowel handling

  • Support for virama (halant) sequences

  • Vowel sign (matra) combinations

  • Nukta character support for foreign sounds

  • Vedic extensions and accent marks

  • Reverse transliteration from IAST to Devanagari

  • Case-preserving transliteration for proper names

  • Batch processing methods

  • Unicode normalization support

Character Mappings

Vowels

अ → a    आ → ā    इ → i    ई → ī
    उ → u    ऊ → ū    ऋ → ṛ    ॠ → ṝ
    ऌ → ḷ    ॡ → ḹ    ए → e    ऐ → ai
    ओ → o    औ → au

Consonants

क → ka   ख → kha  ग → ga   घ → gha  ङ → ṅa
    च → ca   छ → cha  ज → ja   झ → jha  ञ → ña
    ट → ṭa   ठ → ṭha  ड → ḍa   ढ → ḍha  ण → ṇa
    त → ta   थ → tha  द → da   ध → dha  न → na
    प → pa   फ → pha  ब → ba   भ → bha  म → ma
    य → ya   र → ra   ल → la   व → va
    श → śa   ष → ṣa   स → sa   ह → ha

Special Characters

ं → ṁ (anusvara)
    ः → ḥ (visarga)
    ँ → m̐ (candrabindu)
    ऽ → ' (avagraha)
    ॐ → oṁ (om)

Nukta Variants

क़ → qa   ख़ → xa   ग़ → ġa   ज़ → za
    ड़ → ṛa   ढ़ → ṛha  फ़ → fa

Numbers

० → 0    १ → 1    २ → 2    ३ → 3    ४ → 4
    ५ → 5    ६ → 6    ७ → 7    ८ → 8    ९ → 9

Methods

transliterate-context-aware

method transliterate-context-aware(Str $text --> Str)

Main transliteration method that handles context-aware processing of Devanagari text.

transliterate-reverse

method transliterate-reverse(Str $text --> Str)

Reverse transliteration from IAST Latin to Devanagari.

transliterate-preserve-case

method transliterate-preserve-case(Str $text --> Str)

Transliterates while preserving the case of capitalized words (useful for proper names).

transliterate-lines

method transliterate-lines(Str $text --> Str)

Processes text line by line, useful for batch processing.

transliterate-words

method transliterate-words(Str $text --> Str)

Processes text word by word.

Inherent Vowel Rules

In Devanagari, consonants have an inherent 'a' vowel unless: - Followed by a vowel sign (matra) - Followed by a virama (halant) - Part of a conjunct consonant - At the end of certain words (context-dependent)

This module correctly handles these rules for accurate transliteration.

Unicode Considerations

The module handles: - Grapheme clusters (single visual units composed of multiple codepoints) - Unicode normalization (NFC/NFD) - Zero-width joiners and non-joiners - Precomposed and decomposed character forms

AUTHOR

Lang::Transliterate Contributors

COPYRIGHT AND LICENSE

Copyright 2024

This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.

Lang::Transliterate v0.1.0

Comprehensive multilingual transliteration library for Raku

Authors

  • Danslav Slavenskoj

License

Artistic-2.0

Dependencies

Test Dependencies

Provides

  • Lang::Transliterate
  • Lang::Transliterate::Ar::ALALC
  • Lang::Transliterate::Ar::ArabTeX
  • Lang::Transliterate::Ar::BGNPCGN
  • Lang::Transliterate::Ar::BS
  • Lang::Transliterate::Ar::DIN31635
  • Lang::Transliterate::Ar::EALL
  • Lang::Transliterate::Ar::EI
  • Lang::Transliterate::Ar::ISO233
  • Lang::Transliterate::Ar::UNGEGN
  • Lang::Transliterate::Ar::Wehr
  • Lang::Transliterate::Arc::Arabic
  • Lang::Transliterate::Arc::Brahmi
  • Lang::Transliterate::Arc::Cyrillic
  • Lang::Transliterate::Arc::Geez
  • Lang::Transliterate::Arc::Greek
  • Lang::Transliterate::Arc::Hebrew
  • Lang::Transliterate::Arc::Kharosthi
  • Lang::Transliterate::Arc::Latin
  • Lang::Transliterate::Arc::Maalouli
  • Lang::Transliterate::Arc::Nabataean
  • Lang::Transliterate::Arc::Parthian
  • Lang::Transliterate::Arc::Phoenician
  • Lang::Transliterate::Arc::ProtoSinaitic
  • Lang::Transliterate::Arc::SouthArabian
  • Lang::Transliterate::Arc::Syriac
  • Lang::Transliterate::Arc::Turkic
  • Lang::Transliterate::BasicASCII
  • Lang::Transliterate::Be::ALALC
  • Lang::Transliterate::Be::BGNPCGN
  • Lang::Transliterate::Be::BritishStandard
  • Lang::Transliterate::Be::ISO9
  • Lang::Transliterate::Be::National2000
  • Lang::Transliterate::Be::National2007
  • Lang::Transliterate::Be::National2023
  • Lang::Transliterate::Be::Sci
  • Lang::Transliterate::Bg::ALALC
  • Lang::Transliterate::Bg::BGNPCGN
  • Lang::Transliterate::Bg::BritishStandard
  • Lang::Transliterate::Bg::Danchev
  • Lang::Transliterate::Bg::ISO9
  • Lang::Transliterate::Bg::Official2006
  • Lang::Transliterate::Bg::Sci
  • Lang::Transliterate::Cu::ALALC
  • Lang::Transliterate::Cu::Sci
  • Lang::Transliterate::Egy::Allen2000
  • Lang::Transliterate::Egy::Buurman1988
  • Lang::Transliterate::Egy::ErmanGrapow1926
  • Lang::Transliterate::Egy::Gardiner1927
  • Lang::Transliterate::Egy::Hannig1995
  • Lang::Transliterate::Egy::LeidenUnified2023
  • Lang::Transliterate::Egy::Lepsius1874
  • Lang::Transliterate::El::DIN31634
  • Lang::Transliterate::El::ISO843
  • Lang::Transliterate::En::TolkienRunic
  • Lang::Transliterate::Fa::ALALC
  • Lang::Transliterate::Fa::BGNPCGN
  • Lang::Transliterate::Fa::DMG
  • Lang::Transliterate::Fa::EI
  • Lang::Transliterate::Fa::EI1960
  • Lang::Transliterate::Fa::UN
  • Lang::Transliterate::Fa::UN1967
  • Lang::Transliterate::Grc::Scientific
  • Lang::Transliterate::He::CommonIsraeli
  • Lang::Transliterate::He::HebrewAcademy1953
  • Lang::Transliterate::He::HebrewAcademy2006
  • Lang::Transliterate::He::ISO259
  • Lang::Transliterate::He::PaleoHebrew
  • Lang::Transliterate::He::SBLAcademic
  • Lang::Transliterate::He::SBLGeneralPurpose
  • Lang::Transliterate::He::Samaritan
  • Lang::Transliterate::ISO9_1995
  • Lang::Transliterate::Mk::ALALC
  • Lang::Transliterate::Mk::BGNPCGN
  • Lang::Transliterate::Mk::ISO9
  • Lang::Transliterate::Mk::ISO9_1968
  • Lang::Transliterate::Mk::Sci
  • Lang::Transliterate::Ru::ALALC
  • Lang::Transliterate::Ru::ALALCSimplified
  • Lang::Transliterate::Ru::BGNPCGN
  • Lang::Transliterate::Ru::BritishStandard
  • Lang::Transliterate::Ru::GOST779_2000A
  • Lang::Transliterate::Ru::GOST779_2000B
  • Lang::Transliterate::Ru::GOSTR52290_2004
  • Lang::Transliterate::Ru::GOSTR52535_2006
  • Lang::Transliterate::Ru::HarvardKyoto
  • Lang::Transliterate::Ru::ICAO
  • Lang::Transliterate::Ru::ISOR9_1968_T1
  • Lang::Transliterate::Ru::ISOR9_1968_T1_ALT
  • Lang::Transliterate::Ru::ISOR9_1968_T2
  • Lang::Transliterate::Ru::MID2113
  • Lang::Transliterate::Ru::MVD310_1997
  • Lang::Transliterate::Ru::MVD782_2000
  • Lang::Transliterate::Ru::MVD995_2015
  • Lang::Transliterate::Ru::MosMetro
  • Lang::Transliterate::Ru::Sci
  • Lang::Transliterate::Ru::Telegrams
  • Lang::Transliterate::Ru::UN
  • Lang::Transliterate::Ru::YandexMaps
  • Lang::Transliterate::Ru::YandexMoney
  • Lang::Transliterate::Rue::Sci
  • Lang::Transliterate::Sa::IAST
  • Lang::Transliterate::Sr::Sci
  • Lang::Transliterate::Tlh::PIqaD
  • Lang::Transliterate::Uk::ALALC
  • Lang::Transliterate::Uk::ALALCModified
  • Lang::Transliterate::Uk::ALALCSimple
  • Lang::Transliterate::Uk::BGNPCGN
  • Lang::Transliterate::Uk::BritishStandard
  • Lang::Transliterate::Uk::Derzhstandart1995
  • Lang::Transliterate::Uk::GOST1971
  • Lang::Transliterate::Uk::GOST1986
  • Lang::Transliterate::Uk::ISO1954
  • Lang::Transliterate::Uk::ISO1968Basic
  • Lang::Transliterate::Uk::ISO1968Ukrainian
  • Lang::Transliterate::Uk::ISO1995
  • Lang::Transliterate::Uk::National1996
  • Lang::Transliterate::Uk::National2010
  • Lang::Transliterate::Uk::Passport2004
  • Lang::Transliterate::Uk::Passport2007
  • Lang::Transliterate::Uk::Sci
  • Lang::Transliterate::Yi::YIVO

Documentation

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.