Sindh IT Portal — Facilitation DeskSpecification documents
Englishاردوسنڌي
← All documents

بین الاقوامیت و مقامیاندازی

سندھ آئی ٹی پورٹل — سہولت ڈیسک (SITP) کو کس طرح تین زبانوں میں (انگریزی مرجع → اردو → سندھی)، دائیں سے بائیں (RTL) اصل نسل کے طور پر، دوہرے کیلنڈر سے آگاہ، اور ہر سطح — عوامی سائٹ، دستاویزات، اطلاعات، سرکاری خطوط، اور AI پیداوار — پر لغت کے مطابق مستقل انداز میں تیار کیا گیا ہے۔

خانہ قدر
دستاویز ID 09
صورت مسودہ
مالک S&ITD / MAAHIR
زبانیں EN (مرجع) · UR · SD
لاگو ماڈیولز A (PUB) بنیادی · مشترکہ: B (TKT), E (AI), G (NOT), J (KB), L (DOC), M (MTG), N (SUG), O (TRN), P (OFC)
متعلقہ دستاویزات /specs/ur/15-tech-architecture/ §15, /specs/ur/16-branding-design-system/, /specs/ur/10-ux-sitemap-flows/, /specs/ur/07-ai-ocr-spec/, /specs/ur/13-test-strategy/, _glossary.md, _context.md §2 & §7

1. دائرۂ کار اور اس دستاویز کو پڑھنے کا طریقہ

یہ دستاویز SITP میں ہر کثیراللسانی شے کے لیے مستند وصیت ہے۔ اس میں درج ذیل شامل ہیں:

i18n کا اعلیٰ سطحی پلیٹ فارم معاملہ /specs/ur/15-tech-architecture/ §15 میں موجود ہے؛ یہ دستاویز اس حصے کو ایک مکمل، تیارِ تعمیر وصیت میں پھیلاتی ہے۔ _glossary.md میں تین لسانی اصطلاحی لغت منظور شدہ تراجم کا واحد ماخذ ہے — یہ دستاویز اس بات کی تدبیر کرتی ہے کہ ان تراجم کو کس طرح لاگو کیا جائے، نہ کہ یہ کہ وہ کیا ہیں۔


2. زبان کی حکمتِ عملی اور لوکیل ماڈل

2.1 تین لوکیلز

کوڈ زبان رسمِ خط سمت کردار مقامی نام
en انگریزی لاطینی LTR مرجع / سچائی کا سرچشمہ English
ur اردو عربی (Nastaliq) RTL متوازی ترجمہ اردو
sd سندھی عربی (Naskh، توسیع یافتہ) RTL متوازی ترجمہ سنڌي

انگریزی تخلیق کا لوکیل ہے۔ ہر UI سٹرنگ، KB مضامین، سرکولر، SOP، اطلاعات کا ٹیمپلیٹ، سرکاری خط کا ٹیمپلیٹ، اور ای میل/SMS/WhatsApp ٹیمپلیٹ پہلے انگریزی میں تحریر کیا جاتا ہے اور پھر اردو اور سندھی میں بطورِ وفادار متوازی ترجمہ تیار کیا جاتا ہے۔ EN مرجع کے بغیر UR یا SD میں کوئی مواد جاری نہیں ہوتا۔ واحد استثناء شہری کا جمع کردہ آزاد متن ہے، جسے جس زبان میں جمع کنندہ نے لکھا ہو اسی میں لفظاً محفوظ کیا جاتا ہے، اور AI Translation صلاحیت کے ذریعے بہ تقاضا ترجمہ کیا جاتا ہے (§6 دیکھیں)۔

یہ دستاویزات کے سیٹ کے ساتھ بھی مطابقت رکھتا ہے: ہر دستاویز فولڈر میں {en,ur,sd}.md شامل ہے، EN مرجع (_conventions.md §2 دیکھیں)۔ اسی نظم و ضبط کا اطلاق مصنوعات کے مواد پر بھی ہوتا ہے۔

2.2 لوکیل شناخت کنندے

اندرونی طور پر، لوکیل کو ISO 639-1 کوڈ (en, ur, sd) کے ذریعے علاقائی ذیلی ٹیگز کے بغیر پیش کیا جاتا ہے، کیونکہ ہر ایک کے لیے منتخب شدہ قسم پاکستان کا صوبائی معیار ہے۔ جہاں کسی تیسرے فریق کی لائبریری علاقائی ذیلی ٹیگ کی متقاضی ہو (مثلاً en-PK, ur-PK, sd-PK)، تو ذیلی ٹیگ PK صرف اسی تعامل کے لیے شامل کیا جاتا ہے؛ مستند محفوظ قدر برقرار برہنہ دو حرفی کوڈ ہی رہتی ہے۔

2.3 رسمِ خط اور سمت کا تعلق

سمت (ltr یا rtl) لوکیل کا فنکشن ہے، کبھی علیحدہ صارف کی ترتیب نہیں۔ ur یا sd کو منتخب کرنا پورے لے آؤٹ کو RTL پر پلٹ دیتا ہے؛ en کو منتخب کرنا اسے دوبارہ LTR پر لے آتا ہے۔ کوئی "RTL میں انگریزی" یا "LTR میں اردو" موڈ نہیں ہے۔ یہ CSS، لے آؤٹ، اور جزو کے منطق کو سادہ اور قابلِ پیشگوئی رکھتا ہے، اور صارف کی توقعات سے مطابقت رکھتا ہے۔


3. لوکیل کا ذخیرہ و تعین

3.1 لوکیل کہاں محفوظ ہوتا ہے

لوکیل تین جگہوں پر، تعین کی ترتیب کے مطابق محفوظ ہوتا ہے:

| # | ذخیرہ | دائرہ | مقرر کنندہ | نوٹس | |---|---|---|---|---|---| | 1 | URL راہ کا سابقہ (/en/, /ur/, /sd/) | فی درخواست / فی صفحہ | صارف کی نیویگیشن، لوکیل سوئیچر | مستند اور قابلِ اشتراک۔ عوامی صفحات پر ہمیشہ موجود۔ | | 2 | usr_user.locale کالم | فی صارف | صارف، رجسٹریشن پر یا پروفائل/ترجیحات کے مرکز کے ذریعے | تصدیق شدہ نشستوں کے لیے طے شدہ جب کوئی URL سابقہ نہ ہو۔ | | 3 | org_organization.default_locale کالم | فی ادارہ (کمپنی یا محکمہ) | ادارہ ایڈمن | فال بیک جب صارف کا کوئی صریح لوکیل نہ ہو (مثلاً نئے مدعو عملے کے لیے)۔ |

گمنام زائرین لوکیل حاصل کرتے ہیں: (a) صریح URL سابقہ، ورنہ (b) Accept-Language ہیڈر جو [en, ur, sd] کے خلاف بحث و توافق ہوتا ہے، ورنہ (c) en (مرجع)۔ تعین شدہ لوکیل کو فرسٹ پارٹی کوکی (sitp_locale) میں محفوظ کیا جاتا ہے تاکہ آنے والی ملاقاتیں ثابت قدم رہیں، لیکن URL سابقہ ہمیشہ فوقیت رکھتا ہے — یہ ڈیپ لنکس کو قابلِ اشتراک اور غیر مبہم رکھتا ہے۔

3.2 لوکیل کیسے پھیلتا ہے

ایک بار کنارے پر تعین ہونے کے بعد، لوکیل ہر ضروری جگہ تک پھیل جاتا ہے، بغیر صارف کو دوبارہ اکسانے کے:

3.3 لوکیل سوئچنگ

ہر صفحہ (عوامی سائٹ، دستاویزات، پورٹل ایپ، موبائل PWA) کے ہیڈر میں ایک مرئی لوکیل سوئیچر موجود ہے۔ لوکیل بدلنے سے:

  1. حالیہ URL کو ہدف لوکیل کے سابقہ میں دوبارہ لکھا جاتا ہے۔
  2. sitp_locale کوکی اپ ڈیٹ ہوتی ہے۔
  3. اگر تصدیق شدہ ہو تو نئے لوکیل کو usr_user.locale میں محفوظ کیا جاتا ہے (تاکہ یہ آلات کے درمیان ثابت قدم رہے)۔
  4. صفحہ نئے لوکیل اور سمت میں، جہاں ممکن ہو بغیر مکمل ری لوڈ کے دوبارہ رینڈر ہوتا ہے (Next.js App Router اس کی مقامی طور پر تائید کرتا ہے)۔

سوئیچر کبھی صارف کی جگہ کو ضائع نہیں کرتا: وہی راستہ، وہی ٹکٹ، وہی KB مضمون — محض دوسری زبان میں۔

