예제 #1
0
/**
 * Detect the language of the User Agent/Visitor
 *
 * This function needs to be included at this point so that it is globally available, also
 * during installation.
 *
 * @access public
 * @param   boolean     Toggle whether to include the language that has been autodetected.
 * @return  string      Return the detected language name
 */
function serendipity_detectLang($use_include = false)
{
    global $serendipity;
    $supported_languages = array_keys($serendipity['languages']);
    $possible_languages = explode(',', isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : '');
    if (is_array($possible_languages)) {
        $charset = serendipity_getCharset();
        foreach ($possible_languages as $index => $lang) {
            $preferred_language = strtolower(preg_replace('@^([^\\-_;]*)_?.*$@', '\\1', $lang));
            if (in_array($preferred_language, $supported_languages)) {
                if ($use_include) {
                    @(include_once S9Y_INCLUDE_PATH . 'lang/' . $charset . 'serendipity_lang_' . $preferred_language . '.inc.php');
                    $serendipity['autolang'] = $preferred_language;
                }
                return $preferred_language;
            }
            // endif
        }
        // endforeach
    }
    // endif
    return $serendipity['lang'];
}
예제 #2
0
<?php

# $Id$
# Copyright (c) 2003-2005, Jannis Hermanns (on behalf the Serendipity Developer Team)
# All rights reserved.  See LICENSE file for licensing details
if (IN_serendipity !== true) {
    die("Don't hack!");
}
if (isset($serendipity['lang']) && !isset($serendipity['languages'][$serendipity['lang']])) {
    $serendipity['lang'] = $serendipity['autolang'];
}
if (!defined('serendipity_LANG_LOADED') || serendipity_LANG_LOADED !== true) {
    $charset = serendipity_getCharset();
    // The following variable can be set in serendipity_config_local.inc.php to force your templates being able to use language override includes
    if ($serendipity['useTemplateLanguage']) {
        if (defined('S9Y_DATA_PATH')) {
            @(include S9Y_DATA_PATH . 'templates/' . $serendipity['template'] . '/' . $charset . 'lang_' . $serendipity['lang'] . '.inc.php');
            @(include S9Y_DATA_PATH . 'templates/' . $serendipity['template'] . '/lang_en.inc.php');
        } else {
            @(include S9Y_INCLUDE_PATH . 'templates/' . $serendipity['template'] . '/' . $charset . 'lang_' . $serendipity['lang'] . '.inc.php');
            @(include S9Y_INCLUDE_PATH . 'templates/' . $serendipity['template'] . '/lang_en.inc.php');
        }
    }
    // Try and include preferred language from the configurated setting
    if (@(include S9Y_INCLUDE_PATH . 'lang/' . $charset . 'serendipity_lang_' . $serendipity['lang'] . '.inc.php')) {
        // Only here can we truely say the language is loaded
        define('serendipity_LANG_LOADED', true);
        if (function_exists('serendipity_db_reconnect')) {
            serendipity_db_reconnect();
        }
    } elseif (IS_installed === false || defined('IS_up2date') && IS_up2date === false) {