গুটেনবার্গ কীভাবে প্রতিক্রিয়াগুলিতে অনুবাদগুলি পরিচালনা করেন?


11

আমি গুটেনবার্গের উত্স কোডটি দিয়ে যাচ্ছিলাম, উদাহরণস্বরূপ এটি এবং তারা অনুবাদগুলি কীভাবে পরিচালনা করে তা বুঝতে পারি না ...

তারা এটি আমদানি করে import { __ } from '@wordpress/i18n'এবং তারপরে উত্স কোডে তারা এটি ব্যবহার করে speak( __( 'Block settings closed' ) );

কেউ কি আমাকে বলতে পারেন যে তারা কীভাবে একটি সাধারণ .po ফাইলে সংগ্রহ করার জন্য রিঅ্যাক্টজেএসের মধ্যে এই অনুবাদগুলি পরিচালনা করে?

আমি মনে করি তাদের কিছু বিল্ড প্রক্রিয়া রয়েছে যা জেএস সহ সমস্ত ফাইলের মধ্য দিয়ে যায় এবং সেগুলি সংগ্রহ করে, তবে নিশ্চিত নয়।

উত্তর:


6

ইন গুটেনবার্গ এর GitHub সংগ্রহস্থলের আপনি i18n প্যাকেজ যে ব্যবহার করা হয় উৎস দেখতে পারেন। এই উত্সটিতে , আপনি জেডকে আমদানি করা (গুটেনবার্গ / প্যাকেজগুলি / i18n / src / index.js এর লাইন 4) দেখতে পাবেন এবং তারপরে হুডের অধীনে বেশিরভাগ অনুবাদ কাজের জন্য ব্যবহার করা হবে।

জেড "আধুনিক জাভাস্ক্রিপ্ট অ্যাপ্লিকেশনগুলির জন্য গেটটেক্সট স্টাইল আই 18 এন" উপস্থাপন করেছেন (বা কমপক্ষে তাই এটি তাদের সাইটে বলে)।

আপনার প্রশ্নটি .po ফাইলগুলির জন্য। জেড তাদের সাইটে ব্যাখ্যা করেছেন:

সেখানে বেশ কয়েকটি উপলব্ধ .po থেকে .json রূপান্তরকারীগুলিতে পাওয়া যায়। গেটেক্সটেক্স। পিও ফাইলগুলি বেশিরভাগ শালীন অনুবাদ সংস্থার স্ট্যান্ডার্ড আউটপুট, কারণ এটি একটি পুরানো স্ট্যান্ডার্ড standard

আমি বর্তমানে ব্যবহার করছি: po2json

তবে, আমি ভবিষ্যতের সংস্করণে এই কার্যকারিতাটি আলাদা জেড মডিউলে যুক্ত করতে চাই।

তবে এটি এখানে প্রযোজ্য বলে মনে হয় না।

আরও খনন সক্রিয় হয়, setLocaleData( data: Object, domain: string )অনুবাদগুলি পাস করার জন্য ব্যবহৃত হয়, এরকম পদ্ধতিতে :

$locale_data = gutenberg_get_jed_locale_data( 'gutenberg' );
wp_add_inline_script(
    'wp-i18n',
    'wp.i18n.setLocaleData( ' . json_encode( $locale_data ) . ' );'
);

( gutenberg_get_jed_locale_data( $domain )কমবেশি একটি মোড়ক হওয়ার জন্য get_translations_for_domain( $domain ))

সুতরাং মনে হয় ওয়ার্ডপ্রেস পিএইচপি এর মাধ্যমে অনুবাদ ডেটা পুনরুদ্ধার করে এবং তারপরে এটি জেডে প্রেরণ করে। জেড নিজেই কোনও অনুবাদ ফাইল লোড করবেন বলে মনে হয় না।

প্যাকেজের রিডমিও ব্যাখ্যা করে যে কীভাবে স্থানীয়করণের স্ট্রিং রয়েছে। পট ফাইলটি যথাযথভাবে উত্পন্ন করা যায়

