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-----