【问题标题】:Codeigniter MVC structure user parameter detectionCodeigniter MVC结构用户参数检测
【发布时间】:2011-07-23 20:04:17
【问题描述】:

我想知道 CI 最佳实践

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

这样的代码属于库还是助手? (如果我是对的,助手是 php 函数,而不是类库)

还有什么是启动类而不是仅仅加载它的最佳方式。

谢谢。

【问题讨论】:

    标签: codeigniter localization


    【解决方案1】:

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

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

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

    但是你可以设置 CI 用来加载语言文件的语言

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

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      1. 设置前端控制器以使用 Javascript 获取用户的浏览器。
      2. 将用户重定向到适当的功能,以设置语言并加载您的主视图。

      无论如何,我在 Google 上找到了一些 sn-ps:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-01
        • 2021-10-07
        • 2013-12-17
        • 2012-04-09
        • 1970-01-01
        相关资源
        最近更新 更多