示例#1
0
/**
 * 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);
        }
    }
}
示例#2
0
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);
        }
    }
}
示例#3
0
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;
}
示例#4
0
<?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]);
    }
}