Skip to main content

Misooma


Qajeelfama Misoomaa

Afaan Ingiliffaa qofaan gulaali; hiikkoonni ofumaan ni tamsa’u

Sanadoota ragaa (documentation) qofa jalatti website/docs (Afaan Ingiliffaa) keessatti haaromsi. Hiikkoonni website/i18n/<locale>/… jalatti uumaman; harka qofaan hin gulaalamuu. Qabiyyee bifa‑naannoo (localized) haaromsuuf hojii hiikkaa fayyadami (fakkeenyaaf, make translate_web_docs_batch).

Durtii

  • Node.js 22+ fi npm (Node 22 waliin qoratame)
  • Thunderbird 128 ESR yookaan isaa oli (qorannoo harkaatiin)

Sirna Projeektii (sadarkaa ol‑aanaa)

  • Bu’uura (root): sirna paakeejii distribution_zip_packer.sh, docs, suuraawwan (screenshots)
  • sources/: koodii dabalataa (background, options/popup UI, manifests, icons)
  • tests/: walgitiinsa Vitest
  • website/: Docusaurus docs (i18n jalatti website/i18n/de/... qaba)

Teessisuu fi Meeshaalee

  • Deps bu’uuraa fe’i: npm ci
  • Docs (filannoo): cd website && npm ci
  • Taargatoota barbaadi: make help

Misooma Itti‑Jiru (web‑ext run)

  • Muriidhaa saffisaa irratti Firefox Desktop (UI smoke‑tests qofa):
  • npx web-ext run --source-dir sources --target=firefox-desktop
  • Thunderbird keessa oofi (MailExtensions irratti filatamaa):
  • npx web-ext run --source-dir sources --start-url about:addons --firefox-binary "$(command -v thunderbird || echo /path/to/thunderbird)"
  • Gorsa:
  • Konsoolii Dogoggoraa Thunderbird banuu haala itti fufinsaatti eegi (Tools → Developer Tools → Error Console).
  • Fuuloleen event MV3 osoo hin hojjanne yemmuu turan ni dhaabbatu; koodiin jijjiiramee booda dabalataa irra deebiin fe’i, yookaan web‑ext akka ofumaan irra deebi’u hayyami.
  • Amaloonni kan Firefox‑qofa muraasni adda adda; walsimannaa API mirkaneessuuf yeroo hunda Thunderbird keessatti ilaali.
  • Karoora (path) binary Thunderbird (fakkeenya):
  • Linux: thunderbird (fakkeenya, /usr/bin/thunderbird)
  • macOS: /Applications/Thunderbird.app/Contents/MacOS/thunderbird
  • Windows: "C:\\Program Files\\Mozilla Thunderbird\\thunderbird.exe"
  • Addaan baafannaa prooffaayilii: Sirna misoomaaf prooffaayilii Thunderbird addaa fayyadami akka qunnamtii hojii guyyaa kee hin miine.

Taargatoota Make (Alfaabeetiin)

Makefile deebi’aa hojii misoomaa waloo sirreessa. Yeroo kamiyyuu make help oofi kallattiin ibsa sarara‑tokkoon taargatoota hunda argachuuf.

Tarsiimoo: make taargatiin alaa yoo oofte, foddaa Whiptail salphaa banama; achirraa taargatii filadhu.

