dongping6974 2019-01-22 06:47
浏览 100

CodeIgniter:使用数据库使现有ERP系统成为多语言

I have made configuration for multi-language in my project, and retrieving words/content from files. But i need the same with my database, to retrieving data based on selected language (with session/cookie). How can i manage this. I find Multi-row method is best for me. Do i need to change every existing query to make selection/insertion/updating etc. Or there is another way. My db table example

I have this controlers

 class AddLanguage extends CI_Controller
{
 public function __construct() {
    parent::__construct();
    $this->lang->load("menu","english");
    }

function index() {
    $data['shipping'] = $this->lang->line('menu_shipping');
    $this->load->view('templates/navigation', $data);
     }
}

 class LangSwitch extends CI_Controller
{
 public function __construct() {
    parent::__construct();
    $this->load->helper('url');
}

function switchLanguage($language = "") {
    $language = ($language != "") ? $language : "english";
    $this->session->set_userdata('site_lang', $language);
    if(!empty($_SERVER['HTTP_REFERER'])){
        redirect($_SERVER['HTTP_REFERER']);
    } else {
        redirect(base_url());
       }
    }
 }

In my hooks i have this

    class LanguageLoader
{
    function initialize() {
        $ci =& get_instance();
        $ci->load->helper('language');

        $site_lang = $ci->session->userdata('site_lang');
        if ($site_lang) {
            $ci->lang->load('menu',$ci->session->userdata('site_lang'));
        } else {
            $ci->lang->load('menu','english');
        }
    }
}
  • 写回答

0条回答 默认 最新

    报告相同问题?