【问题标题】:How to localize a language and redirect the user to a specific url with CodeIgniter如何使用 CodeIgniter 本地化语言并将用户重定向到特定 url
【发布时间】:2015-05-15 13:05:29
【问题描述】:

我用 CodeIgniter 创建了一个两种语言的网站: 英语 (en) 和 德语(de)。

默认页面是:www.mysite.com

en 的网址是:www.mysite.com/en/ de 的网址是 www.mysite.com/de/

现在我想根据用户的设备语言重定向用户。 我知道,它下面的脚本不是正确的方法。

$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
switch($lang){
case 'en':
return redirect(site_url('en/'));
break;
case 'de';
return redirect(site_url('de/'));
break;
default:
return redirect(site_url('en/'));
}

我该如何准确管理它?

【问题讨论】:

  • 你为什么不直接重定向(site_url($lang)) ?编辑:没关系,如果它不是两者之一,你需要默认的英语。您需要双向切换 Lang
  • Detect Browser Language in PHP 的可能重复项
  • 从重定向中删除返回并尝试

标签: php codeigniter


【解决方案1】:

我发现您的代码中的 case 'de' 存在语法错误;

应该是'de':

$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
switch($lang){
case 'en':
redirect(site_url('en/'));
break;
case 'de':
redirect(site_url('de/'));
break;
default:
redirect(site_url('en/'));
}

并确保你有加载 url 助手

$this->load->helper('url');

同时从重定向中删除返回

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-31
    • 2014-09-08
    • 2017-11-04
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多