[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gentoojp-users 616] Re: Javaアプレットで日本語 を入力するには?



太田です。

Javaってのは、まったくもって門外漢なので、
-devへの返信のあと、喰わず嫌いからの最初の一歩を踏み出してみました。(^^;
明快な回答ではありませんので、あしからず。

> Yahoo!チャッ
> トがやりたいのでアプレットの日本語表示に取り組んでいるわけですが、いまだ
> に解決できません。
確かに発言が"豆腐"になってました。

> 実は、2chのGentoo Linux 4スレッドを参考にしまして
> http://pc.2ch.net/test/read.cgi/linux/1047823838/
> この77前後の記事です。

これは2ch見てないのでどういう内容なのかわからなかったのですが、
font.properties.ja については少しわかりました。
http://java.sun.com/j2se/1.3/ja/docs/ja/guide/intl/fontprop.html
とかを読み進み、はじめてのJavaを書いてみました。(^^; test.java です。
# classとかはもっと単純化できるんでしょう、きっと。(System.outとか。)
---------
public class test{
   public static void main(String[] args){
      String language = System.getProperty("user.language");
      String region = System.getProperty("user.region");
      String encoding = System.getProperty("file.encoding");
      String osversion = System.getProperty("os.version");
      String locale = language + "_" + region + "_" + encoding;
      System.out.println("font.properties." + locale + "." + osversion);
      System.out.println("font.properties." + locale);
      System.out.println("font.properties." + language + "_" + region + "." + osversion);
      System.out.println("font.properties." + language + "_" + region);
      System.out.println("font.properties." + language + "_" + encoding + "." + osversion);
      System.out.println("font.properties." + language + "_" + encoding);
      System.out.println("font.properties." + language + "_" + osversion);
      System.out.println("font.properties." + language);
      System.out.println("font.properties." + language + "_" + encoding);
      System.out.println("font.properties." + encoding + "." + osversion);
      System.out.println("font.properties." + encoding);
      System.out.println("font.properties." + osversion);
      System.out.println("");

      System.out.println("Lnguage : " + language);
      System.out.println("Region : " + region);
      System.out.println("Encoding : " + encoding);
      System.out.println("osVersion : " + osversion);
   }
}
---------
実行結果は、
$ java test
font.properties.ja_null_EUC-JP-LINUX.2.4.22
font.properties.ja_null_EUC-JP-LINUX
font.properties.ja_null.2.4.22
font.properties.ja_null
font.properties.ja_EUC-JP-LINUX.2.4.22
font.properties.ja_EUC-JP-LINUX
font.properties.ja_2.4.22
font.properties.ja
font.properties.ja_EUC-JP-LINUX
font.properties.EUC-JP-LINUX.2.4.22
font.properties.EUC-JP-LINUX
font.properties.2.4.22

Lnguage : ja
Region : null
Encoding : EUC-JP-LINUX
osVersion : 2.4.22
という具合でした。(vanilla-sourcesです。)

> font.properties.ja.* を消したらうまくいきました。
わからなかったのは、この部分でして。
$ ls /opt/blackdown-jdk-1.4.1/jre/lib/font*
/opt/blackdown-jdk-1.4.1/jre/lib/font.properties
/opt/blackdown-jdk-1.4.1/jre/lib/font.properties.Redhat6.1
/opt/blackdown-jdk-1.4.1/jre/lib/font.properties.ja
/opt/blackdown-jdk-1.4.1/jre/lib/font.properties.ja.Redhat6.1
/opt/blackdown-jdk-1.4.1/jre/lib/font.properties.ja.Redhat6.2
/opt/blackdown-jdk-1.4.1/jre/lib/font.properties.ja.Turbo
/opt/blackdown-jdk-1.4.1/jre/lib/font.properties.ja.Turbo6.0
/opt/blackdown-jdk-1.4.1/jre/lib/font.properties.zh.Turbo

/opt/blackdown-jdk-1.4.1/jre/lib/fonts:
LucidaBrightDemiBold.ttf    LucidaSansDemiOblique.ttf        LucidaTypewriterOblique.ttf
LucidaBrightDemiItalic.ttf  LucidaSansOblique.ttf            LucidaTypewriterRegular.ttf
LucidaBrightItalic.ttf      LucidaSansRegular.ttf            fonts.dir
LucidaBrightRegular.ttf     LucidaTypewriterBold.ttf
LucidaSansDemiBold.ttf      LucidaTypewriterBoldOblique.ttf

てな訳で、消すとうまくいったってのがちょいと腑に落ちませんでした。
---------
それから、ja.RedHat6.2なんかの中身を見てみましたら、
wadalab って和田研フォントのことかな?、
日本語はそういう指定がされているようですね。
エンコーディングが多いもので2種類、UTFなものは入っていないように思えまし
た。
Javaなappletがどのようなエンコーディングを使っているのかわかりませんが、
fonts.dirと似たような感じでしてなんとかなりそうな気がします。書式と%dだ
けちょっと異質かな?

あと、JAVA_FONTSというパス環境変数で、ttfフォントを使えるようになるらし
いのですが、printenvではそれらしいもの出てきません。
そこら辺含めて情報提供して頂けると、試される方の労力減る気がします。
font.properties.ja 含めて。

以上。

# またしてもフォント問題がー。こんなところにもあったとは。(^^; 
# お薦めディスクトップ環境ができるまでには解決せねば。
# gentooの環境変数なものって、やっぱ弱いのかなと思った次第。
# RegionはJPでしょ? きっと。


-- 
Takashi Ota<088@xxxxxxxxxxxxx>