All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sktutilities.transliteration.SLPToBangla Maven / Gradle / Ivy

package com.sktutilities.transliteration;

import java.util.ArrayList;
import java.util.Hashtable;

import com.sktutilities.util.VowelUtil;

public class SLPToBangla
{
    private Hashtable unicode;

    private Hashtable matra;

    private final String halant = "\u09Cd"; 
    
    private IndicUnicodeTransformer transformer;
    public SLPToBangla()
    {
        populateHashTable();
    }
    
    public String transform(String slpString)
    {
        return transformer.transform(slpString);
    }
    public String transform1(String slpString)
    {
    
        String transformed = "";
    
        int strLen = slpString.length();
        ArrayList shabda = new ArrayList();
        String lastEntry = "";
        for (int i = 0; i < strLen; i++)
        {
            char c = slpString.charAt(i);
            String varna = String.valueOf(c);
            
            if (VowelUtil.isConsonant(varna))
            {
                shabda.add(unicode.get(varna));
                shabda.add(halant); //halant
                lastEntry = halant;
            }
    
            else if (VowelUtil.isVowel(varna))
            {
                 if (halant.equals(lastEntry))
                {
                    if (varna.equals("a"))
                    {
                        shabda.set(shabda.size() - 1,"");
                    }
                    else
                    {
                        shabda.set(shabda.size() - 1, matra.get(varna));
                    }
                }
    
                else
                {
                    shabda.add(unicode.get(varna));
                }
                 lastEntry = unicode.get(varna);
            } // end of else if is-Vowel
    
            else if (unicode.containsKey(varna))
            {
                shabda.add(unicode.get(varna));
                lastEntry = unicode.get(varna);
            }
            else
            {
                shabda.add(varna);
                lastEntry = varna;
            }
            
        } // end of for
    
        for (String string: shabda)
        {
            transformed += string;
        }
        
        //Discard the shabda array
        shabda = null;
        return transformed; // return transformed;
    }

    public void populateHashTable()
        {
            unicode = new Hashtable();
            matra = new Hashtable();
            matra.put("A", "\u09bE");
            matra.put("i", "\u09bF");
            matra.put("I", "\u09C0");
            matra.put("u", "\u09C1");
            matra.put("U", "\u09C2");
            matra.put("f", "\u09C3");
            matra.put("F", "\u09C4");
           // matra.put("x", "\u0962");
            //matra.put("X", "\u0963");
            matra.put("e", "\u09C7");
            matra.put("E", "\u09C8");
            matra.put("o", "\u09Cb");
            matra.put("O", "\u09Cc");
    
            unicode.put("a", "\u0985");
            unicode.put("A", "\u0986");
            unicode.put("i", "\u0987");
            unicode.put("I", "\u0988");
            unicode.put("u", "\u0989");
            unicode.put("U", "\u098a");
            unicode.put("f", "\u098b");
            unicode.put("F", "\u098C");
            //unicode.put("x", "\u090c");
            //unicode.put("X", "\u0961");
            unicode.put("e", "\u098f");
            unicode.put("E", "\u0990");
            unicode.put("o", "\u0993");
            unicode.put("O", "\u0994");
    
            unicode.put("k", "\u0995");
            unicode.put("K", "\u0996");
            unicode.put("g", "\u0997");
            unicode.put("G", "\u0998");
            unicode.put("N", "\u0999");
            unicode.put("c", "\u099a");
            unicode.put("C", "\u099b");
            unicode.put("j", "\u099c");
            unicode.put("J", "\u099d");
            unicode.put("Y", "\u099e");
            unicode.put("w", "\u099f"); // Ta as in Tom
            unicode.put("W", "\u09A0");
            unicode.put("q", "\u09A1"); // Da as in David
            unicode.put("Q", "\u09A2");
            unicode.put("R", "\u09A3");
            unicode.put("t", "\u09A4"); // ta as in tamasha
            unicode.put("T", "\u09A5"); // tha as in thanks
            unicode.put("d", "\u09A6"); // da as in darvaaza
            unicode.put("D", "\u09A7"); // dha as in dhanusha
            unicode.put("n", "\u09A8");
            unicode.put("p", "\u09AA");
            unicode.put("P", "\u09Ab");
            unicode.put("b", "\u09Ac");
            unicode.put("B", "\u09Ad");
            unicode.put("m", "\u09Ae");
            unicode.put("y", "\u09af");
            unicode.put("r", "\u09b0");
            unicode.put("l", "\u09b2");
    
            //unicode.put("L", "\u0933"); // the Marathi and Vedic 'L'
    
            //unicode.put("v", "\u0935");
            unicode.put("S", "\u09b6");
            unicode.put("z", "\u09b7");
            unicode.put("s", "\u09b8");
            unicode.put("h", "\u09b9");
            
            unicode.put("M", "\u0902"); // anusvara
            unicode.put("H", "\u0903"); // visarga
            unicode.put("~", "\u0901"); // anunAsika - cchandra bindu, using ~ to
                                        // represent it\
            unicode.put("'", "\u093d"); // avagraha using "'"
            unicode.put("3", "\u0969"); // 3 equals to pluta
            unicode.put("Z", "\u014F");// Z equals to upadhamaniya
            unicode.put("V", "\u0CF1");// V equals to jihvamuliya....but what character have u settled for jihvamuliya
            unicode.put("Ω", "\u0950"); // aum 
            unicode.put("κ", "\u0958"); // Urdu qaif
            unicode.put("Κ", "\u0959"); //Urdu qhe
            unicode.put("γ", "\u095A"); // Urdu gain
            unicode.put("ζ", "\u095B"); //Urdu zal, ze, zoe
            unicode.put("φ", "\u095E"); // Urdu f
            unicode.put("δ", "\u095C"); // Hindi 'dh' as in padh
            unicode.put("Δ", "\u095D"); // hindi dhh
            unicode.put("τ", "\u0926\u093C"); // Urdu dwad
            unicode.put("θ", "\u0924\u093C"); // Urdu toe
            unicode.put("σ", "\u0938\u093C"); // Urdu swad, se
    
            /*
    transformed = transformed.replaceAll("AUM","Ω"); //omega or Ohm
    transformed = transformed.replaceAll("OM","Ω"); //Omega or Ohm
    
    transformed = transformed.replaceAll("q","κ");  //Greek kappa
    transformed = transformed.replaceAll("K","Κ");  // Greek Capital Kappa
    transformed = transformed.replaceAll("G","γ"); //gamma
    transformed = transformed.replaceAll("z","ζ"); //Zeta
    transformed = transformed.replaceAll("J","ζ"); //Zeta
    transformed = transformed.replaceAll("f","φ"); //phi
    transformed = transformed.replaceAll(".Dh","Δ");  //Capital Delta
    transformed = transformed.replaceAll(".D","δ"); //delta
    transformed = transformed.replaceAll(".d","τ"); //tau
    transformed = transformed.replaceAll(".t","θ"); //theta
    transformed = transformed.replaceAll(".s","σ"); //sigma
    transformed = transformed.replaceAll(".c","ω"); //omega
    */
            transformer = new IndicUnicodeTransformer(unicode, matra,halant);
        }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy