Esempio n. 1
0
/**
 * Sets the language for the logged out user
 *
 * @return void
 */
function language_selector_set_logged_out_user_language()
{
    global $CONFIG;
    if (elgg_is_logged_in()) {
        return;
    }
    if (!empty($_COOKIE['client_language'])) {
        // switched with language selector
        $new_lang = $_COOKIE['client_language'];
    } else {
        $browserlang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
        if (!empty($browserlang)) {
            // autodetect language
            if (elgg_get_plugin_setting("autodetect", "language_selector") == "yes") {
                $new_lang = $browserlang;
            }
        }
    }
    if (!empty($new_lang) && $new_lang !== $CONFIG->language) {
        $allowed = language_selector_get_allowed_translations();
        if (in_array($new_lang, $allowed)) {
            // set new language
            $CONFIG->language = $new_lang;
            // language has been change; reload language keys
            if (elgg_is_active_plugin("translation_editor")) {
                translation_editor_load_translations();
            } else {
                reload_all_translations();
            }
        }
    }
}
Esempio n. 2
0
<?php

$allowed = language_selector_get_allowed_translations();
$current_lang_id = get_current_language();
if (count($allowed) <= 1) {
    return;
}
elgg_require_js('language_selector/default');
// show text or flags
$show_flags = false;
if (elgg_get_plugin_setting("show_images", "language_selector") != "no") {
    $show_flags = true;
}
$options = [];
$toggle_text = elgg_echo('language_selector:change');
foreach ($allowed as $lang_id) {
    $lang_name = elgg_echo($lang_id);
    $text = elgg_format_element('span', ['language-selector-label'], $lang_name);
    if ($show_flags) {
        $flag_view = false;
        foreach (['svg', 'jpg', 'png', 'gif'] as $ext) {
            $flag_icon = "language_selector/flags/{$lang_id}.{$ext}";
            if (elgg_view_exists($flag_icon)) {
                $flag_view = $flag_icon;
                break;
            }
        }
        if ($flag_view) {
            $icon = elgg_view('output/img', ['src' => elgg_get_simplecache_url($flag_view), 'alt' => $lang_name, 'class' => 'language-selector-flag-icon']);
            $text = $icon . $text;
        }