programming5:thematic:language
Khác biệt
Đây là những khác biệt giữa hai phiên bản của trang.
Phiên bản sau | Phiên bản trước | ||
programming5:thematic:language [2018/05/14 11:44] – được tạo ra hoaquynhtim99 | programming5:thematic:language [2018/05/14 13:55] (hiện tại) – [Giao diện Smarty] hoaquynhtim99 | ||
---|---|---|---|
Dòng 2: | Dòng 2: | ||
====== Sử dụng ngôn ngữ trong module và template ====== | ====== Sử dụng ngôn ngữ trong module và template ====== | ||
+ | |||
+ | ===== Giao diện Smarty ===== | ||
+ | |||
+ | > Nếu trong function chưa gọi global cần gọi global $nv_Lang | ||
+ | |||
+ | Trong php cần assign: | ||
+ | |||
+ | <code php> | ||
+ | $tpl-> | ||
+ | </ | ||
+ | |||
+ | Trong file tpl: | ||
+ | |||
+ | <code smarty> | ||
+ | {$LANG-> | ||
+ | </ | ||
+ | |||
+ | Nếu trong keylang có truyền tham số (%s, %d ...) thì dùng | ||
+ | |||
+ | <code smarty> | ||
+ | {$LANG-> | ||
+ | </ | ||
+ | |||
+ | Phương thức get sẽ tìm keylang theo thứ tự lang global, lang module, lang block. Nếu keylang không có sẽ xuất luôn keylang ra. | ||
+ | |||
+ | Nếu tìm riêng ở lang nhỏ hơn dùng | ||
+ | |||
+ | <code smarty> | ||
+ | {$LANG-> | ||
+ | {$LANG-> | ||
+ | {$LANG-> | ||
+ | </ | ||
+ | |||
+ | ===== Giao diện sử dụng Xtemplate ===== | ||
+ | |||
+ | Xuất lang ra trong php | ||
+ | |||
+ | |||
+ | <code php> | ||
+ | $tpl-> | ||
+ | $tpl-> | ||
+ | $tpl-> | ||
+ | </ | ||
+ | |||
+ | Trong file tpl dùng như cũ '' | ||
+ | |||
+ | > Không cần gọi global biến $nv_Lang nếu dùng Xtemplate | ||
====== Hướng dẫn ngôn ngữ ở cấp độ hệ thống ====== | ====== Hướng dẫn ngôn ngữ ở cấp độ hệ thống ====== | ||
+ | |||
+ | **Khởi tạo lang** | ||
+ | |||
+ | <code php> | ||
+ | $nv_Lang = new \NukeViet\Core\Language(); | ||
+ | </ | ||
+ | |||
+ | **Đọc ngôn ngữ global** | ||
+ | |||
+ | <code php> | ||
+ | $nv_Lang-> | ||
+ | </ | ||
+ | |||
+ | Nếu $admin = false thì đọc ở global.php nếu $admin = true đọc admin_global.php | ||
+ | |||
+ | **Đọc ngôn ngữ module** | ||
+ | |||
+ | <code php> | ||
+ | $nv_Lang-> | ||
+ | </ | ||
+ | |||
+ | Nếu $modadmin = true đọc ở includes/ | ||
+ | |||
+ | Nếu $modadmin = false đọc ở modules/ | ||
+ | |||
+ | **Đọc ngôn ngữ giao diện** | ||
+ | |||
+ | <code php> | ||
+ | $nv_Lang-> | ||
+ | </ | ||
+ | |||
+ | Nếu $admin = false đọc themes/ | ||
+ | |||
+ | **Đọc ngôn ngữ install** | ||
+ | |||
+ | <code php> | ||
+ | $nv_Lang-> | ||
+ | </ | ||
+ | |||
+ | **Đọc file ngôn ngữ bất kỳ** | ||
+ | |||
+ | <code php> | ||
+ | $nv_Lang-> | ||
+ | </ | ||
+ | |||
+ | |||
===== Ngôn ngữ tạm ===== | ===== Ngôn ngữ tạm ===== | ||
+ | |||
+ | Ví dụ khi giao diện quét các file admin.menu.php để lấy ra menu của admin thì cần phải load các ngôn ngữ của module vào. Khi đó dùng: | ||
+ | |||
+ | |||
+ | <code php> | ||
+ | $nv_LangTmp = new \NukeViet\Core\Language(); | ||
+ | $nv_LangTmp-> | ||
+ | </ | ||
+ | |||
+ | Giá trị '' | ||
+ | |||
+ | |||
+ | <code php> | ||
+ | \NukeViet\Core\Language:: | ||
+ | \NukeViet\Core\Language:: | ||
+ | \NukeViet\Core\Language:: | ||
+ | </ | ||
+ | |||
+ | Sau khi dùng xong '' | ||
===== Đọc ngôn ngữ khác, không phải là NV_LANG_INTERFACE hiện tại ===== | ===== Đọc ngôn ngữ khác, không phải là NV_LANG_INTERFACE hiện tại ===== | ||
+ | |||
+ | Để đọc ngôn ngữ khác cần chú ý đến hai phương thức: | ||
+ | |||
+ | <code php> | ||
+ | $nv_Lang-> | ||
+ | $nv_Lang-> | ||
+ | </ | ||
+ | |||
+ | Nếu dùng setLang hệ thống sẽ làm rỗng toàn bộ lang hiện tại bao gồm ngôn ngữ tạm và cả phần | ||
+ | |||
+ | <code php> | ||
+ | \NukeViet\Core\Language:: | ||
+ | \NukeViet\Core\Language:: | ||
+ | \NukeViet\Core\Language:: | ||
+ | </ | ||
+ | |||
+ | Nếu dùng '' | ||
+ | |||
+ | Khi dùng '' | ||
===== Thay đổi ngôn ngữ đã đọc vào ===== | ===== Thay đổi ngôn ngữ đã đọc vào ===== | ||
+ | |||
+ | Áp dụng khi cần nạp ngôn ngữ từ một mảng cố định vào ngôn ngữ đã đọc. Cú pháp: | ||
+ | |||
+ | <code php> | ||
+ | $nv_Lang-> | ||
+ | $nv_Lang-> | ||
+ | $nv_Lang-> | ||
+ | </ | ||
+ | |||
+ | Có hai cách sử dụng: | ||
+ | |||
+ | - Truyền cả $langkey và $langvalue dạng chuỗi. | ||
+ | - Chỉ truyền $langkey dạng mảng, không truyền vào $langvalue. | ||
programming5/thematic/language.txt · Sửa đổi lần cuối: 2018/05/14 13:55 bởi hoaquynhtim99