po dosyalarını pars etmek için php poparser kütüphanesini kullanacağız.
include_once 'POParser.php';
$GLOBALS['LANGUAGE_CODE'] = 'tr';
$GLOBALS['LOCALE_PATH'] = 'locale';
$GLOBALS['CACH_PATH'] = 'cach';
function encode_lang_key($str) {
return base64_encode(pack('H*',sha1($str)));
}
if(is_file(dirname(__FILE__).'/cache/lang_'.$GLOBALS['LANGUAGE_CODE'].'.cache')){
$content = file_get_contents(dirname(__FILE__).'/cache/lang_'.$GLOBALS['LANGUAGE_CODE'].'.cache');
$GLOBALS['LANG'] = unserialize($content);
}else {
$langFile = sprintf('%s/%s/LC_MESSAGES/messages.po',$GLOBALS['LOCALE_PATH'],$GLOBALS['LANGUAGE_CODE']);
$pp = new POParser();
$GLOBALS['LANG'] = array();
$res = $pp->parse($langFile);
foreach ($res[1] as $entry) {
if (isset($entry['msgid'])){
$GLOBALS['LANG'][encode_lang_key($entry['msgid'])] = $entry;
}
} file_put_contents(APPLICATION_PATH.'/cache/lang_'.$GLOBALS['LANGUAGE_CODE'].'.cache', serialize($GLOBALS['LANG']));
}
function my_gettext($message) {
$lang_key = encode_lang_key($message);
$retVal = $message;
if (isset($GLOBALS['LANG'][$lang_key])){
$retVal = $GLOBALS['LANG'][$lang_key]['msgstr'];
}
return $retVal;
}
// Örnek kullanım
echo my_gettext("Merhaba Dünya");
Hiç yorum yok:
Yorum Gönder