Công cụ thành viên

Công cụ trang web


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.

Liên kết đến bản xem so sánh này

Phiên bản trước của cả hai bênPhiên bản trước
Phiên bản sau
Phiên bản trước
programming5:thematic:language [2018/05/14 13:44] – [Hướng dẫn ngôn ngữ ở cấp độ hệ thống] hoaquynhtim99programming5:thematic:language [2018/05/14 13:55] (hiện tại) – [Giao diện Smarty] hoaquynhtim99
Dòng 9: Dòng 9:
 Trong php cần assign: Trong php cần assign:
  
-<code smarty>+<code php>
 $tpl->assign('LANG', $nv_Lang); $tpl->assign('LANG', $nv_Lang);
 </code> </code>
Dòng 72: Dòng 72:
  
 Nếu $modadmin = true đọc ở includes/language/admin_xxx.php Nếu $modadmin = true đọc ở includes/language/admin_xxx.php
 +
 Nếu $modadmin = false đọc ở modules/xxx/language/yyy.php tùy theo $admin mà đọc admin_vi.php hay vi.php Nếu $modadmin = false đọc ở modules/xxx/language/yyy.php tùy theo $admin mà đọc admin_vi.php hay vi.php
  
Dòng 78: Dòng 79:
 <code php> <code php>
 $nv_Lang->loadTheme($global_config['module_theme'], $admin = false); $nv_Lang->loadTheme($global_config['module_theme'], $admin = false);
-<code>+</code>
  
 Nếu $admin = false đọc themes/xxx/language/vi.php ngược lại đọc admin_vi.php Nếu $admin = false đọc themes/xxx/language/vi.php ngược lại đọc admin_vi.php
Dòng 86: Dòng 87:
 <code php> <code php>
 $nv_Lang->loadInstall($lang); $nv_Lang->loadInstall($lang);
-<code>+</code>
  
 **Đọc file ngôn ngữ bất kỳ** **Đọc file ngôn ngữ bất kỳ**
Dòng 92: Dòng 93:
 <code php> <code php>
 $nv_Lang->loadBlock($filepath); $nv_Lang->loadBlock($filepath);
-<code>+</code>
  
  
 ===== 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->loadModule($mod, $admin, $modadmin, $temp);
 +</code>
 +
 +Giá trị ''$temp'' đưa vào là true, khi đọc thì hệ thống không làm ảnh hưởng đến các giá trị:
 +
 +
 +<code php>
 +\NukeViet\Core\Language::$lang_global;
 +\NukeViet\Core\Language::$lang_module;
 +\NukeViet\Core\Language::$lang_block;
 +</code>
 +
 +Sau khi dùng xong ''unset($nv_LangTmp);'' để giải phóng bộ nhớ
 ===== Đọ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->setLang($lang);
 +$nv_Lang->changeLang($lang);
 +</code>
 +
 +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::$lang_global;
 +\NukeViet\Core\Language::$lang_module;
 +\NukeViet\Core\Language::$lang_block;
 +</code>
 +
 +Nếu dùng ''changeLang'' hệ thống chỉ làm rỗng ngôn ngữ tạm đã đọc để chuyển sang ngôn ngữ được change để đọc => Phần này dùng để thay đổi ngôn ngữ tạm cần đọc.
 +
 +Khi dùng ''changelang'' mà không truyền vào biến ''$lang'' thì hệ thống sẽ giữ nguyên lang hiện tại, chỉ làm rỗng dữ liệu đã đọc.
 ===== 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->setGlobal($langkey, $langvalue);
 +$nv_Lang->setModule($langkey, $langvalue);
 +$nv_Lang->setBlock($langkey, $langvalue);
 +</code>
 +
 +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.1526280274.txt.gz · Sửa đổi lần cuối: 2018/05/14 13:44 bởi hoaquynhtim99