Magento सीएसवी अनुवाद फ़ाइलों का प्रबंधन


22

जैसे-जैसे समय बीतता है, मैगेंटो कोर टीम ने अधिक से अधिक डिफ़ॉल्ट भाषा पैक को जोड़ा है

app/locale 

फ़ोल्डर। क्या आपकी अपनी अनुवाद फ़ाइलों को प्रबंधित करने के लिए एक कैनन तरीका है जिससे वे भविष्य के सिस्टम अपग्रेड में हस्तक्षेप नहीं करते हैं? यानी मैं Magento में कुछ लेबल बदलना चाहता हूं, इसलिए मैं संपादित करता हूं

app/locale/en_US/Mage_Sales.csv

सीधे। यदि हम Magento को अपग्रेड करते हैं, तो मेरे परिवर्तन मिटा दिए जाएंगे। क्या थीम लोकेल फीचर इसके लिए पर्याप्त है? (क्या यह मॉड्यूल विशिष्ट फ़ाइलों को संभालता है, या बस translate.csv)। या अनुवाद मॉडल को अलग स्थान से फ़ाइलों को लोड करने के लिए फिर से लिखना बेहतर है? या कुछ और?

जवाबों:


17

इसे इस्तेमाल करे।

योग करने के लिए, कोर मॉड्यूल के अनुवाद XPath के तहत एक अतिरिक्त अनुवाद फ़ाइल निर्दिष्ट करें और अपने ओवरराइडिंग CSV जोड़े को वहां रखें।

<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
आप बहुत तेज थे। मैं इसे खोना शुरू कर रहा हूं।
मेरियस

15

translate.csvऔर गैर-पोर्टेबल इनलाइन अनुवाद के अलावा एक और तरीका है। मैं इसे इस तरह से करता हूं।

प्रत्येक मॉड्यूल एक से अधिक अनुवाद फ़ाइल का समर्थन करता है।

यदि आप इसे इसमें जोड़ते हैं config.xml:

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

दोनों फ़ाइलों [Namespace]_[Module].csvऔर [Namespace]_[Module]_version2.csvअनुवाद के लिए लोड किया जाएगा।

और उन्हें उसी क्रम में संसाधित किया जाएगा जिसमें वे घोषित किए गए हैं।

इसलिए यदि आपको Mage_Sales.csvफ़ाइल को संपादित नहीं करने के लिए उदाहरण के लिए / संशोधित करने की आवश्यकता है, तो बस एक मॉड्यूल बनाएं जो अनुवाद फ़ाइलों की सूची में एक अन्य फ़ाइल जोड़ता है।

कुछ इस तरह:
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>

और सुनिश्चित करें कि आप मॉड्यूल पर निर्भर करते हैं Mage_Sales
आप अनुवाद के प्रबंधन के लिए एक "एक आकार सभी फिट बैठता है" मॉड्यूल भी बना सकते हैं। बस किसी भी मॉड्यूल के लिए एक वैकल्पिक अनुवाद फ़ाइल को आप की जरूरत है और सुनिश्चित करें कि यह नया मॉड्यूल उन सभी पर निर्भर करता है।


क्या यह सिर्फ app/locale/**/Easylife_Sales.csvइस फ़ाइल के लिए दिखेगा ? मुझे लगता है कि जब तक आप अपने फाइल सिस्टम के लिए निर्देशिका विभाजक को जानते हैं, तब तक यह सबफ़ोल्डर्स को भी अनुमति देगा?
pspahn

मुझे लगता है कि यदि आप चाहें तो आप सबफ़ोल्डर का उपयोग कर सकते हैं। मैंने कभी इसकी कोशिश नहीं की।
मेरियस

9

CSV फ़ाइलों app/localeको कोर फ़ाइलों के रूप में माना जाना चाहिए और संशोधित नहीं किया जाना चाहिए। मुझे लगता है कि कस्टम अनुवाद जोड़ने का सबसे अच्छा तरीका उन्हें डालना हैapp/design/frontend/{package}/{theme}/locale/{locale}/translate.csv

कृपया ध्यान दें कि आप translate.csvफ़ाइलों के "Mage_Adminhtml::Sales","Sales"बजाय मॉड्यूल नामों का उपयोग कर सकते हैं "Sales","Sales"। यह आपको उन अनुवादों का उपयोग करने की अनुमति देता है जो विशिष्ट विषयों के अनुरूप कस्टम हैं।


1
थीम लोकेल फ़ाइल चीजों को करने का एक अच्छा और तेज़ तरीका है लेकिन क्या होगा यदि आपके पास एक ही उदाहरण पर कई थीम हैं?
मेरियस

2
मैं लगभग हमेशा थीम विशिष्ट अनुवादों का उपयोग करना पसंद करता हूं - कभी-कभी थीम में जगह कम होती है और मुझे इसके बजाय संक्षिप्त रूप का उपयोग करने की आवश्यकता होती है। यह भी थीम परीक्षण WAY को सरल बनाता है।
प्रोटो

@Pronto जैसा मैंने कहा है, लेकिन किसी कारण से Magento केवल ट्रांसलेशन लोड करेगा। यदि यह है app/locale/, तो मैं इसे app/design/frontend/{package}/{theme}/locale/इसके बजाय इसे लोड करने के लिए कैसे कहूं ? मेरा प्रश्न यहाँ देखें: stackoverflow.com/questions/26554195/…
जस्टिन

4

आप डिज़ाइन / थीम विशिष्ट "Translate.csv" को संपादित / बना सकते हैं। "मॉड्यूल-अनुवाद-फ़ाइल" से अनुवाद को ओवरराइड करने के लिए। उदाहरण के लिए "Mage_Catalog.csv":

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

इसलिए नियम "मॉड्यूल नामस्थान :: स्ट्रिंग का अनुवाद किया जाना", "अनुवादित स्ट्रिंग" है। मुझे लगता है कि इसका Magento अनुवाद वर्कफ़्लो का अंतिम नियम है।


1

SemExpert में हम ठीक यही करते हैं। हमारा अपना es_AR अनुवाद पैकेज (CSV फ़ाइलों और ईमेल टेम्प्लेट के साथ) है और फिर सभी अनुकूलन या तो ट्रांसलेशन के द्वारा किए जाते हैं। Invv या इनलाइन ट्रांसलेशन फीचर द्वारा (बहुत दुर्लभ अंतिम-उपयोगकर्ता मामलों में)।

हम Magento के उन्नयन के कारण अनुवाद फ़ाइलों को खोने (अब के लिए) जोखिम नहीं उठाते हैं क्योंकि यह बहुत संभावना नहीं है कि वे कभी भी बॉक्स से es_AR का समर्थन करेंगे, लेकिन हम Magento से उनके तार में छोटे बदलाव करने से पीड़ित हैं (जैसे कि 'जोड़ना'। ' एक वाक्य का अंत) जो अंग्रेजी तार बनाते हैं, जब आप उनसे कम से कम उम्मीद करते हैं।

मैंने अनुवाद स्ट्रिंग्स की निगरानी के लिए एक छोटा मॉड्यूल विकसित करना शुरू कर दिया है, जिसका उपयोग हम जब भी एक नया मैज संस्करण जारी करते हैं। आप इसे यहां पा सकते हैं: https://github.com/barbazul/SemExpert_TranslationDoctor

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.