【发布时间】:2011-07-23 20:04:17
【问题描述】:
我想知道 CI 最佳实践
我需要一些代码来检测浏览器的语言并分配适当的语言文件。
这样的代码属于库还是助手? (如果我是对的,助手是 php 函数,而不是类库)
还有什么是启动类而不是仅仅加载它的最佳方式。
谢谢。
【问题讨论】:
我想知道 CI 最佳实践
我需要一些代码来检测浏览器的语言并分配适当的语言文件。
这样的代码属于库还是助手? (如果我是对的,助手是 php 函数,而不是类库)
还有什么是启动类而不是仅仅加载它的最佳方式。
谢谢。
【问题讨论】:
您可以通过以下方式从浏览器获取语言信息:
$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');
【讨论】:
PHP 有一个名为get_browser 的函数来检测用户的浏览器。我认为最佳做法是:
无论如何,我在 Google 上找到了一些 sn-ps:
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
从这里开始,在 StackOverflow 上:Checking browser's language by php
【讨论】: