ဖွံ့ဖြိုးတိုးတက်မှု
ဖွံ့ဖြိုးရေး လမ်းညွှန်
စာရွက်တမ်းများကို website/docs (English) အောက်တွင်သာ အပ်ဒိတ်လုပ်ပါ။ website/i18n/<locale>/… အောက်ရှိ ဘာသာပြန်ချက်များသည် အလိုအလျောက် 생성ထားခြင်းဖြစ်ပြီး ကိုယ်တိုင် မပြင်ဆင်သင့်ပါ။ Localized content ကို ပြန်လည်အသစ်ဆောင်ရွက်ရန် ဘာသာပြန်လုပ်ဆောင်ခြင်း tasks (ဥပမာ make translate_web_docs_batch) များကို အသုံးပြုပါ။
ကြိုတင် လိုအပ်ချက်များ
- Node.js 22+ နှင့် npm (Node 22 ဖြင့် စမ်းသပ်ထားသည်)
- Thunderbird 128 ESR သို့မဟုတ် ထို့ထက်အသစ် (လက်ဖြင့် စမ်းသပ်ရန်)
ပရောဂျက် ဖွဲ့စည်းပုံ (အထွေထွေ)
- Root: packaging script
distribution_zip_packer.sh, စာတမ်းများ, မျက်နှာပြင်ပုံများ sources/: အဓိက add-on code (background, options/popup UI, manifests, icons)tests/: Vitest စုံစမ်းမှု အစုwebsite/: Docusaurus စာတမ်းများ (i18n ကိုwebsite/i18n/de/...အောက်တွင်)
တပ်ဆင်ခြင်းနှင့် ကိရိယာများ
- Root မူတည်ချက်များ တပ်ဆင်ရန်:
npm ci - Docs (ရွေးချယ်နိုင်):
cd website && npm ci - targets များ ရှာဖွေကြည့်ရန်:
make help
တိုက်ရိုက် ဖွံ့ဖြိုး (web‑ext run)
- Firefox Desktop တွင် အမြန် စမ်းသပ် လှုပ်ရှားမှု (UI smoke‑tests သာ):
npx web-ext run --source-dir sources --target=firefox-desktop- Thunderbird တွင် run လုပ်ရန် (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 pages များသည် အလုပ်မရှိသွားပါက အကြားရပ်သွားနိုင်သည်; code ပြောင်းလဲပြီးတိုင်း add‑on ကို reload လုပ်ပါ၊ သို့မဟုတ် web‑ext အလိုအလျောက် reload ကို အသုံးပြုပါ။
- Firefox‑only အပြုအမူအချို့သည် ကွာခြားနိုင်သည်; API parity အတွက် အမြဲ Thunderbird တွင် စစ်ဆေးပါ။
- Thunderbird binary လမ်းကြောင်းများ (ဥပမာ):
- Linux:
thunderbird(ဥပမာ/usr/bin/thunderbird) - macOS:
/Applications/Thunderbird.app/Contents/MacOS/thunderbird - Windows:
"C:\\Program Files\\Mozilla Thunderbird\\thunderbird.exe" - Profile ကို သီးသန့်ထားခြင်း: သင်၏ နေ့စဉ် အသုံးပြုမှုကို မထိခိုက်စေရန် ဖွံ့ဖြိုးရေးအတွက် Thunderbird profile သီးသန့်တစ်ခုကို အသုံးပြုပါ။
Make Targets (အက္ခရာစဉ်)
Makefile တွင် ပုံမှန် dev flows များကို စံပြထားသည်။ target တစ်ခုစီ၏ တစ်ကြောင်း짜 စာမူကို ကြည့်ရန် အချိန်မရွေး make help ကို run လုပ်ပါ။
အကြံပြုချက်: make ကို target မဖော်ပြဘဲ run လုပ်ပါက တိုတောင်းသော Whiptail menu တစ်ခုကို ဖွင့်ပေးပြီး target ကို ရွေးချယ်နိုင်ပါသည်။
| Target | တစ်ကြောင်း짜 ဖော်ပြချက် |
|---|---|
clean | Local build/preview artifacts (tmp/, web-local-preview/, website/build/) များကို ဖယ်ရှားပါ။ |
commit | Format, စမ်းသပ်မှုများ (i18n ပါဝင်) ကို chạy, changelog အပ်ဒိတ်, commit & push လုပ်ပါ။ |
eslint | ESLint ကို flat config (npm run -s lint:eslint) ဖြင့် run လုပ်ပါ။ |
help | အားလုံး target များကို တစ်ကြောင်း짜 docs ဖြင့် (အစဉ်လိုက်) စာရင်းပြပါ။ |
lint | sources/ ပေါ်တွင် web‑ext lint (temp manifest; ZIPs မာထည့်မစစ်; non‑fatal) |
menu | Target နှင့် အပို arguments များကို ရွေးချယ်နိုင်သော အပြန်အလှန် menu။ |
pack | ATN & LOCAL ZIPs များကို Build လုပ်ပါ (linter ကို chạy; packer script ကို ခေါ်) |
prettier | Repository ကို နေရာတွင်တင် format လုပ်ပါ (ရေးသား ပြုပြင်မည်) |
prettier_check | Prettier ကို check mode (မရေးသား); ပြန်ဖော်ထုတ်လုပ်ရန် လိုအပ်ပါက fail ဖြစ်မည် |
prettier_write | prettier ၏ alias |
test | Prettier (write), ESLint, ထို့နောက် Vitest (configure ပြီးပါက coverage) |
test_i18n | i18n‑သာ စမ်းသပ်မှုများ: add‑on placeholders/parity + website parity |
translate_app | translation_app ၏ alias |
translation_app | App UI strings များကို sources/_locales/en/messages.json ထံမှ ဘာသာပြန် |
translate_web_docs_batch | Website docs များကို OpenAI Batch API (ဦးစားပေး) ဖြင့် ဘာသာပြန် |
translate_web_docs_sync | Website docs များကို synchronous (အဟောင်း, non-batch) ဖြင့် ဘာသာပြန် |
translate_web_index | translation_web_index ၏ alias |
translation_web_index | Homepage/navbar/footer UI များကို ဘာသာပြန် (website/i18n/en/code.json → .../<lang>/code.json) |
web_build | Docs များကို website/build သို့ build ( --locales / BUILD_LOCALES ကိုပံ့ပိုး) |
web_build_linkcheck | Offline‑safe link check (remote HTTP[S] မစစ်) |
web_build_local_preview | Local gh‑pages preview; 8080–809ို auto‑serve; optional tests/link‑check |
web_push_github | website/build ကို gh-pages ဌာန शाखသို့ push |
Syntax for options
- Options များကို ပေးပို့ရန်
make <command> OPTS="…"ကို အသုံးပြုပါ (စျေးကွက်ချဉ်းကပ်ချက်အလိုက် quotes ကို အကြံပြု)။ အောက်ပါ target တစ်ခုစီတွင် usage ဥပမာ များကို ပြထားသည်။
--
Locale build အကြံပြုချက်များ
- Locales အစိတ်အပိုင်းတစ်စုံတစ်ရာသာ build လုပ်ရန်:
BUILD_LOCALES="en de"ကို သတ်မှတ်ပါ သို့မဟုတ်OPTS="--locales en,de"ကို web targets များထံ ပေးပို့ပါ။ - Locale တစ်ခုထူးထူးအား Preview လုပ်ရန်:
http://localhost:<port>/Thunderbird-Reply-with-Attachments/de/။
တည်ဆောက်ခြင်းနှင့် ထုပ်ပိုးခြင်း
- ZIPs များ build လုပ်ရန်:
make pack - Repo root တွင် ATN နှင့် LOCAL ZIPs များ ထုတ်လုပ်ပေးမည် (artifacts များကို ကိုယ်တိုင် မပြင်ဆင်ပါ)
- အကြံပြုချက်: ထုပ်ပိုးမှု မလုပ်ခင်
sources/manifest_ATN.jsonနှင့်sources/manifest_LOCAL.jsonနှစ်ခုစလုံး၏ version ကို အပ်ဒိတ်လုပ်ပါ - Manual install (dev): Thunderbird → Tools → Add‑ons and Themes → gear → Install Add‑on From File… → build ပြီးသော ZIP ကို ရွေးချယ်ပါ
စမ်းသပ်ခြင်း
- စုံလင်သော စုံစမ်းမှုများ:
make test(Vitest) - Coverage (ရွေးချယ်နိုင်):
npm i -D @vitest/coverage-v8make testကို run လုပ်ပါ; HTML report အတွက်coverage/index.htmlကို ဖွင့်ကြည့်ပါ- i18n သာ:
make test_i18n(UI keys/placeholders/titles + website per‑locale per‑doc parity with id/title/sidebar_label checks)
Debugging & Logs
- Error Console: Tools → Developer Tools → Error Console
- Runtime တွင် verbose logs ကို Toggle လုပ်ရန်:
- Enable:
messenger.storage.local.set({ debug: true }) - Disable:
messenger.storage.local.set({ debug: false }) - ဖြေကြာ/ပို့လွှာ များရေးနေစဉ် logs များ ပေါ်လာမည်
စာတမ်းများ (website)
- Dev server:
cd website && npm run start - Static site build:
cd website && npm run build - Make နှိုင်းယှဉ် (အက္ခရာစဉ်):
make web_build,make web_build_linkcheck,make web_build_local_preview,make web_push_github - အသုံးပြုပုံ ဥပမာများ:
- EN သာ, tests/link‑check မပြု, push မလုပ်:
make web_build_local_preview OPTS="--locales en --no-test --no-link-check --dry-run" - အားလုံး locales, tests/link‑check ပါ, ထို့နောက် push:
make web_build_local_preview && make web_push_github - ထုတ်ဝေမီ offline‑safe link check ကို run လုပ်ပါ:
make web_build_linkcheck. - i18n: English သည်
website/docs/*.mdတွင်; ဂျာမန်ဘာသာပြန်ချက်များသည်website/i18n/de/docusaurus-plugin-content-docs/current/*.mdတွင်ရှိသည် - ရှာဖွေရန်: CI တွင် Algolia DocSearch env vars (
DOCSEARCH_APP_ID,DOCSEARCH_API_KEY,DOCSEARCH_INDEX_NAME) များကို သတ်မှတ်ထားပါက site သည် Algolia search ကို အသုံးပြုမည်; မသတ်မှတ်ထားပါက local search သို့ ပြန်ကျမည်။ Homepage ပေါ်တွင်/သို့မဟုတ်Ctrl+Kကို နှိပ်၍ ရှာဖွေမှု box ကို ဖွင့်ပါ။
Donate redirect route
website/src/pages/donate.js- လမ်းကြောင်း:
/donate(နှင့်/<locale>/donate) - အပြုအမူ:
- လက်ရှိ လမ်းကြောင်းတွင် locale ရှိပါက (ဥပမာ
/de/donate) အဆိုပါ locale ကို အသုံးပြုပါ - မဟုတ်ပါက
navigator.languagesနှင့် configuration ထားသည့် locales များမှ အကောင်းဆုံး ကိုက်ညီမှုကို ရွေးပါ; default locale သို့ fallback ဖြစ်မည် - ပြန်ညွှန်းသည့်နေရာ:
en→/docs/donation- အခြား →
/<locale>/docs/donation useBaseUrlကို အသုံးပြု၍ baseUrl ကို မှန်ကန်စွာ ကိုင်တွယ်သည်- fallback အဖြစ် meta refresh +
noscriptlink ကို ပါဝင်စေသည်
Preview အကြံပြုချက်များ
- Node preview ကို သန့်ရှင်းစွာ ပိတ်ရန်:
http://localhost:<port>/__stopကို ဖွင့်ပါ (Local server startedပြီးနောက် print ထုတ်ပြသည်)။ - MDX/JSX တွင် ပုံများ မတင်ရင်၊ site ၏
baseUrlကို လေးစားစေရန်useBaseUrl('/img/...')ကို အသုံးပြုပါ။ - Preview သည် ပထမဦးစွာ စတင်ပြီးနောက် link check ကို ပြုလုပ်မည်ဖြစ်ပြီး non‑blocking ဖြစ်သည် (ပြင်ပ link မတည့်မှုများကြောင့် preview မရပ်မနား)။
- Preview URL ဥပမာ:
http://localhost:<port>/Thunderbird-Reply-with-Attachments/(“Local server started” ပြသပြီးနောက် print ထုတ်ပြသည်)။ - Link‑check ထဲရှိ ပြင်ပ link များ: အချို့ ပြင်ပ site များ (ဥပမာ addons.thunderbird.net) သည် အလိုအလျောက် crawler များကို တားဆီးပြီး link checks တွင် 403 ပြနိုင်သည်။ Preview သည်Nonetheless စတင်မည်; ထို error များကို မပူရပါ။
Website ကို ဘာသာပြန်ပါ
ဘာတွေ ဘာသာပြန်လို့ ရနိုင်သလဲ
- Website UI သာ: homepage, navbar, footer နှင့် အခြား UI strings များ။ Docs အကြောင်းအရာများကို ယခုအချိန်တွင် အင်္ဂလိပ်သာ ထားရှိမည်။
ဘယ်မှာ တည်းဖြတ်မလဲ
website/i18n/<locale>/code.jsonကို တည်းဖြတ်ပါ (enကို ရည်ညွှန်းအဖြစ် အသုံးပြု)။{year},{slash},{ctrl},{k},{code1}ကဲ့သို့သော placeholders များကို မပြောင်းလဲပါနှင့်။
ဖိုင်များ ဖန်တီး/နောက်ဆုံးတင်
- ဘာသာစကားအားလုံးအတွက် မရှိသေးသော stubs များကို ဖန်တီးရန်:
npm --prefix website run i18n:stubs - (string အသစ်များ ထည့်ပြီးနောက်) English မှ stubs များကို ပြန်ရေးရန်:
npm --prefix website run i18n:stubs:force - Locale တစ်ခုတည်းအတွက် အခြားရွေးချယ်စရာ:
npx --prefix website docusaurus write-translations --locale <locale>
Homepage/navbar/footer UI strings များကို ဘာသာပြန်ရန် (OpenAI)
- ခွင့်ပြုချက်များကို တစ်ကြိမ်သာ သတ်မှတ်ပါ (shell သို့မဟုတ် .env):
export OPENAI_API_KEY=sk-...- ရွေးချယ်နိုင်:
export OPENAI_MODEL=gpt-4o-mini - တစ်ကြိမ်တည်း (locales အားလုံး၊ en ကို ကျော်):
make translate_web_index - Locale သတ်မှတ်ထားသော အပိုင်းများသာ:
make translate_web_index OPTS="--locales de,fr" - ရှိပြီးသားတန်ဖိုးများကို အစားထိုးရေးသားရန်:
make translate_web_index OPTS="--force"
အတည်ပြုခြင်း & ပြန်လည်ကြိုးစားခြင်း
- ဘာသာပြန် script သည် JSON အကွက်ပုံစံကို အတည်ပြုပြီး curly‑brace placeholders များကို ထိန်းသိမ်းပြီး URLs မပြောင်းလဲထားကြောင်း သေချာစေသည်။
- အတည်ပြုမှု မအောင်မြင်ပါက အကြံပြုချက်နှင့်အတူ အများဆုံး 2 ကြိမ် ထပ်မံကြိုးစားပြီးမှ ရှိပြီးသားတန်ဖိုးများကို ထိန်းသိမ်းထားမည်။
သင့် locale ကို Preview လုပ်ပါ
- Dev server:
npm --prefix website run start http://localhost:3000/<locale>/Thunderbird-Reply-with-Attachments/သို့ သွားပါ
တင်သွင်းခြင်း
- ပြင်ထားသော
code.jsonဖိုင်(များ) ဖြင့် PR တစ်ခုဖွင့်ပါ။ ပြောင်းလဲမှုများကို အဓိကအချက်အလက်များပေါ်သာ အာရုံပြုပြီး ဖြစ်နိုင်လျှင် screenshot တစ်ပုံ ပါထည့်ပါ။
လုံခြုံရေးနှင့် ပြင်ဆင်မှု အကြံပြုချက်များ
sources/manifest.jsonကို commit မလုပ်ပါ (build မှ ခေတ္တ ဖန်တီးထားသည်)- Update channel ကို ထိန်းသိမ်းရန်
browser_specific_settings.gecko.idကို တည်မြဲစွာ ထားရှိပါ
Settings ထိန်းသိမ်းမှု
- Storage: အသုံးပြုသူ၏ settings အားလုံးသည်
storage.localတွင် ထားရှိပြီး add‑on updates များအကြား ဆက်လက် ရှိနေမည်။ - Install: key တစ်ခုကို အပြီးအပြတ် မရှိသည့် (undefined) အခြေအန ေတွင်သာ defaults များ ကားပေးမည်။
- Update: Migration သည် မရှိသေးသော keys များကိုသာ ဖြည့်ပေးပြီး ရှိနေပြီးသား တန်ဖိုးများကို မအစားထိုးပါ။
- Schema marker:
settingsVersion(လက်ရှိ1)။ - Keys နှင့် defaults:
blacklistPatterns: string[]→['*intern*', '*secret*', '*passwor*']confirmBeforeAdd: boolean→falseconfirmDefaultChoice: 'yes'|'no'→'yes'warnOnBlacklistExcluded: boolean→true- Code:
sources/background.js→initializeOrMigrateSettings()နှင့်SCHEMA_VERSIONကို ကြည့်ပါ။
Dev workflow (setting အသစ် တစ်ခုထည့်ခြင်း)
sources/background.jsထဲတွင်SCHEMA_VERSIONကို အဆင့်မြှင့်ပါ။initializeOrMigrateSettings()ထဲရှိDEFAULTSobject တွင် key အသစ် + default ကို ထည့်ပါ။- Defaults များကို seed လုပ်ရာတွင် "only‑if‑undefined" စည်းမျဉ်းကို အသုံးပြုပါ; ရှိနေပြီးသား တန်ဖိုးများကို မအစားထိုးပါနှင့်။
- သတ်မှတ်ချက်သည် အသုံးပြုသူ မြင်တွေ့နိုင်သည့်အရာဖြစ်လျှင်
sources/options.jsတွင် ချိတ်ဆက်ပြီး localized strings များကို ထည့်ပါ။ - စမ်းသပ်မှုများကို ထည့်ဆောင်း/ချိန်ညှိပါ (
tests/background.settings.migration.test.jsကို ကြည့်ပါ)။
လက်ဖြင့် စမ်းသပ်မှု အကြံပြုချက်များ
- Fresh install ကို မျှော်မှန်းရန်: extension ၏ data directory ကို ရှင်းပါ သို့မဟုတ် profile အသစ်တစ်ခုဖြင့် စတင်ပါ။
- Update ကို မျှော်မှန်းရန်:
storage.localထဲတွင်settingsVersionကို0သို့ သတ်မှတ်ပြီး အသစ် reload လုပ်ပါ; ရှိပြီးသား တန်ဖိုးများ မပြောင်းလဲကြောင်းနှင့် မရှိသေးသော keys များသာ ထည့်ပေးထားကြောင်း အတည်ပြုပါ။
ပြဿနာရှင်းလိုက်ခြင်း
- Thunderbird သည် 128 ESR သို့မဟုတ် ထို့ထက်အသစ် ဖြစ်ကြောင်း သေချာပါစေ
- Runtime ပြဿနာများအတွက် Error Console ကို အသုံးပြုပါ
- သိမ်းထားသည့် settings များ မသင့်တင့်ကာ မအသုံးမဝင်ပါက Thunderbird ကို ပြန်စလိုက်ပြီး ထပ်မံ စမ်းကြည့်ပါ။ (Thunderbird သည် sessions အကြား state ကို cache ပြုလုပ်နိုင်သည်; restart ပြုလုပ်ခြင်းဖြင့် settings အသစ်များကို သေချာစွာ လုပ်ဆောင်စေမည်)။
CI & Coverage
- GitHub Actions (
CI — Tests) သည် vitest ကို coverage thresholds (လိုင်း/ဖင်ခွင်/မှောက်ခွာ/စတိတ်မင့်များ 85%) ဖြင့် run လုပ်ပါသည်။ Threshold မပြည့်ပါက job သည် fail ဖြစ်မည်။ - Workflow သည် HTML report ပါဝင်သည့် artifact
coverage-htmlကို upload လုပ်မည်; run စာမျက်နှာမှ download လုပ်ပါ (Actions → latest run → Artifacts)။
ကူညီပံ့ပိုးခြင်း
- Branch/commit/PR လမ်းညွှန်များအတွက် CONTRIBUTING.md ကို ကြည့်ပါ
- အကြံပြုချက်: နေ့စဉ် profile ကို မထိခိုက်စေရန် စမ်းသပ်မှု အတွက် Thunderbird ဖွံ့ဖြိုးရ ေး profile သီးသန့်တစ်ခု ဖန်တီးပါ။
ဘာသာပြန်ချက်များ
- “all → all” ကဲ့သို့ သီးချီ job ကြီးများကို လုပ်ခြင်းသည် နှေးကွေးနိုင်ပြီး ကုန်ကျစရိတ်များလည်း တက်နိုင်သည်။ စတင်ရာတွင် အစိတ်အပိုင်းတစ်ချို့သာ (ဥပမာ docs အနည်းငယ်နှင့် locales 1–2 ခုခန့်) ဖြင့် စတင်ပြီး ရလဒ်ကို ချီးမွမ်းအတည်ပြုထားကာ ထို့နောက် တဖြည်းဖြည်း တိုးချဲ့ပါ။
- Retry policy: ဘာသာပြန် job များသည် API errors များအပေါ် ၃ ကြိမ်ထိ exponential backoff ဖြင့် ပြန်ကြိုးစားမည်;
scripts/translate_web_docs_batch.jsနှင့်scripts/translate_web_docs_sync.jsကို ကြည့်ပါ။
Docs အတွက် မျက်နှာပြင်ပုံများ
-
ပုံများကို
website/static/img/အောက်တွင် သိမ်းဆည်းပါ။ -
MD/MDX တွင်
useBaseUrl('/img/<filename>')ဖြင့် ရည်ညွှန်းပါ၊ ထို့ကြောင့ ် site ၏baseUrlနှင့် လမ်းကြောင်းများ ကိုက်ညီမည်။ -
website/static/img/အောက်တွင် ပုံများကို ထည့်သွင်း/အမည်ပြောင်းပြီးနောက်၊ ရည်ညွှန်းချက်များအားလုံးသည် မ stáleuseBaseUrl('/img/…')ကို အသုံးပြုနေကြောင်းနှင့် local preview တွင် မှန်ကန်ထည့်သွင်းပြသနေကြောင်း အတည်ပြုပါ။ Favicons -
multi‑size
favicon.icoကို Make + scripts များပါဝင်သည့် build လမ်းကြောင်းအားလုံးတွင် အလိုအလျောက် ဖန်တီးပေးထားသည် (website/scripts/build-favicon.mjsဖြင့်)။ -
လက်ဖြင့် အဆင့်တစ်ခုမျှ မလိုပါ;
icon-*.pngကို အပ်ဒိတ်လုပ်ပေးရုံပါပဲ။ Review အကြံပြုချက် -
ဘာသာပြန်ထားသော docs များတွင် front‑matter
idကို မပြောင်းလဲပါနှင့်; ရှိပါကtitleနှင့်sidebar_labelကိုသာ ဘာသာပြန်ပါ။
clean
- ရည်ရွယ်ချက်: local build/preview artifacts များကို ဖယ်ရှားသည်။
- အသုံးပြုပုံ:
make clean - ဖယ်ရှားမည့်အရာများ (ရှိပါက):
tmp/web-local-preview/website/build/
commit
- ရည်ရွယ်ချက်: format, စမ်းသပ်, changelog အပ်ဒိတ်, commit နှင့် push။
- အသုံးပြုပုံ:
make commit - အသေးစိတ်: Prettier (write),
make test,make test_i18nများကို run လုပ်သည်; staged diffs ရှိသည့်အခါ changelog သို့လည်း ပူးတွဲထည့်သည်;origin/<branch>သို့ push လုပ်သည်။
eslint
- ရည်ရွယ်ချက်: flat config ဖြင့် ESLint ကို run လုပ်။
- အသုံးပြုပုံ:
make eslint
help
- ရည်ရွယ်ချက်: one‑line docs ဖြင့် targets အားလုံးကို စာရင်းပြ။
- အသုံးပြုပုံ:
make help
lint
- ရည်ရွယ်ချက်:
web-extကို အသုံးပြု၍ MailExtension ကို lint လုပ်။ - အသုံးပြုပုံ:
make lint - မှတ်ချက်များ:
sources/manifest_LOCAL.json→sources/manifest.jsonသို့ ခေတ္တရေးစရာကူးကူးလဲလှယ်သည်; build ပြီးသော ZIPs များကို မစစ်; အမြင့်မားမား မဟုတ်သည့် သတိပေးချက်များကြောင့် pipeline ကို မပျက်စီးစေ။
menu
- ရည်ရွယ်ချက်: Make target နှင့် optional arguments များကို ရွေးချယ်နိုင်သော အပြန်အလှန် menu။
- အသုံးပြုပုံ:
makeကို arguments မည်မျှမပါဘဲ run လုပ်ပါ။ - မှတ်ချက်များ:
whiptailမရှိပါက menu သည်make helpသို့ fallback ဖြစ်မည်။
pack
- ရည်ရွယ်ချက်: ATN နှင့် LOCAL ZIPs များ build (
lintအပေါ် မူတည်)။ - အသုံးပြုပုံ:
make pack - အကြံပြုချက်: ထုပ်ပ ိုးမည်မီ
sources/manifest_*.jsonနှစ်ခုစလုံး၏ version များကို bump လုပ်ပါ။
prettier
- ရည်ရွယ်ချက်: repo ကို နေရာတွင်တင် format လုပ်ရန်။
- အသုံးပြုပုံ:
make prettier
prettier_check
- ရည်ရွယ်ချက်: formatting ကို သေချာစစ် (ရေးသားခြင်း မရှိ)။
- အသုံးပြုပုံ:
make prettier_check
prettier_write
- ရည်ရွယ်ချက်:
prettier၏ alias။ - အသုံးပြုပုံ:
make prettier_write
test
- ရည်ရွယ်ချက်: Prettier (write), ESLint, ထို့နောက် Vitest (တပ်ဆင်ထားပါက coverage) ကို run လုပ်။
- အသုံးပြုပုံ:
make test
test_i18n
- ရည်ရွယ်ချက်: add‑on strings နှင့် website docs အတွက် i18n အထူးစမ်းသပ်မှုများ။
- အသုံးပြုပုံ:
make test_i18n - Run လုပ်သည့်အရာများ:
npm run test:i18nနှင့်npm run -s test:website-i18n။
translate_app / translation_app
- ရည်ရွယ်ချက်: add‑on UI strings များကို EN မှ အခြား locales များသို့ ဘာသာပြန်။
- အသုံးပြုပုံ:
make translation_app OPTS="--locales all|de,fr" - မှတ်ချက်များ: key ဖွဲ့စည်းမှုနှင့် placeholders များကို ထိန်းသိမ်းထားသည်;
translation_app.logသို့ log ထုတ်သည်။ Script ပုံစံ:node scripts/translate_app.js --locales …။
translate_web_docs_batch / translate_web_docs_sync
- ရည်ရွယ်ချက်: website docs များကို
website/docs/*.mdမှwebsite/i18n/<locale>/...သို့ ဘာသာပြန်။ - ဦးစားပေး:
translate_web_docs_batch(OpenAI Batch API)- အသုံးပြုပုံ (flags):
make translate_web_docs_batch OPTS="--files <doc1,doc2|all> --locales <lang1,lang2|all>" - Legacy positional ကို မထည့်မထား လက်ခံထားသေးသည်:
OPTS="<doc|all> <lang|all>"
- အသုံးပြုပုံ (flags):
- အပြုအမူ: JSONL ဖွဲ့စည်း, upload, 30s ပြီးတိုင်း poll, result များ download, ဖိုင်များရေးသား။
- မှတ်ချက်: batch job တစ်ခုသည် (OpenAI ၏ batch window အရ) 24 နာရီအထိ ကြာနိုင်သည်။ Console တွင် poll တစ်ကြိမ်ချင်းစီအတွက် ကုန်လွန်ထားသည့် အချိန်ကို ပြသမည်။
- Env:
OPENAI_API_KEY(လိုအပ်), ရွေးချယ်နိုင်:OPENAI_MODEL,OPENAI_TEMPERATURE,OPENAI_BATCH_WINDOW(default 24h),BATCH_POLL_INTERVAL_MS။ - Legacy:
translate_web_docs_sync- အသုံးပြုပုံ (flags):
make translate_web_docs_sync OPTS="--files <doc1,doc2|all> --locales <lang1,lang2|all>" - Legacy positional ကို မထည့်မထား လက်ခံထားသေးသည်:
OPTS="<doc|all> <lang|all>"
- အသုံးပြုပုံ (flags):
- အပြုအမူ: synchronous per‑pair requests (batch စုစည်းခြင်း မပါ)။
- မှတ်ချက်များ:
OPTSမထ ည့်ပါက အပြန်အလှန် prompts များဖြင့် ညွှန်ကြားမည်။ ပုံစံနှစ်မျိုးလုံးတွင် code blocks/inline code များကို ထိန်းသိမ်းပြီး front‑matteridကို မပြောင်းဘဲ ထားရှိသည်; logs ကိုtranslation_web_batch.log(batch) သို့မဟုတ်translation_web_sync.log(sync) သို့ စုဆောင်းသည်။
translate_web_index / translation_web_index
- ရည်ရွယ်ချက်: website UI strings (homepage, navbar, footer) ကို
website/i18n/en/code.jsonမှwebsite/i18n/<locale>/code.jsonအောက်ရှိ locales အားလုံးသို့ (enကို ချန်) ဘာသာပြန်။ - အသုံးပြုပုံ:
make translate_web_indexသို့မဟုတ်make translate_web_index OPTS="--locales de,fr [--force]" - လိုအပ်ချက်များ:
OPENAI_API_KEYကို export ပြု (ရွေးချယ်နိုင်:OPENAI_MODEL=gpt-4o-mini)။ - အပြုအမူ: JSON ဖွဲ့စည်းမှုကို အတည်ပြု၊ curly‑brace placeholders များကို ထိန်းသိမ်း၊ URLs မပြောင်းလဲ၊ အတည်ပြုမှု အမှားများရှိပါက feedback ဖြင့် ပြန်ကြိုးစားသည်။
web_build
- ရည်ရွယ်ချက်: docs site ကို
website/buildသို့ build လုပ်ရန်။ - အသုံးပြုပုံ:
make web_build OPTS="--locales en|de,en|all"(သို့မဟုတ်BUILD_LOCALES="en de"ကို သတ်မှတ်) - အတွင်းခံ:
node ./node_modules/@docusaurus/core/bin/docusaurus.mjs build [--locale …]။ - အားတင်ချက်:
website/တွင်သာwebsite/node_modules/@docusaurusမရှိပါကnpm ciကို run လုပ်မည်။
web_build_linkcheck
- ရည်ရွယ်ချက်: offline‑safe link check။
- အသုံးပြုပုံ:
make web_build_linkcheck OPTS="--locales en|all" - မှတ်ချက်များ:
tmp_linkcheck_web_pagesသို့ build လုပ်သည်; GH PagesbaseUrlကို/သို့ rewrite လုပ်သည်; remote HTTP(S) links များကို ကျော်လွန်ပါမည်။
web_build_local_preview
- ရည်ရွယ်ချက်: tests/link‑check ရွေးချယ်နိုင်မှုများပါဝင်သည့် local gh‑pages preview။
- အသုံးပြုပုံ:
make web_build_local_preview OPTS="--locales en|all [--no-test] [--no-link-check] [--dry-run] [--no-serve]" - အပြုအမူ: ပထမဦးစွာ Node preview server (
scripts/preview-server.mjs,/__stopကို ပံ့ပိုး) ကို ကြိုးစားပြီး မအောင်မြင်လျှင်python3 -m http.serverသို့ fallback လုပ်သည်; 8080–8090 တို့တွင် serve; PID ကိုweb-local-preview/.server.pidတွင် သိမ်းဆည်းသည်။
web_push_github
- ရည်ရွယ်ချက်:
website/buildကိုgh-pagesချန်နယ်သို့ push လုပ်ရန်။ - အသုံးပြုပုံ:
make web_push_github
အကြံပြုချက်: Makefile မှ အသုံးပြုမည့် package manager ကို ချိန်ညှိလိုပါက NPM=… ကို သတ်မှတ်ပါ (default ဟာ npm)။