Làm cách nào để dịch thông báo lỗi hoặc văn bản lỗi trong Magento 2?


12

Tôi có hai lượt xem thông báo lỗi xác thực js tiếng Anh và tiếng Ả Rập cần dịch sang tiếng Ả Rập, vậy làm thế nào để làm điều đó? Và tôi cũng có một vài văn bản tùy chỉnh về cách làm điều đó.

Tôi đã tạo một i18n cho tiếng Ả Rập đang hoạt động tốt nếu tôi tạo tiếng vang trong tệp PHTML hoặc PHP, giống như cách chuyển nó thành js trong Magento 2

có ai giúp tôi không

Câu trả lời:


28

Bạn có thể dịch thông báo lỗi js như thế này

require([
'jquery', // jquery Library
'jquery/ui', // Jquery UI Library
'mage/translate' // Magento text translate (Validation message translte as per language)
], function($){ 
    $(window).load(function() {
        alert($.mage.__('Enter Your message here'));
    });
});

Magento2 sử dụng mage/translate.jsđể dịch


đã tạo ar_KW.csv trong thư mục i18n mô-đun của tôi trong đó dịch "Enter your message here" trong ji của tôi đã thử nó không hoạt động nhưng trong phtml nếu tôi lặp lại văn bản dịch của tôi tôi đang hiển thị
Pradeep Kumar

Bạn đã xóa bộ nhớ cache và triển khai nội dung tĩnh? @PradeepKumar
Keyur Shah

Chỉ là câu trả lời tôi đang tìm kiếm! +1
thdoan

Xin lưu ý rằng điều này sẽ không hoạt động nếu bạn sử dụng nó trực tiếp trong các tệp phtml. Magento sẽ chỉ phân tích và dịch từ các tệp js và html.
eInyzant

Điều này sẽ hoạt động nhưng không phải là mã sạch; bạn đang yêu cầu pháp sư / dịch nhưng không sử dụng nó. .
oliver de Cramer



5

Sau khi đào sâu tôi mới biết khái niệm bản địa hóa trong magento2

Dưới đây là những điều bạn cần theo dõi, trong trang web của tôi, chúng tôi có hai chế độ xem en và ar_kw tiếng Ả Rập

  1. Tạo gói ngôn ngữ http://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-i18n.html#config-cli-subcommands-xlate-example2

  2. để có được tất cả các cụm từ bạn cần chạy lệnh ex

    php D:\xampp\htdocs\magento2\bin\magento i18n:collect-phrases -o "D:\xampp\htdocs\magento2\app\code\Sugarcode\Test\i18n\ar_KW.csv" D:\xampp\htdocs\magento2\app\code\Sugarcode\Test

    Nó không đọc mô-đun thử nghiệm của tôi và tạo Sugarcode csv \ Test \ i18n \ ar_KW.csv

nó sẽ nhận được tất cả __('Some Text') and $.mage.__('Some Text')trong js và chuẩn bị một csv

  1. bây giờ dịch tệp mới được tạo sang tiếng Ả Rập mà bạn có thể giữ tên mã địa phương ar_KW.csv (nó có thể nằm trong mô-đun của bạn hoặc nó có thể nằm trong mô-đun ngôn ngữ của bạn)
  2. xóa thư mục var và chạy bin\magento setup:static-content:deploy en_US ar_KW

  3. nó sẽ tạo tất cả js cùng với tệp js-dịch.json trong mỗi chủ đề / ex luma / ar_KW, js-dịch.json sẽ có tất cả dữ liệu được dịch bên js ở định dạng json khi bạn thấy thông báo lỗi mà nó hiển thị từ tệp này chỉ có


Xin chào, tôi đã thực hiện tất cả các bước theo câu trả lời của bạn, mã tôi đã thêm cho ex: alert ($. Mage .__ ('js test')); là chính xác đến trong tập tin ngôn ngữ tạo ra nhưng khi tôi thay đổi bản dịch, thông điệp js vẫn đến như cũ. Tui bỏ lỡ điều gì vậy ?
Sunil Verma

2

nó ném lỗi nếu bạn sử dụng __ vì vậy hãy làm theo mã dưới đây

  require([
    'jquery', // jquery Library
    'mage/translate'
   ], function($,$t){ 
        $(window).load(function() {
            alert($t('Enter Your message here'));
        });
    });


0

Thêm vào một mẫu .phtml thông báo lỗi của bạn như:
<?php echo __('This is a required field.'); ?>
- kích hoạt dịch trực tuyến
- dịch

làm xong


Bạn có thể thêm một số chi tiết cho câu trả lời như làm thế nàotại sao nó hoạt động?
tjons
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.