예제 #1
0
 /**
  * Loads a language from cache or locales files
  *
  * @param string $languages	Language code (e.g. en_US or fr_FR)
  */
 public static function load($language)
 {
     if (!preg_match('#^([a-z]{2})(?:_[A-Z]{2})?$#', $language, $match)) {
         throw new Exception('Wrong language format');
     }
     $language_base = $match[0];
     // Locale of PHP
     setlocale(LC_ALL, $language . '.UTF-8', $language_base . '.UTF-8', 'en_EN.UTF-8');
     // Retrieving the translations
     $last_modif = max(filemtime(CF_DIR . 'locales/' . $language), filemtime(APP_DIR . 'locales/' . $language));
     self::$translations = Cache::read('translations_' . $last_modif);
     if (self::$translations != false) {
         return;
     }
     // If the translations cache doesn't exist, we create it
     $vars = '';
     try {
         $vars .= File::read(CF_DIR . 'locales/' . $language);
     } catch (Exception $e) {
         throw new Exception('The L10N file "' . $language . '" for Confeature was not found');
     }
     $vars .= "\n\n";
     try {
         $vars .= File::read(APP_DIR . 'locales/' . $language);
     } catch (Exception $e) {
         throw new Exception('The L10N file "' . $language . '" for the App was not found');
     }
     // Extraction of the variables and storage in the class
     self::$translations = self::parse($vars);
     Cache::write('translations_' . $last_modif, self::$translations, 3600 * 24);
 }
예제 #2
0
파일: L10N.php 프로젝트: techart/tao
 /**
  * Устанавливает локаль
  *
  * @param string $lang
  *
  * @return L10N_LocaleInterface
  */
 public static function locale($lang = null)
 {
     if ($lang !== null) {
         Core::load($module = 'L10N.' . strtoupper($lang));
         self::$locale = Core::make("{$module}.Locale");
     }
     return self::$locale;
 }
 public function index()
 {
     $user = System::getUser();
     $form = new Form('form-profile');
     $form->setAttribute('data-noajax', 'true');
     $form->binding = $user;
     $fieldset = new Fieldset(System::getLanguage()->_('General'));
     $firstname = new Text('firstname', System::getLanguage()->_('Firstname'));
     $firstname->binding = new Databinding('firstname');
     $lastname = new Text('lastname', System::getLanguage()->_('Lastname'));
     $lastname->binding = new Databinding('lastname');
     $email = new Text('email', System::getLanguage()->_('EMail'), true);
     $email->binding = new Databinding('email');
     $email->blacklist = $this->getListOfMailAdresses($user);
     $email->error_msg[4] = System::getLanguage()->_('ErrorMailAdressAlreadyExists');
     $language = new Radiobox('lang', System::getLanguage()->_('Language'), L10N::getLanguages());
     $language->binding = new Databinding('lang');
     $fieldset->addElements($firstname, $lastname, $email, $language);
     $form->addElements($fieldset);
     $fieldset = new Fieldset(System::getLanguage()->_('Password'));
     $password = new Password('password', System::getLanguage()->_('Password'));
     $password->minlength = PASSWORD_MIN_LENGTH;
     $password->binding = new Databinding('password');
     $password2 = new Password('password2', System::getLanguage()->_('ReenterPassword'));
     $fieldset->addElements($password, $password2);
     $form->addElements($fieldset);
     $fieldset = new Fieldset(System::getLanguage()->_('Settings'));
     $quota = new Text('quota', System::getLanguage()->_('Quota'));
     if ($user->quota > 0) {
         $quota->value = System::getLanguage()->_('QuotaAvailabe', Utils::formatBytes($user->getFreeSpace()), Utils::formatBytes($user->quota));
     } else {
         $quota->value = System::getLanguage()->_('Unlimited');
     }
     $quota->readonly = true;
     $fieldset->addElements($quota);
     $form->addElements($fieldset);
     if (Utils::getPOST('submit', false) !== false) {
         if (!empty($password->value) && $password->value != $password2->value) {
             $password2->error = System::getLanguage()->_('ErrorInvalidPasswords');
         } else {
             if ($form->validate()) {
                 $form->save();
                 System::getUser()->save();
                 System::getSession()->setData('successMsg', System::getLanguage()->_('ProfileUpdated'));
                 System::forwardToRoute(Router::getInstance()->build('ProfileController', 'index'));
                 exit;
             }
         }
     } else {
         $form->fill();
     }
     $form->setSubmit(new Button(System::getLanguage()->_('Save'), 'floppy-disk'));
     $smarty = new Template();
     $smarty->assign('title', System::getLanguage()->_('MyProfile'));
     $smarty->assign('heading', System::getLanguage()->_('MyProfile'));
     $smarty->assign('form', $form->__toString());
     $smarty->display('form.tpl');
 }
예제 #4
0
<?php

L10N::registerLanguage('en', 'English');
예제 #5
0
<?php

