在CodeIgniter中使用现有的MySQL数据库

时间:2012-09-06 09:46:54

标签: mysql codeigniter localization multilingual

在我的PHP网站中,我使用SiteTranslator脚本来翻译成30种语言的网站。每个翻译都存储在自己的表中(text_en,text_de ...),每个表有3列(textKey,textValue,lastUpdate)。

现在我想在我的CodeIgniter应用程序中使用该数据库。 最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以按照建议使用多个数据库,您仍然需要设置应用程序语言文件

{在用户指南中阅读更多内容}

根据第一个uri细分,您可以尝试这样的事情。

添加路线

$route['en|fr|gr/test'] = 'test';

第一段检查 en fr 或其他任何内容。

然后主控制器会在测试控制器初始化之前捕获第一个细分, db(对象)&& app(语言)文件已设置

www.site.com/en/test =>加载英语语言文件( application / language / english / mylanguage )和db

www.site.com/fr/test =>加载法语语言文件( application / language / french / mylanguage )和db ...等等

主要控制器

class MY_Controller extends CI_Controller{

    protected $lang, $db;

    public function __construct(){
        parent::__construct();

        $this->set_language();
    }

    protected function set_language(){
        switch($this->uri->segment(1))
        {
            case 'en':
                $this->lang     = $this->lang->load('mylanguage', 'english');
                $this->db       = $this->load->database('en', TRUE); 
            break;

            case 'fr':
                $this->lang     = $this->lang->load('mylanguage', 'french');
                $this->db       = $this->load->database('fr', TRUE); 
            break;

            default:
                $this->lang     = $this->lang->load('mylanguage', 'english');
                $this->db       = $this->load->database('en', TRUE); 
            break;
        }
    }


}