---
layout: page
title: परिचय
permalink: about/
lang: hi
---
<p class="message">
  <b>Polyglot</b> <a href="http://jekyllrb.com">Jekyll</a> ब्लॉगों के लिए एक ओपन सोर्स अंतर्राष्ट्रीयकरण प्लगइन है। Polyglot किसी भी प्रोजेक्ट के साथ सेटअप और उपयोग करने में आसान है, और यह उन भाषाओं तक स्केल करता है जिनका आप समर्थन करना चाहते हैं। गायब सामग्री के लिए फॉलबैक समर्थन, स्वचालित url सापेक्षीकरण, और <a href="{{site.baseurl}}/seo/">शक्तिशाली SEO रेसिपी</a> के साथ, Polyglot किसी भी बहु-भाषा ब्लॉग को अनावश्यक काम के बिना सामग्री पर ध्यान केंद्रित करने की अनुमति देता है।
</p>

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

### स्थापना

{% highlight bash %}
gem install jekyll-polyglot
{% endhighlight %}

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

`_config.yml` में, निम्नलिखित गुण प्रबंधित करते हैं कि आपकी वेबसाइट द्वारा कौन सी भाषाएँ समर्थित हैं। आप इन मानों में जोड़कर एक नई भाषा के लिए समर्थन प्रदान कर सकते हैं (नीचे देखें)। भाषाओं की पहचान उनके आधिकारिक [लोकेल कोड](https://developer.chrome.com/webstore/i18n) द्वारा की जाती है।
```yml
languages: ["en", "es", "fr", "de"]
default_lang: "en"
exclude_from_localization: ["images", "fonts", "sitemap"]
url: https://polyglot.untra.io
```
* `languages:` लोकेल कोड का एक सरणी जो वेबसाइट द्वारा समर्थित भाषाओं की पहचान करती है।
* `default_lang:` वेबसाइट के लिए डिफ़ॉल्ट भाषा।
* `exclude_from_localization:` फ़ोल्डर और निर्देशिकाएँ जो निर्मित वेबसाइट का हिस्सा हैं, लेकिन उन्हें स्थानीयकृत करने की आवश्यकता नहीं है। यह मुख्य रूप से बिल्ड समय को कम करने के लिए है, और क्योंकि छवियों और फ़ॉन्ट जैसी एसेट फ़ाइलें वेबसाइट के बड़े हिस्से हैं, यह सुनिश्चित करता है कि वे आउटपुट में अनावश्यक रूप से "अनुवादित" या डुप्लिकेट न हों।
* `url` आपकी प्रोडक्शन स्टैटिक वेबसाइट का url।

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

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

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

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

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

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

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

* **site.languages**

{% highlight html %}
{% raw %}
{% for lang in site.languages %}
  {{lang}}
{% endfor %}
{% endraw %}
{% endhighlight %}

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

* **site.default_lang**
{% highlight html %}
{% raw %}
  {{site.default_lang}}
{% endraw %}
{% endhighlight %}

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

* **site.active_lang**
{% highlight html %}
{% raw %}
{% if site.active_lang == "es" %}
  <h1>Hola! Como estas?</h1>
{% endif %}
{% endraw %}
{% endhighlight %}

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

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

* **page.rendered_lang**
{% highlight html %}
{% raw %}
{% 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 %}
{% endraw %}
{% endhighlight %}

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

### Github Pages समर्थन
डिफ़ॉल्ट रूप से github [jekyll ब्लॉगों को प्लगइन्स का उपयोग करने से रोकता है](https://help.github.com/articles/using-jekyll-with-pages/#configuration-overrides)। यह जानबूझकर github सर्वर पर दुर्भावनापूर्ण कोड को निष्पादित होने से रोकने के लिए किया जाता है। यद्यपि यह Polyglot (और अन्य jekyll प्लगइन्स) का उपयोग करना कठिन बनाता है, यह अभी भी संभव है।

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

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

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

यह प्रक्रिया एक सरल स्क्रिप्ट के साथ बहुत आसान हो जाती है जो आपकी वेबसाइट का निर्माण करेगा और `_site/` फ़ोल्डर को आपके gh-pages में कमिट करेगा। बहुत से लोगों के पास एक है। [यहाँ एक है](http://www.jokecamp.com/blog/Simple-jekyll-deployment-with-a-shell-script-and-github/)। [यहाँ एक और है](https://gist.github.com/cobyism/4730490)। यहाँ [मेरी पब्लिश स्क्रिप्ट](https://github.com/untra/polyglot/blob/main/publi.sh) है:

```bash
#! /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
```
