Tekil Mesaj gösterimi
Alt 17 Ocak 2015, 08:54   #9
Çevrimdışı
saywhat
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Rüya Tabirleri Tcl...




utf-8 desteği ne sadece script üzerinden çözülebilir nede sadece bot üzerinde ,her ikisininde buna göre yapılandırılmış olması gerekiyor.

sorun sadece o ilk satırda "baslik"'ta ise :
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
set baslik [string map -nocase { "ı" "i" "ş" "ş" "ü" "u" "ı" "i" "I" "i" "Ü" "u" "ö" "o" "Ö" "o" "ş" "s" "ç" "c" "Ş" "S" "Ç" "C" "ğ" "g" "Ğ" "G" "ğ" \u011f} $baslik]

bu satırları silip deneyin birde.

her kullanıcı kullansın deniyorsa o ayarı ya "-" yada "-|-" hatta "*" olarak da ayarlanırsa tüm kullanıcılar kullanabilir.
( uyarmadı demeyin : ben bunu hiç tavsiye etmiyorum. nedeni, pek çok rüya yorumu oldukça uzun. bota/kanala flood edilmesinin önünü açmış oluyorsunuz. bot flood'dan sunucudan düşebilir.* )

bende işleyen 3 botda 1.8 cvs sürümü.
1.8'ler 1.6.x'lerdan farklı olarak kendiliğinden utf-8 patch'li- destekliler.
kaldı ki burada
forumda gözlemlediğim kadarıyla bizim kullanıcılarda eskiye rağbet var...
yeni sürümler dururken 6-7 sene evvelki hatta daha eski sürümleri kurmaya/kullanmaya daha meilliler...

pekçok kez,farklı konular altında izah etmeye çalıştım.zaten başka da silah zoruyla yaptıracak/kullandıracak halim de yok.

Heartbroken'da zamanında Türkçe' ye çevirip anlatmış burada bir konu altında botun nasıl utf-8 patch edildiğini:
orjinali budur -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
heartbroken'ın anlatımı -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]


bot 1.6.19 ise :
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
diff -urN eggdrop1.6.19.original/src/chanprog.c eggdrop1.6.19.modified/src/chanprog.c --- eggdrop1.6.19.original/src/chanprog.c 2008-02-16 22:41:03.000000000 +0100 +++ eggdrop1.6.19.modified/src/chanprog.c 2010-06-21 14:24:27.000000000 +0200 @@ -444,7 +444,7 @@ protect_readonly = 0; /* Now read it */ - if (!readtclprog(configfile)) + if (!readtclprog(configfile, 0)) fatal(MISC_NOCONFIGFILE, 0); for (i = 0; i < max_logs; i++) { diff -urN eggdrop1.6.19.original/src/mod/channels.mod/channels.c eggdrop1.6.19.modified/src/mod/channels.mod/channels.c --- eggdrop1.6.19.original/src/mod/channels.mod/channels.c 2008-02-16 22:41:06.000000000 +0100 +++ eggdrop1.6.19.modified/src/mod/channels.mod/channels.c 2010-06-21 14:24:27.000000000 +0200 @@ -498,7 +498,7 @@ if (!channel_static(chan)) chan->status |= CHAN_FLAGGED; chan_hack = 1; - if (!readtclprog(chanfile) && create) { + if (!readtclprog(chanfile, 1) && create) { FILE *f; /* Assume file isnt there & therfore make it */ diff -urN eggdrop1.6.19.original/src/mod/module.h eggdrop1.6.19.modified/src/mod/module.h --- eggdrop1.6.19.original/src/mod/module.h 2008-02-16 22:41:06.000000000 +0100 +++ eggdrop1.6.19.modified/src/mod/module.h 2010-06-21 14:29:54.000000000 +0200 @@ -282,7 +282,7 @@ #define copyfile ((int (*) (char *, char *))global[147]) /* 148 - 151 */ #define do_tcl ((void (*)(char *, char *))global[148]) -#define readtclprog ((int (*)(const char *))global[149]) +#define readtclprog ((int (*)(const char *, int))global[149]) #define get_language ((char *(*)(int))global[150]) #define def_get ((void *(*)(struct userrec *, struct user_entry *))global[151]) /* 152 - 155 */ diff -urN eggdrop1.6.19.original/src/proto.h eggdrop1.6.19.modified/src/proto.h --- eggdrop1.6.19.original/src/proto.h 2008-02-16 22:41:04.000000000 +0100 +++ eggdrop1.6.19.modified/src/proto.h 2010-06-21 14:30:06.000000000 +0200 @@ -270,7 +270,7 @@ void protect_tcl(); void unprotect_tcl(); void do_tcl(char *, char *); -int readtclprog(char *fname); +int readtclprog(char *fname, int); /* userent.c */ void list_type_kill(struct list_type *); diff -urN eggdrop1.6.19.original/src/tcl.c eggdrop1.6.19.modified/src/tcl.c --- eggdrop1.6.19.original/src/tcl.c 2008-02-16 22:41:04.000000000 +0100 +++ eggdrop1.6.19.modified/src/tcl.c 2010-06-21 14:26:57.000000000 +0200 @@ -725,21 +725,34 @@ * * returns: 1 - if everything was okay */ -int readtclprog(char *fname) +int readtclprog(char *fname, int noencoding) { int code; char *result; #ifdef USE_TCL_ENCODING + char *encoding = NULL; Tcl_DString dstr; #endif if (!file_readable(fname)) return 0; +#ifdef USE_TCL_ENCODING + if (noencoding && Tcl_Eval(interp, "encoding system") == TCL_OK) { + encoding = nmalloc(strlen(interp->result)+1); + strcpy(encoding, interp->result); + Tcl_SetSystemEncoding(interp, "identity"); + } +#endif + code = Tcl_EvalFile(interp, fname); result = Tcl_GetVar(interp, "errorInfo", TCL_GLOBAL_ONLY); #ifdef USE_TCL_ENCODING + if (noencoding && encoding) { + Tcl_SetSystemEncoding(interp, encoding); + nfree(encoding); + } /* properly convert string to system encoding. */ Tcl_DStringInit(&dstr); Tcl_UtfToExternalDString(NULL, result, -1, &dstr);

bunu kaydedin. blabla.patch gibi botun ana dizinine gönderip bot ana dizinindeyken (botun kurulum klasöründe olacak,kurulmuş botta değil.patch işlemi yeniden kurulum/derleme gerektirir.)
patch -p1 < blabla.patch komutu uygulayıp kurulumu normal şekilde gerçekleştirin.(bot sürümü 1.6.19 ise*)

tüm 1.6.x sürümleri yukarda heartbroken'ın anlattığı utf-8 patch işlemini uygulayarak yeniden botlarını kurmalı/derlemelidir. 1.8 sürümü için tek yapılacak işlem .conf dosyasına tercihen yukarılarda bir yere "encoding system utf-8" satırı eklemek..

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet reklamver