Ìdàgbàsókè
Itọsọna Idagbasoke
Ṣe imúdójúìwọ̀n ìwé ìtọná nìkan ní abẹ́ website/docs (English). Àwọn ìtumọ̀ ní abẹ́ website/i18n/<locale>/… ni a ń dá sílẹ̀ laifọwọyi, kò yẹ kí a ṣàtúnṣe wọn lọ́wọ́. Lo àwọn iṣẹ́ ìtumọ̀ (àpẹẹrẹ, make translate_web_docs_batch) láti tún akoonu ìbílẹ̀ ṣe.
Ohun tí ó yẹ kí ó wà ṣáájú
- Node.js 22+ àti npm (a ṣe ìdánwò pẹ̀lú Node 22)
- Thunderbird 128 ESR tàbí tuntun síi (fún ìdánwò ọwọ́)
Àtòkọ Ìṣètò Ètò (ìpele‑gíga)
- Gbòngbò: ìkọ̀kọ̀ ìṣakojọpọ̀
distribution_zip_packer.sh, ìwé ìtọná, àwòrán iboju sources/: kóòdù àfikún pàtàkì (background, aṣayan/UI popup, manifest, aami)tests/: àkójọpọ̀ ìdánwò Vitestwebsite/: ìwé Docusaurus (pẹ̀lú i18n ní abẹ́website/i18n/de/...)
Fifi sori & Ọpá iṣẹ
- Fi àwọn ìfarakanra gbòngbò sílẹ̀:
npm ci - Ìwé ìtọná (àṣàyàn):
cd website && npm ci - Ṣàwárí àwọn àfojúsùn:
make help
Ìdàgbàsókè Alààyè (web‑ext run)
- Ìyípadà kíákíá ní Firefox Desktop (ìdánwò UI àkọ́kọ́ nìkan):
npx web-ext run --source-dir sources --target=firefox-desktop- Ṣiṣe ní Thunderbird (tí ó dára jùlọ fún MailExtensions):
npx web-ext run --source-dir sources --start-url about:addons --firefox-binary "$(command -v thunderbird || echo /path/to/thunderbird)"- Àmọ̀ràn:
- Máa pa Console Àṣìṣe Thunderbird sílẹ̀ (Tools → Developer Tools → Error Console).
- Àwọn ojúewé iṣẹ́lẹ̀ MV3 máa ń dáwọ́ dúró nígbà tí kò sí ìṣe; tún àfikún náà kó sílẹ̀ lẹ́yìn ìyípadà kóòdù, tàbí jẹ́ kí web‑ext tún‑kó laifọwọyi.
- Díẹ̀ nínú àwọn ìhùwàsí Firefox‑nìkan yàtọ̀; máa jẹ́rìí ní Thunderbird fún ìbámu API nígbà gbogbo.
- Ọ̀nà binari Thunderbird (àpẹẹrẹ):
- Linux:
thunderbird(àpẹẹrẹ,/usr/bin/thunderbird) - macOS:
/Applications/Thunderbird.app/Contents/MacOS/thunderbird - Windows:
"C:\\Program Files\\Mozilla Thunderbird\\thunderbird.exe" - Ìyapa profaili: Lo profaili Thunderbird mìíràn fún ìdàgbàsókè kí o má ba àtúnṣe ojoojúmọ́ rẹ jẹ.
Àwọn àfojúsùn Make (gẹ́gẹ́ bí alífábẹ́tì)
Makefile ń bójú tó ọ̀nà iṣẹ́ ìdàgbàsókè tí wọ́pọ̀. Ṣe make help nígbàkúgbà fún àkótán ìlà‑kan ti gbogbo àfojúsùn.
Ìmọ̀ràn: ṣiṣí make láì sọ àfojúsùn kankan yóò ṣí akojọ aṣayan Whiptail alákọ̀ọ́rẹ́ láti yan àfojúsùn kan.
| Àfojúsùn | Apejuwe ìlà‑kan |
|---|---|
clean | Yọ àwọn ohun èlò ikọ́/ìtẹ̀síwájú agbègbè kúrò (tmp/, web-local-preview/, website/build/). |
commit | Ṣe fọ́ọ̀mù, ṣàgìmọ̀ ìdánwò (pẹ̀lú i18n), ṣe imúdójúìwọ̀n changelog, commit & push. |
eslint | Ṣi ESLint nípasẹ̀ àtúnṣe flat (npm run -s lint:eslint). |
help | Ṣàkóso gbogbo àfojúsùn pẹ̀lú ìwé ìlà‑kan (tẹ̀lé ìtòlẹ́sẹẹsẹ). |
lint | web‑ext lint lórí sources/ (manifest ìgbàtẹ́lẹ̀; kọjá ZIP; kì í jẹ́ ìkùnà). |
menu | Akojọ aṣayan ìbáṣepọ̀ láti yan àfojúsùn kan àti àwọn ariyanjiyan àṣàyàn. |
pack | Kọ́ ATN & LOCAL ZIPs (nṣiṣẹ́ linter; pè ìkọ̀kọ̀ packer). |
prettier | Ṣe fọ́ọ̀mù repọ̀ níbi rẹ̀ (kọ ohun ìyípadà sílẹ̀). |
prettier_check | Prettier ní ipo ayẹyẹ (kò kọ ohunk óhun); kùnà bí a bá nílò àtún‑fọ́ọ̀mù. |
prettier_write | Orúkọ míràn fún prettier. |
test | Prettier (kọ), ESLint, lẹ́yìn náà Vitest (ìbòjúbo bí a bá túnṣe bẹ́ẹ̀). |
test_i18n | Ìdánwò i18n‑nìkan: àwọn àfipamọ́/ìbámu àfikún + ìbámu ojúlé wẹẹ̀bù. |
translate_app | Orúkọ míràn fún translation_app. |
translation_app | Túmọ̀ àwọn okun UI app láti sources/_locales/en/messages.json. |
translate_web_docs_batch | Túmọ̀ ìwé ojúlé wẹẹ̀bù nípasẹ̀ OpenAI Batch API (tí a fẹ́ràn jù). |
translate_web_docs_sync | Túmọ̀ ìwé ojúlé wẹẹ̀bù ní ìṣọ̀kan (atijọ́, kì í ṣe batch). |
translate_web_index | Orúkọ míràn fún translation_web_index. |
translation_web_index | Túmọ̀ UI ojú‑ìwé/agbègbè lilọ kiri/ìpẹ̀yà (website/i18n/en/code.json → .../<lang>/code.json). |
web_build | Kọ́ ìwé sí website/build (pamọ́ra --locales / BUILD_LOCALES). |
web_build_linkcheck | Ṣàyẹ̀wò ìjápọ̀ tí ó ní ààbò lórí aisinbọ (fo ọkọọkan HTTP[S] ìjìnìnlẹ̀). |
web_build_local_preview | Àkàwé gh‑pages agbègbè; iṣẹ́ àdáṣiṣẹ́ lórí 8080–8090; ìdánwò/ìjápọ̀‑ṣàyẹ̀wò àṣàyàn. |
web_push_github | Fún website/build sí ẹka gh-pages. |
Ìlànà ìṣàfilọ́lẹ̀ fún àwọn aṣayan
- Lo
make <command> OPTS="…"láti ránṣẹ́ pẹ̀lú àwọn aṣayan (ìtọ́ka nínú agbasọ̀ ló dáa). Gbogbo àfojúsùn ní isalẹ fi àpẹẹrẹ lílo hàn.
--
Àmọ̀ràn kọ́kọ́rọ̀ èdè agbègbè
- Kọ́ apakan díẹ̀ nínú àwọn agbègbè: ṣètò
BUILD_LOCALES="en de"tàbí kọjaOPTS="--locales en,de"sí àwọn àfojúsùn wẹẹ̀bù. - Àkànṣe àyẹ̀wò agbègbè kan péré:
http://localhost:<port>/Thunderbird-Reply-with-Attachments/de/.
Kọ́ & Pa pọ̀
- Kọ́ ZIPs:
make pack - Ó ń ṣe ATN àti LOCAL ZIPs ní gbòngbò repo (má ṣe ṣàtúnṣe ohun èlò ikọ́ ní ọwọ́)
- Ìmọ̀ràn: ṣe imúdójúìwọ̀n ẹ̀yà nínú mejeeji
sources/manifest_ATN.jsonàtisources/manifest_LOCAL.jsonkí o tó pa pọ̀ - Fifi sori ọwọ́ (dev): Thunderbird → Tools → Add‑ons and Themes → gear → Install Add‑on From File… → yan ZIP tí a kọ́
Ìdánwò
- Àkójọpọ̀ pípé:
make test(Vitest) - Ìbòjúbo (àṣàyàn):
npm i -D @vitest/coverage-v8- Ṣi
make test; ṣícoverage/index.htmlfún ìròyìn HTML - i18n nìkan:
make test_i18n(àwọn bọtìnì/UI àfipamọ́/àkọlé + ìbámu ojú‑ọ̀rọ̀ wẹẹ̀bù ní gbogbo agbègbè pẹ̀lú ìṣàyẹ̀wò id/title/sidebar_label)
Ìtúpalẹ̀ aṣìṣe & Àkọsílẹ̀
- Error Console: Tools → Developer Tools → Error Console
- Yí ìkọ̀sọ̀rọ̀ àkọsílẹ̀ gígùn padà nígbà ìṣiṣẹ́:
- Mú ṣiṣẹ́:
messenger.storage.local.set({ debug: true }) - Pa á:
messenger.storage.local.set({ debug: false }) - Àkọsílẹ̀ máa hàn nígbà tí a bá ń kọ/ráńṣẹ́ pẹ̀lú àwọn ìdáhùn
Ìwé (ojúlé wẹẹ̀bù)
- Server ìdàgbàsókè:
cd website && npm run start - Kọ́ ojúlé aláìlera:
cd website && npm run build - Awọn Make tó bá mu pọ̀ (gẹ́gẹ́ bí alífábẹ́tì):
make web_build,make web_build_linkcheck,make web_build_local_preview,make web_push_github - Àpẹẹrẹ lílo:
- EN nìkan, fo ìdánwò/ṣàyẹ̀wò‑ìjápọ̀, kò sí push:
make web_build_local_preview OPTS="--locales en --no-test --no-link-check --dry-run" - Gbogbo agbègbè, pẹ̀lú ìdánwò/ṣàyẹ̀wò‑ìjápọ̀, lẹ́yìn náà push:
make web_build_local_preview && make web_push_github - Kí o tó tẹ̀jáde, ṣiṣẹ́ ṣàyẹ̀wò ìjápọ̀ aisinbọ:
make web_build_linkcheck. - i18n: Gẹẹsi wà ní
website/docs/*.md; ìtumọ̀ Jámánì wà níwebsite/i18n/de/docusaurus-plugin-content-docs/current/*.md - Ṣàwárí: Bí a bá ṣètò àwọn oniyí ayika Algolia DocSearch ní CI (
DOCSEARCH_APP_ID,DOCSEARCH_API_KEY,DOCSEARCH_INDEX_NAME), ojúlé yóò lò ìṣàwárí Algolia; bí kò bá rí bẹ́ẹ̀ yóò padà sí ìṣàwárí agbègbè. Lórí ojú‑ìwé, tẹ/tàbíCtrl+Kláti ṣí apoti ìṣàwárí.
Ọ̀nà ìtúnrànṣẹ́ fún ìránwọ́ (Donate)
website/src/pages/donate.js- Ọ̀nà:
/donate(àti/<locale>/donate) - Ìhùwàsí:
- Bí ọ̀nà lọwọlọwọ bá ní agbègbè (àpẹẹrẹ,
/de/donate), lo un - Bí kò bá rí bẹ́ẹ̀, yan ohun tó bá dara jù lára
navigator.languagessíi lórí àwọn agbègbè tó ṣètò; padà sí agbègbè aiyẹ̀tọ̀ - Tún tọ́ sí:
en→/docs/donation- àwọn mìíràn →
/<locale>/docs/donation - Lò
useBaseUrlfún ìṣakoso baseUrl tó bófin mu - Ní ìdàpọ̀ pẹ̀lú meta refresh + ìjápọ̀
noscriptgẹ́gẹ́ bí ìpadàbọ̀
Àmọ̀ràn Àkànṣe
- Dákẹ́ ìfihàn Node ní mímọ́: ṣí
http://localhost:<port>/__stop(a tẹ̀ jáde lẹ́yìnLocal server started). - Bí àwọn àwòrán kò bá kó ní MDX/JSX, lo
useBaseUrl('/img/...')kí a bọ́rẹ̀ síbaseUrlojúlé náà. - Àkànṣe bẹ̀rẹ̀ kọ́kọ́; ṣàyẹ̀wò ìjápọ̀ ń ṣiṣẹ́ lẹ́yìn náà ó sì kì í dá iṣẹ́ dúró (àwọn ìjápọ̀ òde tí ó bàjẹ́ kì yóò dá àkànṣe dúró).
- Àpẹẹrẹ URL àkànṣe:
http://localhost:<port>/Thunderbird-Reply-with-Attachments/(a tẹ̀ jáde lẹ́yìn “Local server started”). - Àwọn ìjápọ̀ òde ní ṣàyẹ̀wò‑ìjápọ̀: Díẹ̀ lára àwọn ojúlé òde (àpẹẹrẹ, addons.thunderbird.net) ń dí àwọn crawler laifọwọyi mọ́lẹ̀ ó sì lè fi 403 hàn ní ṣàyẹ̀wò ìjápọ̀. Àkànṣe ṣi bẹ̀rẹ̀; wọ̀nyí lè jẹ́ kí a fo wọn.
Túmọ̀ Ojúlé Wẹẹ̀bù
Ohun tí o lè túmọ̀
- UI ojúlé wẹẹ̀bù nìkan: ojú‑ìwé, agbègbè lilọ kiri, ìpẹ̀yà, àti àwọn okun UI míì. Akọ́ọ̀lẹ̀ ìwé dúró ní Gẹẹsi nísinsin yìí.
Ibí tí a ti ṣàtúnṣe
- Ṣàtúnṣe
website/i18n/<locale>/code.json(loengẹ́gẹ́ bí ìtọ́kasí). Pa àwọn àfipamọ́ bí{year},{slash},{ctrl},{k},{code1}mọ́ bí wọn ṣe rí.
Ṣẹda tàbí tún àwọn fáìlì ṣe
- Ṣẹda àwọn stub tí ó sọnù fún gbogbo agbègbè:
npm --prefix website run i18n:stubs - Túbọ̀ kọ àwọn stub láti Gẹẹsi (lẹ́yìn fífi okun tuntun kún):
npm --prefix website run i18n:stubs:force - Yíyan míì fún agbègbè kan ṣoṣo:
npx --prefix website docusaurus write-translations --locale <locale>
Túmọ̀ okun UI ojú‑ìwé/agbègbè lilọ kiri/ìpẹ̀yà (OpenAI)
- Ṣètò ìjẹ́rìí lẹ́ẹ̀kan (shell tàbí .env):
export OPENAI_API_KEY=sk-...- Àṣàyàn:
export OPENAI_MODEL=gpt-4o-mini - One‑shot (gbogbo agbègbè, fo en):
make translate_web_index - Dín kù sí agbègbè kan tàbí meji:
make translate_web_index OPTS="--locales de,fr" - Kọjá àwọn iye àtijọ́:
make translate_web_index OPTS="--force"
Ìmúdájú & àtúnṣe àgbàyanu
- Ìkọ̀kọ̀ ìtumọ̀ ń fọwọ́sí irisi JSON, ń pa àwọn àfipamọ́ agbo‑ìmọ̀ (curly‑brace) mọ́, ó sì ń jẹ́ kó ríi dájú pé àwọn URL kò yípadà.
- Ní ìkùnà ìmúdájú, yóò tún gbìyànjú pẹ̀lú ìbáṣepọ̀ dé ìgbà mẹ́jì kí ó tó pa àwọn iye tìkára wọn mọ́.
Ṣe àkànṣe agbègbè rẹ
- Server ìdàgbàsókè:
npm --prefix website run start - Ṣàbẹwò
http://localhost:3000/<locale>/Thunderbird-Reply-with-Attachments/
Fí ránṣẹ́
- Ṣí PR pẹ̀lú fáìlì
code.jsontí a ṣàtúnṣe. Jẹ́ kí àwọn ìyípadà kúrò ní kíkúrú kí o sì fi sikirinisoti kékeré kún un bí o bá lè ṣe.
Ààbò & Àmọ̀ràn Ìtọ̀sọ́nà
- Má ṣe commit
sources/manifest.json(a dá a sílẹ̀ péré nígbà ikọ́) - Pa
browser_specific_settings.gecko.idmọ́ kí o lè pa ikanni ìmúdójúìwọ̀n mọ́
Iduroṣinṣin Ètò
- Ibi ìpamọ́: Gbogbo àwọn ètò oníṣe wà ní
storage.localó sì ń bá a lọ kọjá àwọn imúdójúìwọ̀n àfikún. - Fifi sori: Àwọn aiyẹ̀tọ̀ ni a ń lò nígbà tí bọtìnì bá sọnù gan‑an (undefined).
- Imúdójúìwọ̀n: Ìrìnàjò (migration) kún fún àwọn bọtìnì tí ó sọnù nìkan; a kò fi kọ àwọn iye tó wà tẹ́lẹ̀ sílù.
- Amọ̀ràn skima:
settingsVersion(ní báyìí1). - Àwọn bọtìnì àti aiyẹ̀tọ̀:
blacklistPatterns: string[]→['*intern*', '*secret*', '*passwor*']confirmBeforeAdd: boolean→falseconfirmDefaultChoice: 'yes'|'no'→'yes'warnOnBlacklistExcluded: boolean→true- Kóòdù: wo
sources/background.js→initializeOrMigrateSettings()àtiSCHEMA_VERSION.
Ìṣàn iṣẹ́ dev (fífi ètò tuntun kún)
- Túbọ̀
SCHEMA_VERSIONnísources/background.js. - Fí bọtìnì tuntun + aiyẹ̀tọ̀ kún sí ohun
DEFAULTSnínúinitializeOrMigrateSettings(). - Lo ìlànà “ọ̀kan‑ṣoṣo‑bí‑ó‑bá‑ṣofo” nígbà títẹ̀síwájú aiyẹ̀tọ̀; má ṣe kọ àwọn iye tó wà tẹ́lẹ̀ sẹ́yìn.
- Bí ètò náà bá hàn gbangba fún oníṣe, so ó mọ́
sources/options.jskí o sì kún fún àwọn okun èdè ìbílẹ̀. - Fí/ṣètò ìdánwò (wo
tests/background.settings.migration.test.js).
Àmọ̀ràn ìdánwò ọwọ́
- Ṣe àfihàn fifi sori tuntun: pa diríìkììrì ìtẹ̀ data ìfikún di ofo tàbí bẹ̀rẹ̀ pẹ̀lú profaili tuntun.
- Ṣe àfihàn imúdójúìwọ̀n: ṣètò
settingsVersionsí0nístorage.localkí o sì tún‑kọ; jẹ́rìí pé àwọn iye tó wà tẹ́lẹ̀ kò yípadà àti pé bọtìnì tí ó sọnù nìkan ni a fi kún.
Ìṣòro Ìtúnṣe
- Jẹ́ kó dájú pé Thunderbird jẹ́ 128 ESR tàbí tuntun síi
- Lo Error Console fún àwọn ìṣòro ìṣiṣẹ́
- Bí àwọn ètò tí a pamọ́ bá dà bí ẹni pé wọ́n kò ń ṣiṣẹ́ dáadáa, tún Thunderbird bẹ̀rẹ̀ kí o tún gbìyànjú. (Thunderbird lè pa ìpinnu pamọ́ kọjá ìpẹ̀yà; ìbẹrẹ tuntun ń jẹ́ kí a gba àwọn ètò tuntun.)
CI & Ìbòjúbo
- GitHub Actions (
CI — Tests) ń ṣiṣẹ́ vitest pẹ̀lú ìfarapa ìbòjúbo (85% àwọn ìlà/ iṣẹ́/ ẹ̀ka/ àwọn gbólóhùn). Bí a kò bá pé ìfarapa wọ̀nyí, iṣẹ́ yóò kùnà. - Ìṣàn iṣẹ́ náà ń gbé ohun‑èlò
coverage-htmlsókè pẹ̀lú ìròyìn HTML; gba a sílẹ̀ láti ojú‑ìwé iṣẹ́ (Actions → ìṣiṣẹ́ tó kẹ́yìn → Artifacts).
Ilowosi
- Wo CONTRIBUTING.md fún ìlànà ẹ̀ka/commit/PR
- Ìmọ̀ràn: Ṣẹda profaili ìdàgbàsókè Thunderbird lọ́tọ̀ fún ìdánwò kí o má ba profaili ojoojúmọ́ rẹ jẹ.
Ìtumọ̀
- Ṣíṣe iṣẹ́ ìtumọ̀ ńlá “gbogbo → gbogbo” lè lọra àti gbowó. Bẹ̀rẹ̀ pẹ̀lú apakan díẹ̀ (àpẹẹrẹ, diẹ̀ lára ìwé àti agbègbè 1–2), ṣàyẹ̀wò abajade, lẹ́yìn náà túbọ̀ kó síi.
- Ilànà àtún‑gbìyànjú: iṣẹ́ ìtumọ̀ lè ṣe àtún‑gbìyànjú tó 3 pẹ̀lú àfikún ìdákẹ́jẹ̀ pẹ̀lú àsìkò ìdákẹ́jẹ̀ tó ń pọ̀ síi ní àwọn aṣiṣe API; wo
scripts/translate_web_docs_batch.jsàtiscripts/translate_web_docs_sync.js.
Àwòrán iboju fún ìwé
-
Pa àwọn àwòrán mọ́ ní
website/static/img/. -
Ṣàtọka wọn ní MD/MDX nípasẹ̀
useBaseUrl('/img/<filename>')kí àwọn ọ̀nà ṣiṣẹ́ pẹ̀lúbaseUrlojúlé náà. -
Lẹ́yìn fífi kún tàbí pípàdarọ orúkọ àwọn àwòrán ní abẹ́
website/static/img/, jẹ́rìí pé gbogbo ìtọ́kasí ṣi ń louseBaseUrl('/img/…')ó sì ń hàn ní àkànṣe agbègbè. Àwọn favicon -
favicon.icooníwọ̀n‑pọ̀ ni a ń dá sílẹ̀ laifọwọyi ní gbogbo ọ̀nà ikọ́ (Make + scripts) nípasẹ̀website/scripts/build-favicon.mjs. -
Kò sí ìgbésẹ̀ ọwọ́ kankan; mímúdójúìwọ̀n
icon-*.pngtó. Ìmọ̀ràn àyẹ̀wò -
Pa
idfront‑matter mọ́ bí ó ti rí nínú àwọn ìwé tí a túmọ̀; túmọ̀titleàtisidebar_labelnìkan bí wọ́n bá wà.
clean
- Ìdí: yọ àwọn ohun èlò ikọ́/àkànṣe agbègbè kúrò.
- Lílò:
make clean - Yọ (bí ó bá wà):
tmp/web-local-preview/website/build/
commit
- Ìdí: fọ́ọ̀mù, ṣàdánwò, ṣe imúdójúìwọ̀n changelog, commit, àti push.
- Lílò:
make commit - Alaye: ń ṣiṣẹ́ Prettier (kọ),
make test,make test_i18n; ń kún un sí changelog nígbà tí àwọn ìyàtọ̀ tí a ti ṣe pẹ̀lú staging bá wà; ń push síorigin/<branch>.
eslint
- Ìdí: ṣiṣẹ́ ESLint nípasẹ̀ àtúnṣe flat.
- Lílò:
make eslint
help
- Ìdí: ṣe àkóso gbogbo àfojúsùn pẹ̀lú ìwé ìlà‑kan.
- Lílò:
make help
lint
- Ìdí: lint MailExtension pẹ̀lú
web-ext. - Lílò:
make lint - Àkíyèsí: a ṣe àkópọ̀
sources/manifest_LOCAL.json→sources/manifest.json; a kọ ZIP tí a kọ́ sílẹ̀; ìkìlọ̀ kì í jẹ́ kí pàyà.
menu
- Ìdí: akojọ aṣayan ìbáṣepọ̀ láti yan àfojúsùn Make kan àti àwọn ariyanjiyan àṣàyàn.
- Lílò: ṣiṣẹ́
makeláì sí ariyanjiyan kankan. - Àkíyèsí: bí
whiptailkò bá wà, akojọ aṣayan yóò padà símake help.
pack
- Ìdí: kọ́ ATN àti LOCAL ZIPs (ó ń bẹ̀rẹ̀ pẹ̀lú
lint). - Lílò:
make pack - Ìmọ̀ràn: túbọ̀ ẹ̀yà nínú mejeeji
sources/manifest_*.jsonkí o tó pa pọ̀.
prettier
- Ìdí: fọ́ọ̀mù repo níbi rẹ̀.
- Lílò:
make prettier
prettier_check
- Ìdí: ṣàyẹ̀wò fọ́ọ̀màtì (kò kọ).
- Lílò:
make prettier_check
prettier_write
- Ìdí: orúkọ míràn fún
prettier. - Lílò:
make prettier_write
test
- Ìdí: ṣiṣẹ́ Prettier (kọ), ESLint, lẹ́yìn náà Vitest (ìbòjúbo bí a bá fi sílẹ̀).
- Lílò:
make test
test_i18n
- Ìdí: ìdánwò tó dojukọ i18n fún àwọn okun àfikún àti ìwé ojúlé wẹẹ̀bù.
- Lílò:
make test_i18n - Nṣiṣẹ́:
npm run test:i18nàtinpm run -s test:website-i18n.
translate_app / translation_app
- Ìdí: túmọ̀ àwọn okun UI àfikún láti EN sí àwọn agbègbè míì.
- Lílò:
make translation_app OPTS="--locales all|de,fr" - Àkíyèsí: ń pa irisi bọtìnì mọ́ àti àfipamọ́; ń kọ àkọsílẹ̀ sí
translation_app.log. Ìsọ̀fúnnípẹ̀l ẹ́:node scripts/translate_app.js --locales ….
translate_web_docs_batch / translate_web_docs_sync
- Ìdí: túmọ̀ ìwé ojúlé wẹẹ̀bù láti
website/docs/*.mdsíwebsite/i18n/<locale>/.... - Tí a fẹ́ràn jù:
translate_web_docs_batch(OpenAI Batch API)- Lílò (àmọ̀ràn):
make translate_web_docs_batch OPTS="--files <doc1,doc2|all> --locales <lang1,lang2|all>" - Ipo atijọ́ pẹ̀lú ipo àyẹ̀wò ṣi wúlò:
OPTS="<doc|all> <lang|all>"
- Lílò (àmọ̀ràn):
- Ìhùwàsí: ń kọ JSONL, ń gbé sókè, ń wò ó lọwọ́lọwọ̀ gbogbo ìṣẹ́jú 30, ń gbà abajade kalẹ̀, ń kọ fáìlì.
- Àkíyèsí: iṣẹ́ batch lè gba tó wákàtí 24 láti parí (gẹ́gẹ́ bí window batch OpenAI). Console ń fi àsìkò tó lọ hàn ní gbogbo ìjọsọpọ̀.
- Ayika:
OPENAI_API_KEY(pátá), àṣàyànOPENAI_MODEL,OPENAI_TEMPERATURE,OPENAI_BATCH_WINDOW(a.y. 24h),BATCH_POLL_INTERVAL_MS. - Atijọ́:
translate_web_docs_sync- Lílò (àmọ̀ràn):
make translate_web_docs_sync OPTS="--files <doc1,doc2|all> --locales <lang1,lang2|all>" - Ipo atijọ́ pẹ̀lú ipo àyẹ̀wò ṣi wúlò:
OPTS="<doc|all> <lang|all>"
- Lílò (àmọ̀ràn):
- Ìhùwàsí: ìbéèrè ní ìṣọ̀kan fún kọọkan tọkọtaya (kò sí ìkojọpọ̀ batch).
- Àkíyèsí: Àwọn ìbánisọrọ̀ alákọ̀ọ́rẹ́ nígbà tí
OPTSkò bá wà. Ọ̀nà méjèèjì ń pa àwọn kóòdù/àkọsílẹ̀ inline mọ́ ó sì ń paidfront‑matter mọ́; ń kọ àkọsílẹ̀ sítranslation_web_batch.log(batch) tàbítranslation_web_sync.log(sync).
translate_web_index / translation_web_index
- Ìdí: túmọ̀ àwọn okun UI ojú‑ìwé (ojú‑ìwé, agbègbè lilọ kiri, ìpẹ̀yà) láti
website/i18n/en/code.jsonsí gbogbo agbègbè ní abẹ́website/i18n/<locale>/code.json(yọenkúrò). - Lílò:
make translate_web_indextàbímake translate_web_index OPTS="--locales de,fr [--force]" - Ìbẹ̀rẹ̀: export
OPENAI_API_KEY(àṣàyàn:OPENAI_MODEL=gpt-4o-mini). - Ìhùwàsí: ń fọwọ́sí ìtọ́kasí JSON, ń pa àwọn àfipamọ́ curly‑brace mọ́, ń pa àwọn URL mọ́ bíi tẹ́lẹ̀, ó sì ń tún gbìyànjú pẹ̀lú ìbáṣepọ̀ nígbà ìkùnà ìmúdájú.
web_build
- Ìdí: kọ́ ojúlé ìwé sí
website/build. - Lílò:
make web_build OPTS="--locales en|de,en|all"(tàbí ṣètòBUILD_LOCALES="en de") - Ilọ́ọ̀rẹ̀:
node ./node_modules/@docusaurus/core/bin/docusaurus.mjs build [--locale …]. - Ìdígbò: ń ṣiṣẹ́
npm ciníwebsite/nìkan bíwebsite/node_modules/@docusaurusbá sọnù.
web_build_linkcheck
- Ìdí: ṣàyẹ̀wò ìjápọ̀ aisinbọ.
- Lílò:
make web_build_linkcheck OPTS="--locales en|all" - Àkíyèsí: ń kọ sí
tmp_linkcheck_web_pages; ń tún GH PagesbaseUrlkọ sí/; ń fo àwọn ìjápọ̀ HTTP(S) òde.
web_build_local_preview
- Ìdí: àkànṣe gh‑pages agbègbè pẹ̀lú ìdánwò/ṣàyẹ̀wò‑ìjápọ̀ àṣàyàn.
- Lílò:
make web_build_local_preview OPTS="--locales en|all [--no-test] [--no-link-check] [--dry-run] [--no-serve]" - Ìhùwàsí: ń gbìyànjú server àkànṣe Node kọ́kọ́ (
scripts/preview-server.mjs, ń pamọ́ra/__stop), yóò padà sípython3 -m http.serverbí kò bá ṣeé ṣe; ń sìn lórí 8080–8090; PID wà níweb-local-preview/.server.pid.