Вход Регистрация
Файл: adultscript-2.0.3-pro/files/libraries/framework/language.php
Строк: 82
<?php
defined
('_VALID') or die('Restricted Access!');
class 
VLanguage
{
    public  static 
$cache         = array();
    private static 
$files        = array();
    private static 
$language;
    private static 
$languages    = array();
    private static 
$secret;
    
    public static function 
initialize()
    {
        
self::$secret        VF::cfg_item('secret');
        
self::cache_languages();
        
        if (isset(
$_POST['language-code']) &&
            isset(
self::$languages[trim($_POST['language-code'])])) {
            
$_SESSION['language'] = trim($_POST['language-code']);
        }
        
        
self::$language     = (isset($_SESSION['language'])) ? $_SESSION['language'] : VF::cfg_core_item('language');
    }
    
    public static function 
load($key)
    {
        
$key self::$language.'.'.$key;
        if (isset(
self::$files[$key])) {
            return;
        }
        
        if (!
VF::cache_exists($key'language')) {
            
self::cache($key);
        }
        
        
$translation        VF::cache_get($key'language'FALSE);
        
self::$cache        array_merge(self::$cache$translation);
        
self::$files[$key]    = 1;
    }
    
    private static function 
cache($key)
    {
        
$parts    explode('.'$key);
        
$code    $parts['0'];
        
$type    $parts['1'];
        
$name    $parts['2'];
        
        
$db VF::factory('database');
        
$db->query("SELECT file
                    FROM #__language_files
                    WHERE code = '"
.$db->escape($code)."'
                    AND type = '"
.$db->escape($type)."'
                    AND name = '"
.$db->escape($name)."'
                    LIMIT 1"
);
        if (!
$db->affected_rows()) {
            throw new 
VException('Failed to load language file! Aborting...');
        }
        
        
VF::cache_set($keyunserialize($db->fetch_field('file')), 'language'FALSE);
    }
    
    private static function 
cache_languages()
    {
        if (!
self::$languages VF::cache_get('languages''config')) {
            
$db VF::factory('database');
            
$db->query("SELECT code, name, flag FROM #__language WHERE status = '1' ORDER BY code ASC");
            if (!
$db->affected_rows()) {
                throw new 
VException('Failed to load languages! Aborting...');
            }
            
            
$rows        $db->fetch_rows();
            
$languages    = array();
            foreach (
$rows as $row) {
                
$languages[$row['code']] = array('name' => $row['name'], 'flag' => $row['flag']);
            }
            
            
VF::cache_set('languages'$languages'config'TRUE);
            
self::$languages $languages;
        }
    }
    
    public static function 
get($var)
    {
        return 
self::$$var;
    }
    
    public static function 
get_flag()
    {
        return 
self::$languages[self::$language]['flag'];
    }
}

function 
__($string$replace=array())
{
    if (isset(
VLanguage::$cache[$string])) {
        return (
$replace) ? vsprintf(VLanguage::$cache[$string], (array) $replace) : VLanguage::$cache[$string];
    }
    
    return 
$string;
}
Онлайн: 0
Реклама