L10N::registerLanguage('de', 'Deutsch');
예제 #6
0
ob_start('ob_callback');
// Time-zone from the configuration
date_default_timezone_set(Config::TIMEZONE);
// Configuration of the DB
if (isset(Config::$DB)) {
    DB::config(Config::$DB);
}
// Configuration of the cache
if (isset(Config::$CACHE)) {
    Cache::config(Config::$CACHE);
}
// Language of the app
if (!defined('LANG')) {
    define('LANG', Config::$LOCALES[0]);
}
L10N::load(LANG);
// Visitor IP
if (isset($_SERVER['HTTP_CLIENT_IP']) && Validation::isIP($_SERVER['HTTP_CLIENT_IP']) && !Validation::isLocalIP($_SERVER['HTTP_CLIENT_IP'])) {
    define('IP', $_SERVER['HTTP_CLIENT_IP']);
} else {
    if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && Validation::isIP($_SERVER['HTTP_X_FORWARDED_FOR']) && !Validation::isLocalIP($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        define('IP', $_SERVER['HTTP_X_FORWARDED_FOR']);
    } else {
        if (Validation::isIP($_SERVER['REMOTE_ADDR']) && !Validation::isLocalIP($_SERVER['REMOTE_ADDR'])) {
            define('IP', $_SERVER['REMOTE_ADDR']);
        } else {
            define('IP', '0.0.0.0');
        }
    }
}
// Security : The session is wiped if the user-agent change
예제 #7
0
파일: Time.php 프로젝트: techart/tao
 /**
  * Возвращает дату в виде строки в соответствии с локалью и падежом
  *
  * @param  string  $format  формат
  * @param  string  $locale  локаль
  * @param  integer $variant падеж
  *
  * @return string
  *
  * @see  L10N
  */
 public function format_l10n($format, $locale = 'ru', $variant = 0)
 {
     Core::load('L10N');
     L10N::locale($locale);
     return L10N::strftime($format, $this, $variant);
 }
 public function edit()
 {
     $user = User::find('_id', $this->getParam('uid', 0));
     if ($user == NULL) {
         System::displayError(System::getLanguage()->_('ErrorUserNotFound'), '404 Not Found');
     }
     $form = new Form('form-user', Router::getInstance()->build('UsersController', 'edit', $user));
     $form->binding = $user;
     $fieldset = new Fieldset(System::getLanguage()->_('General'));
     $username = new Text('username', System::getLanguage()->_('Username'), true);
     $username->binding = new Databinding('username');
     $username->blacklist = $this->getListOfUsernames($user);
     $username->error_msg[4] = System::getLanguage()->_('ErrorUsernameAlreayExists');
     $firstname = new Text('firstname', System::getLanguage()->_('Firstname'));
     $firstname->binding = new Databinding('firstname');
     $lastname = new Text('lastname', System::getLanguage()->_('Lastname'));
     $lastname->binding = new Databinding('lastname');
     $email = new Text('email', System::getLanguage()->_('EMail'), true);
     $email->binding = new Databinding('email');
     $email->blacklist = $this->getListOfMailAdresses($user);
     $email->error_msg[4] = System::getLanguage()->_('ErrorMailAdressAlreadyExists');
     $language = new Radiobox('lang', System::getLanguage()->_('Language'), L10N::getLanguages(), LANGUAGE);
     $language->binding = new Databinding('lang');
     $fieldset->addElements($username, $firstname, $lastname, $email, $language);
     $form->addElements($fieldset);
     $fieldset = new Fieldset(System::getLanguage()->_('Password'));
     $password = new Password('password', System::getLanguage()->_('Password'));
     $password->binding = new Databinding('password');
     $password2 = new Password('password2', System::getLanguage()->_('ReenterPassword'));
     $fieldset->addElements($password, $password2);
     $form->addElements($fieldset);
     if ($user->uid != System::getUser()->uid) {
         $fieldset = new Fieldset(System::getLanguage()->_('Settings'));
         $quota = new Text('quota', System::getLanguage()->_('Quota') . ' (MB)', true, 'numeric');
         $quota->binding = new Databinding('quota');
         $p = new Paragraph(System::getLanguage()->_('QuotaInfo'));
         $admin = new Radiobox('admin', System::getLanguage()->_('Admin'), array('1' => System::getLanguage()->_('YesStr'), '0' => System::getLanguage()->_('NoStr')));
         $admin->binding = new Databinding('isAdmin');
         $fieldset->addElements($quota, $p, $admin);
         $form->addElements($fieldset);
     }
     $form->setSubmit(new Button(System::getLanguage()->_('Save'), 'floppy-disk'));
     if ($user->uid != System::getUser()->uid) {
         $form->addButton(new Button(System::getLanguage()->_('DeleteUser'), 'trash', Router::getInstance()->build('UsersController', 'delete', $user)));
     }
     $form->addButton(new Button(System::getLanguage()->_('Cancel'), 'remove', Router::getInstance()->build('UsersController', 'index')));
     if (Utils::getPOST('submit', false) !== false) {
         if ($form->validate()) {
             if ($quota->value < 0) {
                 $quota->error = 'Quota must be > 0';
             } else {
                 $form->save();
                 $user->quota *= 1048576;
                 // Quota is MB
                 $user->save();
                 System::forwardToRoute(Router::getInstance()->build('UsersController', 'index'));
                 exit;
             }
         }
     } else {
         $user->quota /= 1048576;
         // Quota is MB
         $form->fill();
     }
     $smarty = new Template();
     $smarty->assign('title', System::getLanguage()->_('EditUser'));
     $smarty->assign('heading', System::getLanguage()->_('EditUser'));
     $smarty->assign('form', $form);
     $smarty->display('form.tpl');
 }