Example #1
0
 /**
  * Returns the translation table for a given language.
  *
  *     // Get all defined Spanish messages
  *     $messages = I18n::load('es-es');
  * 
  * После генерации таблицы происходит создание Javascript файла с таблицей
  * перевода для загружаемого языка.
  *
  * @param   string  $lang   language to load
  * @return  array
  */
 public static function load($lang)
 {
     $table = parent::load($lang);
     $filename = Kohana::$cache_dir . DIRECTORY_SEPARATOR . implode(DIRECTORY_SEPARATOR, array('i18n', NULL)) . $lang . '.js';
     if (!file_exists($filename) or file_exists($filename) and time() - filemtime($filename) > Date::DAY) {
         if (Kohana::$profiling === TRUE and class_exists('Profiler', FALSE)) {
             // Start a new benchmark
             $benchmark = Profiler::start('i18n', 'Generate file for lang - ' . $lang);
         }
         try {
             // Create the log file
             file_put_contents($filename, '// Auto generated i18n lang file for lang ' . $lang . ". Created on " . date('Y-m-d H:i:s') . "\n");
             file_put_contents($filename, 'cms.addTranslation(' . json_encode($table) . ');', FILE_APPEND);
             // Allow anyone to write to log files
             chmod($filename, 0777);
         } catch (Exception $e) {
             // do something
         }
         if (isset($benchmark)) {
             // Stop the benchmark
             Profiler::stop($benchmark);
         }
     }
     return $table;
 }
Example #2
0
File: i18n.php Project: raku/MorCMS
 /**
  * Load lang from db table
  * @param string $lang
  * @return array
  */
 public static function load($lang)
 {
     if (Kohana::$environment == Kohana::DEVELOPMENT) {
         if (isset(I18n::$_cache[$lang])) {
             return I18n::$_cache[$lang];
         }
         I18n::$_cache[$lang] = array();
         $language = ORM::factory('language')->find_all()->as_array();
         foreach ($language as $item) {
             I18n::$_cache[$lang][$item->view . '|' . $item->key] = $item->{$lang};
         }
         return I18n::$_cache[$lang];
     } else {
         return parent::load($lang);
     }
 }