ಅಭಿವೃದ್ಧಿ
ಅಭಿವೃದ್ಧಿ ಮಾರ್ಗದರ್ಶಿ
ಇಂಗ್ಲಿಷ್ ಮಾತ್ರ ತಿದ್ದಿ; ಭಾಷಾಂತರಗಳು ಸ್ವಯಂ ಹರಡುತ್ತವೆ
ದಾಖಲೆಗಳನ್ನು website/docs (English) ಒಳಗೇ ಮಾತ್ರ ನವೀಕರಿಸಿ. website/i18n/<locale>/… ಅಡಿಯಲ್ಲಿನ ಭಾಷಾಂತರಗಳು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸೃಜಿಸಲಾಗುತ್ತವೆ; ಕೈಯಾರೆ ಸಂಪಾದಿಸಬಾರದು. ಸ್ಥಳೀಕೃತ ವಿಷಯವನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡಲು ಭಾಷಾಂತರ ಕಾರ್ಯಗಳನ್ನು (ಉದಾ., make translate_web_docs_batch) ಬಳಸಿ.
ಪೂರ್ವಾಪೇಕ್ಷಿತಗಳು
- Node.js 22+ ಮತ್ತು npm (Node 22 ಜೊತೆ ಪರೀಕ್ಷಿಸಲಾಗಿದೆ)
- Thunderbird 128 ESR ಅಥವಾ ಅದರ ನಂತರದ ಆವೃತ್ತಿ (ಕೈಯಾರೆ ಪರೀಕ್ಷೆಗೆ)
ಯೋಜನೆಯ ವಿನ್ಯಾಸ (ಉನ್ನತ‑ಮಟ್ಟ)
- Root: ಪ್ಯಾಕೇಜಿಂ ಗ್ ಸ್ಕ್ರಿಪ್ಟ್
distribution_zip_packer.sh, ಡಾಕ್ಸ್, ಸ್ಕ್ರೀನ್ಶಾಟ್ಗಳು sources/: ಮುಖ್ಯ add-on ಕೋಡ್ (background, options/popup UI, manifests, icons)tests/: Vitest ಸೂಟ್website/: Docusaurus ಡಾಕ್ಸ್ (website/i18n/de/...ಅಡಿಯಲ್ಲಿ i18n ಸಹಿತ)
ಸ್ಥಾಪನೆ ಮತ್ತು ಉಪಕರಣಗಳು
- ಮೂಲ ಅವಲಂಬನೆಗಳನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ:
npm ci - ಡಾಕ್ಸ್ (ಐಚ್ಛಿಕ):
cd website && npm ci - ಟಾರ್ಗೆಟ್ಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಿ:
make help
ಲೈವ್ ಡೆವ್ (web‑ext run)
- Firefox Desktop ನಲ್ಲಿ ತ್ವರಿತ ಲೂಪ್ (ಕೆವಲ UI smoke‑tests):
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’s Error Console ಅನ್ನು ತೆರೆಯಿಟ್ಟಿರಿಸಿ (Tools → Developer Tools → Error Console).
- MV3 event ಪುಟಗಳು idle ಆಗಿದ್ದಾಗ ಸ್ಥಗಿತಗೊಳ್ಳುತ್ತವೆ; ಕೋಡ್ ಬದಲಾದ ನಂತರ add‑on ಅನ್ನು ಮರುಲೋಡ್ ಮಾಡಿ, ಅಥವಾ web‑ext auto‑reload ಆಗಲು ಬಿಡಿ.
- ಕೆಲ Firefox‑ಮಾತ್ರ ವರ್ತನೆಗಳಲ್ಲಿ ವ್ಯತ್ಯಾಸವಿರಬಹುದು; Thunderbird ನಲ್ಲಿ ಸದಾ ಪರಿಶೀಲಿಸಿ API ಸಮಪಾಲಿತತೆಗೆ.
- Thunderbird binary ಪಾತ್ಗಳು (ಉದಾಹರಣೆಗಳು):
- Linux:
thunderbird(ಉದಾ.,/usr/bin/thunderbird) - macOS:
/Applications/Thunderbird.app/Contents/MacOS/thunderbird - Windows:
"C:\\Program Files\\Mozilla Thunderbird\\thunderbird.exe" - ಪ್ರೊಫೈಲ್ ಐಸೋಲೇಶನ್: ನಿಮ್ಮ ದೈನಂದಿನ ಸೆಟ್ಅಪ್ಗೆ ಪರಿಣಾಮ ಬೀರದಂತೆ ಡೆವಲಪ್ಮೆಂಟ್ಗೆ ಪ್ರತ್ಯೇಕ Thunderbird ಪ್ರೊಫೈಲ್ ಅನ್ನು ಬಳಸಿ.
Make ಗುರಿಗಳು (ಅಕ್ಷರಕ್ರಮವಾಗಿ)
Makefile ಸಾಮಾನ್ಯ ಡೆವ್ ಫ್ಲೋಗಳನ್ನು ಪ್ರಮಾಣಿತಗೊಳಿಸುತ್ತದೆ. ಪ್ರತೀ ಗುರಿಯ ಒಂದು ಸಾಲಿನ ಸಾರಾಂಶಕ್ಕಾಗಿ ಯಾವಾಗ ಬೇಕಾದರೂ make help ರನ್ ಮಾಡಿರಿ.
ಸಲಹೆ: make ಅನ್ನು ಯಾವುದೇ ಗುರಿ ನೀಡದೇ ರನ್ ಮಾಡಿದರೆ, ಗುರಿ ಆಯ್ಕೆಮಾಡಲು ಸರಳ Whiptail ಮೆನು ತೆರೆಯುತ್ತದೆ.
| ಗುರಿ | ಒಂದು ಸಾಲಿನ ವಿವರಣೆ |
|---|---|
clean | ಸ್ಥಳೀಯ build/preview ಆರ್ಕಿಫ್ಯಾಕ್ಟ್ಗಳನ್ನು ತೆಗೆದುಹಾಕಿ (tmp/, web-local-preview/, website/build/). |
commit | ಫಾರ್ಮಾಟ್, ಪರೀಕ್ಷೆ (i18n ಸೇರಿ), changelog ನವೀಕರಿಸಿ, commit & push ಮಾಡಿ. |
eslint | flat config ಮೂಲಕ ESLint ರನ್ ಮಾಡಿ (npm run -s lint:eslint). |
help | ಎಲ್ಲಾ ಗುರಿಗಳನ್ನು ಒಂದು ಸಾಲಿನ ಡಾಕ್ಸ್ ಜೊತೆಗೆ ಪಟ್ಟಿ ಮಾಡಿ (ಸೋರ್ಟೆಡ್). |
lint | sources/ ಮೇಲೆ web‑ext lint (ತಾತ್ಕಾಲಿಕ manifest; ZIPಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸುತ್ತದೆ; ಘೋರವಲ್ಲ). |
menu | ಗುರಿ ಮತ್ತು ಐಚ್ಛಿಕ ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳನ್ನು ಆಯ್ಕೆಮಾಡಲು ಸಂವಹನಾತ್ಮಕ ಮೆನು. |
pack | ATN ಮತ್ತು LOCAL ZIPಗಳನ್ನು ಕಟ್ಟಲು (linter ರನ್ ಆಗುತ್ತದೆ; packer ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಕರೆದು). |
prettier | ರೆಪೊಸಿಟರಿಯನ್ನು ಸ್ಥಳದಲ್ಲೇ ಫಾರ್ಮಾಟ್ ಮಾಡಿ (ಬದಲಾವಣೆಗಳನ್ನು ಬರೆಯುತ್ತದೆ). |
prettier_check | Prettier check ಮೋಡ್ (ಬರಹವಿಲ್ಲ); ಮರುಫಾರ್ಮಾಟ್ ಅಗತ್ಯವಿದ್ದರೆ ವೈಫಲ್ಯ. |
prettier_write | prettier ಗಾಗಿ ಅಲಿಯಾಸ್. |
test | Prettier (write), ESLint, ನಂತರ Vitest (ಕಾನ್ಫಿಗರ್ ಮಾಡಿದರೆ coverage). |
test_i18n | i18n‑ಮಾತ್ರ ಪರೀಕ್ಷೆಗಳು: add‑on placeholders/parity + ವೆಬ್ಸೈಟ್ parity. |
translate_app | translation_app ಗಾಗಿ ಅಲಿಯಾಸ್. |
translation_app | sources/_locales/en/messages.json ನಿಂದ ಅಪ್ಲಿಕೇಶನ್ UI ಸ್ಟ್ರಿಂಗ್ಗಳನ್ನು ಭಾಷಾಂತರಿಸಿ. |
translate_web_docs_batch | ವೆಬ್ಸೈಟ್ ಡಾಕ್ಸ್ಗಳನ್ನು OpenAI Batch API ಮೂಲಕ ಭಾಷಾಂತರಿಸಿ (ಶಿಫಾರಸು). |
translate_web_docs_sync | ವೆಬ್ಸೈಟ್ ಡಾಕ್ಸ್ಗಳನ್ನು synchronousವಾಗಿ ಭಾಷಾಂತರಿಸಿ (ಪಾರಂಪರಿಕ, non-batch). |
translate_web_index | translation_web_index ಗಾಗಿ ಅಲಿಯಾಸ್. |
translation_web_index | ಮುಖ್ಯಪುಟ/navbar/footer 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 ನಲ್ಲಿ auto‑serve; ಐಚ್ಛಿಕ ಪರೀಕ್ಷೆ/ಲಿಂಕ್‑ಚೆಕ್. |
web_push_github | website/build ಅನ್ನು gh-pages ಬ್ರಾಂಚ್ಗೆ push ಮಾಡಿ. |
ಆಯ್ಕೆಗಳ ವ್ಯಾಕರಣ
- ಆಯ್ಕೆಗಳನ್ನು ಪಾಸ್ ಮಾಡಲು
make <command> OPTS="…"ಬಳಸಿ (ಉಲ್ಲೇಖ ಗುರುತು ಶಿಫಾರಸು). ಕೆಳಗಿನ ಪ್ರತಿಯೊಂದು ಗುರಿಯಲ್ಲೂ ಉದಾಹರಣೆಯ ಬಳಕೆ ತೋರಿ ಸಲಾಗಿದೆ.
--
ಸ್ಥಳೀಯತೆ build ಸಲಹೆಗಳು
- ಕೆಲವು localeಗಳನ್ನೇ build ಮಾಡಲು:
BUILD_LOCALES="en de"ಸೆಟ್ ಮಾಡಿ ಅಥವಾOPTS="--locales en,de"ಅನ್ನು web ಗುರಿಗಳಿಗೆ ಪಾಸ್ ಮಾಡಿ. - ನಿರ್ದಿಷ್ಟ locale ಪೂರ್ವವೀಕ್ಷಣೆ:
http://localhost:<port>/Thunderbird-Reply-with-Attachments/de/.
Build ಮತ್ತು ಪ್ಯಾಕೇಜ್
- ZIPಗಳನ್ನು ಕಟ್ಟಿರಿ:
make pack - ರೆಪೊ root ನಲ್ಲಿ ATN ಮತ್ತು LOCAL ZIPಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ (ಕೈಯಾರೆ artifacts ಸಂಪಾದಿಸಬೇಡಿ)
- ಸಲಹೆ: ಪ್ಯಾಕೇಜಿಂಗ್ ಮಾಡುವ ಮೊದಲು
sources/manifest_ATN.jsonಹಾಗೂsources/manifest_LOCAL.jsonಎರಡರಲ್ಲೂ version ಅನ್ನು ನವೀಕರಿಸಿ - ಕೈಯಾರೆ ಇನ್ಸ್ಟಾಲ್ (ಡೆವ್): Thunderbird → Tools → Add‑ons and Themes → gear → Install Add‑on From File… → ನಿರ್ಮಿತ ZIP ಆಯ್ಕೆಮಾಡಿ
ಪರೀಕ್ಷೆ
- ಸಂಪೂರ್ಣ ಸೂಟ್:
make test(Vitest) - Coverage (ಐಚ್ಛಿಕ):
npm i -D @vitest/coverage-v8make testರನ್ ಮಾಡಿ; HTML ವರದಿಗಾಗಿcoverage/index.htmlತೆರೆಯಿರಿ- i18n ಮಾತ್ರ:
make test_i18n(UI keys/placeholders/titles + ವೆಬ್ಸೈಟ್ ಪ್ರತಿ‑locale ಪ್ರತಿ‑ಡಾಕ್ parity with id/title/sidebar_label ಚೆಕ್ಗಳು)
ದೋಷನಿವಾರಣೆ ಮತ್ತು ಲಾಗ್ಗಳು
- Error Console: Tools → Developer Tools → Error Console
- runtime ನಲ್ಲಿ verbose logs ಟೊಗಲ್ ಮಾಡಿ:
- ಸಕ್ರಿಯಗೊಳಿಸಿ:
messenger.storage.local.set({ debug: true }) - ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ:
messenger.storage.local.set({ debug: false }) - ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ಬರೆಯುವ/ಕಳುಹಿಸುವಾಗ ಲಾಗ್ಗಳು ಕಾಣಿಸುತ್ತವೆ