Spacez Ly Wang Ответов: 1

Как unicode мьянманские тексты на Java?


- я всего лишь новичок на Яве.
Я пытаюсь правильно отображать тексты Мьянмы в юникоде на Java GUI (Swing/Awt).
У меня есть четыре шрифта TrueType, которые поддерживают тексты unicode в Мьянме. Есть Myanmar3, Padauk, Tharlon, Myanmar Text ( встроенное окно 8 ).
Возможно, Вам понадобятся шрифты перед кодом. Погуглите шрифты, пожалуйста.
Каждый из шрифтов отображается в графическом интерфейсе Java по-разному и неправильно.

Вот код для графической метки, отображающей тексты Мьянмы:
++++++++++++++++++++++++

package javaapplication1;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class CusFrom {
private static void createAndShowGUI() {
JFrame frame = new JFrame("Hello World Swing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
String s = "\u1015\u102F \u103C\u1015\u102F";
JLabel label = new JLabel(s);
label.setFont(new java.awt.Font("Myanmar3", 0, 20));// font insert here, Myanmar Text, Padauk, Myanmar3, Tharlon
frame.getContentPane().add(label);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
} 


++++++++++++++++++++++++
Результаты варьируются. Увидеть изображения:
Myanmar3 IMG: http://i.stack.imgur.com/s0WBN.png

Padauk IMG: "http://i.stack.imgur.com/vkjdt.png

Tharlon IMG: "http://i.stack.imgur.com/FpPg0.png

Мьянма текст IMG: http://i.stack.imgur.com/qbmH3.png

Какова правильная форма? (в блокноте)

http://i.stack.imgur.com/SrNqY.png

Ну а дальше идет код для ввода текстового поля GUI в мьянманские тексты:
++++++++++++++++++++++++
package javaapplication1;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class XusForm {
private static void createAndShowGUI() {
JFrame frame = new JFrame("Frame Title");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTextField textfield = new JTextField();
textfield.setFont(new java.awt.Font("Myanmar3", 0, 20));
frame.getContentPane().add(textfield);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}


++++++++++++++++++++++++
Выходы меняются, когда я вводю клавиши (текст в юникоде) на клавиатурах.
Текст Мьянма выходного: http://i.stack.imgur.com/0icXd.png

Выход падук ИМГ: http://i.stack.imgur.com/I0qMX.png

Выход Myanmar3 ИМГ: http://i.stack.imgur.com/aXLaa.png

Tharlon Output IMG: "http://i.stack.imgur.com/nqxKA.png"


Эти шрифты хорошо работают в Linux при открытии текстовых файлов с помощью приложения текстового редактора.
Мой вопрос заключается в том, как Юникод тексты Мьянма на Java с графическим интерфейсом. Нужны ли мне дополнительные коды, оставленные для хорошего отображения? Или в Java все еще есть ошибки? Шрифты хорошо отображаются в веб-приложении (HTML, CSS), но я не уверен в отображении в веб-приложении Java.

1 Ответов

Рейтинг:
2

TorstenH.

Да, это может быть...ну, скажем, "сложно". Мне приходится иметь дело с несколькими языками в моих приложениях, это всегда весело:

1. машина должна иметь возможность отображать язык
Если вы можете изменить раскладку клавиатуры на определенный язык, то машина должна быть способна отображать и этот язык.
Это важно, так как машина не может правильно отображать шрифты при использовании ложного шрифта.

2. вам нужно указать, что строка, с которой вы работаете, является UTF-8: Байтовые кодировки и строки - учебник по Java[^]
Пожалуйста, Также прочтите другие страницы этого учебника, он довольно хорошо написан и загружен информацией.

3. Файлы свойства могут быть заданы в файле-свойства, чтобы быть UTF-8.
Кроме того, проверьте довольно хороший ResourceBundleEditor[^] для Eclipse IDE, которая помогает вам создавать правильные файлы i18n. Достойный фреймворк приложения также поможет вам в этом.

4. имейте в виду: одно и то же слово в разных языках может иметь разные размеры.
Например, простое слово в английском языке, такое как" адрес", может иметь длинную иностранную поговорку"место, где живет человек".
Огромная разница в ярлыках, формах и графическом интерфейсе в целом! Это действительно может испортить весь день. Поэтому, пожалуйста, попробуйте использовать плавающие макеты.

5. смешанные струны должны быть хорошо обработаны.
Когда вы смешиваете английский с иностранными языками (особенно RTL-языками), вы можете получить смешанный результат. Вы должны знать об этом.
Кроме того, шаги табулятора в тексте часто не работают.


Spacez Ly Wang

Спасибо за ваш ответ.