TaargatiiIbsa sarara tokko
cleanOomishaalee/ilaalchii naannoo haqi (tmp/, web-local-preview/, website/build/).
commitSirreeffami (format), qorannoo (i18n dabalatee) oofi, changelog haaraa galchi, commit & push.
eslintESLint bifa flat configtiin oofi (npm run -s lint:eslint).
helpTaargatoota hunda tarreessi ibsa sarara‑tokkoon (sirriitti qindaa’e).
lintweb‑ext lint irratti sources/ (manifest yeroo muraasa; ZIPs hin ilaalu; hin ajjeesu).
menuSajoo wal‑itti hidhata qindaa’e (interactive) taargatii fi filannoowwan dabalataa filachuuf.
packATN fi LOCAL ZIPs ijaari (linter oofa; scripitii packer waama).
prettierRepo iddoo isa jirutti sirreeffami (barreessuu ni raawwata).
prettier_checkPrettier haalata sakatta’aa (hin barreessu); yoo sirreeffamuu barbaachise kufa.
prettier_writeAliyaasa prettier.
testPrettier (write), ESLint, booda Vitest (coverage yoo qophaa’e).
test_i18nQorannoo i18n‑qofa: bakka bu’oota dabalataa/wwalfakkaataa + walsimannaa website.
translate_appAliyaasa translation_app.
translation_appMaqaa UI app gara sources/_locales/en/messages.json irraa hiiki.
translate_web_docs_batchSanadoota website OpenAI Batch APIn hiiki (kan filatamaa).
translate_web_docs_syncSanadoota website haala synchronous (legacy, non-batch) hiiki.
translate_web_indexAliyaasa translation_web_index.
translation_web_indexUI fuula‑jalqabaa/navbar/footer hiiki (website/i18n/en/code.json → .../<lang>/code.json).
web_buildDocs gara website/build ijaari (--locales / BUILD_LOCALES ni deeggara).
web_build_linkcheckSakatta’iinsa link offline‑safe (HTTP[S] fagoo ni darbata).
web_build_local_previewItti‑yaadama gh‑pages naannoo; tajaajila 8080–8090 irratti; filannoo tests/link‑check.
web_push_githubwebsite/build gara caancalaa gh-pages tti dhiibi (push).

Syntax filannoowwan (options)f

  • make <command> OPTS="…" fayyadami filannoowwan dabarsuuf (qubeeleen “quotes” ni gorfamu). Taargatoota gadi aanan keessatti fakkeenyi itti fayyadama ni mul’ata.

--

Gorsa ijaarsa locale

  • Locale muraasa qofa ijaaruuf: BUILD_LOCALES="en de" kaa’i yookaan OPTS="--locales en,de" taargatoota web irratti dabarsi.
  • Locale tokko qofa itti‑yaaduuf: http://localhost:<port>/Thunderbird-Reply-with-Attachments/de/.

Ijaari & Paakeejii

  • ZIPs ijaari: make pack
  • ATN fi LOCAL ZIPs bu’uura repo irratti uuma (oomishaalee harka qofaan hin gulaalin)
  • Tarsiimoo: bifa baay’ina lakkoofsa (version) lamaan sources/manifest_ATN.json fi sources/manifest_LOCAL.json keessatti haaromsi paakeejii dura
  • Harkaatiin fe’i (dev): Thunderbird → Tools → Add‑ons and Themes → gear → Install Add‑on From File… → ZIP ijaarame filadhu

Qorannoo

  • Walitti qabaa guutuu: make test (Vitest)
  • Coverage (filannoo):
  • npm i -D @vitest/coverage-v8
  • make test oofi; coverage/index.html bani gabaasa HTML ilaaluuf
  • i18n qofa: make test_i18n (mataa‑addeessa UI/placeholder/titles + walsimannaa website locale‑per‑doc waliin id/title/sidebar_label sakatta’i)

Sakatta’iinsa dogoggoraa fi Logoota

  • Error Console: Tools → Developer Tools → Error Console
  • Logoota bal’inaan yeroo hojjetu keessatti banu/cufu:
  • Banu: messenger.storage.local.set({ debug: true })
  • Cufu: messenger.storage.local.set({ debug: false })
  • Logoonni yeroo deebii barreessuu/erguu keessa mul’atu

