devanagari i18n in java
发布时间:2020-05-24 23:00:34 所属栏目:Java 来源:互联网
导读:我正在尝试使用i18n在 java中使用来自互联网的示例ttf文件的devanagari / hindi. 我能够加载资源包条目,并加载ttf和设置字体,但它不会根据需要呈现jlabel.它显示了代替字符的块.如果我在eclipse中调试,我可以将鼠标悬停在unicode变量上,甚至可以渲染devanagar
|
我正在尝试使用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.(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
