Tôi sử dụng <?php echo __("this is my string"); ?>
bên trong quan điểm của mình để hiển thị văn bản bằng nhiều ngôn ngữ. Tôi tạo ra một thư mục .po-file cho Đức:CakePHP 2.1 .po tệp/bản dịch không hoạt động
=> app/Locale/ger/LC_MESSAGES/default.po
msgstr "đây là chuỗi của tôi"
msgstr "chết ist meine zeichenkette "
Khi tôi thêm Configure::write('Config.language','ger');
vào AppController.php beforeFilter, vẫn giữ nguyên văn bản" đây là chuỗi của tôi ". Ngay cả khi tôi tạo một .po cho tiếng Anh với một chuỗi khác, văn bản vẫn giữ nguyên.
Tôi có phải thay đổi cài đặt cụ thể để kích hoạt bản dịch không?
Tôi có một theo dõi vấn đề: Tôi thêm Configure::write('Config.language','eng');
để core.php để thiết lập ngôn ngữ mặc định của tôi nhưng bây giờ tôi không thể thay đổi giá trị, thậm chí nếu tôi cố gắng ghi đè lên nó trong AppController.php beforeFilter với:
Configure::write('Config.language', 'deu'); //'de' also doesn't work
CakeSession::write('Config.language', 'deu'); //'de' also doesn't work
Nếu tôi thay đổi giá trị trong core.php nó hoạt động hoàn toàn tốt đẹp nhưng một khi đặt trong core.php tôi không thể thay đổi nó.
giải quyết: ah, tôi quên thêm parent::beforeFilter();
vào bên trong hàm beforeFilter của tất cả các bộ điều khiển.
thông tin bổ sung:
- Nếu bạn muốn xác định một ngôn ngữ mặc định (và bạn thường sẽ), thêm
Configure::write('Config.language', 'eng');
đến core.php
Cảm ơn gợi ý với tệp L10n.php, tôi sẽ sử dụng nó để tham khảo trong tương lai. –
cảm ơn, hãy nhìn vào cốt lõi của CakePhp, giúp tôi hiểu. –