You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Đặt routing và lấy $lang (ngôn ngữ) để index dữ liệu từ database.
Interface theo $lang.
Giả thuyết.
Giả thuyết 1 : http://vietuc.smo.vn/vi/,http://vietuc.smo.vn/en/. \vi\en là biến $lang dùng để phân biệt ngôn ngữ của người dùng mà render đúng với ngôn ngữ đó.
Vậy giả sử site mình có 100 ngôn ngữ thì mình phải đặt 100 routing cho phần trang chủ à .
Giả thuyết 2 : interface là những thứ render mà nó dữ liệu không tồn tại trên database tìm kiếm của search kết nối với chúng tôi ở footer, ... .Thông thường chúng ta sẽ dùng if trong view để làm cho việc nài. Nhưng nếu site mình có 100 thì sao 😄 .
Để giải quyết vấn đề nài chúng ta chỉ cần......
Xem phần bên dưới ⬇️
Trong đó 'vi', 'en', 'ja', 'cn' là ngôn ngữ dùng trong site ,mặc định khi vào http://vietuc.smo.vn/ thì $lang = 'vi'.
Đến đây thì trong routing mình không cần quan tâm biến $lang nữa nhé . Mình sẽ đặt routing như site 1 ngôn ngữ.
Controller
Tạo CommonController.php
abstract class CommonController extends Base{
public $data = [];
public function __construct() {
parent::__construct();
$this->data = $this->Block();
$this->data['lang'] = $this->lang = $this->request->getLocale(); // lấy $lang
$this->app['translator']->setLocale($this->lang); // dùng {{ |trans }} trong view
}
Khi sử dụng các Controller khác thì extends CommonController để lấy data['lang']. Có data['lang'] rồi thì tự tin index trên database nhé.
/app/language
Tạo en.php để chứa từ cần dịch như Tìm kiếm, Liên lạc với chúng tôi, VĂN PHÒNG , ... sang tiếng anh. Sau đó cho đoạn code nài vào :
return [
'messages' => [
'search ' => 'Search', // key dùng trong view
'contact_us' =>'Contact Us', // value hiển thị
'office' => 'Office',
],
'validators' => []
];
Khuyến cáo nên dùng key chữ thường , khoảng trống thay bằng _
Tương tự nếu có 100 ngôn ngữ thì bạn phải tạo 100 file .php với tên tương ứng trong array language trong /config/app.php
View
{{ 'office'| trans }}
Hãy test thử ngay để thấy sự tuyệt vời và tiện lợi của đa ngôn ngữ trong sifoni 😺
The text was updated successfully, but these errors were encountered:
Vấn đề
Giả thuyết.
http://vietuc.smo.vn/vi/
,http://vietuc.smo.vn/en/
.\vi
\en
là biến $lang dùng để phân biệt ngôn ngữ của người dùng mà render đúng với ngôn ngữ đó.Vậy giả sử site mình có 100 ngôn ngữ thì mình phải đặt 100 routing cho phần trang chủ à .
tìm kiếm
của searchkết nối với chúng tôi
ở footer, ... .Thông thường chúng ta sẽ dùngif
trong view để làm cho việc nài. Nhưng nếu site mình có 100 thì sao 😄 .Để giải quyết vấn đề nài chúng ta chỉ cần......
Xem phần bên dưới ⬇️
Cách giải quyết
Trong /config/hook.php
Thêm vào đoạn code sau :
Trong /config/app.php
Thêm đoạn code sau :
Trong đó
'vi', 'en', 'ja', 'cn'
là ngôn ngữ dùng trong site ,mặc định khi vàohttp://vietuc.smo.vn/
thì$lang = 'vi'
.Đến đây thì trong
routing
mình không cần quan tâm biến $lang nữa nhé . Mình sẽ đặt routing như site 1 ngôn ngữ.Controller
Tạo CommonController.php
Khi sử dụng các Controller khác thì
extends CommonController
để lấydata['lang']
. Códata['lang']
rồi thì tự tin index trên database nhé./app/language
Tìm kiếm
,Liên lạc với chúng tôi
,VĂN PHÒNG
, ... sang tiếng anh. Sau đó cho đoạn code nài vào :key
chữ thường , khoảng trống thay bằng_
/config/app.php
View
{{ 'office'| trans }}
Hãy test thử ngay để thấy sự tuyệt vời và tiện lợi của đa ngôn ngữ trong sifoni 😺
The text was updated successfully, but these errors were encountered: