Blog

Bạn đang thiet ke website với Codeigniter, bạn muốn xây dựng 1 website đa ngôn ngữ, bạn đang muốn dịch Codeigniter sang tiếng Việt,… bạn đang tự hỏi phải làm sao để làm được điều đó?

Trong những bài viết trước chúng ta đã tìm hiểu về Helper trong Codeigniter, và trong Codeigniter đã hỗ trợ sẵn 1 Helper Language giúp cho các bạn thiết kế 1 website đa ngôn ngữ, dịch ngôn ngữ dễ dàng,.. do đó trong bài viết này Công ty thiết kế website OTVINA sẽ hướng dẫn các bạn làm việc đó.

Tạo file language cho Codeigniter

Để tạo file language trong Codeigniter bạn vào thư mục application/language/thumuc và tạo file php với cấu trúc: tenngonngu_lang.php, trong đó tenngonngu là tùy ý và bắt buộc với hậu tố _lang.php phía sau, thumuc là tên thư mục chứa file ngôn ngữ, mặc định Codeigniter đã có thư mục english cho ngôn ngữ tiếng Anh, nếu chúng ta sử dụng tiếng Việt thì sẽ tạo thêm 1 thư mục vietnamese bên trong nhé <3

Ví dụ: userinfo_lang.php

Nội dung trong file bao gồm mảng các giá trị của mản ngôn ngữ với cấu trúc:

$lang[key]=value;

Ví dụ:

$lang['fullname']="Họ và tên";
$lang['email']="Địa chỉ Email";
$lang['phonenumber']="Điện thoại";
$lang['password']   = 'Mật khẩu';

Load file ngôn ngữ

Sau khi đã tạo file ngôn ngữ xong, để load file ngôn ngữ chúng ta sử dụng cú pháp:

$this->lang->load('tenfile', 'tenthumuc');

Trong đó:

  • tenfile: Là tên file ngôn ngữ, ví dụ file userinfo_lang.php thì tên file sẽ là user_info
  • tenthumuc: Là tên thư mục chứa file ngôn ngữ, nếu không nhập tên thư mục nó sẽ tự động nhận thư mục cấu hình trong file config.php: $config[‘language’] = ‘english’;

và đừng quên load helper language trước khi sử dụng các bạn nhé

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

 

Lấy dữ liệu ngôn ngữ

Sau khi đã tạo xong ngôn ngữ, để gọi ngôn ngữ ra chúng ta sử dụng 1 trong 2 cách:

<?php
lang($key);
//Hoặc sử dụng
$this->lang->line($key);
?>

Với $key chính là tên do chúng ta tạo ra.

Ví dụ: Việt hóa Form Validation

Dưới đây Công ty thiết kế website giá rẻ OTVINA tạo thêm 1 thư mục vietnamese ngang hàng với thư mục english có sẵn của Codeigniter sau đó mới tạo file bên trong,mục đích của việc này chỉ để dễ dàng quản lý nhiều ngôn ngữ khác nhau.

Đa ngôn ngữ với thư viện- Công ty thiết kế website OTVINA

Đa ngôn ngữ với thư viện- Công ty thiết kế website OTVINA

Nếu các bạn đã sử dụng Library Form Validation do Công ty OTVINA giới thiệu thì chắc hẳn bạn đã tìm hiểu về form_error(), nếu chúng ta đang thiết kế 1 website công ty/bán hàng cho người Việt Nam thì các bạn lại thấy thông báo lỗi in ra là tiếng Anh, vì vậy chúng ta sẽ thay đổi nó sang Tiếng Việt, do đó mình có tạo 1 file form_validation_lang.php mục đích là để quản lý mọi phần ngôn ngữ của Form Validation thôi.

Nội dung tiếng Anh mẫu sử dụng để Việt hóa:

<?php
$lang['required']       = "The %s field is required.";
$lang['isset']          = "The %s field must have a value.";
$lang['valid_email']        = "The %s field must contain a valid email address.";
$lang['valid_emails']       = "The %s field must contain all valid email addresses.";
$lang['valid_url']      = "The %s field must contain a valid URL.";
$lang['valid_ip']       = "The %s field must contain a valid IP.";
$lang['min_length']     = "The %s field must be at least %s characters in length.";
$lang['max_length']     = "The %s field can not exceed %s characters in length.";
$lang['exact_length']       = "The %s field must be exactly %s characters in length.";
$lang['alpha']          = "The %s field may only contain alphabetical characters.";
$lang['alpha_numeric']      = "The %s field may only contain alpha-numeric characters.";
$lang['alpha_dash']     = "The %s field may only contain alpha-numeric characters, underscores, and dashes.";
$lang['numeric']        = "The %s field must contain only numbers.";
$lang['is_numeric']     = "The %s field must contain only numeric characters.";
$lang['integer']        = "The %s field must contain an integer.";
$lang['regex_match']        = "The %s field is not in the correct format.";
$lang['matches']        = "The %s field does not match the %s field.";
$lang['is_unique']      = "The %s field must contain a unique value.";
$lang['is_natural']     = "The %s field must contain only positive numbers.";
$lang['is_natural_no_zero'] = "The %s field must contain a number greater than zero.";
$lang['decimal']        = "The %s field must contain a decimal number.";
$lang['less_than']      = "The %s field must contain a number less than %s.";
$lang['greater_than']       = "The %s field must contain a number greater than %s.";
?>

Chúng ta sẽ Việt hóa bằng cách nhập nội dung vào file form_validation_lang.php, các key thư viện Form Validation sẽ tự động nhận các key đó nhé

<?php
$lang['required']       = "%s không được để trống.";
$lang['isset']          = "%s phải có giá trị.";
$lang['valid_email']        = "%s phải là 1 địa chỉ email.";
$lang['valid_emails']       = "%s phải là 1 địa chỉ email.";
$lang['valid_url']      = "%s phải là 1 URL.";
$lang['valid_ip']       = "%s phải là 1 địa chỉ IP.";
$lang['min_length']     = "%s phải chứa ít nhất %s ký tự.";
$lang['max_length']     = "%s của bạn lớn hơn %s ký tự.";
?>

Kết quả của chúng ta: Dưới đây là kết quả của website nhà đất thái nguyên

Ví dụ việt hóa Codeigniter

Ví dụ việt hóa Codeigniter

Đối với ví dụ này chúng ta không cần load file ngôn ngữ nữa vì mặc định tôi đã cấu hình thư mục lại ở file config.php thư mục vietnamese.

Vậy là chúng ta đã hoàn thành việc sử dụng thư viện language và Việt hóa website, đây là 1 phần rất quan trọng và hữu ích trong quá trình thiet ke website mà chúng ta cần nắm được. Công ty thiết kế website giá rẻ OTVINA hy vọng bài viết sẽ giúp các bạn nắm được kiến thức cơ bản về Helper Language này!