इसलिए मैं आखिरकार समस्या का पता लगाने में सक्षम था।
ऐसा लगता है कि जेएस टेम्पलेट अनुवाद पढ़ा जाता है, js-translation.json
जो setup:static-content:deploy
निष्पादन के दौरान उत्पन्न होता है । इस फ़ाइल में डेटा को पॉप्युलेट करने के लिए प्रोजेक्ट के लिए एक नया भाषा पैकेज बनाना होगा।
इसलिए सीएसवी को थीम स्तर पर जोड़ने की बजाय जैसे app/design/<area>/<vendor>/<theme-name>/i18n/xx_XX.csv
हमें इसे भाषा पैकेज में जोड़ना है।
पहले से एक नया भाषा पैकेजproject document root
बनाने के लिए हमें निम्नलिखित निर्देशिकाएँ बनाने की आवश्यकता होगी:
mkdir -p app/i18n/<project-name>/<xx_xx>
महत्वपूर्ण : USE लोअरकेस DIRECTORY NAMES केवल कैमसेलडेड फ़ोल्डर नाम से काम नहीं चलेगा
फिर निर्देशिका को नए बनाए गए फ़ोल्डर में बदलें:
cd app/i18n/<project-name>/<xx_xx>
अब आप composer.json
निम्नलिखित सामग्री के साथ एक (वैकल्पिक) फ़ाइल बना सकते हैं :
{
"name": "<project-name>/<xx_xx>",
"description": "<sample description>", //Ex:English (United States) language
"version": "<version-number>", //100.0.1
"license": [
"OSL-3.0",
"AFL-3.0"
],
"require": {
"magento/framework": "100.0.*"
},
"type": "magento2-language",
"autoload": {
"files": [
"registration.php"
]
}
}
अगला बनाएं हमें language.xml
निम्नलिखित सामग्रियों के साथ एक फ़ाइल की आवश्यकता है :
<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/Language/package.xsd">
<code>xx_XX</code> <!-- example: <code>en_US</code> -->
<vendor><project-name></vendor>
<package><xx_xx></package> <!-- example: <package>en_us</package> -->
</language>
उसके बाद registration.php
निम्नलिखित सामग्री युक्त आवश्यक है:
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::LANGUAGE,
'<project-name>_<xx_xx>',
__DIR__
);
अब हम अपना अनुवाद CSV बना सकते हैं। यदि आपके पास पहले से ही थीम फ़ोल्डर के अंदर एक ऐसा कुछ हैapp/design/<area>/<vendor>/<theme-name>/i18n/xx_XX.csv
आप बस इसे स्थानांतरित कर सकते हैंapp/i18n/<project-name>/<xx_xx>/xx_XX.csv
अब project document root
हमें इन आदेशों को चलाने की आवश्यकता है:
find pub/static -name js-translation.json -exec rm -rf {} \;
हमें इसे हटाने की आवश्यकता है js-translation.json
जो चलाने से पहले ही बनाई जा चुकी हैsetup:static-content:deploy
अब हम स्थैतिक सामग्री चलाते हैं:
php bin/magento setup:static-content:deploy <xx_XX>
एक बार जब हम कैश को साफ कर लेते हैं:
php bin/magento cache:clean
php bin/magento cache:flush
हम यह सत्यापित कर सकते हैं कि जेएस टेम्पलेट के लिए अनुवाद फ़ाइलें सभी को खोजने के द्वारा उत्पन्न की गई हैं या नहीं js-translation.json
पब / स्टेटिक फ़ोल्डर अंदर ।
find pub/static -name js-translation.json
यह जेएस टेम्पलेट्स के लिए उत्पन्न सभी अनुवाद फाइलों की सूची प्रदान करेगा।
संदर्भ:
- Magento DevDocs
- संबंधित गितुब अंक
js-translation.json
फ़ाइलें स्थिर सामग्री से सही तरीके से बनाई गई हैं, भले ही .csv फाइलें अंदर डाली गई होंapp/design/frontend/vendor/theme-name/i18n/xx_XX.csv
।js-translation.json
स्थैतिक सामग्री को चलाने से पहले एकमात्र देखभाल को हटा दिया जाता है ।