Magento2 জাভাস্ক্রিপ্ট অনুবাদ (KO) টেমপ্লেট পাঠ্য


24

আমি <!-- ko i18n: 'Store credit available' --><!-- /ko -->উপস্থিত পাঠ্যের জন্য একটি অনুবাদ যুক্ত করার চেষ্টা করছি vendor/magento/module-customer-balance/view/frontend/web/template/payment/customer-balance.html, তবে আমি যদি আমার মধ্যে লেখাটি পরিবর্তন করার চেষ্টা করি i18n/en_US.csvতবে এটি কার্যকর হয় না।

আমি ক্যাশে ফ্লাশ করেছি এবং স্থির সামগ্রী ব্যবহার করেছি।

কে টেমপ্লেটগুলির জন্য অনুবাদ যুক্ত করার আলাদা উপায় আছে?

উত্তর:


39

সুতরাং আমি অবশেষে সমস্যাটি বের করতে সক্ষম হয়েছি।

দেখে মনে হচ্ছে যে জেএস টেম্পলেট অনুবাদটি পড়া হয়েছে 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>

গুরুত্বপূর্ণ : ছোট ছোট নাম ব্যবহার করুন কেবলমাত্র ক্যামসেলকেসড ফোল্ডারের নামগুলি কাজ করবে না

তারপরে ডিরেক্টরিটি নতুন নির্মিত ফোল্ডারে পরিবর্তন করুন:

cd app/i18n/<project-name>/<xx_xx>

এখন আপনি composer.jsonনিম্নলিখিত বিষয়বস্তু দিয়ে একটি (alচ্ছিক) ফাইল তৈরি করতে পারেন :

{                                                     
    "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__
);

এখন আমরা আমাদের অনুবাদ সিএসভি তৈরি করতে পারি। আপনার যদি থিম ফোল্ডারের ভিতরে ইতিমধ্যে একটি থাকে তবে 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

এটি জেএস টেম্পলেটগুলির জন্য উত্পন্ন সমস্ত অনুবাদ ফাইলের তালিকা সরবরাহ করবে।

রেফারেন্স:

  1. ম্যাজেন্টো ডেভডোকস
  2. সম্পর্কিত গিতুব ইস্যু

আমার প্রকল্পে js-translation.jsonফাইলগুলি স্ট্যাটিক বিষয়বস্তু থেকে সঠিকভাবে তৈরি করা হয় এমনকি .csv ফাইলগুলি সন্নিবেশ করা হলেও app/design/frontend/vendor/theme-name/i18n/xx_XX.csvjs-translation.jsonচলমান স্থিতিশীল বিষয়বস্তু মোতায়েনের আগে একমাত্র যত্ন সমস্ত মুছে ফেলা হয় ।
লুস্ক্কু

আপনি ম্যাজেন্টোর কোন সংস্করণ চালু আছেন?
অতীশ গোস্বামী

ভেন্ডার / থিম তাই এর থেকে আপনার উপরের কোড অনুসারে <প্রকল্প / নাম> কী হওয়া উচিত ??
দক্ষ সুথার

1
এটি কি সত্যিই এটি করার একমাত্র উপায়? আমি বলতে চাইছি, এমনকি ডকুমেন্টেশন ( devdocs.magento.com/guides/v2.1/frontend-dev-guide/transferences/… ) এও বলেছে যে অনুবাদ ফাইলগুলি আমাদের মধ্যে রাখতে সক্ষম হওয়া উচিত design/<vender>/<theme>/i18n/xx_XX.csv
জিল বার্কার্স

1
ম্যাজেন্টো 2 এর সাথে এর সাথে প্রচুর বাগ রয়েছে, আমাদের পক্ষে সবচেয়ে ভাল উপায় js-translation.json
হ'ল

1

আমি যেমন গিতুব ইস্যুতে বর্ণনা করেছি ( https://github.com/magento/magento2/issues/7525#issuecomment-316690100 ) সেই সমস্যার আর একটি (সহজ) সমাধান রয়েছে।

আপনার কেবল প্রতিটি ভাষা পৃথকভাবে স্থাপন করা নিশ্চিত করতে হবে।

পরিবর্তে ব্যবহার করার পরিবর্তে:

php bin/magento setup:static-content:deploy en_US de_DE it_IT fr_FR es_ES

ব্যবহার

php bin/magento setup:static-content:deploy en_US
php bin/magento setup:static-content:deploy de_DE
php bin/magento setup:static-content:deploy it_IT
php bin/magento setup:static-content:deploy fr_FR
php bin/magento setup:static-content:deploy es_ES

এটি সম্ভবত এই কারণে ঘটেছিল যে static-content:deployকেবলমাত্র একবার ফাইলগুলি সংকলন করে এবং পরে সেগুলি অন্য ভাষায় অনুলিপি করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.