Magento 2 bản dịch javascript


7

[EDIT]
Điều này đã lỗi thời. Việc dịch không được thực hiện nữa như được mô tả dưới đây
[/ EDIT]
Trong Magento 1, các văn bản có thể dịch cần trong javascript đã được thêm vào jstranslate.xmltệp trong etcthư mục của mô-đun và chúng được tự động thêm vào đối tượng js của người dịch.
Làm cách nào tôi có thể thêm các văn bản có thể dịch được sử dụng trong javascript trong Magento 2?
Tôi đã tìm thấy cách sử dụng bản dịch văn bản trong Magento 2 nhưng tôi không biết cách thêm bản dịch mới.

Dưới đây là một ví dụ về cách sử dụng chúng:

alert($.mage.__('Text to translate here'));

Tôi có cùng một vấn đề. Tôi phát hiện ra rằng kể từ phiên bản beta, kịch bản dịch đã bị thay đổi. Bây giờ nó đề cập đến một tệp có tên 'js-dịch.json'. Tập tin này được tìm thấy trong thư mục tĩnh của chủ đề của tôi. Bạn đã tìm ra cách thêm dữ liệu vào tập tin này chưa? Các cụm từ dịch đến từ đâu trong tập tin này?
Silvan

Câu trả lời:


4

ĐỒNG Ý. Tôi tìm thấy một giải pháp nhưng nó xấu xí với tôi.
Trong phần xử lý bố cục của trang tôi cần tôi thêm cái này:

<referenceContainer name="after.body.start">
    <block class="Magento\Framework\View\Element\Template" name="some-name-here" template="[Namespace]_[Module]::translate.phtml"/>
</referenceContainer>

sau đó tạo mẫu translate.phtmltrong [Namespace]/[Module]/view/[frontend|adminhtml]/templatesnội dung này:

<?php
$_data = array(
    'Text one to translate' => __('Text one to translate'),
    'Text two to translate' => __('Text two to translate'),
);
?>
<script type="text/javascript">
    require(["jquery","mage/translate"], function($){
        $.mage.translate.add(<?php echo Zend_Json::encode($_data) ?>)
    });
</script>

Tôi thực sự hy vọng có một cách khác để làm điều này.


1

Src mặc định cho các bản dịch trong frontend dường như là /app/code/Magento/Translation/view/base/temsheet/translate.phtml

chỉ vào khối này /app/code/Magento/Translation/Block/Js.php

có cái này là dataprovider /app/code/Magento/Translation/Model/Js/DataProvider.php

Vì vậy, bạn có thể thay đổi sự phụ thuộc thành một cơ sở dữ liệu riêng hoặc chặn cái này để thêm các bản dịch riêng hoặc thêm một khối riêng của loại này với cơ sở dữ liệu riêng.


Đó là tập tin chính xác dẫn tôi đến những gì tôi đã đăng trong câu trả lời của riêng tôi. Vấn đề là trong translate.phtmlđó không có gì liên quan getTranslatedJson. Nó chỉ là một tập tin phtml 'mồ côi'. Nó có thể dễ dàng liên quan đến một \Magento\Framework\View\Element\Templatelớp khối. Hiệu quả sẽ như nhau.
Marius

Tôi thực sự hy vọng đây là công việc còn dang dở và nó sẽ được sửa chữa. Cảm ơn.
Marius

Một tháng sau và 2 ngày cho chúng tôi vào Magento 2 và vẫn còn một vấn đề tương tự và toàn bộ dự án trông giống như "công việc còn dang dở". Các lỗ hổng tài liệu, lọc đầu vào cẩu thả trong rất nhiều lớp và những thứ như thế này trông giống như các lỗi rõ ràng. Người ta tự hỏi những gì trong tất cả các năm cho đến khi ổn định đã được thực hiện ... Dù sao, cảm ơn vì tiền boa với $.mage.translate.add. Chúng tôi đã viết một cách giải quyết xấu xí cung cấp CSV dịch thuật của chúng tôi cho toàn bộ gói ngôn ngữ cho chức năng này.
Jey DWork
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.