Hiện tại tôi có một ngôn ngữ được tải bên trong MY_Controller, mở rộng CI_Controller. Nhưng bên trong một trang đặc biệt mà bộ điều khiển (chúng ta hãy gọi nó là bộ điều khiển ABC) mở rộng MY_Controller, tôi cần phải ghi đè lên ngôn ngữ được nạp với một ngôn ngữ khác. Tôi đã thử tải một ngôn ngữ khác bên trong bộ điều khiển ABC này, nhưng không thành công. Có cách nào để tải ngôn ngữ đã tải xuống và tải ngôn ngữ khác không?Codeigniter Thay đổi ngôn ngữ đã tải
Trả lời
Bạn đã thử tải tệp ngôn ngữ mình cần chưa?
$this->lang->load('filename', 'language');
Nó phải là sau đó truy cập giống như ngôn ngữ mặc định của bạn. Tôi đã không thử nghiệm tho này, nhưng từ sự hiểu biết của tôi điều này nên là con đường để đi về nó.
tham khảo: http://codeigniter.com/user_guide/libraries/language.html
SỬA ĐỔI
tôi đã kết thúc đào hơn một chút cho bạn, và thấy rằng bạn KHÔNG THỂ tải một ngôn ngữ mặc định (xác định nó như là mặc định trong điều khiển của bạn) và sau đó cố gắng thay đổi nó thành một thứ khác.
Thực hiện theo các bước sau:
- Nếu bạn cần một ngôn ngữ khác ngoài tiếng Anh (mặc định), thiết lập rằng trong cấu hình của bạn.
- Nếu bạn muốn tải ngôn ngữ KHÁC trên cơ sở bộ điều khiển, bạn cần phải xác định rằng (phổ biến nhất trong số
constructor
của bạn bằng cách sử dụng một cái gì đó như mảng phiên/lựa chọn người dùng. - Bạn không thể tải 2 ngôn ngữ (1 trong hàm tạo khác trong một lớp học khác nhau .. sẽ không hoạt động)
tham khảo ở đây mỗi bài viết diễn đàn: http://codeigniter.com/forums/viewthread/176223/
có, tôi đã tải ngôn ngữ mặc định (tiếng Anh) bên trong MY_Controller được mở rộng bởi các bộ điều khiển khác. Tôi đã thử tải một ngôn ngữ thứ cấp (Trung Quốc) hy vọng nó sẽ ghi đè lên ngôn ngữ tiếng Anh bên trong bộ điều khiển ABC này cũng mở rộng MY_Controller, nhưng vẫn còn, chỉ có ngôn ngữ tiếng Anh có thể truy cập. – coder
Tôi đã cập nhật câu trả lời của tôi, có vẻ như bạn cần phải sửa chữa bộ điều khiển của bạn, không thể tuyên bố 2 ngôn ngữ trong 1 bộ điều khiển (hoặc một bộ điều khiển bạn mở rộng). – Jakub
Thx lạnh. Tôi figured tôi chỉ cần thực hiện một param tùy chọn để xây dựng MY_Controller của tôi để xác định ngôn ngữ để tải. Điều đó sẽ làm việc cho trường hợp của tôi. Thx cho các nỗ lực !!! – coder
tôi gặp phải vấn đề này và tìm một giải pháp khéo léo
$this->lang->load('text', 'english');
echo $this->lang->line('__YOUR_LANG_VARIABLE__');
//CI will record your lang file is loaded, unset it and then you will able to load another
//unset the lang file to allow the loading of another file
if(isset($this->lang->is_loaded)){
for($i=0; $i<=sizeof($this->lang->is_loaded); $i++){
unset($this->lang->is_loaded[$i]);
}
}
$this->lang->load('text', 'chinese');
echo $this->lang->line('__YOUR_LANG_VARIABLE__');
.
Hy vọng điều đó sẽ hữu ích.
Đây là giải pháp làm việc duy nhất khi làm việc với các tập tin ngôn ngữ có cùng các phím –
Làm việc như một sự quyến rũ! Cảm ơn! – Roomm
một cách dễ dàng hơn là để thiết lập lại các dữ liệu ngôn ngữ và is_loaded
$this->lang->is_loaded = array();
$this->lang->language = array();
hoạt động hoàn hảo! Chỉ cần những gì tôi đang tìm kiếm. – JoshHighland
Câu trả lời hay, cảm ơn vì đã mang nó lên! – Ando
Điều này làm việc hoàn toàn tốt cho tôi. Cảm ơn! – grpaiva
Tôi biết đó là một chút muộn để trả lời này nhưng tôi nghĩ bạn có thể thay đổi mục config 'ngôn ngữ' tự động dựa trên yêu cầu trang.
$this->config->set_item('language', 'chinese');
$this->config->set_item('language', 'english'); // based on the language folder of course holding language files
Tôi có yêu cầu gửi bản tin trong ngôn ngữ cơ sở của người dùng và điều này đã giúp tôi thay đổi ngôn ngữ khi đang di chuyển, hy vọng điều này có thể hữu ích ..
Làm việc cho tôi: D ... Đây phải là câu trả lời được chấp nhận, tôi tin rằng, đó là giải pháp đơn giản nhất trong số tất cả các câu trả lời được đưa ra. –
Nếu bạn có bất kỳ ứng dụng được cài đặt sẵn trong codeigniter
và bạn muốn thêm một gói ngôn ngữ, chỉ cần làm theo các bước sau:
- Thêm tập tin ngôn ngữ trong thư mục
application/language/arabic
(tôi đã thêm arabic lang trong sma2 xây dựng trong ci)
- Chuyển đến file có tên
setting.php
Trong
application/modules/settings/views/setting.php
bạn sẽ tìm thấy các mảng:
<div class="controls">
<?php /*
$lang = array (
'english' => 'English',
'arabic' => 'Arabic', // +++ Add this line
'spanish' => 'Español'
Bây giờ hãy lưu và chạy ứng dụng.
- 1. Thay đổi ngôn ngữ khi chạy?
- 2. Thay đổi ngôn ngữ khi đăng nhập
- 3. Thay đổi ngôn ngữ trong Qt
- 4. Thay đổi ngôn ngữ hệ thống C#
- 5. Ngôn ngữ thay đổi Phonegap của nhãn?
- 6. Thay đổi ngôn ngữ trong C#
- 7. Jackson @JsonIgnore đã thay đổi ngữ nghĩa?
- 8. Thay đổi ngôn ngữ cho các thông báo lỗi Subversion
- 9. Định tuyến URI CodeIgniter (động, đa ngôn ngữ)
- 10. Thay đổi hoàn toàn ngôn ngữ IDE trong Netbeans 6.8
- 11. Drupal: cách thay đổi ngôn ngữ phân loại hiện tại
- 12. Thay đổi cỡ chữ Dựa trên ngôn ngữ
- 13. Thay đổi cài đặt BIOS bằng ngôn ngữ C
- 14. Codeigniter - lấy tên tệp đã tải lên
- 15. Thay đổi ngôn ngữ cho NSLocalizedString() trong thời gian chạy
- 16. Ngôn ngữ thay đổi bản đồ Google động (tải không đồng bộ)
- 17. Thay đổi ngôn ngữ giả lập Android tự động
- 18. Thay đổi ngôn ngữ mặc định trong Symfony2
- 19. Notepad ++ Ngôn ngữ bàn phím chỉ thay đổi
- 20. Thay đổi ngôn ngữ ứng dụng theo lập trình
- 21. Cách thay đổi ngôn ngữ khi chạy trong java swing
- 22. Thay đổi ngôn ngữ tại thời điểm chạy trong Swing
- 23. Ngôn ngữ lập trình đã nhập
- 24. chuỗi Ngôn ngữ không tải: from_failed [from_email_address]
- 25. Đa ngôn ngữ Ngôn ngữ
- 26. Ember: chuyển đổi động sang ngôn ngữ đã chọn (sử dụng thư viện i18n)
- 27. Làm cách nào để thay đổi ngôn ngữ của ứng dụng khi người dùng chọn ngôn ngữ?
- 28. Thay thế GINA bằng ngôn ngữ .NET?
- 29. chuyển đổi chuỗi kép và ngôn ngữ
- 30. Android: Có cách nào để thay đổi ngôn ngữ mặc định của android sang ngôn ngữ mới không?
Kiểm tra câu trả lời trong bài đăng này http://stackoverflow.com/questions/31895341/codeigniter-dynamic-language-functionality/41661355#41661355 –