3.4 عملے کے لیے فی ادارہ طے شدہ

سرکاری عملہ (افسران، سیکشن ہیڈز، ناظرین) عموماً اپنے محکمے کے طے شدہ لوکیل میں کام کرتے ہیں، جو کسی شہری کی ترجیحی لوکیل سے مختلف ہو سکتا ہے۔ جب کوئی افسر کسی اردو لوکیل والی کمپنی کا داخل شدہ ٹکٹ دیکھتا ہے، تو نظام کا chrom (مینوز، بٹن، صورتحالت کے لیبل) افسر کے لوکیل میں رینڈر ہوتا ہے، جبکہ ٹکٹ کا مواد (عنوان، تفصیل، پیغامات) مصنف کے اصل لوکیل میں دکھایا جاتا ہے ساتھ ہی بہ تقاضا "ترجمہ" کی سہولت (§6 دیکھیں)۔ یہ علیحدگی ایک سندھی بولنے والے افسر کو اردو chrom پڑھنے پر مجبور ہونے سے روکتی ہے، اور اسی کا الٹا، جبکہ اصل ریکارڈ کی سالمیت برقرار رکھتی ہے۔


4. سٹرنگ کا بیرونی انداز (کوئی ہارڈکوڈڈ سٹرنگ نہیں)

4.1 قاعدہ

کوئی صارف کو نظر آنے والی سٹرنگ کبھی سورس کوڈ میں ہارڈکوڈ نہیں کی جاتی۔ ہر لیبل، بٹن، ٹول ٹپ، خامی کا پیغام، صورتحالت کا نام، ای میل کا موضوع، SMS کا متن، پلیس ہولڈر، aria-label، ٹوسٹ، خالی حالت، اور توثیق کا پیغام ایک میسج کیٹلاگ میں رہتا ہے جو ایک مستند شناخت کنندے کے ذریعے کلیدی (keyed) ہے۔ اجزاء کلید کا حوالہ دیتے ہیں؛ رن ٹائم کلید کو فعلی لوکیل کی سٹرنگ میں حل کرتا ہے۔

یہ درج ذیل پر لاگو ہوتا ہے:

4.2 نافذکاری

ہارڈکوڈنگ کو درج ذیل کے امتزاج سے روکا جاتا ہے:

4.3 توسیع و جمع (interpolation) و جمع بندی (pluralization)

سٹرنگز درج ذیل کے لیے ICU MessageFormat کی تائید کرتی ہیں:

جمع بندی کے قوانین لوکیلز کے درمیان مختلف ہوتے ہیں (انگریزی میں one/other؛ عربی رسمِ خط کے لوکیلز میں zero/one/two/few/many/other)۔ message-format لائبریری اسے سنبھالتی ہے؛ مترجمین فی کلید تمام مطلوبہ جمع شکلیں فراہم کرتے ہیں۔


5. ترجمہ فائل کا ورک فلو

5.1 کیٹلاگ کا ڈھانچہ

UI سٹرنگز فی لوکیل میسج کیٹلاگز میں رہتی ہیں، فیچر سطح کے مطابق منظم تاکہ فائلیں قابلِ نظرثانی رہیں:

locales/
  en/
    common.json
    auth.json
    tickets.json
    notifications.json
    letters.json
    dashboard.json
    errors.json
    ...
  ur/
    common.json
    auth.json
    ...
  sd/
    common.json
    auth.json
    ...

ہر کیٹلاگ ایک ہموار JSON آبجیکٹ ہے جو مستند نقطہ دار شناخت کنندوں سے کلیدی ہے:

{
  "tickets.status.new": "New",
  "tickets.status.resolved": "Resolved",
  "tickets.emptyState.title": "No tickets yet",
  "tickets.emptyState.body": "File your first ticket to get started."
}

کلیدزیں فیچر کے مطابق نام اسپیس میں ہیں (tickets., auth., letters., …) اور ایک دفعہ جاری ہونے کے بعد کبھی نام تبدیل نہیں ہوتے — کسی کلید کا نام بدلنا جاری تراجم کو توڑ دیتا ہے۔ پرانی کلیدز کو متروک قرار دیا جاتا ہے، حذف نہیں، یہاں تک کہ کوئی کوڈ ان کا حوالہ نہ دے اور تینوں لوکیلز انہیں چھوڑ دیں۔

5.2 طویل فارمیٹ مواد (MDX)

طویل فارمیٹ مواد — KB مضامین، سرکولرز، SOPs، دستاویزاتی سائٹ کے صفحات خود — فی لوکیل MDX کے طور پر تحریر کیا جاتا ہے JSON کے بجائے، کیونکہ مواد نثر، اجزاء، اور میڈیا کا ملغوتہ ہے۔ دستاویزاتی سیٹ کی طرح کی فائل و فولڈر روایت لاگو ہوتی ہے: ہر مواد شے ایک فولڈر ہے جس میں en.mdx, ur.mdx, sd.mdx ہیں۔ فرنٹ میٹر میں لوکیل، آخری ترجمہ وقت، جس EN مراجعہ سے ترجمہ کیا گیا، اور نظرثانی کی صورت (§6 دیکھیں) شامل ہوتی ہے۔

5.3 فی لوکیل JSON/MDX ہم آہنگی

