コード例 #1
0
ファイル: detect_lang.php プロジェクト: hqye/stblog
/**
 * Detect language based on user preference or browser's setting
 *
 * @access	public
 * @return	void
 */
function detect_lang()
{
    // 加载语言配置文件
    $config = CI()->load->config('lang', TRUE);
    // 获取 URL 中的语言参数,比如 somepage?lang=zh-cn
    $lang = CI()->input->get('lang') ? CI()->input->get('lang', TRUE) : '';
    // 是否为空?
    if (!empty($lang)) {
        // 安全过滤
        $lang = get_lang_code($lang);
        // 记住用户的语言选择,一年后过期
        set_cookie(array('name' => 'lang', 'value' => $lang, 'expire' => 31536000));
    } elseif (CI()->session->userdata('lang')) {
        $lang = CI()->session->userdata('lang');
    } elseif (get_cookie('lang')) {
        $lang = get_cookie('lang', TRUE);
    } else {
        if (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
            // 将浏览器接收的全部语言分隔成数组
            $accept_langs = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
            log_message('debug', 'Checking browser languages: ' . implode(', ', $accept_langs));
            // 依次检查,直到我们找到STCMS支持的那一种语言
            foreach ($accept_langs as $lang) {
                // 将en-gb,en-us,en-au统统转化成en,但需要保留zh-tw,zh-cn,zh-hk这样的中文语系代码
                $lang = get_lang_code($lang);
                // 检查是否有语言包支持,如果有则完成检测
                if (in_array($lang, array_keys($config['supported_langs']))) {
                    break;
                }
            }
        }
    }
    // 没有检测到任何语言的支持,只能使用默认的语言
    if (empty($lang) or !array_key_exists($lang, $config['supported_langs'])) {
        $lang = $config['default_lang'];
    }
    // 将最后决定的语言代码保存在session中
    CI()->session->userdata('lang') or CI()->session->set_userdata('lang', $lang);
    // 动态设置语言
    CI()->config->set_item('language', $config['supported_langs'][$lang]['folder']);
    // 设置一个应用程序级的语言代码常数
    define('CURRENT_LANG', $lang);
}
コード例 #2
0
ファイル: index.php プロジェクト: colonia/tomatocart-v2
 * as published by the Free Software Foundation.
 *
 * @package      TomatoCart
 * @author       TomatoCart Dev Team
 * @copyright    Copyright (c) 2009 - 2012, TomatoCart. All rights reserved.
 * @license      http://www.gnu.org/licenses/gpl.html
 * @link         http://tomatocart.com
 * @since        Version 2.0
 * @filesource
*/
require_once 'helpers/general_helper.php';
?>

<!DOCTYPE html>
<html lang="<?php 
echo get_lang_code();
?>
">
<head>
	<meta charset="utf-8">
    <link rel="shortcut icon" href="<?php 
echo base_url('images/tomatocart.ico');
?>
" type="image/x-icon" />
    <title><?php 
echo $template['title'];
?>
</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    
    <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
コード例 #3
0
ファイル: header.php プロジェクト: snouhaud/camptocamp.org
$tpl_main = str_replace('<pun_title>', '<h1><span>' . pun_htmlspecialchars($pun_config['o_board_title']) . '</span></h1>', $tpl_main);
// END SUBST - <pun_title>
// START SUBST - <pun_desc>
$tpl_main = str_replace('<pun_desc>', '<p><span>' . $pun_config['o_board_desc'] . '</span></p>', $tpl_main);
// END SUBST - <pun_desc>
// START SUBST - <pun_navlinks>
$tpl_main = str_replace('<pun_navlinks>', '<div id="brdmenu" class="inbox">' . "\n\t\t\t" . generate_navlinks() . "\n\t\t" . '</div>', $tpl_main);
// END SUBST - <pun_navlinks>
// START SUBST - <pun_status>
// If no header style has been specified, we use the default
$footer_style = isset($footer_style) ? $footer_style : NULL;
$is_admmod = isset($is_admmod) ? $is_admmod : false;
$is_admmod_2 = $pun_user['g_id'] == PUN_ADMIN || $pun_user['g_id'] == PUN_MOD ? true : false;
$is_assoc = in_array($pun_user['g_id'], explode(', ', PUN_ASSOCIATION)) ? true : false;
$is_v6 = in_array($pun_user['g_id'], explode(', ', PUN_V6)) ? true : false;
$lang = get_lang_code();
if (!isset($forum_id)) {
    switch ($pun_user['language']) {
        case 'French':
            $forum_id = 24;
            break;
        case 'Italian':
            $forum_id = 41;
            break;
        case 'German':
            $forum_id = 61;
            break;
        case 'English':
            $forum_id = 58;
            break;
        case 'Spanish':
コード例 #4
0
ファイル: functions.php プロジェクト: snouhaud/camptocamp.org
function get_lang_option($prefix = '')
{
    global $pun_user;
    if (empty($pun_user['language'])) {
        return '';
    }
    $lang = get_lang_code();
    return $prefix . 'lang=' . $lang;
}