Hàm bindtextdomain() trong PHP dùng để đặt hoặc lấy đường dẫn (path) của một domain (thường dùng cho hệ thống bản địa hóa/gettext).
Cú pháp
string bindtextdomain(string $domain, string|false $directory)
Tham số
| Tham số | Mô tả |
|---|---|
$domain |
Tên domain (message domain). |
$directory |
Đường dẫn thư mục chứa file .mo. Nếu null hoặc false, hàm trả về đường dẫn hiện tại đang set. |
Giá trị trả về
Trả về đường dẫn đầy đủ (full pathname) của domain hiện tại. Trả về false nếu thất bại.
Ví dụ
<?php
$domain = 'xampp';
// Đặt đường dẫn và lấy đường dẫn đã set
echo bindtextdomain($domain, 'C:\xampp\htdocs');
// Output: C:\xampp\htdocs
?>
Bối cảnh sử dụng (i18n/gettext)
<?php
// Thiết lập locale
setlocale(LC_ALL, 'vi_VN.utf8');
// Chỉ định domain
$domain = 'messages';
bindtextdomain($domain, __DIR__ . '/locale');
textdomain($domain);
// Sử dụng
echo _("Hello World"); // Tìm trong locale/vi_VN/LC_MESSAGES/messages.mo
?>
Lưu ý
- Cần extension
gettext. - Thư mục cấu trúc chuẩn:
locale/./LC_MESSAGES/ .mo - Dùng
bind_textdomain_codeset()để set encoding (UTF-8).