/ / Codeigniter / Comment (0)

Sử dụng helper language trong CodeIgniter

Bạn đang muốn làm 1 website đa ngôn ngữ cũng như muốn tùy chỉnh ngôn ngữ trên website của mình?để làm được những điều đó thật đơn giản khi các bạn sử dụng CodeIgniter.CodeIgniter đã đưa ra cho chúng ta một bộ helper language rất tiện dụng để làm những việc này.Do đó trong bài này mình sẽ trình bày cách sử dụng bộ language trên CodeIgniter.

Điều kiện để có thể theo dõi bài này:

  1. Tổng quan về CodeIgniter framework
  2. Helpers và Libraries trong CodeIgniter

Tạo file language trong CI

– Để tạo 1 ngôn ngữ (language) trong CI chúng ta cần truy cập vào đường dẫn sau application/language,tại thư mục này mình tạo 2 thư mục có tên english vietnamese,như trong hình vẽ sau:

Helper language trong CI

Helper language trong CI

Như hình trên thì các bạn thấy mình tạo ra 2 file có tên user_lang.php,mục đích của mình là tạo ra file ngôn ngữ liên quan tới thành viên.
+ File language/english/user_lang.php với nội dung:

<?php
$lang['full_name']    = 'Full name';
$lang['email']        = 'Email';
$lang['phone']        = 'Phone';
$lang['password']    = 'Password';
$lang['address']    = 'address';
?>

+ File language/vietnamese/user_lang.php với nội dung:

<?php
$lang['full_name']	= 'Họ tên';
$lang['email']	    = 'Địa chỉ email';
$lang['phone']	    = 'Số điện thoại';
$lang['password']	= 'Mật khẩu';
$lang['address']	= 'Địa chỉ';
?>

Cú pháp của nội dung trong file language trên:

$lang['tên_tham_chiếu']    = 'Thông điệp cần hiển thị cho ngôn ngữ đó'.

Chỉ cần như vậy thôi là bạn đã có thể quản lý file ngôn ngữ trên website của mình rồi

Sử dụng Language Helper

– Để sử dụng được helper nào đó trong CI thì các bạn cần load helper đó:

$this->load->helper('language');

– Tải file ngôn ngữ cần dùng,cú pháp:

$this->lang->load('ten_file' , 'ten_thu_muc');

Nếu bạn bỏ trống tên thư mục thì lúc đó nó sẽ load mặc định thư mục trong file cấu hình,các bạn có thể vào trong file config.php chỉnh lại nội dung thư mục ngôn ngữ mặc định

$config['language']	= 'english';

+ Ví dụ:

$this->lang->load('user' , 'vietnamese');

– Gọi tới tham số trong file ngôn ngữ,cú pháp:

lang($tham_so);

Hoặc

$this->lang->line($tham_so);

Trong đó $tham_so chính là tham số mà bạn viết trong file ngôn ngữ
– Ví dụ:
Tạo 1 controller có tên home.php với nội dung:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class Home extends CI_Controller
{
   public function index()
   {
   	  //load helper language
   	  $this->load->helper('language');
   	  //load file ngon ngu
   	  $this->lang->load('user');
   	  echo lang('full_name').'<br />';
   	  echo lang('email').'<br />';
   	  echo lang('phone').'<br />';
   	  echo lang('password').'<br />';
   	  echo lang('address').'<br />';
   }
}

Và kết quả hiển thị sẽ là:

Full name
Email
Phone
Password
address

Như vậy là các bạn đã thấy khi sử dụng hàm lang() nó sẽ lấy đúng giá trị tương ứng với tham số đó trong thư mục language/english/user_lang.php.Vậy giờ chúng ta muốn sử dụng file ngôn ngữ trong thư mục language/vietnamese/user_lang.php sẽ làm như sau:
Cách 1: các bạn thay đổi thư mục trong file config.php thành

$config['language']	= 'vietnamese';

Cách 2: Thay đổi nội dung trong config.php sử dụng

$this->config->set_item('language', 'vietnamese');
$this->lang->load('user');

Với cách này thì bạn sử dụng phương thức set_item để thay đổi thư mục chứa file ngôn ngữ trước khi load file ngôn ngữ này.Cách này hay được sử dụng để thay đổi ngôn ngữ trong website đa ngôn ngữ (dựa vào biến session để lưu ngôn ngữ hiện tại từ đó load ra thư mục chứa ngôn ngữ tương ứng)

Cách 3: Sử dụng tham số thứ 2 khi load file tham số

$this->lang->load('user', 'vietnamese');

Và kết quả sẽ là:

Họ tên
Địa chỉ email
Số điện thoại’;
Mật khẩu
Địa chỉ

kết thúc bài viết: Qua bài này mình đã giới thiệu cho các bạn cách sử dụng language helper trong CI.Các bạn thấy có thể dùng thay đổi ngôn ngữ hiển thị trên website 1 cách dễ dàng phải không nào.Từ bài này các bạn có thể làm 1 website đa ngôn ngữ (hiển thị đa ngôn ngữ ở giao diện)



08/09/2014
Written by nobitacnt

Trong bài viết không tránh khỏi những câu từ chưa chính xác,mong nhận được sự góp ý để website hoàn thiện hơn.Nếu thấy bài viết có ích với bạn hãy like và share để ủng hộ nhé :D.

Bài viết chùng chuyên mục

Gửi bình luận

Giới thiệu

Mình tạo ra blog này với mong muốn chia sẻ và học hỏi kinh nghiệm trong quá trình thiết kế website. Website đang trong quá trình phát triển chân thành cảm ơn mọi sự góp ý của các bạn để làm cho website ngày càng hoàn thiên.

DMCA.com Protection Status
Theo dõi qua Email

Tổng hợp các bài viết về

Hoc php - CodeIgniter Framework - Laravel Framework - PHP va MYSQL