ہر فیچر ریلیز کے لیے:

  1. EN کیٹلاگز اور MDX اپ ڈیٹ ہوتے ہیں۔
  2. ایک ڈِف تیار کیا جاتا ہے: نئی کلیدز، تبدیل شدہ کلیدز، حذف شدہ کلیدز۔
  3. UR اور SD کیٹلاگز اپ ڈیٹ ہوتے ہیں (پہلے AI معاون، پھر انسانی نظرثانی — §6 دیکھیں)۔
  4. ایک ہم آہنگی چیک CI میں چلتا ہے: en/*.json میں موجود ہر کلید ur/*.json اور sd/*.json میں بھی موجود ہونی چاہیے۔ غائب کلیدز بلڈ کو ناکام کرتی ہیں (ایک صریح فیصلے پر مجبور کرتے ہوئے: ابھی ترجمہ کریں، یا دانستہ طور پر EN فال بیک کے طور پر نشان زد کریں ایک ٹریکڈ قرض شے کے ساتھ)۔

5.4 فی مواد شے صورتحالت کی ٹریکنگ

ہر قابلِ ترجمہ شے (فی فیچر UI کلید سیٹ، KB مضمون، SOP، خط ٹیمپلیٹ) ایک ترجمہ صورتحالت رکھتی ہے:

صورتحالت معنی
source-only EN تحریر کردہ؛ UR/SD زیرِ توثیق۔
ai-draft AI ترجمہ تیار؛ انسانی نظرثانی کا منتظر۔
in-review مقامی نظرثانی کنندہ کو سونپی گئی؛ ابھی منظور نہیں۔
approved مقامی نظرثانی کنندہ نے دستخط کیے؛ اشاعت کے لیے محفوظ۔
published لوکیل میں جاری۔
stale آخری منظوری کے بعد سے EN مرجع تبدیل ہوا؛ دوبارہ ترجمہ ضروری۔

صورتحالت فی لوکیل فی شے محفوظ ہوتی ہے اور ترجمہ ڈیش بورڈ میں دکھائی دیتی ہے (§15 دیکھیں)۔


6. AI معاون ترجمہ پائپ لائن + انسانی مقامی نظرثانی

6.1 پائپ لائن کا جائزہ

EN میں تحریر کردہ مصنوعات کو UR اور SD میں ہائبرڈ پائپ لائن کے ذریعے ترجمہ کیا جاتا ہے: AI پہلا پاس کرتا ہے (تیز، سستا، مستقل)، ایک مقامی انسانی نظرثانی کنندہ آخری پاس کرتا ہے (درستگی، اندازِ بیان، ثقافتی مطابقت، اصطلاحات)۔ UR یا SD میں کچھ بھی محض AI پیداوار پر جاری نہیں ہوتا۔ یہ وہی AI Translation صلاحیت ہے جو /specs/ur/07-ai-ocr-spec/ اور /specs/ur/15-tech-architecture/ §6.3 #6 میں بیان ہوئی، لغت کے ذریعے محدود۔

6.2 ورک فلو خاکہ

flowchart TD SRC["EN source authored<br/>(UI catalog / KB MDX / letter template / notification)"] DIFF["Diff against prior EN revision<br/>(new, changed, deleted keys/content)"] GLOSS["Load glossary constraints<br/>(from _glossary.md → terminology DB)"] AI["AI translation pass<br/>(cloud LLM · glossary-injected · locale-targeted)"] QUEUE["Per-locale review queue<br/>(UR reviewer · SD reviewer)"] REV["Native human review<br/>(correctness · register · terminology · RTL fit)"] DEC{Approved?} EDIT["Reviewer edits<br/>(inline diff vs AI draft)"] PUB["Publish to locale catalog<br/>(status: approved → published)"] FB["Feedback to AI tuning set<br/>(reviewer corrections seed future runs)"] FALL["If untranslated:<br/>fallback to EN with visible marker (see §12)"] SRC --> DIFF DIFF --> GLOSS GLOSS --> AI AI --> QUEUE QUEUE --> REV REV --> DEC DEC -- no --> EDIT EDIT --> DEC DEC -- yes --> PUB EDIT --> FB PUB --> FB DIFF -. untranslated .-> FALL

6.3 ورک فلو کی تحریری وضاحت

مصنوعات کا مواد انگریزی میں تحریر کیا جاتا ہے (UI کیٹلاگ اندراج، KB MDX فائل، خط ٹیمپلیٹ، یا اطلاع ٹیمپلیٹ)۔ ایک ڈِفر نئے EN مراجعہ کا موازنہ پہلے ترجمہ شدہ EN مراجعہ سے کرتا ہے اور تین بالٹیں خارج کرتا ہے: نئی سٹرنگز (کبھی ترجمہ نہ ہوئیں)، تبدیلی شدہ سٹرنگز (EN آخری ترجمہ کے بعد ترمیم شدہ — stale کے طور پر نشان زد)، اور حذف شدہ سٹرنگز (لوکیل کیٹلاگ سے ہٹائیں)۔

نئی اور تبدیل شدہ اشیاء کے لیے، لغت کی پابندیاں اصطلاحاتی ڈیٹا بیس سے لوڈ کی جاتی ہیں (جو خود _glossary.md سے ماخوذ ہے — §7 دیکھیں) اور مجبور تراجم اور ممنوع میپنگز کے طور پر AI کال میں داخل کی جاتی ہیں۔ AI ترجمہ پاس فی ہدف لوکیل (ur، پھر sd) پلگ ایبل LLM کے ذریعے چلتا ہے (/specs/ur/15-tech-architecture/ §6.1 دیکھیں)، ایک مسودہ پیدا کرتا ہے جو پہلے ہی منظور شدہ اصطلاحات کا احترام کرتا ہے۔

مسودہ ایک فی لوکیل نظرثانی قطار میں اترتا ہے۔ ایک مقامی انسانی نظرثانی کنندہ (UR کے لیے اردو مادری، SD کے لیے سندھی مادری — کبھی دونوں کے لیے ایک ہی شخص نہیں، کبھی غیر مادری بولنے والا نہیں) مسودہ کو EN مرجع اور لغت کے ساتھ کھولتا ہے، اور چار باتوں کی پڑتال کرتا ہے: (1) درستگی — کیا یہ وہی کہتا ہے جو EN کہتا ہے؛ (2) اندازِ بیان — کیا رسمیت سرکاری رو بہ رو مصنوعات کے لیے درست ہے؛ (3) اصطلاحات — کیا لغت کی اصطلاحات بالکل منظور شدہ کے مطابق استعمال ہوئی ہیں، محکمہ بمقابلہ وزارت کے امتیاز (§16) کے ساتھ برقرار؛ (4) RTL مطابقت — کیا سٹرنگ ہدف فونٹ میں دائیں سے بائیں رینڈر ہونے پر فطری پڑھی جاتی ہے، بغیر ٹوٹے دو طرفہ ملغوتہ کے۔ نظرثانی کنندہ یا تو منظور کرتا ہے یا اِن لائن ترمیم کرتا ہے؛ ترامیم کو AI مسودہ کے خلاف ڈِف کے طور پر ٹریک کیا جاتا ہے۔

منظوری پر، سٹرنگ کو لوکیل کیٹلاگ میں شائع کیا جاتا ہے اور وہ جاری ہو جاتی ہے۔ نظرثانی کنندہ کی اصلاحات کو واپس AI ٹیوننگ سیٹ (EN→UR اور EN→SD جوڑوں کا ایک منتخب کردہ کارپس جس میں نظرثانی کنندہ کی منظور شدہ پیداوار ہو) میں کھلایا جاتا ہے، جو مستقبل میں AI کے پہلے پاس کے معیار کو بہتر بناتا ہے اور وقت کے ساتھ نظرثانی کنندہ کا بوجھ کم کرتا ہے۔ اشیاء جو ابھی ترجمہ نہیں ہوئیں UI میں ایک مرئی نشان کے ساتھ انگریزی پر فال بیک کرتی ہیں (§12 دیکھیں)، اس لیے مصنوعات کبھی ترجمے پر بلاک نہیں ہوتی — مگر یہ فرق ٹریک ہوتا ہے اور اگلے نظرثانی چکر میں بند ہو جاتا ہے۔

6.4 صارف مواد کا بہ تقاضا ترجمہ

یہی پائپ لائن، مگر انسانی گیٹ کے بغیر، صارف کے جمع کردہ آزاد متن — ٹکٹ تفصیلات، چیٹ پیغامات، MoM اپ لوڈز، آنے والے ای میل/SMS/WhatsApp جوابات — کے لیے بہ تقاضا چلتا ہے۔ کوئی افسر جو انگریزی لوکیل نشست میں کسی اردو ٹکٹ کو دیکھ رہا ہے "ترجمہ" کلک کرتا ہے؛ AI اِن لائن ایک EN رینڈرنگ لوٹاتا ہے، واضح طور پر مشین ترجمہ کے طور پر لیبل زد، اصل محفوظ رکھی گئی۔ اصل ریکارڈ ہے؛ ترجمہ ایک سہولت ہے۔ سرکاری دستاویزات (قرارداد سرٹیفکیٹس، خطوط) کے لیے، انسانی نظرثانی شدہ کیٹلاگ تراجم استعمال ہوتے ہیں، کبھی خام AI پیداوار نہیں۔

6.5 نظرثانی کنندگان کی فہرست

نظرثانی کنندگان کو مادری زبان کی ضرورت کے مطابق شامل کیا جاتا ہے: اردو نظرثانی کنندگان اردو مادری ہوتے ہیں (عموماً سندھ میں مقیم، پاکستانی سرکاری اندازِ بیان سے واقف)؛ سندھی نظرثانی کنندگان سندھی مادری ہوتے ہیں۔ نظرثانی کنندگان کو ٹریننگ و سرٹیفکیشن ماڈیول (O) کے تحت جاری دستاویزات سے نمٹنے سے پہلے امتحان سے گزرے "Native Reviewer" سرٹیفکیشن کے ذریعے معتبر کیا جاتا ہے — عملے کی سرٹیفکیشن کے نمونے کی عکاسی۔ حساس مواد (سرکاری خطوط، قانونی/RTI الفاظ) کے لیے فی لوکیل کم از کم دو نظرثانی کنندگان تکثر اور باہمی چیک کے لیے رکھے جاتے ہیں۔


7. لغت پر مبنی اصطلاح کی مستقل مزاجی

7.1 لغت بطورِ معاہدہ

_glossary.md SITP کے لیے مستند تین لسانی اصطلاح لغت ہے۔ ہر سرکاری، قانونی، ٹکٹنگ، کردار، تکنیکی، اور مخفف اصطلاح کا ایک منظور شدہ EN/UR/SD رینڈرنگ ہے۔ مترجمین، نظرثانی کنندگان، اور AI ترجمہ پائپ لائن کو ان رینڈرنگز کا بالکل استعمال کرنا چاہیے؛ انحراف ایک عیب ہے جو QA میں پکڑا جاتا ہے (§15 دیکھیں)۔

7.2 مارک ڈاؤن سے استفسار کے قابل اصطلاحاتی DB تک

مارک ڈاؤن لغت انسان کے پڑھنے کے قابل ماخذ ہے۔ ایک بلڈ مرحلہ اسے ایک اصطلاحاتی ڈیٹا بیس (انگریزی اصطلاح سے کلیدی JSON نقشہ، ur, sd, definition, اور notes فیلڈز کے ساتھ) میں مرتب کرتا ہے جو:

7.3 لغت کی نمو

جب کوئی دستاویز یا ترجمہ ایسی اصطلاح متعارف کرے جو لغت میں نہ ہو، تو روایت (_conventions.md §2 دیکھیں) یہ ہے کہ پہلے اسے لغت میں شامل کریں، پھر منظور شدہ ترجمہ ہر جگہ استعمال کریں۔ لغت اس لیے ایک زندہ شے ہے؛ اس میں تبدیلیاں ورژنڈ اور تمام فعال نظرثانی کنندگان کو نشر کی جاتی ہیں تاکہ وہ جاری تراجم کی نئی اصطلاح کے خلاف دوبارہ پڑتال کریں۔

7.4 CI میں مستقل مزاجی کی چیکس

ایک اصطلاحاتی لنٹر ہر لوکیل کیٹلاگ اور MDX فائل پر CI میں چلتا ہے:


8. RTL ہینڈلنگ

8.1 سمت بطورِ لے آؤٹ پریمیٹو

اردو اور سندھی دائیں سے بائیں رینڈر ہوتی ہیں۔ RTL ایک CSS بعد کا قدم نہیں ہے؛ یہ لے آؤٹ کا ایک فرسٹ کلاس بُعد ہے جو تین میکانزمز کے مل کر کام کرنے سے سنبھالا جاتا ہے۔

8.2 میکانزم 1 — dir attribute

دستاویز کا <html> عنصر en کے لیے dir="ltr" اور ur اور sd کے لیے dir="rtl" رکھتا ہے۔ Docusaurus اسے لوکیل سے خود بخود مرتب کرتا ہے؛ Next.js پورٹل اسے روٹ لے آؤٹ پر تعین شدہ لوکیل سے مرتب کرتا ہے۔ dir attribute ہر اولاد تک سرایت کرتا ہے، اس لیے پورا جزو درخت بغیر کسی فی جزو کام کے پلٹ جاتا ہے۔ lang attribute متوازی طور پر مرتب کیا جاتا ہے (lang="en", lang="ur", lang="sd") اسکرین ریڈرز اور سرچ انجنز کے لیے (§14 دیکھیں)۔

8.3 میکانزم 2 — CSS منطقی خصوصیات

تمام لے آؤٹ CSS منطقی خصوصیات کا استعمال کرتا ہے طبیعی کی بجائے، اس لیے ایک ہی اصول دونوں سمتوں میں کام کرتا ہے:

طبیعی (ممنوع) منطقی (استعمال شدہ)
margin-left margin-inline-start
margin-right margin-inline-end
padding-left / padding-right padding-inline-start / padding-inline-end
left / right (پوزیشننگ) inset-inline-start / inset-inline-end
float: left flex/grid + inline-start سے دوبارہ ڈھالیں
text-align: left text-align: start
border-left border-inline-start

TailwindCSS (مقفل اسٹیک) اپنی ps-/pe-/ms-/me-/start-/end- یوٹیلیٹیز اور rtl:/ltr: متغیر modifier کے ذریعے منطقی خصوصیات کی تائید کرتا ہے ان نایاب کیسز کے لیے جہاں لفظی mirror ضروری ہو۔ ٹیم منطقی یوٹیلیٹیز پر معیار قائم رکھتی ہے؛ طبیعی pl-/pr-/ml-/mr- کو صریح جواز کے بغیر لنٹ جھنڈا لگاتا ہے۔

8.4 میکانزم 3 — آئیکن اور لے آؤٹ mirroring

سمتی آئیکنز RTL میں mirror ہوتے ہیں: ایک "واپس" تیر جو LTR میں بائیں کی طرف اشارہ کرتا ہے RTL میں دائیں کی طرف اشارہ کرتا ہے؛ ایک "اگلا" شیورون پلٹتا ہے؛ ایک سائیڈبار جو LTR میں بائیں جانب پن ہو RTL میں دائیں جانب پن ہوتا ہے۔ یہ درج ذیل کے ذریعے سنبھالا جاتا ہے:

8.5 دو طرفہ متن کا ملغوتہ

جب اردو یا سندھی متن میں embedded Latin ہو (ٹکٹ IDz جیسے SITP-2026-LBR-000123، مخففات جیسے SECP، نمبرز، URLs)، Unicode Bidirectional Algorithm رینڈرنگ سنبھالتا ہے۔ حدود پر spill-over خامیوں سے بچنے کے لیے، ٹیم embedded LTR رنز کو <bdi> میں لپٹاتی ہے اور صارف کے جمع کردہ مواد فیلڈز پر dir="auto" استعمال کرتی ہے تاکہ براؤزر پہلے مضبوط سمتی حرف سے سمت چنے۔ ٹکٹ IDz، CNICs، اور NTNs ہمیشہ RTL نثر کے اندر بھی LTR رینڈر ہوتے ہیں، ایک صریح <span dir="ltr"> ریپر کے استعمال سے۔

8.6 RTL نہیں کیا ہے

RTL ایک علیحدہ ڈیزائن یا علیحدہ جزو درخت نہیں ہے۔ ایک ڈیزائن نظام ہے (/specs/ur/16-branding-design-system/ دیکھیں) جو دو سمتوں میں رینڈر ہوتا ہے۔ کوئی Component.ltr.tsx اور Component.rtl.tsx فائلیں نہیں ہیں۔ چند استثنائات (ایک آئیکن جس کا mirror نہ ہونا ضروری ہو، ایک ہیرو خاکہ جس میں embedded سمعی معنی ہو) کو نشان زد کیا جاتا ہے اور انفرادی طور پر نظرثانی کی جاتی ہے۔


9. ٹائپوگرافی و فونٹس

9.1 مقفل فونٹ اسٹیک

_context.md §7 کے مطابق:

لوکیل بنیادی فونٹ فال بیک
en Inter (UI) / Poppins (ڈسپلے/ہیڈنگز) system sans-serif
ur Noto Nastaliq Urdu Jameel Noori Nastaleeq (system), sans-serif
sd Noto Naskh Arabic (سندھی توسیع یافتہ glyph کوریج) system Arabic, sans-serif

9.2 لوڈنگ حکمتِ عملی

فونٹس سیلف ہوسٹڈ ہیں (رن ٹائم پر Google Fonts سے نہیں لوڈ کیے جاتے، رازداری اور کارکردگی کے لیے) اور فی لوکیل subset کیے جاتے ہیں:

9.3 لائن ہائیٹ اور عمودی تال

Nastaliq (اردو) اور Naskh (سندھی) رسمِ خطوط کو لاطینی متن سے لمبی لائن ہائیٹ درکار ہے — Nastaliq بالخصوص بڑا عمودی احاطہ رکھتا ہے (descenders اور stacked diacritics)۔ ڈیزائن نظام فی لوکیل لائن ہائیٹ اور letter-spacing ٹوکنز فراہم کرتا ہے: EN ٹوکنز طے شدہ طور پر ~1.5 لائن ہائیٹ؛ UR ٹوکنز ~2.0؛ SD ٹوکنز ~1.8۔ یہ lang attribute سے کلیدی CSS متغیرات کے ذریعے لاگو ہوتے ہیں، فی جزو override کے ذریعے نہیں۔

9.4 فونٹ سائزز اور قابلِ پڑہائی

اردو اور سندھی ایک ہی فونٹ سائز پر لاطینی سے طبیعی طور پر چھوٹی رینڈر ہوتی ہیں، رسمِ خط کی جیومیٹری کی وجہ سے۔ ڈیزائن نظام ایک فی لوکیل فونٹ سائز اسکیلنگ فیکٹر لاگو کرتا ہے (UR/SD کا باڈی متن ایک ہی بصری درجہ بندی سطح پر EN سے ~10–15% بڑا ہے) تاکہ بصری قابلِ پڑہائی زبانوں کے درمیان مستقل رہے۔


10. دوہرا کیلنڈر نظام (گریگورین + ہجری)

10.1 سرکاری روایت

_context.md §2 کے مطابق، SITP گریگورین اور ہجری دونوں تاریخیں ہر جگہ دکھاتا ہے — پاکستان سرکاری خط و کتابت کی روایت۔ جہاں بھی کوئی تاریخ صارف کو دکھائی جاتی ہے (ٹکٹ کی بنیادی تاریخ، SLA آخری تاریخ، MoM مٹنگ کی تاریخ، سرکاری خط کی تاریخ، اطلاع کا timestamp)، دونوں کیلنڈر ظاہر ہوتے ہیں، گریگورین بنیادی اور ہجری اس کے ساتھ یا نیچے ماخوذ۔

10.2 ذخیرہ بمقابلہ پیشکش

10.3 تاریخ پکرز

پورٹل میں ہر تاریخ پیکر (SLA آخری تاریخ override، مٹنگ شیڈولر، رپورٹ تاریخ حد فلٹر، چھٹی کیلنڈر ایڈیٹر) دوہری ان پٹ پیش کرتا ہے: صارف گریگورین تاریخ چنتا ہے اور متعلقہ ہجری تاریخ اس کے ساتھ دکھائی جاتی ہے (اور اسی کا الٹا — ہجری تاریخ چننا گریگورین کو واپس حساب دیتا ہے)۔ دونوں قدریں بیک اینڈ تک جاتی ہیں؛ گریگورین مستند ہے۔

10.4 چھٹی کیلنڈر

سندھ کا عوامی چھٹی کیلنڈر (SLA کے روکنے کے لیے استعمال، _context.md §5 کے مطابق) ہر چھٹی کے لیے گریگورین اور ہجری دونوں تاریخیں رکھتا ہے، کیونکہ اسلامی چھٹیاں ہجری سے تعریف شدہ ہیں (Eid, Ashura, Eid Milad-un-Nabi) جبکہ شہری چھٹیاں گریگورین سے تعریف شدہ ہیں (یومِ آزادی، یومِ مزدور)۔ SLA انجن گریگورین normal شدہ شکل استعمال کرتا ہے۔


11. نمبر، تاریخ، کرنسی و فون فارمیٹنگ

تمام فارمیٹنگ ایک واحد لوکیل آگاہ فارمیٹر سے گزرتی ہے (Intl پر مبنی، حل شدہ لوکیل سے مرتب)۔ کوئی فارمیٹ سٹرنگ ہاتھ سے نہیں بنائی جاتی۔

معاملہ EN فارمیٹ UR فارمیٹ SD فارمیٹ نوٹس
گریگورین تاریخ 17 Jul 2026 ۱۷ جولائی ۲۰۲۶ ۱۷ جولاءِ ۲۰۲۶ لوکیل آگاہ مہینہ نام؛ UR/SD میں طے شدہ طور پر مشرقی عربی ہندسے (قابلِ ترتیب — §11.1 دیکھیں)۔
وقت 2:30 PM ۲:۳۰ بجہ دوپہر ۲:۳۰ بجہُ دوپھر لوکیل AM/PM سٹرنگ کے ساتھ 12 گھنٹے؛ PKT۔
صحیح عدد 1,234 ۱٬۲۳۴ ۱٬۲۳۴ گروپنگ علیحدہ کنندہ لوکیل آگاہ۔
کرنسی (PKR) Rs 15,000 / ₨ 15,000 روپے ۱۵٬۰۰۰ روپيا ۱۵٬۰۰۰ ہمیشہ PKR؛ integer paisa کے طور پر محفوظ (/specs/ur/15-tech-architecture/ §5.3 دیکھیں)۔
فون (PK) +92 300 1234567 +۹۲ ۳۰۰ ۱۲۳۴۵۶۷ +۹۲ ۳۰۰ ۱۲۳۴۵۶۷ E.164 محفوظ؛ PK گروپنگ کے ساتھ دکھائی۔
فیصد 45% ۴۵٪ ۴۵٪ لوکیل عدد + لوکیل فیصد نشان۔
ٹکٹ ID SITP-2026-LBR-000123 SITP-2026-LBR-000123 SITP-2026-LBR-000123 ہمیشہ لاطینی ہندسے، ہمیشہ LTR — IDz شناخت کنندے ہیں، نثر نہیں۔

11.1 عددی پالیسی

پاکستان عموماً اردو اور سندھی نثر میں مشرقی عربی ہندسے (۰۱۲۳۴۵۶۷۸۹) استعمال کرتا ہے، مگر تکنیکی/ڈیٹا سیاق میں لاطینی ہندسے۔ SITP کا طے شدہ نثر میں UR/SD کے لیے مشرقی عربی، ڈیٹا کثیر UI میں لاطینی (ٹیبلز، ڈیش بورڈز، ٹکٹ IDz، SLA کاؤنٹ ڈاؤنز) ہے، قابلِ پڑہائی اور analytics ایکسپورٹس کے ساتھ استقلال کے لیے۔ عددی متغیر ایک فی لوکیل ٹوکن ہے جسے Super Admin ترتیب دے سکتا ہے، اس لیے کوئی محکمہ جو سب لاطینی پسند کرتا ہے وہ بدل سکتا ہے۔

11.2 فون فارمیٹنگ

فون نمبرز E.164 (+92...) میں محفوظ ہوتے ہیں، ان پٹ پر توثیق شدہ، اور PK آگاہ فارمیٹر کے ذریعے رینڈر ہوتے ہیں۔ CNIC اور NTN فارمیٹس اپنے سرکاری نمونوں کی پیروی کرتے ہیں (CNIC: XXXXX-XXXXXXX-X؛ NTN: 7 ہندسے) اور RTL لوکیلز میں بھی ہمیشہ LTR رینڈر ہوتے ہیں، <span dir="ltr"> میں لپٹے۔

11.3 کرنسی

تمام کرنسی PKR (پاکستانی روپیہ) ہے۔ پورٹل غیر ملکی کرنسی مقامی طور پر نہیں سنبھالتا؛ IT انڈسٹری فائدہ اٹھانے والے سیاق گھریلو ہے۔ کرنسی integer minor یونٹس (paisa) کے طور پر محفوظ ہے اور پیشکش پر فارمیٹ ہوتی ہے۔


12. مواد کی فال بیک حکمتِ عملی

12.1 قاعدہ

اگر کوئی ترجمہ فعلی لوکیل میں غائب ہو، تو نظام انگریزی پر فال بیک کرتا ہے اور ایک مرئی نشان دکھاتا ہے تاکہ فرق کبھی خاموش نہ رہے۔ خاموش فال بیک (بغیر کسی اشارے کے انگریزی دکھانا) ممنوع ہے کیونکہ یہ صارفین اور نظرثانی کنندگان سے ترجمے کا قرض چھپاتا ہے۔

12.2 مرئی نشان

ایک غائب کلید کا حل اس طرح رینڈر ہوتا ہے:

12.3 فال بیک زنجیر

active-locale string  →  (missing)  →  English string  →  (missing)  →  the key itself in [brackets]

آخری [key.itself] حالت CI میں پکڑی جانے والی سخت ناکامی ہے (§5.3) اور کبھی پروڈکشن تک نہیں پہنچنی چاہیے۔ درمیانی حالت (علامت کے ساتھ انگریزی فال بیک) قابلِ قبول وقفہ ہے؛ مقصد کسی بھی جاری لوکیل میں دونوں میں سے کسی کا صفر ہے۔

12.4 طویل فارمیٹ مواد

MDX مواد (KB مضامین، SOPs) کے لیے، اگر کسی لوکیل کا ترجمہ stale یا غائب ہو، تو صفحہ اوپر ایک بینر کے ساتھ انگریزی نسخہ رینڈر کرتا ہے: "یہ مضمون ابھی [اردو/سندھی] میں دستیاب نہیں۔ انگریزی اصل دکھائی جا رہی ہے۔" بینر ایک تاثر (feedback) لنک رکھتا ہے تاکہ صارفین ترجیح کی درخواست کر سکیں، اور فرق logged ہوتا ہے۔


13. SEO: فی لوکیل hreflang و sitemap

13.1 hreflang

ہر عوامی صفحہ ہر لوکیل کے لیے <link rel="alternate"> ٹیگز، ساتھ x-default خارج کرتا ہے:

<link rel="alternate" hreflang="en" href="https://sindhitportal.maahir.io/en/..." />
<link rel="alternate" hreflang="ur" href="https://sindhitportal.maahir.io/ur/..." />
<link rel="alternate" hreflang="sd" href="https://sindhitportal.maahir.io/sd/..." />
<link rel="alternate" hreflang="x-default" href="https://sindhitportal.maahir.io/en/..." />

x-default EN مرجع کی طرف اشارہ کرتا ہے۔ لوکیل سابقہ شدہ URL مستند ہے (§3.1 دیکھیں)؛ نقلِ مواد کے ابہام سے بچنے کے لیے کوئی غیر سابقہ شدہ لوکیل نہیں ہے۔ hreflang Next.js پورٹل (فی راستہ) اور Docusaurus دستاویزاتی سائٹ (بلٹ اِن i18n تائید) دونوں کے ذریعے خارج کیا جاتا ہے۔

13.2 Sitemap

ایک فی لوکیل sitemap انڈیکس بلڈ وقت پر تیار کیا جاتا ہے:

/sitemap.xml          → index listing the per-locale sitemaps
/sitemap-en.xml       → all EN public URLs
/sitemap-ur.xml       → all UR public URLs
/sitemap-sd.xml       → all SD public URLs

ہر فی لوکیل sitemap میں صرف اسی لوکیل کے سابقہ میں URLs فہرست ہیں، lastmod مواد کی آخری ترجمہ منظوری کی عکاسی کرتا ہے (EN مرجع کی ترمیم نہیں)، اس لیے سرچ انجنز دیکھتے ہیں کہ UR یا SD نسخہ واقعی کب تبدیل ہوا۔

13.3 مقامیاندازی شدہ میٹا ڈیٹا

<title>, <meta description>, Open Graph, اور Twitter Card ٹیگز سب لوکیل کیٹلاگ سے ماخوذ ہوتے ہیں — کبھی ہارڈکوڈ نہیں، کبھی SEO پرت کے ذریعے خودکار ترجمہ نہیں۔ ہر عوامی صفحہ کا میٹا ڈیٹا ایک نظرثانی شدہ ترجمہ ہے۔ OG تصاویر مقامیاندازی شدہ متن overlays رکھتی ہیں جہاں ڈیزائن نظام تائید کرتا ہے (/specs/ur/16-branding-design-system/ دیکھیں)۔

13.4 robots اور crawl بجٹ

/ur/ اور /sd/ درخت مکمل طور پر crawl کے قابل ہیں (بلاک نہیں)؛ یہ فرسٹ کلاس مواد ہیں۔ سرچ انجن کا crawl بجٹ observability میں نگرانی کیا جاتا ہے؛ اگر کوئی لوکیل مستقل طور پر کم اِنڈیکسڈ ہو، تو وجہ (سست رینڈر، غائب hreflang، پتلا مواد) کی تفتیش اور اصلاح کی جاتی ہے۔


14. فی لوکیل قابلِ رسائی

WCAG 2.1 AA مطابقت (_context.md §2 میں مقفل) تینوں لوکیلز پر یکساں لاگو ہوتی ہے۔ قابلِ رسائی ایک واحد لوکیل کا معاملہ نہیں ہے۔

14.1 زبان کی نسبتی

14.2 RTL اسکرین ریڈر تائید

14.3 رنگ تضاد اور ٹائپوگرافی

14.4 کی بورڈ نیویگیشن

Tab ترتیب LTR اور RTL دونوں میں بصری ترتیب کی پیروی کرتی ہے۔ کی بورڈ شارٹ کٹس جو سمت کا تاثر دیتی ہیں (مثلاً واپس کے لیے Alt+Left) RTL میں mirror ہوتی ہیں (واپس کے لیے Alt+Right) یا جہاں ممکن ہو سمت سے غیر جانبدار بنائی جاتی ہیں۔ Skip-to-content لنکس دونوں سمتوں میں کام کرتے ہیں۔

14.5 معاون ٹیکنالوجی جانچ

ہر ریلیز میں تینوں لوکیلز پر NVDA + Firefox اور VoiceOver + Safari پر معاون ٹیکنالوجی کا جائزہ شامل ہے، Nastaliq اور Naskh تلفظ پر خصوصی توجہ کے ساتھ۔ نتائج لوکیل کو published نشان زد کرنے سے پہلے بند ہونے تک ٹریک کیے جاتے ہیں۔


15. ترجمہ QA و نظرثانی گیٹس

15.1 QA پائپ لائن

ترجمہ کے معیار کو چار گیٹس پر نافذ کیا جاتا ہے:

گیٹ کب کیا چلتا ہے ناکامی کا اقدام
G1 — لنٹ ہر commit پر No-hardcoded-strings قاعدہ؛ logical-properties-only قاعدہ؛ لغت اصطلاح چیک۔ بلڈ ناکام۔
G2 — ہم آہنگی ہر PR جو لوکیلز کو چھوئے ہر EN کلید UR اور SD میں موجود؛ کوئی یتیم کلید نہیں۔ بلڈ ناکام (یا صریح قرض شے کھلی)۔
G3 — مقامی نظرثانی اشاعت سے پہلے مقامی انسانی نظرثانی کنندہ §6 کے مطابق دستخط کرتا ہے۔ شے in-review میں رہتی ہے۔
G4 — بصری جائزہ ریلیز سے پہلے ہر تبدیل شدہ اسکرین کی LTR اور RTL اسکرین شارٹس؛ دو طرفہ ملغوتہ چیک؛ فونٹ رینڈر چیک۔ ریلیز روکی گئی۔

15.2 ترجمہ قرض ڈیش بورڈ

ایک اندرونی ڈیش بورڈ (Super Admin اور Department Admin کو نظر آنے والا) رپورٹ کرتا ہے:

15.3 لسانی QA نمونہ چینی

فی شے نظرثانی سے ہٹ کر، ایک وقتی لسانی QA جائزہ فی لوکیل جاری شدہ مواد کا نمونہ لیتا ہے اور چیک کرتا ہے: لغت کے آخری اپ ڈیٹ کے بعد سے اصطلاحاتی انحراف، اندازِ بیان کا استقلال، مصنوعات بھر میں لہجہ، اور ثقافتی مناسبیت۔ نتائج لغت اور AI ٹیوننگ سیٹ میں واپس کھلائے جاتے ہیں۔

15.4 دونوں سمتوں میں بصری regression

بصری regression سویٹ (/specs/ur/13-test-strategy/ کا حصہ) ہری کہانی کو dir="ltr" اور dir="rtl" دونوں میں چلاتا ہے۔ کوئی تبدیلی جو EN میں درست مگر UR یا SD میں لے آؤٹ توڑ دے، سویٹ ناکام کرتی ہے۔


16. سرکاری اصطلاحات و تمیز

16.1 محکمہ بمقابلہ وزارت کا امتیاز

SITP میں سب سے اہم اصطلاحی قاعدہ، _glossary.md میں مقفل (top critical-distinction note):

S&ITD ایک صوبائی محکمہ ہے — اردو محکمہ / سندھی محڪمو۔ یہ ایک وزارت نہیں ہے — اردو وزارت / سندھی وزارت۔ مترجمین کو کبھی "Department" کو "وزارت" رینڈر نہیں کرنا چاہیے یا اس کا الٹا۔

یہ اس لیے اہم ہے کیونکہ پاکستان کی وفاقی وزارتیں اور صوبائی محکمے آئینی طور پر الگ ہیں؛ کسی سرکاری خط یا عوامی صفحہ پر S&ITD کو "وزارت" کہنا ایک واقعاتی اور سیاسی غلطی ہے، اندازِ بیان کی نہیں۔ AI ترجمہ پائپ لائن کو یہ ایک سخت ممنوع میپنگ کے طور پر دیا جاتا ہے؛ QA لنٹر (§7.4, §15 G1) کسی بھی ترجمے کو ناکام کرتا ہے جو "Department" کے لیے وزارت یا "Ministry" کے لیے محکمہ پیدا کرے۔

16.2 دیگر مقفل امتیازات

اصطلاح درست غلط اہمیت
محکمہ (صوبائی) محکمہ / محڪمو وزارت / وزارت صوبائی بمقابلہ وفاقی (§16.1)۔
Notification (گزٹ) نوٹیفکیشن / نوٽيفڪيشن اطلاع / اطلاع پابند قانونی حکم بمقابلہ نظام اطلاع (لغت §1 بمقابلہ §7)۔
Notification (نظام اطلاع) اطلاع / اطلاع نوٹیفکیشن / نوٽيفڪيشن ایک ہی لفظ، مخالف میپنگ — سیاق طے کرتا ہے کون سی۔
شکایت شکایت / شڪايت دیگر رینڈرنگز معیاری شہری رو بہ رو اصطلاح۔
مجاز نمائندہ مجاز نمائندہ / مجاز نمائندو تنہا نمائندہ "مجاز" قانونی بااختیاری رکھتا ہے؛ چھوڑنا اصطلاح کو کمزور کرتا ہے۔
ٹریکنگ آئی ڈی ٹریکنگ آئی ڈی / ٽريڪنگ آءِ ڊي دیگر رینڈرنگز عوامی رو بہ رو شناخت کنندہ؛ استقلال تلاش میں مدد دیتا ہے۔

16.3 کبھی ترجمہ نہ ہونے والی اصطلاحات

کچھ اصطلاحات لغت کے قاعدے کے مطابق تینوں لوکیلز میں اپنی اصل شکل میں رکھی جاتی ہیں:

مترجمین اور AI پائپ لائن کو ہدایت کی جاتی ہے کہ انہیں ویسی ہی چھوڑ دیں؛ NADRA کو اردو رسمِ خط میں "ترجمہ" کرنے کی کوشش ایک عیب ہے۔

16.4 نقلِ نگاری (transliteration) فال بیک

جہاں لغت کسی اصطلاح کو (معیاری ترجمہ درکار) ("standard translation needed") سے نشان زد کرے، اصطلاح کو مقامی رسمِ خط میں نقلِ نگاری کیا جاتا ہے اور مستقبل میں لغت کی بہتری کے لیے نشان زد کیا جاتا ہے۔ یہ اشیاء قرض ڈیش بورڈ (§15.2) میں ظاہر ہوتی ہیں تاکہ لغت کے مالکان انہیں بند کریں۔


17. فعلی تقاضے

ID تقاضہ MoSCoW
FR-PUB-101 نظام بالکل تین لوکیلز کی تائید کرے گا: en (مرجع, LTR), ur (RTL), sd (RTL)۔ [Must]
FR-PUB-102 نظام لوکیل کو (ترتیب میں) URL سابقہ، صارف ترجیح، ادارہ طے شدہ، Accept-Language، اور آخر میں en سے تعین کرے گا۔ [Must]
FR-PUB-103 نظام تعین شدہ لوکیل کو JWT، ہر BullMQ جاب پے لوڈ، NestJS درخواست سیاق، ہر ٹیمپلیٹ رینڈر، ہر تلاش استفسار، اور ہر AI کال تک پھیلا دے گا۔ [Must]
FR-PUB-104 کوئی صارف کو نظر آنے والی سٹرنگ سورس کوڈ میں ہارڈکوڈ نہیں ہو گی؛ تمام سٹرنگز فی لوکیل میسج کیٹلاگز سے ماخوذ ہوں گی۔ [Must]
FR-PUB-105 نظام UI سٹرنگز کے لیے فی لوکیل میسج کیٹلاگ (JSON) اور طویل فارمیٹ مواد کے لیے فی لوکیل MDX فراہم کرے گا۔ [Must]
FR-PUB-106 نظام ہر صفحہ پر ایک لوکیل سوئیچر فراہم کرے گا جو URL سابقہ دوبارہ لکھے، کوکی اپ ڈیٹ کرے، صارف ریکارڈ پر محفوظ کرے، اور صارف کی حالیہ جگہ برقرار رکھے۔ [Must]
FR-PUB-107 نظام اردو اور سندھی لوکیلز کو dir attribute اور CSS منطقی خصوصیات کے ذریعے دائیں سے بائیں رینڈر کرے گا۔ [Must]
FR-PUB-108 نظام RTL میں سمتی آئیکنز mirror کرے گا اور غیر سمتی آئیکنز کے لیے data-no-mirror escape hatch فراہم کرے گا۔ [Must]
FR-PUB-109 نظام صرف فعلی لوکیل کا فونٹ کنبہ (EN کے لیے Inter/Poppins، UR کے لیے Noto Nastaliq Urdu، SD کے لیے Noto Naskh Arabic) لوڈ کرے گا، سیلف ہوسٹڈ، subset، woff2۔ [Must]
FR-PUB-110 نظام ہر صارف کو نظر آنے والی تاریخ گریگورین اور ہجری دونوں میں دکھائے گا، گریگورین بطورِ محفوظ سچائی کے سرچشمہ۔ [Must]
FR-PUB-111 نظام دوہری ان پٹ تاریخ پکرز فراہم کرے گا جو گریگورین اور ہجری ساتھ ساتھ دکھائیں۔ [Should]
FR-PUB-112 نظام نمبرز، تاریخیں، کرنسی، اور فون نمبرز کو ایک واحد لوکیل آگاہ فارمیٹر (Intl مبنی) کے ذریعے فارمیٹ کرے گا۔ [Must]
FR-PUB-113 کرنسی ہمیشہ PKR ہو گی، integer paisa کے طور پر محفوظ، پیشکش پر فارمیٹ۔ [Must]
FR-PUB-114 ٹکٹ IDz، CNICs، NTNs، اور مخففات ہمیشہ لاطینی رسمِ خط اور LTR سمت میں رینڈر ہوں گے، RTL نثر کے اندر بھی۔ [Must]
FR-PUB-115 فعلی لوکیل میں غائب ترجمے پر، نظام مرئی نشان کے ساتھ انگریزی سٹرنگ پر فال بیک کرے گا۔ [Must]
FR-PUB-116 خاموش فال بیک (بغیر نشان کے انگریزی دکھائی) نہیں ہو گی۔ [Must]
FR-PUB-117 ہر عوامی صفحہ en, ur, sd, اور x-default (EN کی طرف) کے لیے hreflang متبادل لنکس خارج کرے گا۔ [Must]
FR-PUB-118 نظام ایک sitemap انڈیکس کے تحت فی لوکیل sitemap (sitemap-en.xml, sitemap-ur.xml, sitemap-sd.xml) تیار کرے گا۔ [Must]
FR-PUB-119 نظام لغت منظور شدہ تراجم کو AI ترجمہ پائپ لائن میں مجبور پابندیوں کے طور پر لاگو کرے گا۔ [Must]
FR-PUB-120 نظام کسی بھی UR/SD مواد کو شائع کرنے سے انکار کرے گا جو مقامی انسانی نظرثانی سے نہ گزرا ہو۔ [Must]
FR-PUB-121 نظام فی لوکیل فی شے ترجمہ صورتحالت (source-only, ai-draft, in-review, approved, published, stale) ٹریک کرے گا۔ [Must]
FR-PUB-122 نظام صارف کے جمع کردہ مواد (ٹکٹ متن، پیغامات، MoM) کے لیے بہ تقاضا "ترجمہ" سہولت فراہم کرے گا، واضح طور پر مشین ترجمہ لیبل زد، اصل محفوظ۔ [Should]
FR-PUB-123 نظام سندھ عوامی چھٹی کیلنڈر گریگورین اور ہجری دونوں تاریخیں دکھائے گا، SLA انجن کے استعمال کے لیے۔ [Must]
FR-PUB-124 نظام فال بیک واقعات، stale اشیاء، اور نظرثانی کنندگان کی کارکردگی رپورٹ کرتا ایک ترجمہ قرض ڈیش بورڈ فراہم کرے گا۔ [Should]
FR-PUB-125 CI پائپ لائن درج ذیل پر ناکام ہو گا: (a) ہارڈکوڈڈ سٹرنگز، (b) کیٹلاگ کلید ہم آہنگی فرق، (c) ممنوع لغت میپنگز (مثلاً Department → وزارت)۔ [Must]
FR-PUB-126 نظام ہر صفحہ پر درست <html lang="..." dir="..."> مرتب کرے گا۔ [Must]
FR-PUB-127 بصری regression سویٹ ہر اسکرین کہانی کو LTR اور RTL دونوں میں چلائے گی۔ [Must]
FR-PUB-128 نظام تکثر کے لیے فی لوکیل کم از کم دو معتبر مقامی نظرثانی کنندگان برقرار رکھے گا۔ [Should]
FR-PUB-129 عددی رینڈرنگ (UR/SD نثر میں مشرقی عربی بمقابلہ لاطینی) کو Super Admin کے ذریعے فی لوکیل configurable ہو گا۔ [Could]

18. غیر فعلی تقاضے

ID تقاضہ MoSCoW
NFR-PUB-101 لوکیل تعین کنارے پر 5 ms سے کم میں مکمل ہو گا (کوکی/URL پڑھائی)؛ ہاٹ راستے پر کوئی DB کال نہیں۔ [Must]
NFR-PUB-102 فعلی لوکیل کا فونٹ پے لوڈ (woff2، subset) پہلی پینٹ پر 200 KB سے کم ہو گا۔ [Must]
NFR-PUB-103 کسی صفحہ پر لوکیل بدلنا مکمل صفحہ ری لوڈ کو متحرک نہیں کرے گا جہاں فریم ورک تائید کرتا ہے (Next.js App Router مقامی)۔ [Should]
NFR-PUB-104 RTL اور LTR لے آؤٹس ایک ہی جزو درخت استعمال کریں گے (فی سمت دوہرے اجزاء نہیں)۔ [Must]
NFR-PUB-105 مصنوعات تینوں لوکیلز میں WCAG 2.1 AA مطابق ہو گی، فی ریلیز توثیق شدہ۔ [Must]
NFR-PUB-106 مشین ترجمہ ليٹنسي (بہ تقاضا صارف مواد ترجمہ) 2,000 حروف سے کم مواد کے لیے p95 3 سیکنڈ سے کم ہو گی۔ [Should]
NFR-PUB-107 ترجمہ قرض ڈیش بورڈ کم از کم روزانہ ریفریش ہو گا۔ [Should]
NFR-PUB-108 ہجری تبدیگی اعلان کردہ عوامی چھٹیوں کے لیے پاکستان سرکاری ہجری تاریخیں (چاند دیکھنے overrides) سے مطابقت رکھے گی۔ [Must]
NFR-PUB-109 تینوں لوکیلز مستقل طور پر crawl کے قابل رہیں گے (robots.txt میں کوئی لوکیل بلاک نہیں)۔ [Must]
NFR-PUB-110 کیٹلاگ کلید استقلال: کوئی زیرِ استعمال ترجمہ کلید متروک قرار دینے کے وقفے کے بغیر نام تبدیل نہیں ہو گی۔ [Must]

19. صارف کہانیاں

US-PUB-101 — بغیر جگہ کھوئے لوکیل بدلیں [Must]

بطورِ کمپنی نمائندہ میں چاہتا ہوں نشست کے بیچ میں پورٹل کو انگریزی سے اردو پر بدلنا تاکہ میں اپنی پسند کی زبان میں مواد پڑھ سکوں بغیر وہ ٹکٹ یا صفحہ کھوئے جسے میں دیکھ رہا تھا۔

قبول کے معیار (Gherkin)

Scenario: Locale switch preserves location
  Given a Company Representative is viewing ticket SITP-2026-LBR-000123 in the English locale
  When they click the locale switcher and select Urdu
  Then the URL rewrites to the /ur/ prefix for the same ticket
  And the page re-renders in Urdu with right-to-left direction
  And the same ticket SITP-2026-LBR-000123 remains on screen
  And the sitp_locale cookie is set to "ur"
  And their user record's locale is persisted as "ur"

US-PUB-102 — تاریخیں گریگورین اور ہجری دونوں میں دیکھیں [Must]

بطورِ افسر میں چاہتا ہوں کسی ٹکٹ کی ہر تاریخ گریگورین اور ہجری دونوں دکھائے تاکہ میری سرکاری خط و کتابت سرکاری روایت سے مطابقت رکھے۔

قبول کے معیار (Gherkin)

Scenario: Dual calendar display
  Given an Officer is viewing a ticket with created-at 2026-07-17 14:30 PKT
  Then the created-at timestamp shows "17 Jul 2026" (Gregorian)
  And beside or beneath it shows the corresponding Hijri date
  And both are rendered in the Officer's locale numeral format

US-PUB-103 — بہ تقاضا کسی آنے والے اردو ٹکٹ کا ترجمہ کریں [Should]

بطورِ انگریزی لوکیل والا افسر میں چاہتا ہوں اردو میں داخل شدہ ٹکٹ پر "ترجمہ" کلک کرنا تاکہ میں اپنی انگریزی نشست چھوڑے بغیر اسے سمجھ سکوں۔

قبول کے معیار (Gherkin)

Scenario: On-demand machine translation
  Given an Officer with locale "en" is viewing a ticket whose description was authored in Urdu
  When they click the "Translate" affordance
  Then the system returns an English rendering via the AI translation capability
  And the rendering is clearly labelled "Machine translation"
  And the original Urdu text is preserved as the record
  And an audit row is written recording the translation call

US-PUB-104 — خاموش انگریزی فال بیک کبھی نہ دیکھیں [Must]

بطورِ سندھی لوکیل صارف میں چاہتا ہوں جاننا کب کوئی مواد اس لیے انگریزی میں دکھائی دے رہا ہے کیونکہ سندھی نسخہ غائب ہے تاکہ مجھے غیر متوقع زبان کی تبدیلی سے الجھن نہ ہو۔

قبول کے معیار (Gherkin)

Scenario: Visible fallback marker
  Given the Sindhi locale catalog is missing the key "tickets.newBadge.tooltip"
  When a Sindhi-locale user views the ticket list
  Then the tooltip shows the English string
  And the tooltip is rendered with the fallback marker (dotted underline or EN badge)
  And the missing key is logged to the translation debt dashboard

US-PUB-105 — نظرثانی کنندہ ایک AI ترجمہ مسودہ منظور کرے [Must]

بطورِ مقامی اردو نظرثانی کنندہ میں چاہتا ہوں نئے تحریر کردہ KB مضمون کا AI تیار کردہ اردو مسودہ نظرثانی کرنا تاکہ صرف درست، لغت کے مطابق اردو عوامی سائٹ تک پہنچے۔

قبول کے معیار (Gherkin)

Scenario: Native review gate
  Given a KB article was authored in English and the AI translation pass produced an Urdu draft
  And the draft's status is "ai-draft"
  When the reviewer opens the review workbench
  Then they see the English source, the Urdu draft, and the glossary-approved terms side by side
  And they can edit the draft inline
  And on approval the status moves to "approved" and then "published"
  And their edits are saved to the AI tuning corpus

20. ٹیسٹ کیسز

ID احاطہ کرتا ہے منظرنامہ
TC-PUB-101-01 FR-PUB-102 گمنام طور پر /ur/tickets/... کا دور کریں؛ تصدیق کریں کہ لوکیل ur حل ہو، dir=rtl، کوکی مرتب۔
TC-PUB-104-01 FR-PUB-104 اس PR پر لنٹ چلائیں جو ہارڈکوڈڈ JSX سٹرنگ متعارف کراتا ہے؛ تصدیق کریں کہ بلڈ ناکام ہو۔
TC-PUB-105-01 FR-PUB-105 کلید tickets.foo صرف en/tickets.json میں شامل کریں؛ تصدیق کریں کہ CI ہم آہنگی چیک غائب ur/sd پر ناکام ہو۔
TC-PUB-107-01 FR-PUB-107 ٹکٹ فہرست کہانی ur میں رینڈر کریں؛ تصدیق کریں کہ <html dir="rtl"> اور leading کنارے پر logical-property padding ہو۔
TC-PUB-108-01 FR-PUB-108 ur میں ایک "واپس" آئیکن بٹن رینڈر کریں؛ تصدیق کریں کہ آئیکن en کے مقابلے میں mirror ہوا۔
TC-PUB-110-01 FR-PUB-110 ur میں ٹکٹ created-at رینڈر کریں؛ تصدیق کریں کہ گریگورین اور ہجری دونوں سٹرنگز ظاہر ہوں۔
TC-PUB-114-01 FR-PUB-114 اردو پیراگراف کے اندر ٹکٹ ID رینڈر کریں؛ تصدیق کریں کہ وہ dir="ltr" اور لاطینی میں لپٹا ہو۔
TC-PUB-115-01 FR-PUB-115 sd/common.json سے کلید x حذف کریں؛ صفحہ سندھی میں رینڈر کریں؛ تصدیق کریں کہ علامت کے ساتھ انگریزی فال بیک ہو۔
TC-PUB-119-01 FR-PUB-119 "Department" پر مشتمل ایک EN سٹرنگ AI ترجمہ کریں؛ تصدیق کریں کہ پیداوار محڪمو (SD) استعمال کرے، کبھی وزارت نہیں۔
TC-PUB-120-01 FR-PUB-120 بغیر نظرثانی کے ایک ai-draft UR شے شائع کرنے کی کوشش کریں؛ تصدیق کریں کہ اشاعت سے انکار ہو۔
TC-PUB-125-01 FR-PUB-125 ایسا PR جمع کریں جس کا UR کیٹلاگ "Department" کو وزارت رینڈر کرے؛ تصدیق کریں کہ CI ممنوع میپنگ چیک بلڈ ناکام کر دے۔
TC-PUB-127-01 FR-PUB-127 تبدیل شدہ ٹکٹس صفحہ کہانی کے لیے بصری regression سویٹ ltr اور rtl دونوں میں چلائیں؛ تصدیق کریں کہ دونوں پاس ہوں۔

21. کھلے سوالات / TBD

# شے صورتحالت
1 UR/SD نثر میں عددی طے شدہ: طے شدہ طور پر مشرقی عربی، یا لاطینی؟ تجویز: نثر میں مشرقی عربی، ڈیٹا کثیر UI میں لاطینی، configurable۔ تجویز · TBD منظوری
2 ہجری تبدیلی ماخذ: اعلان کردہ چھٹیوں کے لیے Umm al-Qura الگورتھم بمقابلہ پاکستان Ruet-e-Hilal Committee چاند دیکھنے overrides۔ تجویز: الگورتھم + ops کے ذریعے محفوظ override ٹیبل۔ TBD
3 کیا باریک SEO ہدف کاری کے لیے hreflang میں en-PK / ur-PK / sd-PK علاقائی ذیلی ٹیگز شامل کیے جائیں، یا برہنہ en/ur/sd پر رکیں۔ TBD
4 لانچ پر فی لوکیل معتبر مقامی نظرثانی کنندگان کی تعداد (FR-PUB-128 میں کم از کم 2 تجویز)۔ TBD اسٹافنگ
5 کیا صارف مواد کا بہ تقاضا مشین ترجمہ محفوظ (cached) کیا جائے یا ہمیشہ دوبارہ تیار کیا جائے۔ TBD
6 سیلف ہوسٹڈ فونٹ subsetting ٹولنگ (pyftsubset بمقابلہ fonttools پائپ لائن) — بلڈ سیٹ اپ پر تصدیق شدہ۔ TBD ٹولنگ
7 کیا کسی چوتھی زبان (مثلاً پشتو، بلوچی) میں شہری کا جمع کردہ آزاد متن V1 کے دائرۂ کار میں ہے یا ملتوی۔ ملتوی (V2 اشارہ)

دستاویز کا اختتام۔