[Talk-de] JOSM rendering asiatische Namen

Stephan osm at stephans-server.de
So Sep 21 10:42:43 UTC 2008


Hallo,

Problem ist, dass einige asiatische Namen in JOSM nicht korrekt 
dargestellt werden. Ein Teil des Problems ist der Font, aber das löst 
nicht alles.

So wie ich es verstehe liegt das Problem daran, dass Java das rendering 
nicht unterstützt. Ich habe mal JDK7b35 probiert, dort sieht es genau 
gleich aus.

Gibt es alternative Font-Renderer? Sowas wie Freetype für Java? Oder 
bleibt nur abwarten?


Hier mal ein Testprogramm falls jemand spielen will:

import java.awt.*;
import javax.swing.*;

/** Check here the correct rendering of Vientiane in Lao:
  * http://www.openstreetmap.org/browse/node/122739684
  *
  * Read here:
  * 
http://java.sun.com/javase/technologies/core/basic/intl/faq.jsp#writing-system-support
  *
  * Can Sun's JREs render text in Thai, Lao, Burmese, or any of the 
Indic scripts?
  *
  * Among the South and South-East Asian scripts, Sun's JREs have 
supported Thai
  * and Devanagari since version 1.4. For a complete list of all 
supported writing
  * systems, see the Supported Locales documents for Java SE 6 for J2SE 
5.0,
  * J2SE 1.4.2, and J2SE 1.3.1. Support for other writing systems may be 
added in
  * future releases.
  *
  */
public class DisplayUnicode {
    public static void main(String[] args) {

        // "lo" is not in the List. Is this the problem?
        java.util.Locale list[] = 
java.text.DateFormat.getAvailableLocales();
        for (java.util.Locale aLocale : list) {
            System.out.println(aLocale.toString());
        }
       
        JFrame frame = new JFrame("Unicode Testbench");
        frame.getContentPane().setLayout(new FlowLayout());
       
        final String lao = "\u0EA7\u0EBD\u0E87\u0E88\u0EB1\u0E99";

        final JLabel label1 = new JLabel("Lao text in Unicode (default 
JLabel): "+lao);
        frame.getContentPane().add(label1);

        final JLabel label2 = new JLabel("Lao text in Unicode (Font 
Arial): "+lao);
        label2.setFont(new Font("Arial Unicode MS", Font.PLAIN, 12));
        frame.getContentPane().add(label2);
       
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }
}







Mehr Informationen über die Mailingliste Talk-de