❮ Tham chiếu chuỗi PHP
Nội dung chính
- Định nghĩa và Cách sử dụng
- Giá trị tham số
- Chi tiết kỹ thuật
- 1. Cách thiết lập.
- 1.1 Sử dụng file php
- 1.2 Sử dụng file json
- 2. Website thay đổi ngôn ngữ theo người dùng
- 2.1 Sử dụng session và middleware
- 2.2 Sử dụng subdomain
- 2.3 Sử dụng trên url
Thí dụ
Đặt ngôn ngữ thành tiếng Anh Mỹ và sau đó quay lại mặc định một lần nữa:
Định nghĩa và Cách sử dụng
Hàm setlocale [] thiết lập thông tin ngôn ngữ.
Thông tin ngôn ngữ là ngôn ngữ, tiền tệ, thời gian và các thông tin khác cụ thể cho một khu vực địa lý.
Lưu ý: Hàm setlocale [] chỉ thay đổi ngôn ngữ cho tập lệnh hiện tại.
Mẹo: Thông tin ngôn ngữ có thể được đặt thành mặc định của hệ thống với setlocale [LC_ALL, NULL]
Mẹo: Để nhận thông tin định dạng số, hãy xem hàm localeconv [] .
Cú pháp
setlocale[constant,location]
Giá trị tham số
constant | Required. Specifies what locale information should be set. Available constants:
|
location | Required. Specifies what country/region to set the locale information to. Can be a string or an array. It is possible to pass multiple locations. If the location is NULL or the empty string "", the location names will be set from the values of environment variables with the same names as the constants above, or from "LANG". If the location is "0", the location setting is not affected, only the current setting is returned. If the location is an array, setlocale[] will try each array element until it finds a valid language or region code. This is very useful if a region is known under different names on different systems. Note: To view all available language codes, go to our Language code reference. |
Chi tiết kỹ thuật
Trả về cài đặt ngôn ngữ hiện tại hoặc FALSE nếu không thành công. Giá trị trả về phụ thuộc vào hệ thống mà PHP đang chạy. |
4+ |
PHP 5.3.0 - Nếu một chuỗi được truyền cho tham số hằng thay vì một trong các hằng LC_, hàm này sẽ ném ra một thông báo E_DREPRECATED. |
❮ Tham chiếu chuỗi PHP
Cảm ơn Rico Neitzel về gợi ý. Thay vì cố gắng định dạng ngày php, hãy sử dụng strftime. Để xem 3 chữ cái đầu tiên của tên tháng bằng ngôn ngữ của bạn [Ví dụ: Dez thay vì Dec từ Dezembro chứ không phải December], hãy làm theo hướng dẫn cài đặt ngôn ngữ ở trên, sau đó:
Nội dung chính
- 1. Cách thiết lập.
- 1.1 Sử dụng file php
- 1.2 Sử dụng file json
- 2. Website thay đổi ngôn ngữ theo người dùng
- 2.1 Sử dụng session và middleware
- 2.2 Sử dụng subdomain
- 2.3 Sử dụng trên url
Nội dung chính
- 1. Cách thiết lập.
- 1.1 Sử dụng file php
- 1.2 Sử dụng file json
- 2. Website thay đổi ngôn ngữ theo người dùng
- 2.1 Sử dụng session và middleware
- 2.2 Sử dụng subdomain
- 2.3 Sử dụng trên url
Nội dung chính
- 1. Cách thiết lập.
- 1.1 Sử dụng file php
- 1.2 Sử dụng file json
- 2. Website thay đổi ngôn ngữ theo người dùng
- 2.1 Sử dụng session và middleware
- 2.2 Sử dụng subdomain
- 2.3 Sử dụng trên url
Nội dung chính
- 1. Cách thiết lập.
- 1.1 Sử dụng file php
- 1.2 Sử dụng file json
- 2. Website thay đổi ngôn ngữ theo người dùng
- 2.1 Sử dụng session và middleware
- 2.2 Sử dụng subdomain
- 2.3 Sử dụng trên url
lệnh date: date ['d M Y'] // không thể thay đổi từ tiếng Anh
setlocale[ LC_ALL, "pt_BR"]; // Portuguese, replace with your locale
echo strftime['%e %b %G'];
result: "4 Dez 2016"
/**
* datelo funcion [date with locale]
* Credits: Sergio Abreu
* //sites.sitesbr.net
* NOTE: Depend on availability of the locale in server.
*
*/
function datelo[ $str, $locale='en_US', $time=null]{
if[ $time === null]{ $time = time[]; }
if [ preg_match["/[DlFM]/", $str]]{
setlocale[LC_ALL, $locale];
$dict = array[ 'd'=>'%d', 'D'=>'%a', 'j'=>'%e', 'l'=>'%A', 'N'=>'%u', 'w'=>'%w', 'F'=>'%B',
'm'=>'%m', 'M'=>'%b', 'Y'=>'%G', 'g'=>'%l', 'G'=>'%k', 'h'=>'%I', 'H'=>'%H', 'i'=>'%M',
's'=>'%S', 'S'=>'', 'z'=>'%j', 'n'=>'%m', ' '=>' ', '-'=>'-', '/'=>'/', ':'=>':', ','=>','];
$chars = preg_split["//", $str];
$nstr = '';
foreach [$chars as $c]{
if [$c]{ //skip empties
$nc = $dict[$c];
if[ $c === 'n']{ // Fixes the extra zero
$nc = preg_replace["/^0+/", '', strftime[ $nc]];
}
elseif[ $c === 'z']{ // Fixes the extra zero and decrease 1
$nc = preg_replace["/^0+/", '', strftime[ $nc]]; // 023 turns 23
$nc = intval[$nc] - 1;
}
$nstr .= $nc;
}
}
return strftime[ $nstr];
}else{ // not localized
return date[ $str, $time];
}
}
-1 hữu ích 0 bình luận chia sẻ
Các website ngày nay muốn tiếp cận với nhiều loại khách hàng thì đều cần phải sử dụng đa ngôn ngữ [i18n]. Với những ai sử dụng Laravel cho việc phát triển website thì vấn đề i18n được hỗ trợ và xử lý rất đơn giản. Bài viết này mình sẽ giới thiệu đến các bạn một số cách để xử lý i18n trong Laravel.
Nội dung chính
- 1. Cách thiết lập.
- 1.1 Sử dụng file php
- 1.2 Sử dụng file json
- 2. Website thay đổi ngôn ngữ theo người dùng
- 2.1 Sử dụng session và middleware
- 2.2 Sử dụng subdomain
- 2.3 Sử dụng trên url
Nội dung chính
- 1. Cách thiết lập.
- 1.1 Sử dụng file php
- 1.2 Sử dụng file json
- 2. Website thay đổi ngôn ngữ theo người dùng
- 2.1 Sử dụng session và middleware
- 2.2 Sử dụng subdomain
- 2.3 Sử dụng trên url
1. Cách thiết lập.
1.1 Sử dụng file php
- Trong thư mục /resources/lang/ ta thêm các folder chứa các ngôn ngữ mà muốn chuyển đổi, như ví dụ dưới đây mình sẽ tạo 2 folder là en và vi để chứa ngôn ngữ của Tiếng Anh và Tiếng Việt.
Trong các folder ta tạo các file php và đặt tên sao cho phù hợp, như trên giả sử mình tạo file là message.php, trong cả 2 folder ban đều tạo các file giống nhau và nội dung trong các file mình tạo như sau. /resources/lang/en/message.php