Docs (website)

  • Tajaajila misoomaa: cd website && npm run start
  • Bakka bultii suuta (static site) ijaari: cd website && npm run build
  • Waan walsimoo Make (alfaabeetiin): make web_build, make web_build_linkcheck, make web_build_local_preview, make web_push_github
  • Fakkeenya itti fayyadama:
  • EN qofa, tests/link‑check dhiisi, push hin taasifne: make web_build_local_preview OPTS="--locales en --no-test --no-link-check --dry-run"
  • Locale hunda, tests/link‑check waliin, booda push: make web_build_local_preview && make web_push_github
  • Maxxansiinsa dura, sakatta’iinsa link offline‑safe oofi: make web_build_linkcheck.
  • i18n: Afaan Ingiliffaan website/docs/*.md keessatti jira; hiikkoonni Jarmanii website/i18n/de/docusaurus-plugin-content-docs/current/*.md keessatti
  • Barbaacha: Yoo bitaa naannawaa Algolia DocSearch CI keessatti qophaa’e (DOCSEARCH_APP_ID, DOCSEARCH_API_KEY, DOCSEARCH_INDEX_NAME), saayitiin barbaacha Algolia fayyadama; yoo hin jiraanne ammoo barbaacha naannoo fayyadama. Fuula‑jalqaba irratti, / yookaan Ctrl+K cuqaasi sanduuqa barbaachaa banuuf.

  • website/src/pages/donate.js
  • Karaa: /donate (fi /<locale>/donate)
  • Amala:
  • Karaan ammaa locale qabaate (fkn, /de/donate) yoo ta’e, isa sanatti fayyadami
  • Yoo hin jirre, walfakkaataa gaarii navigator.languages fi locale qindaa’aman jidduu filadhu; dhimmichaaf locale sirrii ta’eetti deebi’a
  • Gara kanaatti qajeelcha:
  • en/docs/donation
  • kan biroo → /<locale>/docs/donation
  • useBaseUrl fayyadama baseUrl sirnaan too’achuuf
  • Deebii bakkalcha ta’ee meta refresh + link noscript dabalata


Gorsa Itti‑yaadama

  • Node preview sirnaan dhaabi: http://localhost:<port>/__stop banu (kan maxxanfamu Local server started booda).
  • Suuraaleen MDX/JSX keessatti hin fe’aanne yoo ta’e, useBaseUrl('/img/...') fayyadami akka baseUrl saayitii kabajamu.
  • Itti‑yaadami jalqaba; erga jalqabamee booda sakatta’iinsi link ni fiigaa fi to’annoo hin ugguru (link alaa caccabaa itti‑yaadama hin dhaabu).
  • Fakkeenya URL itti‑yaadama: http://localhost:<port>/Thunderbird-Reply-with-Attachments/ (“Local server started” booda ni maxxanfama).
  • Link alaa sakatta’iinsa link keessatti: Marsariitii alaa muraasni (fkn, addons.thunderbird.net) qaxxaamurtoota otomaatii ugguru; 403 agarsiisu danda’u. Itti‑yaadami garuu ni jalqaba; kanneen kana ni dhiifamu.

Websayitii Hiiki

Wanti ati hiiku dandeessu

  • UI website qofa: fuula‑jalqabaa, navbar, footer, fi barruulee UI biroo. Qabiyyeen docs ammatti Ingiliffaa‑qofa ta’a.

Eessa gulaali

  • website/i18n/<locale>/code.json gulaali (en akka maddi tumsaa fayyadami). Bakka bu’oota akkuma {year}, {slash}, {ctrl}, {k}, {code1} akkasumaatti eegi.

Faayiloota uumi yookaan haaromsi

  • Locale hundaaf stubs dhaban uumi: npm --prefix website run i18n:stubs
  • Stubs Ingiliffaarraa irra caqi (erga barruulee haaraa dabaltee booda): npm --prefix website run i18n:stubs:force
  • Filannoo locale tokko qofaaf: npx --prefix website docusaurus write-translations --locale <locale>

Maqaalee UI fuula‑jalqabaa/navbar/footer hiiki (OpenAI)

  • Ragaa seenuu (credentials) yeroo tokkotti kaa’i (shell yookaan .env):
  • export OPENAI_API_KEY=sk-...
  • Filannoo: export OPENAI_MODEL=gpt-4o-mini
  • Yeroo tokkotti (locale hunda, en dhiisi): make translate_web_index
  • Locale murtaa’eef daangeessi: make translate_web_index OPTS="--locales de,fr"
  • Gatiin jiru irra deebi’i (overwrite): make translate_web_index OPTS="--force"

Mirkaneessa & yaaliwwan irra deebii

  • Scriptiin hiikkaa Sirna JSON ni mirkaneessa, bakka bu’oota qal’insa kurkoofaa (curly‑brace) ni eega, URL‑otaas akka hin jijjiiramne ni mirkaneessa.
  • Mirkaneessi yoo kufe, yaada deebi’een hanga yeroo 2 tti irra deebi’a; boodarra gatii jiru ni tursiisa.

Locale kee dursee ilaali

  • Tajaajila misoomaa: npm --prefix website run start
  • http://localhost:3000/<locale>/Thunderbird-Reply-with-Attachments/ daawwadhu

Erguu

  • Faayiloota code.json gulaalamaniin PR banu. Jijjiiramoota daangessii eegi; yemmuu danda’amu suuraa xiqqaa dabaluu yaali.

Nageenya fi Qindeessuu — Gorsa

  • sources/manifest.json hin commit’in (ijaarraan yeroo muraasaaf uumama)
  • browser_specific_settings.gecko.id tasgabbaa’aa eegi akka tajaajilli update hin jijjiiramne

Turtii Seerota (Settings)

  • Kuusaa: Qindaa’inoonni fayyadamaa hunda storage.local keessatti jiraatu; update dabalataan ni turu.
  • Teessisuu: Itti‑gaafatamni durtii iddoo bu’uun ni raawwatama yommuu furtuun dhabamuu (undefined) qofa.
  • Haaromsuu: Jijjiirraan (migration) furtuu dhabaman qofa guuta; gatiin jiru hin irra‑barreessamu.
  • Mallattoo schema: settingsVersion (ammatti 1).
  • Furtuuwwan fi durtiwwan:
  • blacklistPatterns: string[]['*intern*', '*secret*', '*passwor*']
  • confirmBeforeAdd: booleanfalse
  • confirmDefaultChoice: 'yes'|'no''yes'
  • warnOnBlacklistExcluded: booleantrue
  • Koodii: sources/background.jsinitializeOrMigrateSettings() fi SCHEMA_VERSION ilaali.

Hojii misoomaa (qindaa’ina haaraa dabaluu)

  • SCHEMA_VERSION keessatti sources/background.js dabali.
  • Furtuu haaraa + durtii gara wanta DEFAULTS jedhu keessa initializeOrMigrateSettings() keessatti dabaluu.
  • Durtiiwwan “yommuu‑qofa‑hinjiru” jedhuun facaasi; gatiiwwan jiran hin irra‑barreessin.
  • Yoo qindaa’inni fayyadamaa itti mul’atu ta’e, sources/options.js keessatti walitti hidhi; barruulee bifa‑naannoo dabaluu.
  • Qorannoo dabaluu/yookaan fooyyessi (tests/background.settings.migration.test.js ilaali).

Gorsa qorannoo harkaatiin

  • Teessisuu haaraa fakkeessuuf: kuusaa (data dir) extension haqii yookaan prooffaayilii haaraa jalqabi.
  • Haaromsuu fakkeessuuf: settingsVersion gara 0tti storage.local keessatti saagi fi irra deebi’i fe’i; gatiin jiran akka hin jijjiiramne fi furtuun dhabaman qofa akka dabalaman mirkaneessi.

Hiika Rakkoo

  • Thunderbird 128 ESR yookaan isaa oli akka ta’e mirkaneessi
  • Rakkoo yeroo raawwii keessatti furuu: Error Console fayyadami
  • Qindaa’inni kuufame akka hin hojjanne fakkaatee yoo mul’ate, Thunderbird irra deebi’i banuu yaali. (Thunderbird haalata keessa qabachuu danda’a; irra deebiin banuun qindaa’inoota haarawa fe’a.)

CI fi Coverage

  • GitHub Actions (CI — Tests) vitest coverage tajaajiltoota (85% lines/functions/branches/statements) waliin oofa. Yoo hanga caasaa hin guutamne, hojii ni kufa.
  • Adeemsi kun oomisha coverage-html of keessaa qabata gabaasa HTML’n; fuula raawwii irraa buusi (Actions → raawwii dhiyoo → Artifacts).

Hirmaannaa

  • CONTRIBUTING.md ilaali qajeelfama caancalaa/commit/PR
  • Tarsiimoo: Prooffaayilii misooma Thunderbird addaa uumi qorannoo irratti gochuuf akka prooffaayilii guyyaa kee hin miine.

Hiikkoota

  • Hojii hiikkaa “hunda → hunda” bal’aan gaabbii fi baasii qabaachuu danda’a. Locale muraasa fi docs muraasa irraa jalqabi, bu’aa ilaali, ergasii bal’isi.

  • Sirna irra deebi’i: hojii hiikkaa hanga yeroo 3 tti irra deebi’a dogoggora API irrattis gadi‑lakkisii haala dhiphina dabalaa fayyadamuun; scripts/translate_web_docs_batch.js fi scripts/translate_web_docs_sync.js ilaali.

Suuraawwan docs‑f

  • Suuraalee website/static/img/ jala kaa’i.

  • MD/MDX keessatti useBaseUrl('/img/<filename>') fayyadami akka karaan (paths) waliin hojjatu baseUrl saayitii waliin.

  • Suuraalee website/static/img/ jala dabaltee yookaan maqaa jijjiirte booda, hundi useBaseUrl('/img/…') fayyadamu akka itti fufu fi itti‑yaadama naannoo keessatti akka mul’atu mirkaneessi. Favicons

  • favicon.ico baay’ina‑guddaa of keessaa qabu karaa hundumaa (Make + scripts) website/scripts/build-favicon.mjsn otomaatiin ni uumama.

  • Tarkaanfii harkaatiin hin barbaachisu; icon-*.png haaromsuun gahaa dha. Tarsiimoo ilaalcha

  • Docs hiikataman keessatti front‑matter id akka hin jijjiiramin eegi; yommuu jiraatan title fi sidebar_label qofa hiiki.

clean

  • Kaayyoo: oomishaalee/ilaalchii naannoo haquu.
  • Fayyadama: make clean
  • Akkasuma ni haqa (yoo jiraatan):
  • tmp/
  • web-local-preview/
  • website/build/

commit

  • Kaayyoo: sirreeffami, qorannoo, changelog haaromsuu, commit, fi push.
  • Fayyadama: make commit
  • Bal’inaan: Prettier (write), make test, make test_i18n oofa; yommuu sochiin stagii jiru jiraatu changelog itti dabala; gara origin/<branch> tti ni dhiiba.

eslint

  • Kaayyoo: ESLint bifa flat configtiin oofi.
  • Fayyadama: make eslint

help

  • Kaayyoo: taargatoota hunda ibsa sarara‑tokkoon tarreessi.
  • Fayyadama: make help

lint

  • Kaayyoo: MailExtension web-ext fayyadamuun linti.
  • Fayyadama: make lint
  • Yaadannoowwan: sources/manifest_LOCAL.jsonsources/manifest.json yeroo muraasaaf kophatti garagalcha; ZIP ijaaramanii hin ilaallaman; akeekkachiisni (warnings) paayipilaayinii hin kufisan.

menu

  • Kaayyoo: sajoo wal‑itti hidhata qindaa’e taargatii fi filannoowwan dabalataa filachuuf.
  • Fayyadama: make homaa ala oofi.
  • Yaadannoowwan: whiptail yoo hin jirre, sajoo make helptti deebi’a.

pack

  • Kaayyoo: ATN fi LOCAL ZIPs ijaaru (lint irratti hirkata).
  • Fayyadama: make pack
  • Tarsiimoo: baay’ina lamaan sources/manifest_*.json keessatti dabaluu paakeejii dura.

prettier

  • Kaayyoo: repo iddoo isa jirutti sirreessuu.
  • Fayyadama: make prettier

prettier_check

  • Kaayyoo: sirreessuu mirkaneessuu (hin barreessu).
  • Fayyadama: make prettier_check

prettier_write

  • Kaayyoo: aliyaasa prettier.
  • Fayyadama: make prettier_write

test

  • Kaayyoo: Prettier (write), ESLint, ergasii Vitest (coverage yoo fe’amte) oofu.
  • Fayyadama: make test

test_i18n

  • Kaayyoo: qorannoo i18n irratti xiyyeeffateef maqaalee app fi docs website.
  • Fayyadama: make test_i18n
  • Ni oofa: npm run test:i18n fi npm run -s test:website-i18n.

translate_app / translation_app

  • Kaayyoo: maqaalee UI add‑on EN irraa gara locale birootiitti hiiku.
  • Fayyadama: make translation_app OPTS="--locales all|de,fr"
  • Yaadannoowwan: sirna furtuu eega fi bakka bu’oota hin jijjiiru; gara translation_app.logtti galmeessa. Sirna scripitii: node scripts/translate_app.js --locales ….

translate_web_docs_batch / translate_web_docs_sync

  • Kaayyoo: sanadoota website website/docs/*.md irraa gara website/i18n/<locale>/...tti hiiku.
  • Kan filatamaa: translate_web_docs_batch (OpenAI Batch API)
    • Fayyadama (flags): make translate_web_docs_batch OPTS="--files <doc1,doc2|all> --locales <lang1,lang2|all>"
    • Legacy positional amma illee ni fudhata: OPTS="<doc|all> <lang|all>"
  • Amala: JSONL ijaara, olkachiisa, osoo osoo 30s hunda gaafata, bu’aa buufata, faayiloota barreessa.
  • Yaada: hojii batch hanga sa’aatii 24 fudhachuu danda’a (batch window OpenAI). Koonsooliin yeroo darbe gaaffii hundaan ni agarsiisa.
  • Naannolee: OPENAI_API_KEY (dirqama), filannoo OPENAI_MODEL, OPENAI_TEMPERATURE, OPENAI_BATCH_WINDOW (bifa durtii 24h), BATCH_POLL_INTERVAL_MS.
  • Legacy: translate_web_docs_sync
    • Fayyadama (flags): make translate_web_docs_sync OPTS="--files <doc1,doc2|all> --locales <lang1,lang2|all>"
    • Legacy positional amma illee ni fudhata: OPTS="<doc|all> <lang|all>"
  • Amala: gaaffii wajiin‑wajiin synchronous (batch aggreg. malee).
  • Yaadannoowwan: OPTS yoo dhihaachuu baate gaaffii wal‑itti dhufeenya (interactive) geessisa. Haala lamaanis bifa koodii (code blocks/inline) ni eega; front‑matter id hin jijjiiru; gara translation_web_batch.log (batch) yookaan translation_web_sync.log (sync)tti galmeessa.

translate_web_index / translation_web_index

  • Kaayyoo: maqaalee UI website (fuula‑jalqabaa, navbar, footer) website/i18n/en/code.json irraa gara locale hundaatti jalatti website/i18n/<locale>/code.json (kan en hin dabalne) hiiku.
  • Fayyadama: make translate_web_index yookaan make translate_web_index OPTS="--locales de,fr [--force]"
  • Dirqama: OPENAI_API_KEY export godhi (filannoo: OPENAI_MODEL=gpt-4o-mini).
  • Amala: Sirna JSON ni mirkaneessa, bakka bu’oota qal’insa kurkoofaa ni eega, URL‑ota hin jijjiiru, dogoggora mirkaneessaa irra deebi’uun yaali.

web_build

  • Kaayyoo: saayitii docs gara website/build ijaaru.
  • Fayyadama: make web_build OPTS="--locales en|de,en|all" (yookaan BUILD_LOCALES="en de" kaa’i)
  • Keessummaa: node ./node_modules/@docusaurus/core/bin/docusaurus.mjs build [--locale …].
  • Deps: npm ci website/ keessatti ni oofa yoo website/node_modules/@docusaurus dhabame.

web_build_linkcheck

  • Kaayyoo: sakatta’iinsa link offline‑safe.
  • Fayyadama: make web_build_linkcheck OPTS="--locales en|all"
  • Yaadannoowwan: gara tmp_linkcheck_web_pagestti ijaara; baseUrl GH Pages gara /tti deeggarsa; HTTP(S) fagoo ni darbata.

web_build_local_preview

  • Kaayyoo: itti‑yaadama gh‑pages naannoo tests/link‑check filannoo waliin.
  • Fayyadama: make web_build_local_preview OPTS="--locales en|all [--no-test] [--no-link-check] [--dry-run] [--no-serve]"
  • Amala: jalqaba tajaajila itti‑yaadama Node yaala (scripts/preview-server.mjs, /__stop ni deeggara), booda python3 -m http.servertti ni deebi’a; tajaajila 8080–8090; PID web-local-preview/.server.pid irratti.

web_push_github

  • Kaayyoo: website/build gara caancalaa gh-pages tti dhiibuu.
  • Fayyadama: make web_push_github

Tarsiimoo: NPM=… kaa’i meeshaa paakeejii Makefile fayyadamu jijjiiruuf (bifa durtii npm).