From owner-FreeBSD-tech-jp@jp.freebsd.org  Fri Jul  2 01:26:31 1999
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id BAA01680;
	Fri, 2 Jul 1999 01:26:31 +0900 (JST)
	(envelope-from owner-FreeBSD-tech-jp@jp.FreeBSD.org)
Received: from ms1.din.or.jp (ms1.din.or.jp [210.135.65.21])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id BAA01675
	for <FreeBSD-tech-jp@jp.freebsd.org>; Fri, 2 Jul 1999 01:26:30 +0900 (JST)
	(envelope-from go@isoternet.org)
Received: from localhost (IDENT:go@ppp02-540.din.or.jp [210.173.226.171])
	by ms1.din.or.jp (8.9.3/3.7W) with ESMTP id BAA13804
	for <FreeBSD-tech-jp@jp.freebsd.org>; Fri, 2 Jul 1999 01:26:29 +0900 (JST)
Message-Id: <199907011626.BAA13804@ms1.din.or.jp>
To: FreeBSD-tech-jp@jp.freebsd.org
In-Reply-To: Your message of "Thu, 1 Jul 1999 23:26:14 JST".
	<199907011426.XAA39876@toto.noc.titech.ac.jp>
From: go@isoternet.org (Go Watanabe)
X-Mailer: mnews [version 1.21] 1997-12/23(Tue)
Date: Fri, 02 Jul 1999 01:23:08 +0900
X-Dispatcher: imput version 990401(IM113)
Mime-Version: 1.0
Content-Type: Text/plain; charset=iso-2022-jp
Lines: 87
Reply-To: FreeBSD-tech-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+990625
X-Sequence: FreeBSD-tech-jp 2372
Subject: [FreeBSD-tech-jp 2372] Re: X I18N
Errors-To: owner-FreeBSD-tech-jp@jp.freebsd.org
Sender: owner-FreeBSD-tech-jp@jp.freebsd.org
X-Originator: go@isoternet.org

