ਵਿਕਾਸ
ਵਿਕਾਸ ਗਾਈਡ
ਸਿਰਫ਼ ਅੰਗਰੇਜ਼ੀ ਸੋਧੋ; ਅਨੁਵਾਦ ਆਪ-ਮਾਤਰਾ ਫੈਲਦੇ ਹਨ
ਦਸਤਾਵੇਜ਼ੀਕਰਨ ਕੇਵਲ website/docs (English) ਹੇਠਾਂ ਅੱਪਡੇਟ ਕਰੋ। 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 ਸਮਾਨਤਾ ਲਈ ਹਮੇਸ਼ਾ 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 | flat ਕਨਫਿਗ ਰਾਹੀਂ ESLint ਚਲਾਓ (npm run -s lint:eslint)। |
help | ਸਾਰੇ ਟਾਰਗੇਟ ਇੱਕ‑ਲਾਈਨ ਡੌਕਸ ਸਮੇਤ (ਸੌਰਟ ਕੀਤੇ) ਲਿਸਟ ਕਰੋ। |
lint | sources/ ‘ਤੇ web‑ext lint (ਅਸਥਾਈ ਮੈਨੀਫੈਸਟ; ZIP ਅਣਡਿੱਠੇ; ਗੈਰ‑ਘਾਤਕ)। |
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/।
ਬਿਲਡ ਅਤੇ ਪੈਕੇਜ
- ZIPs ਬਣਾਓ:
make pack - ਰਿਪੋ ਰੂਟ ਵਿੱਚ ATN ਅਤੇ LOCAL ZIPs ਬਣਾਉਂਦਾ ਹੈ (ਆਰਟੀਫੈਕਟ ਹੱਥੋਂ ਨਾ ਸੋਧੋ)
- ਟਿਪ: ਪੈਕੇਜਿੰਗ ਤੋਂ ਪਹਿਲਾਂ ਵਰਜਨ
sources/manifest_ATN.jsonਅਤੇsources/manifest_LOCAL.jsonਦੋਹਾਂ ਵਿੱਚ ਅੱਪਡੇਟ ਕਰੋ - ਹੱਥੋਂ ਇੰਸਟਾਲ (ਡਿਵ): Thunderbird → Tools → Add‑ons and Themes → ਗਿਅਰ → Install Add‑on From File… → ਬਣੀ ਹੋਈ ZIP ਚੁਣੋ
ਟੈਸਟ
- ਪੂਰਾ ਸੂਟ:
make test(Vitest) - ਕਵਰੇਜ (ਵਿਕਲਪਿਕ):
npm i -D @vitest/coverage-v8make testਚਲਾਓ; HTML ਰਿਪੋਰਟ ਲਈcoverage/index.htmlਖੋਲ੍ਹੋ- ਕੇਵਲ i18n:
make test_i18n(UI keys/placeholders/titles + ਵੈੱਬਸਾਈਟ ਪ੍ਰਤੀ‑ਲੋਕੇਲ ਪ੍ਰਤੀ‑ਦਸਤਾਵੇਜ਼ ਸਮਾਨਤਾ id/title/sidebar_label ਜਾਂਚਾਂ ਨਾਲ)
ਡਿਬੱਗਿੰਗ ਅਤੇ ਲੌਗ
- Error Console: Tools → Developer Tools → Error Console