elgg_save_system_cache($type, serialize($CONFIG->$var_name));
}
}
+
+ if ($CONFIG->system_cache_enabled && !$CONFIG->i18n_loaded_from_cache) {
+ foreach ($CONFIG->translations as $lang => $map) {
+ elgg_save_system_cache("$lang.php", serialize($map));
+ }
+ }
}
elgg_register_event_handler('ready', 'system', '_elgg_cache_init');
$lastcached = datalist_get("simplecache_lastcached_$viewtype");
$CONFIG->lastcache = $lastcached;
+ $CONFIG->i18n_loaded_from_cache = false;
+
// this must be synced with the enum for the entities table
$CONFIG->entity_types = array('group', 'object', 'site', 'user');
}
* 2. connects to database
* 3. verifies the installation suceeded
* 4. loads application configuration
- * 5. loads site configuration
+ * 5. loads i18n data
+ * 6. loads site configuration
*
* @access private
*/
set_error_handler('_elgg_php_error_handler');
set_exception_handler('_elgg_php_exception_handler');
- register_translations(dirname(dirname(dirname(__FILE__))) . "/languages/");
-
setup_db_connections();
verify_installation();
_elgg_load_application_config();
+ register_translations(dirname(dirname(dirname(__FILE__))) . "/languages/");
+
_elgg_load_site_config();
_elgg_load_cache();
// Get the current language based on site defaults and user preference
$current_language = get_current_language();
- elgg_log("Translations loaded from: $path");
// only load these files unless $load_all is true.
$load_language_files = array(
$load_language_files = array_unique($load_language_files);
+ if ($CONFIG->system_cache_enabled && !$load_all) {
+ // load language files from cache
+ $data = array();
+ $loaded = true;
+ foreach ($load_language_files as $lang_file) {
+ $lang = substr($lang_file, 0, strpos($lang_file, '.'));
+ $data[$lang] = elgg_load_system_cache($lang_file);
+ if (!$data[$lang]) {
+ $loaded = false;
+ break;
+ }
+ }
+
+ if ($loaded) {
+ foreach ($data as $lang => $map) {
+ add_translation($lang, unserialize($map));
+ }
+
+ $CONFIG->i18n_loaded_from_cache = true;
+ return true;
+ }
+ }
+
$handle = opendir($path);
if (!$handle) {
elgg_log("Could not open language path: $path", 'ERROR');
}
}
+ elgg_log("Translations loaded from: $path");
+
return $return;
}