Tôi đang cố gắng sử dụng gettext thêm hỗ trợ bản địa hóa cho trang web của mình. Tôi đã theo hướng dẫn khác nhau về cách thiết lập gettext và đã làm như sau:Chức năng gettext PHP chỉ trả về chuỗi ký tự chưa được dịch mã số
tôi đã tạo ra các tập tin và thư mục sau vào thư mục gốc của thư mục dự án của tôi:
test.php
locale/
de_DE
LC_MESSAGES
messages.mo
messages.po
en_GB
LC_MESSAGES
messages.mo
messages.po
Tôi đã sử dụng Poedit để tạo các tệp .po và mo ở trên. Tôi đã thực hiện kiện nó sử dụng kết thúc dòng Unix, UTF-8 và thiết lập ngôn ngữ và quốc gia cho phù hợp.
Tôi đã sau đó tạo ra một tập tin PHP tên test.php trong đó có đoạn mã sau: "Đây là một thử nghiệm"
<?php
define('LOCALE', 'de_DE');
// Set up environmental variables
putenv("LC_ALL=" . LOCALE);
setlocale(LC_ALL, LOCALE);
bindtextdomain("messages", "./locale");
bind_textdomain_codeset("messages", LOCALE .".utf8");
textdomain("messages");
die(gettext('This is a test.'));
?>
tôi đã nhập văn bản để Poedit và cung cấp bản dịch và lưu nó.
Nhưng vì lý do nào đó, tập lệnh test.php sẽ chỉ xuất văn bản gốc chưa được dịch. Nó từ chối tải phiên bản cho các tập tin dịch thuật.
Cần lưu ý rằng máy chủ đang chạy Linux (Ubuntu), Apache 2.2.11 và PHP 5.2.6-3ubuntu4.5. Tôi đã kiểm tra phpinfo()
và gettext được bật.
Ai đó có thể giúp tôi không? Cảm ơn.
Vì vậy, nó đã hoạt động? Thực ra nó có phải là một vấn đề liên quan đến một miền địa phương mất tích hay cái gì khác không? – bpedro
Có! Nó hoạt động. Cảm ơn bạn rất nhiều vì đã giúp đỡ của bạn. – Camsoft
Không sao cả! Tôi rất vui vì tôi có thể giúp! – bpedro