作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用来自互联网的示例 ttf 文件在 java 中将国际化用于天城文/印地文。
我能够加载资源包条目并加载 ttf 和设置字体,但它不会按需要呈现 jlabel。它显示 block 代替字符。如果我在 eclipse 中调试,我可以将鼠标悬停在 unicode 变量上,它甚至可以呈现梵文。以下是供引用的代码和资源包。
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=\u0915\u0916\u0917:
1=\u090f\u0915:
2=\u0926\u094b:
3=\u0924\u0940\u0907:
4=\u091a\u093e\u0930:
5=\u092a\u093e\u091a:
6=\u091b\u0947:
7=\u0938\u093e\u0924:
8=\u0906\u093e\u0920:
9=\u0928\u094c:
10=\u0926\u0938:
random=Random
title=Key in numbers to match the words
最佳答案
试试这个 https://stackoverflow.com/a/6995374/466250正如最初的问题所说,属性文件默认为 ISO-8859-1。
关于java - Java 中的梵文 i18n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12532056/
我环顾四周,找不到答案。 我想从 mysql 表(印地语词典)中选择一个单词来获取定义。 没有错误,只是没有选择它。我用英文字母测试了它并且有效。我尝试使用 utf8_bin、utf_general_
我正在尝试使用以下代码支持 android 2.x 的梵文字体(即使 android 2.x 无法呈现梵文字体)。除了“raswa”和“dirga”存在一些问题外,代码运行良好。是否有可能在 andr
我是一名优秀的程序员,十分优秀!