/** * 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']; }
<?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) {