ବିକାଶ
ବିକାଶ ଗାଇଡ୍
କେବଳ ଇଂରାଜୀ ସମ୍ପାଦନ; ଅନୁବାଦଗୁଡିକ ପ୍ରସାରିତ ହୁଏ
ଡକ୍ୟୁମେଣ୍ଟେସନକୁ କେବଳ 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/: ମୁଖ୍ୟ ଅଡଅନ୍ କୋଡ୍ (ପୃଷ୍ଠଭୂମି, ବିକଳ୍ପ/ପପଅପ୍ UI, ମ୍ୟାନିଫେଷ୍ଟ, ଆଇକନ୍)tests/: Vitest ସ୍ୱିଟ୍website/: Docusaurus ଡକ୍ସ (i18nwebsite/i18n/de/...ତଳେ)
ଇନ୍ସ୍ଟଲ୍ ଏବଂ ଟୁଲିଙ୍ଗ
- Root ନିର୍ଭରତା ଇନ୍ସ୍ଟଲ୍:
npm ci - ଡକ୍ସ (ଇଚ୍ଛାଧୀନ):
cd website && npm ci - ଟାର୍ଗେଟ୍ଗୁଡିକ ଖୋଜନ୍ତୁ:
make help
ଲାଇଭ୍ ଡେଭ୍ (web‑ext run)
- Firefox ଡେସ୍କଟପ୍ରେ ଦ୍ରୁତ ଲୁପ୍ (କେବଳ UI ସ୍ମୋକ୍‑ଟେଷ୍ଟ):
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 ଇଭେଣ୍ଟ ପେଜଗୁଡିକ ନିଷ୍କ୍ରିୟ ସମୟରେ ସସ୍ପେଣ୍ଡ ହୁଏ; କୋଡ୍ ପରିବର୍ତ୍ତନ ପରେ ଅଡଅନ୍କୁ ରିଲୋଡ୍ କରନ୍ତୁ, କିମ୍ବା web‑ext କୁ ଆପୋ‑ରିଲୋଡ୍ ହେବାକୁ ଦିଅନ୍ତୁ।
- କେତେକ କେବଳ Firefox ବ୍ୟବହାର ଭିନ୍ନ ହୋଇପାରେ; API ସମତା ପାଇଁ ସଦା Thunderbird ରେ ଯାଞ୍ଚ କରନ୍ତୁ।
- 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 | flat config ଦ୍ୱାରା ESLint ଚଳାନ (npm run -s lint:eslint)। |
help | ସମସ୍ତ ଟାର୍ଗେଟ୍ର ଏକ ଧାଡି ଡକ୍ସ (ସଜାନ୍ତୁ) ସୂଚୀ। |
lint | sources/ ଉପରେ web‑ext lint (ତାତ୍କାଳିକ manifest; ZIPଗୁଡିକୁ ଅଣଦେଖା; non‑fatal)। |
menu | ଟାର୍ଗେଟ୍ ଓ ଇଚ୍ଛାଧୀନ ଆର୍ଗ୍ୟୁମେଣ୍ଟ ବାଛିବା ପାଇଁ ଇଣ୍ଟର୍ଆକ୍ଟିଭ୍ ମେନୁ। |
pack | ATN ଏବଂ LOCAL ZIP ବିଲ୍ଡ (linter ଚଳାନ; packer ସ୍କ୍ରିପ୍ଟକୁ କଲ୍ କର େ)। |
prettier | ରିପୋକୁ ଜଗାରେ ଫର୍ମାଟ୍ କରନ୍ତୁ (ପରିବର୍ତ୍ତନ ଲେଖେ)। |
prettier_check | Prettier check mode (ଲେଖା ନାହିଁ); ପୁନଃଫର୍ମାଟ୍ ଆବଶ୍ୟକ ହେଲେ ્ଫେଲ୍ ହେବ। |
prettier_write | prettier ର ଅଳିଆସ୍। |
test | Prettier (write), ESLint, ପରେ Vitest (କନଫିଗର୍ କରାଯାଇଥିଲେ coverage)। |
test_i18n | କେବଳ i18n ଟେଷ୍ଟ: ଅଡଅନ୍ ପ୍ଳେସହୋଲ୍ଡର/ସମତା + ୱେବସାଇଟ୍ ସମତା। |
translate_app | translation_app ର ଅଳିଆସ୍। |
translation_app | sources/_locales/en/messages.json ରୁ ଆପ୍ UI ସ୍ଟ୍ରିଂ ଅନୁବାଦ। |
translate_web_docs_batch | OpenAI Batch API ଦ୍ୱାରା ୱେବସାଇଟ୍ ଡକ୍ସ ଅନୁବାଦ (ପସନ୍ଦିତ)। |
translate_web_docs_sync | ୱେବସାଇଟ୍ ଡକ୍ସ ସିଙ୍କ୍ରୋନାସ୍ ଅନୁବାଦ (ପୁରୁଣା, ନନ୍‑ବ୍ୟାଚ୍)। |
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 ରେ ଆଟୋ‑ସର୍ଭ୍; ଇଚ୍ଛାଧୀନ tests/link‑check। |
web_push_github | website/build କୁ gh-pages ବ୍ରାଞ୍ଚକୁ ପୁସ୍ କରନ୍ତୁ। |
ବିକଳ୍ପଗୁଡିକ ପାଇଁ ସିନ୍ଟାକ୍ସ
- ବିକଳ୍ପ ପାସ୍ କରିବା ପାଇଁ
make <command> OPTS="…"ବ୍ୟବହାର କରନ୍ତୁ (କୋଟ୍ ସୁପାରିଶ୍ରୁତ)। ନିମ୍ନତଳରେ ପ୍ରତ୍ୟେକ ଟାର୍ଗେଟ୍ ଉଦାହରଣ ଉପଯୋଗ ଦେଖାଏ।
--
ଲୋକେଲ୍ ବିଲ୍ଡ ଟିପ୍ସ
- ଲୋକେଲ୍ର ସବସେଟ୍ ବିଲ୍ଡ:
BUILD_LOCALES="en de"ସେଟ୍ କରନ୍ତୁ କିମ୍ବା web ଟାର୍ଗେଟ୍ଗୁଡିକୁOPTS="--locales en,de"ପାସ୍ କରନ୍ତୁ। - ନିର୍ଦ୍ଦିଷ୍ଟ ଲୋକେଲ୍ ପ୍ରିଭ୍ୟୁ:
http://localhost:<port>/Thunderbird-Reply-with-Attachments/de/।
ବିଲ୍ଡ ଏବଂ ପ୍ୟାକେଜ୍
- ZIP ବିଲ୍ଡ:
make pack - ରିପୋ ରୁଟ୍ରେ ATN ଏବଂ LOCAL ZIP ଉତ୍ପାଦନ (ହାତେ ଆର୍ଟିଫ୍ୟାକ୍ଟ ସମ୍ପାଦନ କରିବେ ନାହିଁ)
- ଟିପ୍: ପ୍ୟାକେଜିଙ୍ଗ ପୂର୍ବରୁ
sources/manifest_ATN.jsonଏବଂsources/manifest_LOCAL.json— ଉଭୟରେ ଭାର୍ସନ୍ ଅପଡେଟ୍ କରନ୍ତୁ - ମାନୁଆଲ୍ ଇନ୍ସ୍ଟଲ୍ (ଡେଭ୍): 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 କୀ/ପ୍ଳେସହୋଲ୍ଡର/ଟାଇଟଲ୍ + ୱେବସାଇଟ୍ ପ୍ରତ୍ୟେକ ଲୋକେଲ୍‑ପ୍ରତ୍ୟେକ ଡକ୍ ପ୍ୟାରିଟି — id/title/sidebar_label ଯାଞ୍ଚ ସହିତ)
ଡିବଗିଂ ଏବଂ ଲଗ୍ସ
- Error Console: Tools → Developer Tools → Error Console
- ରନ୍ଟାଇମ୍ରେ ବିସ୍ତୃତ ଲଗ୍ ସକ୍ରିୟ/ନିଷ୍କ୍ରିୟ:
- ସକ୍ରିୟ:
messenger.storage.local.set({ debug: true }) - ନିଷ୍କ୍ରିୟ:
messenger.storage.local.set({ debug: false }) - ଲଗ୍ଗୁଡିକ ରିପ୍ଲାଇ ଲେଖିବା/ପଠାଇବା ବେଳେ ଦେଖାଯାଏ
ଡକ୍ସ (ୱେବସାଇଟ୍)
- ଡେଭ୍ ସର୍ଭର:
cd website && npm run start - ସ୍ଟାଟିକ୍ ସାଇଟ୍ ବିଲ୍ଡ:
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" - ସମସ୍ତ ଲୋକେଲ୍, tests/link‑check ସହିତ, ତାପରେ push:
make web_build_local_preview && make web_push_github - ପ୍ରକାଶ ପୂର୍ବରୁ, ଅଫ୍ଲାଇନ୍‑ସେଫ୍ ଲିଙ୍କ ଚେକ୍ ଚଳାନ କରନ୍ତୁ:
make web_build_linkcheck। - i18n: ଇଂରାଜୀ
website/docs/*.mdରେ; ଜର୍ମାନ ଅନୁବାଦwebsite/i18n/de/docusaurus-plugin-content-docs/current/*.mdରେ - ସର୍ଚ୍ଚ: ଯଦି CI ରେ Algolia DocSearch env ଭାରିଏବଲ୍ଗୁଡିକ (
DOCSEARCH_APP_ID,DOCSEARCH_API_KEY,DOCSEARCH_INDEX_NAME) ସେଟ୍ ଅଛି, ସାଇଟ୍ Algolia ସର୍ଚ୍ଚ ବ୍ୟବହାର କରେ; ନହେଲେ ଲୋକାଲ୍ ସର୍ଚ୍ଚକୁ ବ୍ୟାକଅପ୍ କରେ। ହୋମପେଜ୍ରେ,/କିମ୍ବାCtrl+Kଦବାଇ ସର୍ଚ୍ଚ ବକ୍ସ ଖୋଲନ୍ତୁ।
Donate ରିଡାଇରେକ୍ଟ ରୁଟ୍
website/src/pages/donate.js- ରୁଟ୍:
/donate(ଏବଂ/<locale>/donate) - ବ୍ୟବହାର:
- ଏବେର ରୁଟ୍ରେ ଯଦି ଲୋକେଲ୍ ଅଛି (ଉଦାହରଣ,
/de/donate), ସେହିଟିକୁ ବ୍ୟବହାର କରନ୍ତୁ - ନଚେତ,
navigator.languagesବନାମ କନଫିଗର୍ ଲୋକେଲ୍ରୁ ସର୍ବୋତ୍କୃଷ୍ଟ ମ୍ୟାଚ୍ ବାଛନ୍ତୁ; ଡିଫଲ୍ଟ ଲୋକେଲ୍କୁ ଫଲ୍ବ୍ୟାକ୍ - ରିଡାଇରେକ୍ଟ କରେ:
en→/docs/donation- ଅନ୍ୟମାନେ →
/<locale>/docs/donation - ଠିକ୍ baseUrl ହେଣ୍ଡଲିଂ ପାଇଁ
useBaseUrlବ୍ୟବହାର କରେ - ଫଲ୍ବ୍ୟାକ୍ ଭାବେ meta refresh +
noscriptଲିଙ୍କ ସମ୍ମିଳିତ
ପ୍ରିଭ୍ୟୁ ଟିପ୍ସ
- Node ପ୍ରିଭ୍ୟୁ ସଫା ସହିତ ବନ୍ଦ କରନ୍ତୁ:
http://localhost:<port>/__stopଖୋଲନ୍ତୁ (Local server startedପରେ ପ୍ରିଣ୍ଟ ହୋଇଥାଏ)। - ଯଦି MDX/JSX ରେ ଇମେଜ୍ ଲୋଡ୍ ହୁଅନି, ସାଇଟ୍
baseUrlକୁ ସମ୍ମାନ ଦେବା ପାଇଁuseBaseUrl('/img/...')ବ୍ୟବହାର କରନ୍ତୁ। - ପ୍ରଥମେ ପ୍ରିଭ୍ୟୁ ଆରମ୍ଭ ହୁଏ; ଲ ିଙ୍କ ଚେକ୍ ପରବର୍ତ୍ତୀରେ ଚଳାନ ହୋଇ ନନ୍‑ବ୍ଲକିଂ (ଭଙ୍ଗା ବାହ୍ୟ ଲିଙ୍କ ପ୍ରିଭ୍ୟୁକୁ ଅଟକାଇ ନାହିଁ)।
- ପ୍ରିଭ୍ୟୁ ଉଦାହରଣ URL:
http://localhost:<port>/Thunderbird-Reply-with-Attachments/(“Local server started” ପରେ ପ୍ରିଣ୍ଟ ହୁଏ)। - ଲିଙ୍କ‑ଚେକ୍ ରେ ବାହ୍ୟ ଲିଙ୍କ: କିଛି ବାହ୍ୟ ସାଇଟ୍ (ଉଦାହରଣ, addons.thunderbird.net) ସ୍ୱୟଂଚାଳିତ କ୍ରାଲର୍ଗୁଡିକୁ ବ୍ଲକ୍ କରନ୍ତି ଏବଂ 403 ଦେଖାଇପାରନ୍ତି। ପ୍ରିଭ୍ୟୁ ତଥାପି ଆରମ୍ଭ ହୁଏ; ଏଗୁଡିକୁ ଅଣଦେଖା କରିବା ସୁରକ୍ଷିତ।
ୱେବସାଇଟ୍ ଅନୁବାଦ କରନ୍ତୁ
ଆପଣ କ ଣସିକି ଅନୁବାଦ କରିପାରିବେ
- କେବଳ ୱେବସାଇଟ୍ UI: ହୋମପେଜ୍, ନାଭବାର୍, ଫୁଟର, ଏବଂ ଅନ୍ୟାନ୍ୟ UI ସ୍ଟ୍ରିଙ୍ଗ। ଡକ୍ସ ବିଷୟବସ୍ତୁ ଏପର୍ଯ୍ୟନ୍ତ କେବଳ ଇଂରାଜୀରେ ରହିବ।
କେଉଁଠି ଏଡିଟ୍ କରିବେ
website/i18n/<locale>/code.jsonସମ୍ପାଦନ କରନ୍ତୁ (enକୁ ଉଦାହରଣ ଭାବେ ନିଅନ୍ତୁ)।{year},{slash},{ctrl},{k},{code1}ପରି ପ୍ଲେସହୋଲ୍ଡରଗୁଡିକୁ ଅପରିବର୍ତ୍ତିତ ରଖନ୍ତୁ।
ଫାଇଲଗୁଡିକ ସୃଷ୍ଟି/ରିଫ୍ରେଶ କରନ୍ତୁ
- ସମସ୍ତ ଲୋକେଲ୍ ପାଇଁ ଅନୁପସ୍ଥିତ stubs ସୃଷ୍ଟି:
npm --prefix website run i18n:stubs - ନୂତନ ସ୍ଟ୍ରିଙ୍ଗ ଯୋଡିବା ପରେ ଇଂରାଜୀରୁ stubs ଓଭରରାଇଟ୍:
npm --prefix website run i18n:stubs:force - ଏକକ ଲୋକେଲ୍ ପାଇଁ ବିକଳ୍ପ:
npx --prefix website docusaurus write-translations --locale <locale>
ହୋମପେଜ୍/ନାଭବାର୍/ଫୁଟର UI ସ୍ଟ୍ରିଙ୍ଗ ଅନୁବାଦ (OpenAI)
- ଥରେ କ୍ରେଡେନ୍ସିଆଲ୍ ସେଟ୍ (shell କିମ୍ବା .env):
export OPENAI_API_KEY=sk-...- ବିକଳ୍ପ:
export OPENAI_MODEL=gpt-4o-mini - ଏକ‑ଶଟ୍ (ସମସ୍ତ ଲୋକେଲ୍, en ଏଡାଇବେ):
make translate_web_index - ନିର୍ଦ୍ଦିଷ୍ଟ ଲୋକେଲ୍କୁ ସୀମିତ:
make translate_web_index OPTS="--locales de,fr" - ଅବସ୍ଥାନ୍ତରିତ ମୂଲ୍ୟଗୁଡିକ ଓଭରରାଇଟ୍:
make translate_web_index OPTS="--force"
ଯାଞ୍ଚ ଏବଂ ପୁନର୍ଚେଷ୍ଟା
- ଟ୍ରାନ୍ସଲେସନ୍ ସ୍କ୍ରିପ୍ଟ JSON ଆକୃତିକୁ ଭାଲିଡେଟ୍ କରେ, curly‑brace ପ୍ଲେସହୋଲ୍ଡର ସୁରକ୍ଷିତ କରେ, ଏବଂ URL ଅପରିବର୍ତ୍ ତିତ ରହିଛି ବୋଲି ନିଶ୍ଚିତ କରେ।
- ଭାଲିଡେସନ୍ ્ଫେଲ୍ ହେଲେ, ବର୍ତ୍ତମାନ ମୂଲ୍ୟ ରଖିବା ପୂର୍ବରୁ ଫିଡବ୍ୟାକ୍ ସହ 2 ଥର ପର୍ଯ୍ୟନ୍ତ ପୁନର୍ଚେଷ୍ଟା କରେ।
ଆପଣଙ୍କ ଲୋକେଲ୍ ପ୍ରିଭ୍ୟୁ କରନ୍ତୁ
- ଡେଭ୍ ସର୍ଭର:
npm --prefix website run start - ଯାଆନ୍ତୁ
http://localhost:3000/<locale>/Thunderbird-Reply-with-Attachments/
ଦାଖଲ କରିବା
- ସମ୍ପାଦିତ
code.jsonଫାଇଲ(ଗୁଡିକ) ସହିତ ଏକ PR ଖୋଲନ୍ତୁ। ପରିବର୍ତ୍ତନଗୁଡିକୁ କେନ୍ଦ୍ରିତ ରଖନ୍ତୁ ଏବଂ ସମ୍ଭବ ଥିଲେ ଏକ ଦ୍ରୁତ ସ୍କ୍ରିନଶଟ୍ ସମ୍ମିଳିତ କରନ୍ତୁ।
ସୁରକ୍ଷା ଏବଂ କନଫିଗରେସନ୍ ଟିପ୍ସ
sources/manifest.jsonକମିଟ୍ କରିବେ ନାହିଁ (ବିଲ୍ଡ ସମୟରେ ତାତ୍କାଳିକ ଭାବେ ସୃଷ୍ଟିତ)- ଅପଡେଟ୍ ଚ୍ୟାନେଲ୍ ରକ୍ଷା ପାଇଁ
browser_specific_settings.gecko.idକୁ ସ୍ଥିର ରଖନ୍ତୁ