Bạn đang đi đúng hướng. Bạn sẽ muốn tạo tệp ngôn ngữ một cách nhanh chóng (ví dụ:bất cứ khi nào bạn cập nhật nội dung ngôn ngữ trong cơ sở dữ liệu của mình)
Thứ nhất:bố cục cơ sở dữ liệu
Tạo bảng lang_token
với các cột id
, category
, description
, lang
, token
và điền vào các trường của nó như thế này:
CREATE TABLE IF NOT EXISTS `lang_token` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`category` text NOT NULL,
`description` text NOT NULL,
`lang` text NOT NULL,
`token` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
INSERT INTO `lang_token` (`id`, `category`, `description`, `lang`, `token`)
VALUES
(1, 'error', 'noMail', 'english', 'You must submit a valid email address'),
(2, 'error', 'noUser', 'english', 'You must submit a username');
Thứ 2:Giới thiệu về tệp ngôn ngữ CodeIgniter
CodeIgniter sẽ xuất hiện đầu tiên trong thư mục ứng dụng / ngôn ngữ của bạn, Mỗi ngôn ngữ nên được lưu trữ trong thư mục riêng của nó. Đảm bảo rằng bạn đã tạo các thư mục con tiếng Anh hoặc tiếng Đức, v.v., ví dụ:application/language/english
Thứ 3:Chức năng điều khiển để tạo tệp ngôn ngữ một cách nhanh chóng
Giới thiệu về các tệp ngôn ngữ Codeigniter:Bạn nên sử dụng tiền tố chung (danh mục) cho tất cả các thư trong một tệp nhất định để tránh va chạm với các mục có tên tương tự trong các tệp khác Có cấu trúc như:$lang['category_description'] = “token”;
function updatelangfile($my_lang){
$this->db->where('lang',$my_lang);
$query=$this->db->get('lang_token');
$lang=array();
$langstr="<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
*
* Created: 2014-05-31 by Vickel
*
* Description: ".$my_lang." language file for general views
*
*/"."\n\n\n";
foreach ($query->result() as $row){
//$lang['error_csrf'] = 'This form post did not pass our security checks.';
$langstr.= "\$lang['".$row->category."_".$row->description."'] = \"$row->token\";"."\n";
}
write_file('./application/language/'.$my_lang.'/general_lang.php', $langstr);
}
Ghi chú cuối cùng:
- Bất cứ khi nào bạn thay đổi cơ sở dữ liệu của mình, bạn sẽ gọi hàm
updatelangfile(‘english’)
-
Đừng quên tải trình trợ giúp tệp và lớp ngôn ngữ trong phương thức khởi tạo của bộ điều khiển nơi chứa updatelangfile ():
function __construct(){ parent::__construct(); $this->load->helper('file'); $this->lang->load('general', 'english'); }