Announcement

Collapse
No announcement yet.

HOWTO: Java to display Japanese characters (in English locale)

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    HOWTO: Java to display Japanese characters (in English locale)

    Many people, such as myself want to be able to view Japanese text using Java, but haven't necessarily installed the Japanese version of Kubuntu or Java. This should work for Sun Java (tested on 1.6) using an English install of Kubuntu.... I suspect it will work on most other configs too though.

    Note:
    The Java runtime environment currently in the repos is not the the most up to date and therefore many people will be downloading the new one from Sun directly. The problem with this is that Sun's version doesn't come with a satisfactory font configuration file that will work well with Kubuntu. Even the file in the repos seems to point to Sazanami font, which I have found not to be default installed with Kubuntu and rather ugly anyway.

    The solution is to update your configuration to point to Kochi instead which is a far superior font and should come with a default install.

    OK, so first, you'll have to identify your JRE (Java runtime environment) directory. For me this is /opt/jdk1.6.0/jre, but only because I put it there. If you installed sun java from the repositories, it might be something like /usr/lib/jvm/java-1.5.0-sun-1.5.0.08/jre. Next you need to make sure the the the correct font.properties file is in the 'lib' directory. There's no default for Ubuntu/Kubuntu so the standard 'font.properties' will be used (instead of an OS specific one).

    After doing a little modifying of the existing ones, I've made this. I hope it helps.

    /opt/jdk1.6.0/jre/lib/fontconfig.properties

    Code:
    # MODIFIED FOR JAPANESE VERSION
    #
    # fontconfig.properties for Debian/Ubuntu, derived from linux.fontconfig.RedHat.9.0.properties
    #
    
    # @(#)linux.fontconfig.RedHat.9.0.properties	1.6 03/11/14
    #
    # Copyright 2003 Sun Microsystems, Inc. All rights reserved.
    #
    
    # Version
    
    version=1
    
    # Component Font Mappings
    
    allfonts.chinese-gb18030=-misc-ar pl shanheisun uni-medium-r-normal--*-*-*-*-p-*-iso10646-1
    allfonts.chinese-gb18030.motif=-misc-ar pl shanheisun uni-medium-r-normal--*-*-*-*-p-*-iso10646-1
    allfonts.chinese-big5=-misc-ar pl shanheisun uni-medium-r-normal--*-*-*-*-p-*-iso10646-1
    allfonts.chinese-big5.motif=-misc-ar pl shanheisun uni-medium-r-normal--*-*-*-*-p-*-iso10646-1
    allfonts.lucida=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1
    
    serif.plain.japanese-iso10646=-misc-kochi mincho-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    serif.plain.japanese-x0208=-misc-sazanami mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
    serif.plain.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    serif.plain.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0
    serif.plain.latin-1=-b&h-lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1
    serif.plain.latin-1.motif=-b&h-luxi serif-medium-r-normal--*-%d-*-*-p-*-iso8859-1
    
    serif.bold.japanese-iso10646=-misc-kochi mincho-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    serif.bold.japanese-x0208=-misc-sazanami mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
    serif.bold.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    serif.bold.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0
    serif.bold.latin-1=-b&h-lucidabright-demibold-r-normal--*-%d-*-*-p-*-iso8859-1
    serif.bold.latin-1.motif=-b&h-luxi serif-bold-r-normal--*-%d-*-*-p-*-iso8859-1
    
    serif.italic.japanese-iso10646=-misc-kochi mincho-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    serif.italic.japanese-x0208=-misc-sazanami mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
    serif.italic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    serif.italic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0
    serif.italic.latin-1=-b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1
    serif.italic.latin-1.motif=-b&h-luxi serif-medium-i-normal--*-%d-*-*-p-*-iso8859-1
    
    serif.bolditalic.japanese-iso10646=-misc-kochi mincho-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    serif.bolditalic.japanese-x0208=-misc-sazanami mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
    serif.bolditalic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    serif.bolditalic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0
    serif.bolditalic.latin-1=-b&h-lucidabright-demibold-i-normal--*-%d-*-*-p-*-iso8859-1
    serif.bolditalic.latin-1.motif=-b&h-luxi serif-bold-i-normal--*-%d-*-*-p-*-iso8859-1
    
    sansserif.plain.japanese-iso10646=-misc-kochi gothic-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    sansserif.plain.japanese-x0208=-misc-sazanami gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
    sansserif.plain.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    sansserif.plain.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0
    sansserif.plain.latin-1=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1
    sansserif.plain.latin-1.motif=-b&h-luxi sans-medium-r-normal--*-%d-*-*-p-*-iso8859-1
    
    sansseric.bold.japanese-iso10646=-misc-kochi gothic-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    sansserif.bold.japanese-x0208=-misc-sazanami gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
    sansserif.bold.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    sansserif.bold.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0
    sansserif.bold.latin-1=-b&h-lucidasans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1
    sansserif.bold.latin-1.motif=-b&h-luxi sans-bold-r-normal--*-%d-*-*-p-*-iso8859-1
    
    sansserif.italic.japanese-iso10646=-misc-kochi gothic-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    sansserif.italic.japanese-x0208=-misc-sazanami gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
    sansserif.italic.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    sansserif.italic.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0
    sansserif.italic.latin-1=-b&h-lucidasans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1
    sansserif.italic.latin-1.motif=-b&h-luxi sans-medium-i-normal--*-%d-*-*-p-*-iso8859-1
    
    sansserif.bolditalic.japanese-iso10646=-misc-kochi gothic-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    sansserif.bolditalic.japanese-x0208=-misc-sazanami gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
    sansserif.bolditalic.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    sansserif.bolditalic.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0
    sansserif.bolditalic.latin-1=-b&h-lucidasans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1
    sansserif.bolditalic.latin-1.motif=-b&h-luxi sans-bold-i-normal--*-%d-*-*-p-*-iso8859-1
    
    monospaces.plain.japanese-iso10646=-misc-kochi mincho-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    monospaced.plain.japanese-x0208=-misc-sazanami mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
    monospaced.plain.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    monospaced.plain.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0
    monospaced.plain.latin-1=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
    monospaced.plain.latin-1.motif=-b&h-luxi mono-medium-r-normal--*-%d-*-*-m-*-iso8859-1
    
    monospaced.bold.japanese-iso10646=-misc-kochi mincho-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    monospaced.bold.japanese-x0208=-misc-sazanami mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
    monospaced.bold.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    monospaced.bold.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0
    monospaced.bold.latin-1=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
    monospaced.bold.latin-1.motif=-b&h-luxi mono-bold-r-normal--*-%d-*-*-m-*-iso8859-1
    
    monospaced.italic.japanese-iso10646=-misc-kochi mincho-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    monospaced.italic.japanese-x0208=-misc-sazanami mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
    monospaced.italic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    monospaced.italic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0
    monospaced.italic.latin-1=-b&h-lucidatypewriter-medium-i-normal-sans-*-%d-*-*-m-*-iso8859-1
    monospaced.italic.latin-1.motif=-b&h-luxi mono-medium-i-normal--*-%d-*-*-m-*-iso8859-1
    
    monospaced.bolditalic.japanese-iso10646=-misc-kochi mincho-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    monospaced.bolditalic.japanese-x0208=-misc-sazanami mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
    monospaced.bolditalic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    monospaced.bolditalic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0
    monospaced.bolditalic.latin-1=-b&h-lucidatypewriter-bold-i-normal-sans-*-%d-*-*-m-*-iso8859-1
    monospaced.bolditalic.latin-1.motif=-b&h-luxi mono-bold-i-normal--*-%d-*-*-m-*-iso8859-1
    
    dialog.plain.japanese-iso10646=-misc-kochi gothic-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    dialog.plain.japanese-x0208=-misc-sazanami gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
    dialog.plain.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    dialog.plain.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0
    dialog.plain.latin-1=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1
    dialog.plain.latin-1.motif=-b&h-luxi sans-medium-r-normal--*-%d-*-*-p-*-iso8859-1
    
    dialog.bold.japanese-iso10646=-misc-kochi gothic-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    dialog.bold.japanese-x0208=-misc-sazanami gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
    dialog.bold.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    dialog.bold.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0
    dialog.bold.latin-1=-b&h-lucidasans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1
    dialog.bold.latin-1.motif=-b&h-luxi sans-bold-r-normal--*-%d-*-*-p-*-iso8859-1
    
    dialog.italic.japanese-iso10646=-misc-kochi gothic-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    dialog.italic.japanese-x0208=-misc-sazanami gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
    dialog.italic.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    dialog.italic.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0
    dialog.italic.latin-1=-b&h-lucidasans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1
    dialog.italic.latin-1.motif=-b&h-luxi sans-medium-i-normal--*-%d-*-*-p-*-iso8859-1
    
    dialog.bolditalic.japanese-iso10646=-misc-kochi gothic-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    dialog.bolditalic.japanese-x0208=-misc-sazanami gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
    dialog.bolditalic.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    dialog.bolditalic.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0
    dialog.bolditalic.latin-1=-b&h-lucidasans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1
    dialog.bolditalic.latin-1.motif=-b&h-luxi sans-bold-i-normal--*-%d-*-*-p-*-iso8859-1
    
    dialoginput.plain.japanese-iso10646=-misc-kochi mincho-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    dialoginput.plain.japanese-x0208=-misc-sazanami mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
    dialoginput.plain.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    dialoginput.plain.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0
    dialoginput.plain.latin-1=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
    dialoginput.plain.latin-1.motif=-b&h-luxi mono-medium-r-normal--*-%d-*-*-m-*-iso8859-1
    
    dialofinput.bold.japanese-iso10646=-misc-kochi mincho-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    dialoginput.bold.japanese-x0208=-misc-sazanami mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
    dialoginput.bold.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    dialoginput.bold.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0
    dialoginput.bold.latin-1=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
    dialoginput.bold.latin-1.motif=-b&h-luxi mono-bold-r-normal--*-%d-*-*-m-*-iso8859-1
    
    dialoginput.italic.japanese-iso10646=-misc-kochi mincho-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    dialoginput.italic.japanese-x0208=-misc-sazanami mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
    dialoginput.italic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    dialoginput.italic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0
    dialoginput.italic.latin-1=-b&h-lucidatypewriter-medium-i-normal-sans-*-%d-*-*-m-*-iso8859-1
    dialoginput.italic.latin-1.motif=-b&h-luxi mono-medium-i-normal--*-%d-*-*-m-*-iso8859-1
    
    dialoginput.bolditalic.japanese-iso10646=-misc-kochi mincho-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    dialoginput.bolditalic.japanese-x0208=-misc-sazanami mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
    dialoginput.bolditalic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    dialoginput.bolditalic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-ksc5601.1987-0
    dialoginput.bolditalic.latin-1=-b&h-lucidatypewriter-bold-i-normal-sans-*-%d-*-*-m-*-iso8859-1
    dialoginput.bolditalic.latin-1.motif=-b&h-luxi mono-bold-i-normal--*-%d-*-*-m-*-iso8859-1
    
    # Search Sequences
    
    sequence.allfonts=latin-1,japanese-iso10646
    sequence.allfonts.UTF-8=latin-1,japanese-iso10646,japanese-x0201,chinese-gb18030
    sequence.allfonts.Big5=latin-1,chinese-big5
    sequence.allfonts.GB2312=latin-1,chinese-gb18030
    sequence.allfonts.x-euc-jp-linux=latin-1,japanese-iso10646,japanese-x0208
    sequence.allfonts.UTF-8.ja.JP=latin-1,japanese-iso10646,japanese-x0208,japanese-x0201,chinese-iso10646
    sequence.allfonts.EUC-KR=latin-1,korean
    sequence.allfonts.GB18030=latin-1,chinese-gb18030
    sequence.fallback=lucida,japanese-iso10646,chinese-big5,chinese-gb18030,japanese-x0208,korean
    
    # Exclusion Ranges
    
    exclusion.japanese-x0208=0390-03d6,2200-22ef,2701-27be
    
    # Font File Names
    
    filename.-misc-ar_pl_shanheisun_uni-medium-r-normal--*-*-*-*-p-*-iso10646-1=/usr/share/fonts/truetype/arphic/uming.ttf
    filename.-misc-baekmuk_batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/truetype/batang.ttf
    filename.-misc-baekmuk_gulim-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/truetype/gulim.ttf
    filename.-misc-kochi_gothic-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/truetype/kochi/kochi-gothic-subst.ttf
    filename.-misc-kochi_mincho-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/truetype/kochi/kochi-mincho-subst.ttf
    filename.-misc-sazanami_gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0=/usr/share/fonts/truetype/sazanami/sazanami-gothic.ttf
    filename.-misc-sazanami_mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0=/usr/share/fonts/truetype/sazanami/sazanami-mincho.ttf
    
    # AWT X11 font paths
    awtfontpath.latin-1=/usr/lib/X11/fonts/Type1
    awtfontpath.chinese-gb18030=/usr/share/fonts/truetype/arphic
    awtfontpath.japanese-iso10646=/usr/share/fonts/truetype/kochi
    awtfontpath.japanese-x0208=/usr/share/fonts/truetype/sazanami
    #awtfontpath.korean=/usr/share/fonts/ko/TrueType
    For more information, please see my posts in the Ubuntu forums:
    http://ubuntuforums.org/showthread.p...64#post2104164
Working...
X