Satranç Problemleri
StumbleUpon ile keşfettiğim bir site, http://www.chessproblems.com/. Kendi problemlerinizide ekleyebiliyorsunuz.
StumbleUpon ile keşfettiğim bir site, http://www.chessproblems.com/. Kendi problemlerinizide ekleyebiliyorsunuz.
Bir kaç haftadır Asterisk ile uğraşmaktayım. Php ile asterisk'e hükmetmeye çalışıyorum. Epey ilerlemede sağladım. Bugün (dünden kalma bir sorun) kayıt işleminde dosya adını değiştirme konusu ile uğraştım. Tüm komutlar(örnekler) doğru gönderilmesine rağmen kayıt işleminde dosya ismine müdahale edemiyordum. Her zaman olduğu gibi yine alakasız bir işlem yaparken soruna neden olan kısmı görebildim.
Şuna benzer bir kodla arama yapıldığı zaman sunucuda açılan kanal adını alabiliyordum:
[...] $split_response = split("State: Up",$this->get_response()); $split_response = split("Channel: ",$split_response[0]); $this->channel_name = $split_response[strlen($split_response)]; [...]
Bu kodların altına birde aşağıdaki kodları eklemek gerekiyormuş:
[...] $this->channel_name = str_replace("\r","",$this->channel_name); $this->channel_name = str_replace("\n","",$this->channel_name); [...]
Bu işlemlerden sonra aşağıdakine benzer bir kodla artık açık olan bir kanaldaki görüşmeleri istediğiniz dosya ismi ile kaydedebilirsiniz:
[...] $this->cmd("Action: Monitor"); $this->cmd("Channel: ".$this->channel_name); $this->cmd("File: testdosyasi",2); [...]
Şurada da asterisk için bir php apisi mevcut(muş).
Po dosyalarını mo dosyalarına çevirebilen bir appengine uygulaması geliştirdim. http://po2mo.appspot.com/ adresinden uygulamaya erişebilirsiniz.
Farklı dil desteği olan bir projede kullanmak için PHP ile bir sınıf oluşturdum. Bir kaç özellik daha ekleyeceğim. Kodlara aşağıdan erişebilirsiniz. Çalıştırmak için http://savannah.nongnu.org/projects/php-gettext/ adresinden ilgili php dosyalarını, http://gnuwin32.sourceforge.net/packages/gettext.htm adresindende *.po dosyalarını *.mo dosyasına dönüştürebilmek için gerekli olan araçları indirebilirsiniz. Son verilen adres Windows işletim sistemi için geçerli. Bir Linux dağıtımı kullanıyorsanız paket yöneticiniz vasıtasıyla "gettext" paketini kurabilirsiniz.
Po dosyasını mo dosyasına dönüştürebilmek için konsolda aşağıdaki komutu kullanabilirsiniz.
$ msgfmt messages.po -o messages.mo
Oluşan *.mo dosyasını aşağıdaki dizin yapısı içinde kullanmalısınız.
- locale
-- en_US
---- LC_MESSAGES
------ messages.mo
< ?php /* session_start(); require_once('gettext.inc'); require_once('class.localization.php'); $locale = new localization; $locale->langsPath = realpath('./locale'); $locale->langList = array('tr_TR','en_US','de_DE','fr_FR'); $locale->defaultLang = 'tr_TR'; $locale->domain = 'messages'; $locale->initLocale(); echo $locale->_('string'); */ class localization{ var $langsPath = ''; // Dil dosyalarının yüklü olduğu dizin. var $defaultLang = 'tr_TR'; // Öntanımlı gelen dil. var $langList = array(); // Sistemde yüklü dil listesi. var $lang = ''; // Kullanılan dil değerini tutan değişken. var $domain = 'messages'; // .mo dosyası adı. /* Yerelleştirme sınıfı yükleyicisi. */ function initLocale(){ // Session oluştur ve verileri ata. if (!isset($_SESSION['system_lang'])) $_SESSION['system_lang'] = $this->defaultLang; // Dil değişimi olacaksa verileri ata. if (isset($_GET['lang'])) $_SESSION['system_lang'] = $this->control($_GET['lang']); $this->lang = $_SESSION['system_lang']; // Dil değerine göre verileri yükle. T_setlocale(LC_ALL,$this->lang); T_bindtextdomain($this->domain,$this->langsPath); T_bind_textdomain_codeset($this->domain,'UTF-8'); T_textdomain($this->domain); } /* Dil listesi kontrolü. */ function control($locale){ return in_array($locale,$this->langList) ? $locale : $this->defaultLang; } /* Metni çevirir. */ function _($str){ return T_($str); } } ?>
Powered by WordPress