Quản lý tập tin dịch thuật Magento csv


22

Thời gian trôi qua, nhóm nòng cốt Magento đã bổ sung ngày càng nhiều gói ngôn ngữ mặc định vào

app/locale 

thư mục. Có cách nào để quản lý các tệp dịch của riêng bạn để chúng không can thiệp vào việc nâng cấp hệ thống trong tương lai không? tức là tôi muốn thay đổi một số nhãn trong Magento, vì vậy tôi chỉnh sửa

app/locale/en_US/Mage_Sales.csv

trực tiếp Nếu chúng tôi nâng cấp Magento, những thay đổi của tôi sẽ bị xóa sổ. Là tính năng miền địa phương chủ đề đủ cho điều này? (nó xử lý các tập tin cụ thể mô-đun, hoặc chỉ translate.csv). Hoặc tốt hơn là viết lại các mô hình dịch để tải các tệp từ một vị trí khác nhau? Hay cái gì khác?

Câu trả lời:


17

Thử đi.

Để tổng hợp, chỉ định một tệp dịch bổ sung theo XPath dịch của mô-đun lõi và đặt các cặp CSV ghi đè của bạn vào đó.

<frontend>
    <translate>
        <modules>
            <Mage_Sales>
                <files>
                    <mr_storms_wicked_translations>Mage_Sales_Custom.csv</mr_storms_wicked_translations>
                </files>
            </Mage_Sales>
        </modules>
    </translate>
</frontend>

5
Bạn đã quá nhanh. Tôi đang bắt đầu đánh mất nó.
Marius

15

Bên cạnh translate.csvvà dịch nội tuyến không di động, có một cách khác. Tôi làm nó như thế này.

Mỗi mô-đun hỗ trợ nhiều hơn một tệp dịch.

Nếu bạn thêm cái này vào config.xml:

    <translate>
        <modules>
            <[Namespace]_[Module]>
                <files>
                    <default>[Namespace]_[Module].csv</default>
                    <alternative>[Namespace]_[Module]_version2.csv</alternative>
                </files>
            </[Namespace]_[Module]>
        </modules>
    </translate>

cả hai tập tin [Namespace]_[Module].csv[Namespace]_[Module]_version2.csvsẽ được tải để dịch.

và chúng sẽ được xử lý theo thứ tự mà chúng được khai báo.

Vì vậy, nếu bạn cần ví dụ để thêm / sửa đổi một cái gì đó trong việc Mage_Sales.csvkhông chỉnh sửa tệp, chỉ cần tạo một mô-đun thêm một tệp khác vào danh sách tệp dịch.

Một cái gì đó như thế này:
app/code/local/Easylife/Sales/etc/config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Easylife_Sales>
            <version>0.0.1</version>
        </Easylife_Sales>
    </modules>
    <frontend>
        <translate>
            <modules>
                <Mage_Sales>
                    <files>
                        <alternative>Easylife_Sales.csv</alternative>
                    </files>
                </Mage_Sales>
            </modules>
        </translate>
    </frontend>
    <adminhtml>
        <translate>
            <modules>
                <Mage_Sales>
                    <files>
                        <alternative>Easylife_Sales.csv</alternative>
                    </files>
                </Mage_Sales>
            </modules>
        </translate>
    </adminhtml>
</config>

và chắc chắn rằng bạn làm cho mô-đun phụ thuộc vào Mage_Sales.
Bạn cũng có thể tạo mô-đun "một kích thước phù hợp với tất cả" để quản lý bản dịch. Chỉ cần thêm một tệp dịch thay thế cho bất kỳ mô-đun nào bạn cần và đảm bảo mô-đun mới này phụ thuộc vào tất cả chúng.


Nó sẽ chỉ nhìn vào app/locale/**/Easylife_Sales.csv tập tin này? Tôi giả sử rằng nó cũng sẽ cho phép các thư mục con miễn là bạn biết trình phân tách thư mục cho hệ thống tập tin của bạn?
pspahn

Tôi đoán bạn có thể sử dụng các thư mục con nếu bạn muốn. Tôi chỉ không bao giờ thử nó.
Marius

9

Các tệp CSV nằm trong app/localephải được coi là các tệp cốt lõi và không được sửa đổi. Tôi thấy rằng cách tốt nhất để thêm bản dịch tùy chỉnh là đưa chúng vàoapp/design/frontend/{package}/{theme}/locale/{locale}/translate.csv

Xin lưu ý rằng bạn cũng có thể sử dụng tên mô-đun trong translate.csvcác tệp bằng cách sử dụng "Mage_Adminhtml::Sales","Sales"thay vì "Sales","Sales". Điều này cũng cho phép bạn sử dụng các bản dịch được tùy chỉnh phù hợp với các chủ đề cụ thể.


1
Tệp ngôn ngữ chủ đề là một cách tốt và nhanh chóng để làm mọi thứ nhưng nếu bạn có nhiều chủ đề trên cùng một ví dụ thì sao?
Marius

2
Tôi hầu như luôn thích sử dụng các bản dịch cụ thể theo chủ đề - đôi khi chủ đề có ít không gian hơn và tôi cần sử dụng các từ viết tắt thay thế. Điều này cũng làm cho thử nghiệm chủ đề CÁCH đơn giản hơn.
Pronto

@Pronto Tôi đã làm như bạn đã nói nhưng vì một số lý do, Magento sẽ chỉ tải dịch.csv nếu nó ở trong app/locale/, làm thế nào để tôi bảo nó tải nó từ app/design/frontend/{package}/{theme}/locale/thay thế? Xem câu hỏi của tôi ở đây: stackoverflow.com/questions/26554195/ Kẻ
Justin

4

Bạn có thể chỉnh sửa / tạo "dịch.csv" thiết kế / chủ đề cụ thể. Để ghi đè bản dịch từ "tệp dịch-mô-đun". ví dụ: "Mage_Catalog.csv":

"Mage_Catalog::add to basket","into Basket"

Vì vậy, Quy tắc là "Mô-đun Namespace :: chuỗi được dịch", "chuỗi dịch". Tôi nghĩ đó là Quy tắc cuối cùng của Quy trình dịch thuật Magento.


1

Tại SemExpert chúng tôi làm chính xác điều đó. Chúng tôi có gói dịch es_AR của riêng mình (với tệp CSV và mẫu email) và sau đó tất cả các tùy chỉnh được thực hiện bằng cách dịch.csv hoặc bằng tính năng dịch nội tuyến (trong trường hợp người dùng cuối rất hiếm).

Chúng tôi không có nguy cơ (hiện tại) mất các tệp dịch do nâng cấp Magento vì rất có thể họ sẽ không hỗ trợ es_AR ngoài hộp, nhưng chúng tôi chịu đựng Magento thực hiện các thay đổi nhỏ cho chuỗi của họ (như thêm '.' Tại cuối câu) làm cho các chuỗi tiếng Anh xuất hiện khi bạn mong đợi chúng ít nhất.

Tôi đã bắt đầu phát triển một mô-đun nhỏ để giám sát các chuỗi dịch mà chúng tôi sử dụng mỗi khi phiên bản Mage mới được phát hành. Bạn có thể tìm thấy nó ở đây: https://github.com/barbazul/SemExpert_TranslationDoctor

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.