2014-07-15 22 views
0

我在Java應用程序中使用「Google輸入工具」作爲梵文輸入。 以下是我在一個文本字段中輸入Devanagari नमस्ते的場景,我想在第二個文本框中顯示它的英文等同namaste。怎麼做?如何編碼梵文返回英文編碼

enter image description here

private void jTextField1KeyReleased(java.awt.event.KeyEvent evt) {           
    // TODO add your handling code here: 
    String input = jTextField1.getText(); 
    jTextField2.setText(input); // I need code here to show input in English Encoding. 
    System.out.println("Input "+input); 
} 

輸出:

Input n 
    Input na 
    Input nam 
    Input nama 
    Input namas 
    Input namast 
    Input namaste 
    Input नमस्ते 
+0

嗯,我想你需要一個翻譯器或者讓我們說從Devangari字母轉換爲拉丁字母。嘗試根據例如[梵文音譯](http://en.wikipedia.org/wiki/Devanagari_transliteration) – Jagger

+1

找到一個Java庫或者根據它來編寫自己的Java庫,不需要翻譯器。我實際上是在輸入英文單詞,它給了我devnagari相當於。我想獲得原始的英文文本..感謝您的投票,現在沒有人會在意答案。 – Tejas

+0

您可能正在鍵入英文並獲取Devangari,因爲您的操作系統中的鍵盤佈局設置爲這樣。它與Java編程無關。 – Jagger

回答

5

感謝Pawel該評論。 我看了一下那個庫,這裏是Helper類,它解決了我的問題!

import com.ibm.icu.text.Transliterator; 

/** 
* @author Tejas 
*/ 

public class MarathiHelper { 

    public String devanagariToLatin(String marathiString) { 

     final String MAR_TO_ENG = "Devanagari-Latin"; 
     //final String DEV_TO_LATIN_NO_ACCENTS = "Devanagari-Latin; nfd; [:nonspacing mark:] remove; nfc"; 

     Transliterator toEnglish = Transliterator.getInstance(MAR_TO_ENG); 
     String english = toEnglish.transliterate(marathiString); 

     return english; 

    } 

    public String latinToDevanagari(String latinString) { 

     final String ENG_TO_DEV = "Latin-Devanagari"; 

     Transliterator toMarathi = Transliterator.getInstance(ENG_TO_DEV); 
     String marathi = toMarathi.transliterate(latinString); 

     return marathi; 
    } 

    public String latinToAscii(String latinString){ 


     final String ENG_TO_DEV = "Latin-ASCII"; 
     Transliterator toMarathi = Transliterator.getInstance(ENG_TO_DEV); 
     String ascii = toMarathi.transliterate(latinString); 

     return ascii; 

    } 

    public String asciiToLatin(String asciiString){ 

     final String ENG_TO_DEV = "ASCII-Latin"; 
     Transliterator toMarathi = Transliterator.getInstance(ENG_TO_DEV); 
     String latin = toMarathi.transliterate(asciiString); 

     return latin; 
    } 
}