<199907011426.XAA39876@toto.noc.titech.ac.jp>$B$N5-;v$K$*$$$F(B
aki@jp.freebsd.org$B$5$s$O=q$-$^$7$?!#(B

>Xaw$B$G=q$+$l$?(B $BF|K\8lHsBP1~$J(BX$B%"%W%j%1!<%7%g%s(B,
>$B6qBNE*$K$O(B qmail$B$N(B Maildir$B7A<0$N(BSPOOL$B$KBP1~$7$?(B biff$B$G$"$k(B
>xbuffy(ports$B$K$"$j$^$9(B)$B$J$s$G$9$,!"(B
>$B:G6a$N(BFreeBSD($BNc$($P(B 3.1-R + XFree86 3.3.1)$B$G(B
>$B$3$$$D$rF|K\8l$,I=<($G$-$k$h$&$K$9$k$K$O(B $B$I$J$$$7$?$i$$$$$N$G$7$g$&$+!)(B
>
>$B$3$3$+$i$O?dB,$J$s$G$9$,!"(B
>FreeBSD$BMQ(B XFree86 3.3.1 $B$O(B -DX_LOCALE$B$G$O$J$$$G$9$,!"(B
>$B$=$l$O(B OS$BIUB0$N(B locale$B$,$=$3$=$3;H$($k$C$F$3$H$@$H;W$&$N$G!"(B
>#include <X11/Xlocale.h>    $BF~$l$F(B

$B$3$l$O(B -DX_LOCALE $B$J?M$N$?$a$K0l1~$$$l$^$9!#(B
Xtoolkit $B$N4X?t$OCf$+$i$7$+;2>H$7$J$$$N$G$3$l$NCf$N5-=R$O(B
$B$$$i$J$$$1$l$I!"<+J,$G(B locale $B$^$o$j$N4X?t$r8F$V$J$iI,MW$G$9!#(B
$B$[$s$H$O$"$H$$$/$D$+(B Imake $B$,$o$?$7$F$/$kJQ?t$r%A%'%C%/$7$?$&$($G(B
#define$B$7$J$$$H$$$1$J$$$s$@$1$I$a$s$I$&$J$N$G%Q%9(B

>setlocale(LC_CTYPE, ""); $B$H(B

$B$3$l$O(B XtSetLanguageProc $B$+$i$h$P$l$k$N$GITMQ!#(B

>XtSetLanguageProc(NULL, NULL, NULL); $B$7$F(B

$B$3$l$r$$$l$F!D(B

>LANG$B$r(B ja_JP.EUC$B$K$7$F5/F0$9$l$P(B $B=P$^$9$+$M!)(B

$B$G$9!#(B

>$B$"$HJ,$+$i$J$$$N$,(B libxpg4$B$J$s$G$9$,!"(B
>$B$b$7$+$7$F(B $B$3$l$r%3%s%Q%$%k$N:G8e$G%j%s%/$7$F$d$kI,MW$,(B
>$B$"$k$N$G$7$g$&$+!)(B

$B$=$&$G$9!#$=$&$7$J$$$H(B ja_JP.EUC $B$,DL$k(B setlocale $B$,%j%s%/$5$l$^$;$s(B

>$B$H$3$m$G!"%j%=!<%9$G(BEUC$BJ8;zNs$,;XDj$G$-$k$H$-$O$$$$$s$G$9$,!"(B
>$BNc$($P(B xpbiff$B$_$?$$$K%a!<%k(B(JIS)$B$rI=<($9$k(BX$B%"%W%j$_$?$$$J$H$-$K(B
>jis$B$+$i(Beuc$B$KJQ49$9$k$h$&$J4X?t$C$F$N$O(B 
>$B$J$K$+%i%$%V%i%j$GMQ0U$5$l$F$$$k$N$G$7$g$&$+!)(B
>$B$=$l$H$b<+A0$GJQ49$9$k$N$G$7$g$&$+!)(B

$B$(!<$H!"K\Mh$NI8=`$H$7$F$"$k$Y$-;Q$O!D(B

#include <langinfo.h>
#include <iconv.h>

char *current_encoding = nl_langinfo(CODESET);
iconv_t cid = iconv_open(current_encoding, "iso-2022-jp");

char *ibuf = $BJQ49A0J8;zNs(B;
char *obuf = $B3JG<%P%C%U%!@hF,(B;
size_t ileft = $BJ8;zD9$5(B;
size_t oleft = sizeof $B3JG<@h(B;

iconv(cid, null, null, null, null); /* $B$9$F!<$H=i4|2=(B */
len = iconv(cid, &ibuf, &ileft, &obuf, &oleg);
$B0J2<E,59%A%'%C%/$7$J$,$i$/$j$+$($7(B

$B$($H!"$3$s$J$+$s$8$+$J!D(B

$B$b$C$H$b!"$3$s$J$b$s(B FreeBSD $B$G$O$H!<$<$sF0$-$^$;$s$N$G!"(B
$BIaDL!V<+A0!W$H$$$&$3$H$K$J$j$^$9!#(B

EUC $B$@$1$G$&$4$/$s$GNI$$$J$i(B jis(iso-2022-jp) -> euc $B$N4X?t$r=`Hw!#(B
$B!V$I!<$;F|K\8l$G$k$N$O(B SJIS$B$H(BEUC$B$@$1$@$m!W$C$F$3$H$J$i!"(B
jis->euc $B$H(B jis->sjis $B$N(B2$B$D$r=`Hw$7$F!"(Bsetenv(LC_CTYPE, NULL) $B8+$F@Z$jBX$(!#(B

$B$b>/$7??LLL\$K=hM}$9$k$J$i!"(B

1. jis -> COMPOUND_TEXT $B$r:n@.(B

2. compound_text -> current encoding $B$O(B
   XmbTextPropertyToTextList(X3) $B$D$+$C$FJQ49(B

# XTextProperty $B$r(B COMPOUND_TEXT $B$H$7$F<+A0$G@8@.$7$F(B
# $B$=$l$+$i(B $B>e5-(B API $B$G(BTextList $B$KJQ49!#(BTextList $B$NCf?H$O(B
# Current Locale $B$N(B $B%(%s%3!<%G%#%s%0$G$N(B mb $BJ8;zNs$K$J$k(B

$B$J$*!"K?(B XMascot $B$O(B pipe $B$G30ItJQ49%^%s%I$r$h$s$G$K$2$F$^$9(B($B>P(B)
$B5/F0$9$k%U%#%k%?%3%^%s%I$O%j%=!<%9;XDj$K$7$F$"$k$N$G!"(B
$B%j%=!<%9%U%!%$%k$N$[$&$G(B nkf -e $B$H$+(B nkf -s $B$H$+$7$F$k$+$i(B
I18N $BE*$K$O$*$C$1!#(B
--
$BEOn49d(B (Watanabe,Go) go@isoternet.org / go@denpa.org
