def TransliterateFrom(input_text, input_scheme, pass_through=None): """Transliterates text to SLP1, after being told what script it is.""" input_text = _IsoToIast(input_text) def ForKannada(text): text = KannadaToDevanagari(text) text = _FixBadDevanagari(text) text = text.replace('s', 'ऽ') return _TransliterateDevanagari(text) actions = { TRANSLITERATION_SCHEME.Kannada: ForKannada, TRANSLITERATION_SCHEME.Devanagari: lambda text: _TransliterateDevanagari(text), TRANSLITERATION_SCHEME.IAST: lambda text: transliterator.Transliterate(_IAST_TO_SLP1_STATE_MACHINE, text, pass_through), TRANSLITERATION_SCHEME.ITRANS: lambda text: transliterator.Transliterate( _ITRANS_TO_SLP1_STATE_MACHINE, text, pass_through), TRANSLITERATION_SCHEME.HK: lambda text: transliterator.Transliterate(_HK_TO_SLP1_STATE_MACHINE, text, pass_through) } return actions[input_scheme](input_text)
def AddDevanagariToIast(iast): """Given IAST text, include the Devanagari transliteration in brackets.""" stray = ' ()/' # Non-IAST characters that appear in metre names slp_text = transliterator.Transliterate(_IAST_TO_SLP1_STATE_MACHINE, iast, pass_through=stray)[0] (deva, unparsed) = transliterator.Transliterate(_SLP1_TO_MANGLED_DEVANAGARI_STATE_MACHINE, slp_text, pass_through=stray) assert not unparsed, (deva, unparsed) assert isinstance(deva, unicode), deva deva = devanagari.UnMangle(deva) return '%s (%s)' % (iast, deva)
def _CleanSLP1ToDevanagari(text): (text, unparsed) = transliterator.Transliterate( _SLP1_TO_MANGLED_DEVANAGARI_STATE_MACHINE, text, pass_through=_DEFAULT_PASS_THROUGH) assert not unparsed, (text, unparsed) assert isinstance(text, unicode), text return devanagari.UnMangle(text)
def _TransliterateDevanagari(text): return transliterator.Transliterate(_MANGLED_DEVANAGARI_TO_SLP1_STATE_MACHINE, devanagari.Mangle(text), _DEFAULT_PASS_THROUGH)
def TransliterateForTable(text): return transliterator.Transliterate(_SLP1_TO_IAST_STATE_MACHINE, text, pass_through=_DEFAULT_PASS_THROUGH)[0]
def TransliterateForOutput(text): iast = transliterator.Transliterate(_SLP1_TO_IAST_STATE_MACHINE, text, pass_through=_DEFAULT_PASS_THROUGH)[0] deva = _CleanSLP1ToDevanagari(text) return '%s (%s)' % (iast, deva)
def KannadaToDevanagari(text): return transliterator.Transliterate(_KANNADA_TO_DEVANAGARI, text, pass_through=_DEFAULT_PASS_THROUGH)[0]