/** * This function is executed during the 'plugins_boot' event, before most plugins are initialized * * @return void */ function translation_editor_plugins_boot_event() { // add the custom_keys_locations to language paths $custom_keys_path = elgg_get_data_path() . 'translation_editor' . DIRECTORY_SEPARATOR . 'custom_keys' . DIRECTORY_SEPARATOR; if (is_dir($custom_keys_path)) { register_translations($custom_keys_path); } // force creation of static to prevent reload of unwanted translations reload_all_translations(); if (elgg_in_context('translation_editor') || elgg_in_context('settings') || elgg_in_context('admin')) { translation_editor_reload_all_translations(); } translation_editor_load_custom_languages(); if (!elgg_in_context('translation_editor')) { // remove disabled languages translation_editor_unregister_translations(); } // load custom translations $user_language = get_current_language(); $elgg_default_language = 'en'; $load_languages = [$user_language, $elgg_default_language]; $load_languages = array_unique($load_languages); $disabled_languages = translation_editor_get_disabled_languages(); foreach ($load_languages as $language) { if (empty($disabled_languages) || !in_array($language, $disabled_languages)) { // add custom translations translation_editor_load_translations($language); } } }
function translation_editor_plugins_boot_event() { global $CONFIG; run_function_once("translation_editor_version_053"); // add the custom_keys_locations to language paths $custom_keys_path = $CONFIG->dataroot . "translation_editor" . DIRECTORY_SEPARATOR . "custom_keys" . DIRECTORY_SEPARATOR; if (is_dir($custom_keys_path)) { $CONFIG->language_paths[$custom_keys_path] = true; } // force creation of static to prevent reload of unwanted translations reload_all_translations(); translation_editor_load_custom_languages(); if (elgg_get_context() != "translation_editor") { // remove disabled languages translation_editor_unregister_translations(); } // load custom translations $user_language = get_current_language(); $elgg_default_language = "en"; $load_languages = array($user_language, $elgg_default_language); $load_languages = array_unique($load_languages); $disabled_languages = translation_editor_get_disabled_languages(); foreach ($load_languages as $language) { if (empty($disabled_languages) || !in_array($language, $disabled_languages)) { // add custom translations translation_editor_load_translations($language); } } }
function translation_editor_unregister_translations() { global $CONFIG; $result = false; if ($disabled_languages = translation_editor_get_disabled_languages()) { foreach ($CONFIG->translations as $key => $dummy) { if (in_array($key, $disabled_languages)) { unset($CONFIG->translations[$key]); } } $result = true; } return $result; }
<?php global $CONFIG; gatekeeper(); // Build elements $title_text = elgg_echo("translation_editor:menu:title"); elgg_push_breadcrumb($title_text, "translation_editor"); // Get inputs $current_language = get_input("current_language", get_current_language()); $translations = get_installed_translations(); if (!array_key_exists($current_language, $translations)) { forward("translation_editor"); } $plugin = get_input("plugin"); $languages = array_keys($CONFIG->translations); if (!($disabled_languages = translation_editor_get_disabled_languages())) { $disabled_languages = array(); } if (!empty($CONFIG->language)) { $site_language = $CONFIG->language; } else { $site_language = "en"; } $body .= elgg_view("translation_editor/language_selector", array("current_language" => $current_language, "plugin" => $plugin, "languages" => $languages, "disabled_languages" => $disabled_languages, "site_language" => $site_language)); if (empty($plugin)) { // show plugin list elgg_push_breadcrumb(elgg_echo($current_language)); $plugins = translation_editor_get_plugins($current_language); $body .= elgg_view("translation_editor/search", array("current_language" => $current_language, "query" => get_input("q"))); $body .= elgg_view("translation_editor/plugin_list", array("plugins" => $plugins, "current_language" => $current_language)); } else {
/** * Remove disabled languages from the available languages * * @return void */ function translation_editor_unregister_translations() { $disabled_languages = translation_editor_get_disabled_languages(); if (empty($disabled_languages)) { return; } global $_ELGG; foreach ($_ELGG->translations as $key => $dummy) { if (!in_array($key, $disabled_languages)) { continue; } unset($_ELGG->translations[$key]); } }