Làm cách nào để quản lý các biến ngôn ngữ trong JavaScript?


8

Trong thành phần tùy chỉnh của tôi, tôi thực hiện nhiều xác thực JavaScript cho mỗi chế độ xem. Việc xác thực đưa ra các thông báo lỗi khác nhau và các thông báo đó được định cấu hình bên trong tệp ngôn ngữ en-GB.com_mycomp.ini và tôi viết phần bao gồm JavaScript như bên dưới trong tệp PHP.

trong view.html.php

require_once JPATH_COMPONENT.'/views/send/tmpl/validation.php';

xác nhận.php

function doValidation(){
  // do some checking
  alert("<?php echo JText::_( 'VALIDATION_ERROR'); ?>");
}

Làm theo cách này, mã JavaScript được hiển thị cùng với tệp PHP.

Những gì tôi đã nghĩ là sử dụng $document->addScript(...)hàm tiêu chuẩn để các tệp .js được tải như một phần của tiêu đề. Vì tôi đã nhận được các câu lệnh PHP nội tuyến nên tôi không thể làm điều đó như thế.

Lưu ý: Tôi không muốn mã cứng các thông báo lỗi bên trong tệp .js vì thành phần này độc lập với ngôn ngữ.

Tôi cần một số hướng liên quan đến cách tốt nhất bao gồm mã JavaScript có các giá trị cụ thể về ngôn ngữ.

Câu trả lời:


12

Joomla có một phương pháp nhất định cho việc này. Đầu tiên, trong việc view.html.phpthêm tất cả các chuỗi, những gì cần được dịch với điều này:

JText::script('VALIDATION_ERROR');

Điều này sẽ thêm chuỗi của bạn vào đối tượng javascript, những gì bạn có thể sử dụng sau này.

Và trong javascript, sử dụng:

Joomla.JText._('VALIDATION_ERROR')

Điều này sẽ cung cấp cho bạn dịch phù hợp trong ngôn ngữ hiện tại. Bằng cách này, bạn có thể giữ JS và PHP trong các tệp riêng biệt.


Nơi này để thêm cái này, JText::script('VALIDATION_ERROR');trong view.html.phptập tin?
ankit suthar

@ankitsuthar Có, view.html.php vẫn ổn.
Rene Korss

@ankitsuthar Nếu bạn có nghĩa là vị trí trong tệp, thì bên trong phương thức hiển thị.
Rene Korss
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.