Զարգացում
Զարգացման ուղեցույց
Խմբագրեք միայն անգլերենը; թարգմանությունները տարածվում են
Թարմացրեք փաստաթղթավորումը միայն website/docs (անգլերեն) ծառի տակ։ website/i18n/<locale>/… տակ գտնվող թարգմանությունները գեներացվում են և չպետք է ձեռքով խմբագրվեն։ Օգտագործեք թարգմանության առաջադրանքները (օր.՝ make translate_web_docs_batch)՝ տեղայնացված բովանդակությունը թարմացնելու համար։
Նախապայմաններ
- Node.js 22+ և npm (թեստավորված է Node 22-ով)
- Thunderbird 128 ESR կամ նոր (ձեռնարկային թեստավորման համար)
Նախագծի կառուցվածք (բարձր մակարդակ)
- Արմատ (Root). փաթեթավորման սկրիպտ
distribution_zip_packer.sh, փաստաթղթեր, սքրինշոթներ sources/: հավելման հիմնական կոդը (background, options/popup UI, manifests, icons)tests/: Vitest փաթեթwebsite/: Docusaurus փաստաթղթեր (i18nwebsite/i18n/de/...տակ)
Տեղադրում և գործիքներ
- Տեղադրել արմատային կախյալությունները.
npm ci - Փաստաթղթեր (ըստ ցանկության).
cd website && npm ci - Հայտնաբերել թիրախները.
make help
Կենդանի զարգացում (web‑ext run)
- Արագ ցիկլ Firefox Desktop-ում (միայն UI smoke-թեստեր).
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 event էջերը անգործության դեպքում կանգնեցվում են. կոդի փոփոխություններից հետո վերաբեռնեք հավելումը կամ թողեք web‑ext-ը՝ ինքնաբար վերաբեռնելու։
- Որոշ միայն-Firefox վարքեր տարբերվում են. միշտ հաստատեք Thunderbird-ում՝ API համարժե քության համար։
- Thunderbird-ի բինար ուղիներ (օրինակներ).
- 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 | Գործարկել ESLint-ը flat config-ով (npm run -s lint:eslint)։ |
help | Ցուցադրել բոլոր թիրախները մեկ տողի փաստաթղթերով (տեսակավորված)։ |
lint | web‑ext lint sources/ վրա (ժամանակավոր manifest; անտեսում է ZIP-երը; ոչ մահացու)։ |
menu | Ինտերակտիվ մենյու՝ թիրախ և ըստ ցանկության արգումենտներ ընտրելու համար։ |
pack | Կառուցել ATN և LOCAL ZIP-եր (գործարկում է linter; կանչում է packer սկրիպտը)։ |
prettier | Ֆորմատավորել պահոցը տեղում (գրում է փոփոխությունները)։ |
prettier_check | Prettier ստուգման ռեժիմում (առանց գրելու). ձախողում է, եթե պահանջվում է վերաֆորմատավորում։ |
prettier_write | Այլանուն prettier-ի համար։ |
test | Prettier (գրել), ESLint, ապա Vitest (ծածկույթ՝ եթե կարգավորված է)։ |
test_i18n | Միայն i18n թեստեր. հավելման placeholders/համապատասխանություն + կայքի համապատասխանություն։ |
translate_app | Այլանուն translation_app-ի համար։ |
translation_app | Թարգմանել հավելման UI տողերը sources/_locales/en/messages.json-ից։ |
translate_web_docs_batch | Թարգմանել կայքի փաստաթղթերը OpenAI Batch API-ով (նախընտրելի)։ |
translate_web_docs_sync | Թարգմանել կայքի փաստաթղթերը համաժամանակյա (ժառանգական, ոչ-batch)։ |
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 | Push անել website/build-ը gh-pages ճյուղ։ |
Սինտաքս ընտրանքների համար
- Օգտագործեք
make <command> OPTS="…"՝ ընտրանքներ փոխանցելու համար (խորհուրդ է տրվում չակերտները)։ Ստորև բերված յուրաքանչյուր թիրախը ցույց է տալիս օգտագործման օրինակ։
--
Լոկալների հավաքման խորհուրդներ
- Կառուցել լոկալների ենթաբազմությունը. կարգավորեք
BUILD_LOCALES="en de"կամ փոխանցեքOPTS="--locales en,de"web թիրախներին։ - Նախադիտել կոնկրետ locale.
http://localhost:<port>/Thunderbird-Reply-with-Attachments/de/։
Կառուցել և փաթեթավորել
- Կառուցել ZIP-եր.
make pack - Ստեղծում է ATN և LOCAL ZIP-եր պահոցի արմատում (չխմբագրել արտեֆակտները ձեռքով)
- Խորհուրդ. փաթեթավորելուց առաջ թարմացրեք տարբերակը թե՛
sources/manifest_ATN.json-ում, թե՛sources/manifest_LOCAL.json-ում - Ձեռնարկային տեղադրում (dev). Thunderbird → Tools → Add‑ons and Themes → ատամնանիվ → Install Add‑on From File… → ընտրեք կառուցված ZIP-ը
Թեստ
- Լիարժեք փաթեթ.
make test(Vitest) - Ծածկույթ (ըստ ցանկության).
npm i -D @vitest/coverage-v8- Գործարկեք
make test; բացեքcoverage/index.html՝ HTML հաշվետվության համար - Միայն i18n.
make test_i18n(UI բանալիներ/placeholders/վերնագրեր + կայք՝ յուրաքանչյուր locale/յուրաքանչյուր փաստաթուղթ համապատասխանություն id/title/sidebar_label ստուգումներով)
Վրիպազերծում և լոգեր
- Error Console. Tools → Developer Tools → Error Console
- Փոխարկել մանրամասն լոգերը գործարկման ընթացքում.
- Միացնել.
messenger.storage.local.set({ debug: true }) - Անջատել.
messenger.storage.local.set({ debug: false }) - Լոգերը երևում են պատասխանի կազմման/ուղարկման ընթացքում