devanagari i18n in java
发布时间:2020-12-15 03:10:35 所属栏目:Java 来源:网络整理
导读:我正在尝试使用i18n在 java中使用来自互联网的示例ttf文件的devanagari / hindi. 我能够加载资源包条目,并加载ttf和设置字体,但它不会根据需要呈现jlabel.它显示了代替字符的块.如果我在eclipse中调试,我可以将鼠标悬停在unicode变量上,甚至可以渲染devanaga
我正在尝试使用i18n在
java中使用来自互联网的示例ttf文件的devanagari / hindi.
我能够加载资源包条目,并加载ttf和设置字体,但它不会根据需要呈现jlabel.它显示了代替字符的块.如果我在eclipse中调试,我可以将鼠标悬停在unicode变量上,甚至可以渲染devanagari.下面是代码和资源包供参考. package i18n; import java.awt.Font; import java.awt.GridLayout; import java.io.InputStream; import java.util.Locale; import java.util.ResourceBundle; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class MyNumbers extends JFrame { private ResourceBundle rb; private Font devanagariFont; public MyNumbers (String language,String fontFile) { loadResourceBundle(language); loadFont(fontFile); display(); } private void display() { String unicode = null; JPanel labels = new JPanel(new GridLayout(0,2)); JLabel uni = null; for(int i=0; i<=10; i++) { unicode = rb.getString("" +i); labels.add(new JLabel("" + i)); labels.add(uni = new JLabel(unicode)); uni.setFont(devanagariFont); } getContentPane().add(labels); setDefaultCloSEOperation(DISPOSE_ON_CLOSE); pack(); setVisible(true); } private void loadFont(String fontFile) { try { InputStream input = getClass().getResourceAsStream(fontFile); Font b = Font.createFont(Font.TRUETYPE_FONT,input); devanagariFont = b.deriveFont(Font.PLAIN,11); } catch(Exception e) { e.printStackTrace(); } } private void loadResourceBundle(String language) { String base = getClass().getName() + "rb"; rb = ResourceBundle.getBundle(base,new Locale(language)); } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub new MyNumbers("hi","Devnew.ttf"); } } 这是我创建的MyNumbersrb_hi.properties的资源包. Default properties in Devnagari 0=u0915u0916u0917: 1=u090fu0915: 2=u0926u094b: 3=u0924u0940u0907: 4=u091au093eu0930: 5=u092au093eu091a: 6=u091bu0947: 7=u0938u093eu0924: 8=u0906u093eu0920: 9=u0928u094c: 10=u0926u0938: random=Random title=Key in numbers to match the words 解决方法
试试这个
https://stackoverflow.com/a/6995374/466250 正如原始问题所说,属性文件默认为ISO-8859-1.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |