【发布时间】:2014-01-26 16:23:37
【问题描述】:
这是website
我正在使用此脚本在网站上使用 2 种语言(user_agents.php 文件):
<?php
class MY_Controller extends CI_Controller {
public function __construct(){
parent::__construct();
parse_str($_SERVER['QUERY_STRING'], $_GET);
if(!$this->session->userdata('lang') && !isset($_GET['lang']) && isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
$this->session->set_userdata('lang' , $lang);
}else{
if(isset($_GET['lang'])){
if($_GET['lang'] == 'es' || $_GET['lang'] == 'ca'){
$this->session->set_userdata('lang' , $_GET['lang']);
}else{
$this->session->set_userdata('lang' , 'ca');
}
}
}
$this->lang->load('site', $this->session->userdata('lang'));
}
}
我有两个问题:
如果您在主页上并将其更改为“Catala”语言,它会更改 URL,但如果您单击任何菜单项,它会将您带到页面但没有
?lang=ca... 它只是以西班牙语打开该部分,这是默认语言。所以基本上看来会话语言不起作用,因为在您进入任何部分后它都没有通过。-
第二个问题是,如果您的浏览器主要语言是英语,则网站以该语言打开(显示没有加载取决于
spanish或catala语言的菜单图像),而不是默认打开已设置为这在config.php文件上:$config['language'] = '西班牙语';
谁能帮我解决这两个问题?
config.php:
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = FALSE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
【问题讨论】:
-
无法加载请求的语言文件:language/ja/site_lang.php
-
/lanjuage/ja ?你在哪里看到的?我没有加载任何“ja”语言:S
-
我从您网站上的错误中复制并粘贴了它。
-
错误依然存在。看起来你可能在某个地方有错字。
-
我认为它默认从浏览器接受的语言中加载语言,对我来说,它试图加载
language/fr/site_lang.php,因为我的浏览器设置为 fr-CA。 @codek,我认为您应该首先查看设置的语言。HTTP_ACCEPT_LANGUAGE是否由您的应用程序管理,因为它可能会像我和 Kenzo 一样失败。
标签: php codeigniter