سلگ ویب ایڈریس کا پڑھنے کے قابل آخری حصہ ہوتا ہے — جیسے example.com/blog/my-first-post میں my-first-post ہے۔ یہ وہ حصہ ہے جسے کوئی شخص کلک کرنے سے پہلے پڑھ سکتا ہے، اور جسے سرچ انجن اس بات کی مختصر وضاحت کے طور پر پڑھتے ہیں کہ صفحہ میں کیا ہے۔ اسی لیے اسے کسی ڈیٹابیس آئی ڈی یا تاریخ سے زیادہ توجہ ملنی چاہیے۔ یہ مفت جنریٹر کسی بھی متن کو سلگ میں تبدیل کر دیتا ہے: ایک عنوان کو "تبدیل کرنے کے لیے متن" میں پیسٹ کریں، "بنائیں" کو دبائیں، اور نتیجہ اس کے ساتھ کاپی کے بٹن کے ساتھ نمودار ہو جائے گا۔ یہاں زیادہ تر سائٹس کی مطلوبہ سیٹنگز ڈیفالٹ طور پر موجود ہیں — چھوٹے حروف، الفاظ کے درمیان ڈیشز، عام فالتو الفاظ کو ہٹانا، غیر لاطینی حروف کی نقل حرفی — لہذا آپ کو صرف ایک کلک کی دوری پر ایک قابل استعمال سلگ مل جاتا ہے، اور اس میں سے ہر ایک فیصلے کو آپ ایک سوئچ کے ذریعے تبدیل کر سکتے ہیں۔
سب کچھ آپ کی اپنی ڈیوائس پر ہوتا ہے۔ یہ صفحہ ایک چھوٹا سا جاوا اسکرپٹ (JavaScript) انجن لوڈ کرتا ہے اور اسے مقامی طور پر چلاتا ہے: آپ کے عنوانات کبھی بھی اپلوڈ نہیں کیے جاتے، نہ ہی انہیں لاگ کیا جاتا ہے، اور یہ ٹول انٹرنیٹ کنکشن بند ہونے کے باوجود بھی کام کرتا رہتا ہے۔ یہی وجہ ہے کہ جب آپ کوئی سیٹنگ تبدیل کرتے ہیں تو نتیجہ فوراً اپڈیٹ ہو جاتا ہے۔ کام کی ترتیب بتانا بھی ضروری ہے کیونکہ اسی کی وجہ سے آؤٹ پٹ قابلِ پیشین گوئی بنتا ہے: ایک پیسٹ کیے گئے لنک کو پہلے اس کے آخری حصے تک محدود کیا جاتا ہے، پھر متن کو چھوٹے حروف میں تبدیل کیا جاتا ہے، اس کے بعد اسٹاپ الفاظ کو چھوڑ دیا جاتا ہے، پھر غیر لاطینی حروف کی نقل حرفی کی جاتی ہے، پھر اگر آپ نے کہا ہو تو نمبرز اور خصوصی حروف ہٹائے جاتے ہیں، پھر جو بچتا ہے اسے آپ کے منتخب کردہ الگ کرنے والے کے ساتھ جوڑا جاتا ہے، اس کے بعد نتیجے کو زیادہ سے زیادہ طوالت تک کاٹ دیا جاتا ہے، اور آخر میں دہرائے جانے والوں کے ساتھ ایک عددی لاحقہ (suffix) لگایا جاتا ہے۔ "تبدیل کرنے کے لیے متن" ایک ہی بار میں 500,000 حروف تک قبول کرتا ہے، جو چند ہزار آرٹیکل کے عنوانات کے برابر ہے۔
ایک لائن ان پٹ کے طور پر دیں، اور ایک سلگ حاصل کریں۔ اگر آپ عنوانات کی پوری فہرست پیسٹ کرتے ہیں تو ہر لائن ایک نمبر والے سلگ میں تبدیل ہو جائے گی، جس کے اوپر اس کا اصل عنوان گرے رنگ میں دکھایا جائے گا، تاکہ پچاس کے بیچ میں بھی آپ باآسانی پہچان سکیں کہ کون سا سلگ کس عنوان سے تعلق رکھتا ہے۔ جو فہرست پہلے ہی کسی فائل میں موجود ہے اسے کلپ بورڈ کے ذریعے لانے کی ضرورت نہیں ہے: ان پٹ باکس کے ساتھ موجود "فائل سے لوڈ کریں۔" کا بٹن ایک سادہ ٹیکسٹ فائل کو کھولتا ہے — جیسے .txt، .csv، .md، .json وغیرہ — اور اس کے مواد کو فیلڈ میں ڈال دیتا ہے۔ آپ کا براؤزر اس فائل کو بالکل اسی طرح پڑھتا ہے جیسے آپ نے اسے ٹائپ کیا ہو، اور اسے کہیں بھی اپلوڈ نہیں کیا جاتا۔ "ان پٹ کو اس کے ذریعے تقسیم کریں" یہ فیصلہ کرتا ہے کہ فہرست کو کیسے الگ کیا جائے۔ "خودکار پتہ لگانا" اس کا ڈیفالٹ ہے: ایک نئی سطر ہمیشہ آئٹمز کو الگ کرتی ہے، جبکہ کاما تبھی الگ کرتا ہے جب ان پٹ ایک ہی لائن میں ہو اور اس کے تمام حصے الگ الگ قدروں کی طرح لگیں — لہذا "قیمت 3,500 روپے" اور "باب 5: نتائج، حتمی آراء" ٹکڑوں میں بکھرنے کے بجائے پوری طرح محفوظ رہتے ہیں۔ جب آپ کو اپنے ڈیٹا کی شکل پہلے سے معلوم ہو تو "نئی سطر"، "کاما" اور "اسپیس" کے اختیارات انتخاب کو آسان بناتے ہیں۔ "آؤٹ پٹ فارمیٹ" یہ طے کرتا ہے کہ جب آپ اسے حاصل کرتے ہیں تو بیچ کس طرح واپس آتا ہے — ہر لائن کے لیے ایک، "اسپیس سے الگ"، یا "کاما سے الگ" — اور "سب کاپی کریں" اور "فائل میں محفوظ کریں" دونوں اسی کی پیروی کرتے ہیں۔ "تاریخچہ" آپ کے پچھلے 10 بیچز کو آپ کے اپنے براؤزر میں محفوظ رکھتا ہے، تاکہ جو فہرست آپ نے ایک گھنٹہ پہلے تبدیل کی تھی وہ اب بھی وہیں موجود ہو۔
غیر لاطینی متن کو زیادہ تر سلگ جنریٹرز اندازاً صحیح تبدیل کرتے ہیں لیکن بہت کم اسے بالکل درست کر پاتے ہیں۔ ایک URL سادہ ASCII میں سب سے زیادہ محفوظ ہوتا ہے، اس لیے سیریلک، یونانی، عربی، چینی اور یورپی لہجے والے حروف کو تبدیل کرنا ضروری ہے، اور اصل سوال صرف یہ ہے کہ کس کے اصول کے تحت۔ یہ صفحہ دو سطحوں میں اس کا جواب دیتا ہے۔ عام سطح ہر رسم الخط کا احاطہ کرتی ہے: ایک نقل حرفی کی لائبریری جس میں آپ کے ٹائپ کردہ تقریباً ہر حرف کے لیے ایک مناسب ASCII جواب موجود ہوتا ہے، اور "یہاں سے نقل حرفی کریں" مینو میں "خودکار (کوئی بھی زبان)" کا یہی مطلب ہے۔ مخصوص سطح ان زبانوں کے لیے ہاتھ سے بنے ٹیبلز کا ایک مجموعہ ہے جہاں عام جواب وہ نہیں ہوتا جو اس ملک میں درحقیقت استعمال کیا جاتا ہے؛ آج جن زبانوں کا ٹیبل موجود ہے ان کے نام مینو میں درج ہیں، اور جیسے جیسے یہ ٹول مزید زبانوں تک پہنچے گا، یہ مجموعہ بھی بڑھے گا۔ کسی ایک کو منتخب کرنے سے اس کا ٹیبل "نقل حرفی کے اصول" کے تحت ایک قابلِ ترمیم گرڈ میں لوڈ ہو جاتا ہے، جہاں ہر حرف ایک ٹیکسٹ فیلڈ ہوتا ہے جسے آپ تبدیل کر سکتے ہیں، اور "اصولوں کو ڈیفالٹ پر ری سیٹ کریں" اسے واپس پرانی حالت میں لے آتا ہے۔ یوکرینی ٹیبل 2010 کی کیبنٹ آف منسٹرز کی قرارداد نمبر 55 کی پیروی کرتا ہے، جو یوکرینی پاسپورٹس میں استعمال ہونے والا معیار ہے۔ اس میں وہ باریکیاں بھی شامل ہیں جنہیں چھوڑ دینا آسان ہوتا ہے: зг کو zh کے بجائے zgh میں تبدیل کیا جاتا ہے تاکہ وہ ж سے الگ رہے؛ є، ї، й، ю اور я لفظ کے شروع میں ایک شکل اور اندر دوسری شکل لیتے ہیں؛ اور اپوسٹرافی اور نرم علامت کو کوئی نیا لفظ شروع کیے بغیر ہٹا دیا جاتا ہے، اس لیے Знам'янка کو znamyanka کے بجائے znamianka لکھا جاتا ہے۔ جرمن زبان میں پتے عموماً ä → ae, ö → oe, ü → ue کا استعمال کرتے ہیں جو ڈیفالٹ طور پر آتا ہے، اور اگر آپ چاہیں تو سادہ ä → a ویرینٹ بھی دستیاب ہے۔
"اسٹاپ الفاظ ہٹائیں" ڈیفالٹ طور پر آن ہے۔ یہ وہ چھوٹے ملانے والے الفاظ — جیسے a, the, and, of, for (انگریزی میں) — چھوڑ دیتا ہے جو سلگ کو لمبا تو کر دیتے ہیں لیکن اس میں کوئی معنی شامل نہیں کرتے۔ "اسٹاپ الفاظ" کے تحت فہرست مکمل طور پر قابلِ ترمیم ہے اور یہ پہلے سے بھری ہوئی آتی ہے: ایک انگریزی فہرست کے ساتھ آپ جس صفحے پر ہیں اس کی زبان کی فہرست بھی شامل ہوتی ہے، لہذا یوکرینی صفحہ в, на, та اور і کو جانتا ہے، اور جرمن صفحہ der, die اور das کو۔ آپ اپنے الفاظ شامل کر سکتے ہیں، جنہیں آپ رکھنا چاہتے ہیں انہیں حذف کر سکتے ہیں، یا اس فیچر کو مکمل طور پر بند کر سکتے ہیں، جس کے بعد وہ فیلڈ گرے ہو جائے گی۔ اس حوالے سے دو سچی باتیں جان لیں۔ اسٹاپ الفاظ کو ہٹانا رینکنگ بڑھانے کا ذریعہ نہیں ہے بلکہ یہ صرف ایک چھوٹی سی صفائی ہے — آپ کو ایک چھوٹا، صاف ستھرا پتہ ملتا ہے، نہ کہ بہتر پوزیشن۔ اور اگر کسی عنوان کے تمام الفاظ ہی اس فہرست میں شامل ہوں، تو اس کا نتیجہ مکمل طور پر خالی سلگ ہوگا، اور یہ ٹول آپ کو ایک خالی باکس دینے کے بجائے یہ بات صاف بتا دے گا۔
باقی سوئچز شکل کا فیصلہ کرتے ہیں۔ "سلگ میں الگ کرنے والا" یہ انتخاب کرتا ہے کہ الفاظ کے درمیان کیا ہونا چاہیے، اور ڈیش کا ڈیفالٹ ہونا محض پسند کی بات نہیں ہے: گوگل ڈیش کو الفاظ کو الگ کرنے والا اور انڈرسکور کو انہیں جوڑنے والا سمجھتا ہے، اس لیے my_first_post سرچ انجن تک ایک ہی لمبے لفظ کے طور پر پہنچتا ہے جبکہ my-first-post تین الفاظ کے طور پر پہنچتا ہے۔ "انڈرسکور (_)" صرف ان سسٹمز کے لیے دیا گیا ہے جو اس پر اصرار کرتے ہیں۔ "چھوٹے حروف" آن ہے کیونکہ زیادہ تر سرورز پتوں کو کیس سینسیٹیو (case-sensitive) مانتے ہیں، اور بڑے-چھوٹے حروف ملا کر استعمال کرنے سے ایک ہی صفحے کے لیے باآسانی دو URL بن سکتے ہیں۔ "خصوصی حروف ہٹائیں" ہر اس چیز کو صاف کر دیتا ہے جو کوئی حرف، نمبر، اسپیس، ڈیش یا انڈرسکور نہیں ہے، جو رموز اوقاف، کوٹیشن مارکس اور ایموجی کو پتے سے باہر رکھتا ہے — ایموجی کو نقل حرفی سے پہلے خاص طور پر اس لیے ہٹایا جاتا ہے تاکہ راکٹ کا ایموجی لفظ rocket نہ بن جائے۔ "نمبر ہٹائیں" بند ہے، کیونکہ عنوان میں موجود نمبر عام طور پر اسی کا حصہ ہوتا ہے۔ "زیادہ سے زیادہ طوالت" 10 سے 200 تک ہوتی ہے اور اس کا ڈیفالٹ 80 ہے؛ جب سلگ اس سے لمبا ہوتا ہے تو انجن کسی لفظ کو بیچ سے کاٹنے کے بجائے آخری مکمل لفظ پر جا کر اسے کاٹتا ہے جو اس حد میں آتا ہو۔ ہر نتیجے کے ساتھ موجود عدد حروف میں اس کی طوالت بتاتا ہے، اور 60 کو پار کرنے پر یہ لال ہو جاتا ہے — یہ کوئی سخت حد تو نہیں ہے، لیکن یہ وہ مقام ہے جہاں سلگ سرچ رزلٹس میں کٹنا شروع ہو جاتا ہے اور اسے میسج میں پیسٹ کرنا مشکل ہونے لگتا ہے۔
دو اور سوئچز موجود ہیں جو بلک تبدیلی کو واپس ایک کلک کا کام بنا دیتے ہیں۔ "سلگز کو منفرد بنائیں" اس صورتحال کو سنبھالتا ہے جہاں دو مختلف عنوانات ایک ہی سلگ بن جاتے ہیں — "بہترین 10 ٹپس" اور "بہترین-10 ٹپس" دونوں bhtryn-10-tps بن جاتے ہیں — یہ دوسرے کو -2 اور تیسرے کو -3 دے دیتا ہے، اور اگر اس اضافے کی وجہ سے طوالت حد سے بڑھ رہی ہو تو یہ پہلے بنیادی سلگ کو چھوٹا کرتا ہے۔ ایک ہی پتے پر دو صفحات کا مسئلہ آپ کے CMS کے مقابلے میں اس فہرست میں پکڑنا بہت سستا اور آسان ہے۔ "پیسٹ کیے گئے URL سے سلگ لیں" دوسری سمت میں کام کرتا ہے: ایک مکمل لنک پیسٹ کریں اور ٹول اس راستے کا آخری حصہ نکال لے گا، کویری اسٹرنگ (query string) اور کسی بھی .html یا .php اختتام کو ہٹا دے گا، اور پرسنٹ اینکوڈنگ (percent-encoding) کو ڈی کوڈ کر دے گا، اس لیے %D0%9B%D1%8C%D0%B2%D1%96%D0%B2 پر ختم ہونے والا ویکیپیڈیا کا لنک ہیکس نمبروں کی قطار کے بجائے lviv کے طور پر واپس آئے گا۔ یہ صرف اس وقت فعال ہوتا ہے جب پوری لائن ایک لنک ہو، لہذا کسی جملے کے اندر موجود ایڈریس ایک عام متن کی طرح ہی کام کرے گا۔
یہ سلگ جنریٹر کیوں منتخب کریں؟
- صرف براؤزر میں: آپ کے عنوانات کبھی اپلوڈ نہیں ہوتے، اور صفحہ آف لائن بھی کام کرتا ہے
- پیسٹ کیے گئے متن یا ٹیکسٹ فائل سے بلک تبدیلی، ہر سلگ کے اوپر اصل عنوان کے ساتھ
- ہر زبان کے لیے اس کا اپنا نقل حرفی کا معیار، سب کے لیے ایک عام ٹیبل نہیں
- یوکرینی 2010 کی قرارداد نمبر 55 کے مطابق — وہ ہجے جو پاسپورٹ میں استعمال ہوتی ہے
- ہر اصول کو حرف بہ حرف تبدیل کرنے کی سہولت، ایک کلک کے ساتھ ری سیٹ
- بیچ میں سلگز کو آپس میں ٹکرانے سے بچانے کے لیے خودکار -2 اور -3 کا اضافہ
- لنک پیسٹ کریں اور اس میں سے سلگ حاصل کریں، پرسنٹ اینکوڈنگ کو ڈی کوڈ کر کے
- آپ کی زبان کے لیے پہلے سے بھری ہوئی قابلِ ترمیم اسٹاپ الفاظ کی فہرست
- آخری مکمل لفظ پر محفوظ کٹائی، ہر نتیجے کے ساتھ حروف کی گنتی کی سہولت
- مفت اور لامحدود: کوئی سائن اپ نہیں، کوئی حد نہیں، ہمارے سرورز پر کچھ بھی محفوظ نہیں کیا جاتا
جہاں کہیں بھی صفحے کو پڑھنے کے قابل پتے کی ضرورت ہوتی ہے وہاں سلگز درکار ہوتے ہیں۔ کوئی بلاگ یا نیوز سائٹ ہر ہیڈ لائن کو ایک سلگ میں تبدیل کرتی ہے، اور بنیادی طور پر یہ ٹول اسی کام کے لیے بنایا گیا تھا: اس ہفتے کی ہیڈ لائنز پیسٹ کریں، اور ہفتے کے URLs حاصل کریں۔ ایک آن لائن شاپ بھی پروڈکٹس اور کیٹیگریز کے ناموں کے لیے ایسا ہی کرتی ہے، عام طور پر ڈیٹا امپورٹ کرنے کے بعد بلک میں، اور زیادہ تر اس زبان میں جس کے حروف پتے میں براہ راست استعمال نہیں ہو سکتے۔ ڈاکومنٹیشن اور نالج بیس بھی اسی طرح اینکرز اور فائل کے نام بناتے ہیں۔ ویب ایڈریسز سے ہٹ کر، یہی صاف اسٹرنگ (string) آپ کو کسی ایسے فائل کے نام کے لیے بھی چاہیے ہوتی ہے جو دوسرے آپریٹنگ سسٹم پر کام کرنا نہ چھوڑے، یا کسی ڈیٹا بیس کی، جسے لاگ میں انسان باآسانی پڑھ سکے، کسی برانچ کا نام، میڈیا لائبریری میں تصویر کا نام، یا اسٹیٹک سائٹ جنریٹر میں کسی سیکشن کا شناخت کنندہ۔ کوئی بھی ایسی جگہ جہاں انسان کے پڑھنے کے قابل نام کو مشین کے پڑھنے والے فیلڈ میں جانا ہو، وہاں سلگ کی ضرورت پڑتی ہے۔
اس پر مکمل بھروسہ کرنے سے پہلے چند حدود کو جان لینا ضروری ہے۔ یہ ایک جنریٹر ہے، ویلیڈیٹر نہیں: یہ اس بات کی جانچ نہیں کرے گا کہ کوئی سلگ آپ کی سائٹ پر پہلے سے استعمال ہو چکا ہے یا نہیں، کیونکہ اسے یہ اندازہ نہیں ہوتا کہ آپ کی سائٹ میں کیا مواد موجود ہے — یہ منفرد ہونے کی جو ضمانت دیتا ہے وہ صرف آپ کے سامنے موجود بیچ تک محدود ہے۔ ری ڈائریکٹس (Redirects) کی ذمہ داری بھی آپ کی ہے؛ پبلش شدہ صفحے کے سلگ کو تبدیل کرنے سے اس کا پرانا پتہ ٹوٹ جاتا ہے، اور یہ فیصلہ اس ٹول کے بجائے آپ کے CMS کو کرنا چاہیے۔ "فائل میں محفوظ کریں" عام سادہ متن (plain text) لکھتا ہے، CSV یا JSON نہیں۔ کاما کے حوالے سے آٹومیٹک اسپلٹ (automatic split) کا فیصلہ تقریباً ہر کیس میں درست ہوتا ہے لیکن تمام صورتوں میں نہیں، یہی وجہ ہے کہ "ان پٹ کو اس کے ذریعے تقسیم کریں" آپ کو اسے تبدیل کرنے کا اختیار دیتا ہے۔ اور نقل حرفی ایک روایت ہے، کوئی ترجمہ نہیں — München تبدیل ہو کر muenchen بنتا ہے، Munich نہیں — اس لیے اگر ہدف زبان میں کسی صفحے کا کوئی معروف نام موجود ہو، تو کسی بھی خودکار تبدیلی کی نسبت وہی نام ایک بہتر سلگ ثابت ہوتا ہے۔