Codeigniter MVC结构用户参数检测

时间:2011-03-27 09:49:31

标签: codeigniter localization

我想知道CI最佳实践

我需要一些代码来检测浏览器的语言并分配相应的语言文件。

此类代码是否属于库或帮助程序? (如果我是正确的帮助者是PHP函数而不是类的库)

也是启动类的最佳方式,而不是仅加载它。

谢谢。

2 个答案:

答案 0 :(得分:3)

您可以通过以下方式从浏览器获取语言信息:

$this->input->server('HTTP_ACCEPT_LANGUAGE');

Mine返回en-US,en;q=0.8,因此您需要进行一些解析,将其转换为对您有用的内容。

但是,您可以设置CI用于加载语言文件的语言

$config['language'] = 'english';

其中'英语'是application/languages文件夹中包含语言文件的文件夹的名称。

您可以在代码运行之前的任何地方执行这些操作。我建议在{2.0}中创建application/libraries/MY_Lang.php(application / core / MY_Lang.php)并将其放入构造函数中,然后在使用语言文件之前将其始终加载。

最后应阅读this。但基本上你从语言文件中检索一行:

$this->lang->line('language_key');

答案 1 :(得分:2)

PHP有一个名为get_browser的函数来检测用户的浏览器。我认为最佳做法是:

  1. 使用Javascript设置前端控制器以获取用户的浏览器。
  2. 将用户重定向到适当的功能,设置语言并加载主视图。
  3. 无论如何,在谷歌上我发现了几个片段:

    $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
    

    从这里开始,在StackOverflow上:Checking browser's language by php