我遵循了本教程:http://codeigniter.com/wiki/Internationalization_and_the_Template_Parser_Class/
加载语言的控制器就是这个:
<?php
class Example extends Controller {
function Example() {
parent::Controller();
# Load libraries
$this->load->library('parser');
# Load language
$this->lang->load('example', 'english');
}
function index() {
# Load variables into the template parser
$data = $this->lang->language;
# Display view
$this->parser->parse('example', $data);
}
}
?>
要更改语言,我必须手动将english
更改为控制器中的spanish
。
用户可以通过 index.php 文件(视图)执行此操作的最佳方式是什么?
答案 0 :(得分:2)
最好的办法是让用户在某个页面上选择支持的语言,将其设置为会话变量,并在需要加载语言时调用它
$language = $this->session->userdata("language");
$this->lang->load("example", $language);
$data = $this->lang->language;
$this->parser->parse("example", $data);
以下编辑
如果你正在使用CodeIgniter并且你是新手,我不会建议搞乱index.php文件。
您希望在控制器中执行此操作,方法是加载一个可以选择语言并将其存储在会话中的表单。我还建议自动加载会话库。
控制器:
<?php
class Home extends Controller {
function Home()
{
parent::Controller();
$this->load->library("session");
}
function index()
{
$language = $this->session->userdata("language");
$this->lang->load("example", $language);
$data = $this->lang->language;
$this->parser->parse("example", $data);
}
function set_lang()
{
if( ! $this->form_validation->run())
{
$this->load->view("select_language_form");
}
else
{
$language = $this->input->post('language', TRUE);
$this->session->set_userdata('language', $language);
redirect('home' 'location');
}
}
}