[linux-programlama] Re: php ile gettext

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Enver ALTIN (ealtin@parkyeri.com)
Date: Fri 09 Jul 2004 - 13:42:56 EEST


Merhaba,
On Fri, 2004-07-09 at 11:19 +0300, Hasan Basri Ateş (ATM/Network Grp.
Bşk.Webmaster) wrote:
> Php ile çoklu dil desteli web sitesi yaparken gettext kullansak
> sistemi çok zorlar mı? Veya siz ne önerirsiniz.

PEAR::HTML/Template/IT ve şunu:

            define ("HTML_Template_Folder", "tmpl/");
        
            function gettextize_text($t) {
                $pos=0;
                $src=array();
                $dst=array();
                while (($beg=strpos($t, '_("', $pos))!==FALSE) {
                    if (($end=strpos($t, '")', $beg+1))!==FALSE) {
                        $substr=substr($t, $beg+3, $end-$beg-3);
                        $src[]='_("'.$substr.'")';
                        $dst[]=_($substr);
                    }
                    $pos=$end;
                }
                return str_replace($src, $dst, $t);;
            }
        
            function template_from_file($file, $removeblocks=FALSE) {
                if (is_file(HTML_Template_Folder."/$file.tpl.html")) {
                    $tpl=new HTML_Template_IT(HTML_Template_Folder);
                    $contents=file_get_contents(HTML_Template_Folder."/$file.tpl.html");
                    $tpl->setTemplate(gettextize_text($contents), TRUE, $removeblocks);
                    $tpl->setCurrentBlock();
                    return $tpl;
                } else return FALSE;
            }

kullanırsanız, gettext kullanmak gayet eğlenceli olabilir. Projenin
başına da şuna benzer birşeyler:

            setlocale(LC_ALL, DEFAULT_LANG);
            bindtextdomain("projeadi", "po");
            textdomain("projeadi");

eklemeniz yeterli olacak. gettext kullanmayan, ama ilginç bir tasarıma
sahip örnek birkaç proje için:

        http://skyblue.gen.tr/projects/

altındaki çöplüğe bir göz atabilirsiniz.

Gettext kullanmaya başlamadan önce, sisteminize intltool paketini
kurmanız da ciddi kolaylık olacak. intltool-update manual'e de bir göz
atabilirsiniz.

PS: Yukarıdaki gettextize_text() fonksiyonundaki rezaletin son perdesi
için daha şık bir çözüm önerisi olan var mı? Üşendiğim için regex ile
uğraşmadım.

PS2: Gettext gerçekten kullanışlıdır, eğer yukarıdakiler sizin için pek
birşey ifade etmediyse, lütfen sormayı deneyin, vaktim olduğunda daha
açıklayıcı birşeyler yazayım.

-HTH

-- 
Enver ALTIN <ealtin@parkyeri.com>
Parkyeri

-- Attached file included as plaintext by Ecartis -- -- File: signature.asc -- Desc: This is a digitally signed message part

-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQBA7nawZCB2FZvqK0sRAircAJ9oW5I848xqHbw4XKQZIy8PN8TViQCeJ+gc nLw7RW6ELmJKoZXUqJA+OsE= =1ygA -----END PGP SIGNATURE-----


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.