প্যাকেজটিতে একটি pot-to-phpস্ক্রিপ্টও রয়েছে যা একটি .pot ফাইলে তালিকাভুক্ত বার্তাগুলি সহ পিএইচপি ফাইল তৈরি করতে ব্যবহৃত হয়। ওয়ার্ডপ্রেস.আর অনুবাদ অনুবাদ স্ট্রিং আবিষ্কারের কৌশলটি এই মুহুর্তে কার্যকর, WordPress.org সরাসরি জাভাস্ক্রিপ্ট ফাইলগুলি থেকে স্ট্রিংগুলি পার্স করতে সক্ষম নয়।

npx pot-to-php languages/myplugin.pot languages/myplugin-translations.php text-domain

এর অর্থ কী এই যে গুটেনবার্গ কোনও windowসম্পত্তিতে অনুবাদগুলি স্টোর করেছেন যেহেতু জেএসওএন wp_add_inline_scriptপিএইচপি দ্বারা লোড হয়েছে এবং তারপরে এটি প্রতিক্রিয়া দিক থেকে পুনরুদ্ধার করে এবং এটি জেডে চলে যায়? ... আর জেড কি আরও যাদু করে?
বোলোগার

@ বোলগার অগত্যা কোনও windowসম্পত্তি নয়, তবে হ্যাঁ। পিএইচপি মানগুলি পুনরুদ্ধার করে এবং wp_add_inline_script
এটিকে

2
আমার মন্তব্যে আপনি যে তথ্য যোগ করেছেন সেগুলি দিয়ে উত্তরটি আপনার প্রসারিত করা উচিত। এই মন্তব্যটি আসলে ওপি যা দেখায় তার সাথে
সামঞ্জস্যপূর্ণ বলে

2

কমপক্ষে আপাতত, যতক্ষণ না এর চেয়ে ভাল আর কোনও স্বয়ংক্রিয় প্রক্রিয়া না থাকে, আমি জেএস থেকে পোট ফাইলগুলি উত্পন্ন না করার পরামর্শ দেব।

যেহেতু @kero তার উত্তরে এখনই ব্যাখ্যা করেছেন জিবি অনুবাদগুলি। এমও ফাইল থেকে জেএস-তে এক ধরণের ব্লব অ্যারে হিসাবে পাস হচ্ছে। এই কর্মপ্রবাহটি সমস্ত স্থানীয়করণ টেম্পারিং প্লাগইনগুলিকে ভেঙে দেবে যা ফলাফল __এবং সহযোগীদের ফলাফল ফিল্টার করার উপর নির্ভর করে । __কলগুলি দিয়ে অনুবাদ করা স্ট্রিংগুলি থেকে ব্লব অ্যারের স্পষ্ট প্রজন্মের একটি আরও ভাল ওয়ার্কফ্লো হ'ল আপনি জিবি ননরপেক্ষ প্রসঙ্গে জেএস অনুবাদ কীভাবে করবেন তার অনুরূপ। এটি পট ফাইলগুলি উত্পন্ন করার বিষয়টিও সমাধান করবে।

এখানে যা অনুপস্থিত তা হ'ল কিছু স্বয়ংক্রিয় প্রক্রিয়া যা জেএস ফাইলগুলির উপর দিয়ে চলে এবং তিনি প্রাসঙ্গিক পিএইচপি কোড তৈরি করবেন, যার ফলস্বরূপ পোডিটের মতো সরঞ্জামগুলি দ্বারা বিশ্লেষণ করা যেতে পারে।



1
দুর্দান্ত সূচনা পয়েন্ট, কেবলমাত্র অংশ বামে ডাব্লুপি_এডিডি_ইনলাইন_স্ক্রিপ্টে কলটি স্বয়ংক্রিয়ভাবে উত্পন্ন করা সম্ভব, এখনই সম্ভবত এটি কেবল পট উত্পাদনের সুবিধার্থে পিএইচপি উত্পন্ন করে, তবে বাস্তবে এটি ব্যবহার করবেন না (আমার অনুমান)
মার্ক কাপলুন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.