ڈیولپمنٹ
ڈویلپمنٹ گائیڈ
صرف انگریزی میں ترمیم کریں؛ ترجمے خود بخود پھیلتے ہیں
دستاویزی مواد میں ترمیم صرف website/docs (انگریزی) کے تحت کریں۔ website/i18n/<locale>/… کے تحت ترجمے خودکار طور پر بنتے ہیں اور انہیں دستی طور پر نہ چھیڑیں۔ مقامی مواد تازہ کرنے کے لیے ترجمہ ٹاسکس استعمال کریں (مثلاً make translate_web_docs_batch)۔
پیشگی ضروریات
- Node.js 22+ اور npm (Node 22 کے ساتھ آزمودہ)
- Thunderbird 128 ESR یا نیا (دستی ٹیسٹنگ کے لیے)
پروجیکٹ کی ساخت (اعلی سطح)
- روٹ: پیکیجنگ اسکرپٹ
distribution_zip_packer.sh, ڈاکس، اسکرین شاٹس sources/: مین ایڈ اون کوڈ (بیک گراؤنڈ، آپشنز/پاپ اپ UI، مینفسٹس، آئیکنز)tests/: Vitest سوٹwebsite/: Docusaurus ڈاکس (i18nwebsite/i18n/de/...کے تحت)
انسٹال اور ٹولنگ
- روٹ ڈِپس انسٹال کریں:
npm ci - ڈاکس (اختیاری):
cd website && npm ci - ٹارگٹس دریافت کریں:
make help
لائیو ڈیو (web‑ext run)
- Firefox ڈیسک ٹاپ میں فوری لوپ (صرف UI اسموک ٹیسٹس):
npx web-ext run --source-dir sources --target=firefox-desktop- Thunderbird میں چلائیں (MailExtensions کے لیے ترجیحی):
npx web-ext run --source-dir sources --start-url about:addons --firefox-binary "$(command -v thunderbird || echo /path/to/thunderbird)"- ٹپس:
- Thunderbird کا Error Console کھلا رکھیں (Tools → Developer Tools → Error Console)۔
- MV3 ایونٹ پیجز عدم سرگرمی پر معطل ہو جاتے ہیں؛ کوڈ بدلنے کے بعد ایڈ اون ری لوڈ کریں، یا web‑ext کو خودکار ری لوڈ کرنے دیں۔
- کچھ صرف Firefox رویّے مختلف ہو سکتے ہیں؛ API parity کے لیے ہمیشہ Thunderbird میں تصدیق کریں۔
- Thunderbird بائنری راستے (مثالیں):
- Linux:
thunderbird(مثلاً/usr/bin/thunderbird) - macOS:
/Applications/Thunderbird.app/Contents/MacOS/thunderbird - Windows:
"C:\\Program Files\\Mozilla Thunderbird\\thunderbird.exe" - پروفائل الگ تھلگ رکھنا: اپنے روزمرہ سیٹ اپ پر اثر سے بچنے کے لیے ڈویلپمنٹ کے لیے الگ Thunderbird پروفائل استعمال کریں۔
میک ٹارگٹس (حروفِ تہجی کے مطابق)
Makefile عام ڈیو فلو کو معیاری بناتا ہے۔ ہر ہدف کی ایک لائن خلاصہ کے لیے جب چاہیں make help چلائیں۔
مشورہ: کسی ہدف کے بغیر make چلانے سے ایک سادہ Whiptail مینو کھلتا ہے جس میں سے ہدف منتخب کریں۔
| ہدف | ایک لائن کی وضاحت |
|---|---|
clean | مقامی بلڈ/پری ویو آرٹی فیکٹس ہٹائیں (tmp/, web-local-preview/, website/build/)۔ |
commit | فارمیٹ کریں، ٹیسٹس چلائیں (بشمول i18n)، چینج لاگ اپڈیٹ کریں، کمٹ اور پش کریں۔ |
eslint | ESLint فلیٹ کنفیگ کے ذریعے چلائیں (npm run -s lint:eslint)۔ |
help | تمام ٹارگٹس ایک لائن ڈاکس کے ساتھ فہرست کریں (ترتیب وار)۔ |
lint | sources/ پر web‑ext lint (عارضی مینفسٹ؛ ZIPs کو نظر انداز؛ غیر مہلک)۔ |
menu | انٹرایکٹو مینو جس سے ہدف اور اختیاری آرگیومنٹس منتخب کریں۔ |
pack | ATN اور LOCAL ZIPs بنائیں (لنٹر چلاتا ہے؛ پیکر اسکرپٹ کو کال کرتا ہے)۔ |
prettier | ریپوزٹری کو وہیں فارمیٹ کریں (تبدیلیاں لکھتا ہے)۔ |
prettier_check | Prettier چیک موڈ میں (کوئی لکھائی نہیں)؛ دوبارہ فارمیٹ درکار ہو تو فیل ہو گا۔ |
prettier_write | prettier کا عرف۔ |
test | Prettier (write)، پھر ESLint، پھر Vitest (اگر کنفیگرڈ ہو تو کوریج)۔ |
test_i18n | صرف i18n ٹیسٹس: ایڈ اون پلیس ہولڈرز/پیراٹی + ویب سائٹ پیراٹی۔ |
translate_app | translation_app کا عرف۔ |
translation_app | ایپ UI سٹرنگز کا ترجمہ sources/_locales/en/messages.json سے۔ |
translate_web_docs_batch | ویب سائٹ ڈاکس کا ترجمہ OpenAI Batch API کے ذریعے (ترجیحی)۔ |
translate_web_docs_sync | ویب سائٹ ڈاکس کا متزامناً ترجمہ (لیگیسی، نان بیچ)۔ |
translate_web_index | translation_web_index کا عرف۔ |
translation_web_index | ہوم پیج/نیویگیشن بار/فُٹر UI کا ترجمہ (website/i18n/en/code.json → .../<lang>/code.json)۔ |
web_build | ڈاکس کو website/build پر بلڈ کریں (--locales / BUILD_LOCALES سپورٹ)۔ |
web_build_linkcheck | آف لائن محفوظ لنک چیک (دور دراز HTTP[S] چھوڑتا ہے)۔ |
web_build_local_preview | مقامی gh‑pages پری ویو؛ 8080–8090 پر خودکار سرور؛ اختیاری ٹیسٹس/لنک چیک۔ |
web_push_github | website/build کو gh-pages برانچ پر پش کریں۔ |
اختیارات کے لیے ترکیب
- اختیارات دینے کے لیے
make <command> OPTS="…"استعمال کریں (قوسین تجویز کردہ)۔ نیچے ہر ہدف کے ساتھ مثال استعمال دکھایا گیا ہے۔
--
لوکیل بلڈ تجاویز
- چند لوکیلز ہی بلڈ کریں:
BUILD_LOCALES="en de"سیٹ کریں یاOPTS="--locales en,de"ویب ٹارگٹس کو دیں۔ - کسی خاص لوکیل کا پری ویو:
http://localhost:<port>/Thunderbird-Reply-with-Attachments/de/۔