में गुटेनबर्ग के GitHub भंडार आप i18n पैकेज है कि प्रयोग किया जाता है का स्रोत देख सकते हैं। इस स्रोत में, आप देखेंगे कि जेड आयात किया जा रहा है (gutenberg / पैकेज / i18n / src / index.js की पंक्ति 4) और फिर हुड के तहत अधिकांश अनुवाद कार्यों के लिए उपयोग किया जा रहा है।
जेड ने "गेटटेक्स्ट स्टाइल आई 18 एन फॉर मॉडर्न जावास्क्रिप्ट ऐप्स" पेश किया है (या कम से कम यह उनकी साइट पर ऐसा कहता है)।
आपका प्रश्न .po फाइलों के लिए है। जेड अपनी साइट पर बताते हैं:
वहाँ काफी कुछ उपलब्ध हैं। Gettext .po फाइलें अधिकांश सभ्य अनुवाद कंपनियों से मानक आउटपुट हैं, क्योंकि यह एक पुराना मानक है।
मैं वर्तमान में उपयोग करता हूं: 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 )
)
तो ऐसा लगता है कि वर्डप्रेस PHP के माध्यम से अनुवाद डेटा को पुनः प्राप्त करता है और फिर इसे जेड में भेजता है। Jed खुद को कोई अनुवाद फाइल लोड नहीं करता है।
पैकेज की रीडमी यह भी बताती है कि स्थानीयकृत तार वाली .pot फ़ाइल को ठीक से कैसे उत्पन्न किया जाए ।
पैकेज pot-to-php
में एक .pp फ़ाइल में सूचीबद्ध संदेशों वाले php फ़ाइलों को उत्पन्न करने के लिए उपयोग की जाने वाली स्क्रिप्ट भी शामिल है । इस समय से WordPress.org ट्रांसलेशन स्ट्रिंग्स की खोज को ट्रिक करना उपयोगी है, वर्डप्रेस.org जावास्क्रिप्ट फ़ाइलों से सीधे स्ट्रिंग पार्स करने में सक्षम नहीं है।
npx pot-to-php languages/myplugin.pot languages/myplugin-translations.php text-domain
window
संपत्ति में अनुवाद करता है जैसाwp_add_inline_script
कि PHP द्वारा लोड किए गए JSON के माध्यम से होता है और फिर इसे React की ओर से पुनः प्राप्त करता है और इसे Jed को भेजता है? ... और जेड आगे जादू करता है?