[CẬP NHẬT] Vì thứ tự tải dịch Magento 2.2 là như sau:
- Đang tải các bản dịch mô-đun.
- Tải thông tin gói dịch.
- Tải tập tin dịch chủ đề.
- Tải cơ sở dữ liệu dịch. (Bản dịch nội tuyến)
Điều đó về cơ bản có nghĩa là gói dịch sẽ ghi đè lên bản dịch chủ đề. Vì vậy, giải pháp nhanh chóng và dễ dàng sẽ được khắc phục bằng cách sử dụng bản dịch Inline, điều này cũng có thể có trong M1. Nhưng hiện tại chúng tôi có M2 có tính linh hoạt cao hơn trên tàu và có một cách để mở rộng các gói dịch hiện có với các gói dịch tùy chỉnh. Tất cả bạn cần làm là tạo ra một gói dịch. Vì vậy, tạo một mô-đun
Dự án \ Địa điểm
tạo một register.php cho nó với nội dung sau:
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::LANGUAGE,
'project_nl_nl',
__DIR__
);
Đó là cách chúng tôi xác định mô-đun đó là một gói dịch. Bước cuối cùng, tạo một tệp ngôn ngữ tệp meta với nội dung sau:
<language ...>
<code>nl_NL</code>
<vendor>project</vendor>
<package>nl_nl</package>
<sort_order>10</sort_order>
<use vendor="language" package="nl_nl" />
</language>
Bằng cách này, bạn chỉ định gói dịch chính mà bạn muốn gia hạn. Và cũng xác định thứ tự, trong trường hợp bạn đã có kế thừa gói dịch trong dự án. Đây là một liên kết trên ví dụ từ chính magento .
Một điều nữa. Hãy chắc chắn rằng <vendor> . '_' . <code>
(từ ngôn ngữ của bạn ) sẽ khớp với tên mô-đun từ registration.php
. project_nl_nl
trong ví dụ của tôi