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

[plamo:15147] スクリプト言語の日本語化



 いつもお世話になっています。

 Plamo 3.0 正式版の配布ももうすぐとなり、楽しみにしています。

 この時期にこんなことを言うのはタイミングが悪いとは思っているのですが、
従来 Plamo では grep, sed, gawk は日本語化されておらず、perl のみ日本語
化されたものがインストールされていました。

 しかし、今度の配布版は perl561.tgz となっているところから、日本語化さ
れていないと思います。確認はしていないのですが、perl 5.005 までしかわた
なべさんは仕事されていないので。そうすると、スクリプト言語の日本語化が全
滅となります……。

 これで何が困るかというと、

  http://www.din.or.jp/~ohzaki/perl.htm

を見ていただければ分かりますが、そのままでは EUC で、

  #!/usr/bin/perl
  $str = "藤高";
  if ($str =~ /9/) {
    print "Oh, bad!\n";
  }

が Oh, bad! と表示されてしまいます。jperl ならだいじょうぶでした……。

# jperl 機能を On にするには ln -sf /usr/bin/perl /usr/bin/jperl とし
# jperl というコマンドを使う。

 そういうわけで、日本語を扱う場合、かなり面倒となります。Perl 5.8 は 
Unicode 対応となるのでいいようなものですが、動きが遅くなりそうだし、もう
少し先だし……。

 で、現実的な解決策として、gawk あるいは grep あたりを、同じバージョン
で、multi-byte extension されたものにさしかえ、

  ln -s /bin/gawk /bin/jgawk

のようにすれば日本語処理可能にしてもらえたら、と思うわけです。multi-byte
extension は gawk という名前で呼び出された時は原版 gawk と同等の動きを示
すので、make 等への影響はないと思います。

 寝言かもしれませんが、

  $ASCII = '[\x00-\x7f]';
  $TWOBYTES = '[\x8e\xa1-\xfe][\xa1-\xfe]';
  $THREEBYTES = '\x8f[\xa1-\xfe][\xa1-\xfe]';
  if ($_ =~ /^(?:$ASCII|$TWOBYTES|$THREEBYTES)*?9/o) {
    print "$_";
  }

のようなことはあまりやりたくないのです。jgawk で単に、

  /9/

としたい……。

--
本田博通(閑舎)
テキストとスクリプトの http://rakunet.org/TSNET/

Follow-Ups
[plamo:15148] Re: スクリプト言語の日本語化, KOJIMA Mitsuhiro
[plamo:15152] Re: スクリプト言語の日本語化, Hiroshi Futami

[検索ページ] [メール一覧]
Plamo ML 公開システム