परिचय

Polyglot Jekyll ब्लॉगों के लिए एक ओपन सोर्स अंतर्राष्ट्रीयकरण प्लगइन है। Polyglot किसी भी प्रोजेक्ट के साथ सेटअप और उपयोग करने में आसान है, और यह उन भाषाओं तक स्केल करता है जिनका आप समर्थन करना चाहते हैं। गायब सामग्री के लिए फॉलबैक समर्थन, स्वचालित url सापेक्षीकरण, और शक्तिशाली SEO रेसिपी के साथ, Polyglot किसी भी बहु-भाषा ब्लॉग को अनावश्यक काम के बिना सामग्री पर ध्यान केंद्रित करने की अनुमति देता है।

jekyll-polyglot अभी तक github-actions में देशी रूप से समर्थित नहीं है

स्थापना

gem install jekyll-polyglot

समर्थित भाषाओं का प्रबंधन

_config.yml में, निम्नलिखित गुण प्रबंधित करते हैं कि आपकी वेबसाइट द्वारा कौन सी भाषाएँ समर्थित हैं। आप इन मानों में जोड़कर एक नई भाषा के लिए समर्थन प्रदान कर सकते हैं (नीचे देखें)। भाषाओं की पहचान उनके आधिकारिक लोकेल कोड द्वारा की जाती है।

languages: ["en", "es", "fr", "de"]
default_lang: "en"
exclude_from_localization: ["images", "fonts", "sitemap"]
url: https://polyglot.untra.io

एक नई भाषा जोड़ना

मानते हुए कि आपके पास पहले से ही एक कार्यात्मक एकल-भाषा वेबसाइट है, एक नई भाषा जोड़ना तुच्छ नहीं होगा। वास्तव में एक बहुभाषी वेबसाइट बनाने के लिए, आपको अपनी सारी सामग्री नई भाषा में फिर से बनाने की उम्मीद करनी चाहिए। यह एक बड़ा उपक्रम लग सकता है, लेकिन भागों में अनुवाद पर विचार करें। सामग्री राजा है; यह अधिक महत्वपूर्ण है कि नए पृष्ठ और पोस्ट अनुवाद में अद्यतन शब्द प्राप्त करें। एक बहु-भाषा वेबसाइट बनाना केवल तभी कठिन है जब आपको आवश्यकता हो कि यह शुरू से ही पूरी तरह से अनुवादित हो।

सबसे पहले, आपको (और आपकी टीम, और आपके प्रबंधकों को भी यदि आपके पास कुछ हैं) चर्चा करनी चाहिए और चुनना चाहिए कि आपको नई वेबसाइट में किस सामग्री का अनुवाद करने की आवश्यकता है। आपको अनुवाद के लिए अपनी पसंदीदा बुनियादी सामग्री चुननी होगी। एनालिटिक्स, लोकप्रिय पृष्ठों और ब्लॉगपोस्ट, और आपकी वेबसाइट पर वर्तमान और भविष्य के उपयोगकर्ताओं के प्रवाह पर विचार करें। संदेह में, विरासत ब्लॉगपोस्ट पर पृष्ठों को प्राथमिकता दें। यदि इसका मतलब है कि एक नई भाषा को जल्दी लॉन्च करना, तो विरासत पोस्ट अनुवाद के लायक प्रयास से अधिक हो सकती हैं।

दूसरे, आपको अपनी साइट के माध्यम से समृद्ध सामग्री की 100% कवरेज प्रदान करनी चाहिए (या जोरदार ढंग से चाहिए)। ये अधिक जटिल तरीकों से एम्बेडेड छोटे स्ट्रिंग हैं। समृद्ध सामग्री पर पुनरावृत्ति करने के कई तरीके हैं। याद रखें, आपको अपनी समृद्ध सामग्री में सभी भाषा छोटे स्ट्रिंग का समर्थन करना चाहिए।

बहुभाषी सामग्री

वेबसाइट सामग्री दो स्वादों में आती है: बुनियादी और समृद्ध

बुनियादी सामग्री ब्लॉगपोस्ट, पृष्ठों और गैर-इंटरैक्टिव सामग्री का सपाट पाठ है। पृष्ठों और पोस्ट के बारे में सोचें। बुनियादी सामग्री आपकी वेबसाइटों के क्लिक के लिए ईंधन है। Polyglot बुनियादी सामग्री को फॉलबैक समर्थन देता है।

समृद्ध सामग्री इंटरैक्टिव, चमकदार है, और छोटे स्ट्रिंग से बनी है। नवबार और ड्रॉपडाउन के बारे में सोचें। समृद्ध सामग्री अधिक तकनीकी है, और आपके आगंतुकों को साइट पर रखती है। गायब समृद्ध सामग्री के लिए कोई फॉलबैक समर्थन नहीं है।

Liquid टूल्स

jekyll-polyglot के साथ उपयोग के लिए निम्नलिखित liquid टूल्स उपलब्ध हैं:

{% for lang in site.languages %}
  {{lang}}
{% endfor %}

site.languages _config.yml में languages सरणी की ओर सीधे इंगित करता है। इसे liquid के माध्यम से एक्सेस किया जा सकता है।

  {{site.default_lang}}

site.default_lang _config.yml में default_lang स्ट्रिंग की ओर सीधे इंगित करता है। इसे liquid के माध्यम से एक्सेस किया जा सकता है।

{% if site.active_lang == "es" %}
  <h1>Hola! Como estas?</h1>
{% endif %}

site.active_lang वह लोकेल कोड है जिसके लिए पृष्ठ बनाया जा रहा है। यह जर्मन संस्करण के पृष्ठ के लिए "de" है, स्पेनिश संस्करण के लिए "es", इत्यादि। इसे liquid के माध्यम से एक्सेस किया जा सकता है।

इन उपकरणों का उपयोग करके, आप निर्दिष्ट कर सकते हैं कि सही समृद्ध सामग्री कैसे संलग्न करें।

{% if page.rendered_lang == site.active_lang %}
  <p>Welcome to our {{ site.active_lang }} webpage!</p>
{% else %}
  <p>webpage available in {{ page.rendered_lang }} only.</p>
{% endif %}

page.rendered_lang चर जो किसी पृष्ठ की सामग्री की वास्तविक भाषा को इंगित करता है, टेम्पलेट्स को यह पता लगाने की अनुमति देता है कि कोई पृष्ठ फॉलबैक सामग्री के रूप में परोसा जा रहा है।

Github Pages समर्थन

डिफ़ॉल्ट रूप से github jekyll ब्लॉगों को प्लगइन्स का उपयोग करने से रोकता है। यह जानबूझकर github सर्वर पर दुर्भावनापूर्ण कोड को निष्पादित होने से रोकने के लिए किया जाता है। यद्यपि यह Polyglot (और अन्य jekyll प्लगइन्स) का उपयोग करना कठिन बनाता है, यह अभी भी संभव है।

gh-pages के लिए _site/ का निर्माण

github पर अपने Jekyll ब्लॉगिंग इंजन को होस्ट करने के बजाय, आप एक अलग शाखा पर अपनी jekyll वेबसाइट विकसित कर सकते हैं, और फिर निर्मित _site/ सामग्री को अपनी gh-pages शाखा पर पुश कर सकते हैं। यह आपको github के साथ अपनी वेबसाइट विकास का प्रबंधन और सोर्स-कंट्रोल करने की अनुमति देता है आपकी वेबसाइट बनाने के लिए github पर निर्भर हुए बिना!

आप यह कर सकते हैं अपनी Jekyll सामग्री को एक अलग शाखा पर बनाए रखकर, और केवल _site/ फ़ोल्डर को अपनी gh-pages शाखा में कमिट करके। चूंकि ये केवल फ़ोल्डर्स में स्टैटिक html पृष्ठ हैं, github उन्हें किसी भी अन्य gh-pages सामग्री की तरह होस्ट करेगा।

इसे स्वचालित करें!

यह प्रक्रिया एक सरल स्क्रिप्ट के साथ बहुत आसान हो जाती है जो आपकी वेबसाइट का निर्माण करेगा और _site/ फ़ोल्डर को आपके gh-pages में कमिट करेगा। बहुत से लोगों के पास एक है। यहाँ एक हैयहाँ एक और है। यहाँ मेरी पब्लिश स्क्रिप्ट है:

#! /bin/sh
# change the branch names appropriately
rm -rf site/_site/
cd site && bundle exec jekyll build && cd ..
git add site/_site/ && git commit -m "$(date)"
git subtree push --prefix site/_site origin gh-pages