Skip to main content

ਵਿਕਾਸ


ਵਿਕਾਸ ਗਾਈਡ

ਸਿਰਫ਼ ਅੰਗਰੇਜ਼ੀ ਸੋਧੋ; ਅਨੁਵਾਦ ਆਪ-ਮਾਤਰਾ ਫੈਲਦੇ ਹਨ

ਦਸਤਾਵੇਜ਼ੀਕਰਨ ਕੇਵਲ website/docs (English) ਹੇਠਾਂ ਅੱਪਡੇਟ ਕਰੋ। website/i18n/<locale>/… ਹੇਠਾਂ ਅਨੁਵਾਦ ਬਣਾਏ ਜਾਂਦੇ ਹਨ ਅਤੇ ਹੱਥੋਂ ਸੋਧਣੇ ਨਹੀਂ ਚਾਹੀਦੇ। ਲੋਕਲਾਈਜ਼ਡ ਸਮੱਗਰੀ ਤਾਜ਼ਾ ਕਰਨ ਲਈ ਅਨੁਵਾਦ ਟਾਸਕ ਵਰਤੋ (ਉਦਾਹਰਨ ਲਈ, make translate_web_docs_batch)।

ਪੂਰਵ ਸ਼ਰਤਾਂ

  • Node.js 22+ ਅਤੇ npm (Node 22 ਨਾਲ ਟੈਸਟ ਕੀਤਾ)
  • Thunderbird 128 ESR ਜਾਂ ਨਵਾਂ (ਹੱਥੋਂ ਟੈਸਟਿੰਗ ਲਈ)

ਪ੍ਰੋਜੈਕਟ ਲੇਆਔਟ (ਉੱਚ‑ਪੱਧਰੀ)

  • ਰੂਟ: ਪੈਕੇਜਿੰਗ ਸਕ੍ਰਿਪਟ distribution_zip_packer.sh, ਦਸਤਾਵੇਜ਼, ਸਕ੍ਰੀਨਸ਼ਾਟ
  • sources/: ਮੁੱਖ ਐਡ‑ਆਨ ਕੋਡ (ਬੈਕਗ੍ਰਾਊਂਡ, ਚੋਣਾਂ/ਪੌਪਅੱਪ UI, ਮੈਨੀਫੈਸਟ, ਆਈਕਾਨ)
  • tests/: Vitest ਸੂਟ
  • website/: Docusaurus ਦਸਤਾਵੇਜ਼ (i18n website/i18n/de/... ਹੇਠ)

ਇੰਸਟਾਲ ਅਤੇ ਟੂਲਿੰਗ

  • ਰੂਟ ਡਿਪੇਂਡੈਂਸੀ ਇੰਸਟਾਲ ਕਰੋ: 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 ਪ੍ਰੋਫ਼ਾਈਲ ਵਰਤੋ।

ਮੇਕ ਟਾਰਗੇਟ (ਵਰਣਮਾਲਾ ਅਨੁਸਾਰ)

Makefile ਆਮ ਡਿਵ ਵਰਕਫਲੋਜ਼ ਨੂੰ ਮਿਆਰੀਕ੍ਰਿਤ ਕਰਦਾ ਹੈ। ਹਰ ਟਾਰਗੇਟ ਦੀ ਇੱਕ‑ਲਾਈਨ ਸੰਖੇਪ ਲਈ ਕਦੇ ਵੀ make help ਚਲਾਓ।

ਟਿਪ: make ਬਿਨਾਂ ਟਾਰਗੇਟ ਦੇ ਚਲਾਉਣ ‘ਤੇ ਟਾਰਗੇਟ ਚੁਣਨ ਲਈ ਇੱਕ ਸਰਲ Whiptail ਮੇਨੂ ਖੁਲ੍ਹਦਾ ਹੈ।

ਟਾਰਗੇਟਇੱਕ‑ਲਾਈਨ ਵੇਰਵਾ
cleanਸਥਾਨਕ ਬਿਲਡ/ਪ੍ਰੀਵਿਊ ਆਰਟੀਫੈਕਟ ਮਿਟਾਓ (tmp/, web-local-preview/, website/build/)।
commitਫਾਰਮੈਟ ਕਰੋ, ਟੈਸਟ ਚਲਾਓ (i18n ਸਮੇਤ), ਚੇਂਜਲਾਗ ਅੱਪਡੇਟ ਕਰੋ, ਕਮਿਟ ਅਤੇ ਪੁਸ਼ ਕਰੋ।
eslintflat ਕਨਫਿਗ ਰਾਹੀਂ ESLint ਚਲਾਓ (npm run -s lint:eslint)।
helpਸਾਰੇ ਟਾਰਗੇਟ ਇੱਕ‑ਲਾਈਨ ਡੌਕਸ ਸਮੇਤ (ਸੌਰਟ ਕੀਤੇ) ਲਿਸਟ ਕਰੋ।
lintsources/ ‘ਤੇ web‑ext lint (ਅਸਥਾਈ ਮੈਨੀਫੈਸਟ; ZIP ਅਣਡਿੱਠੇ; ਗੈਰ‑ਘਾਤਕ)।
menuਟਾਰਗੇਟ ਅਤੇ ਵਿਕਲਪਿਕ ਆਰਗੂਮੈਂਟ ਚੁਣਨ ਲਈ ਇੰਟਰਐਕਟਿਵ ਮੇਨੂ।
packATN ਅਤੇ LOCAL ZIPs ਬਣਾਓ (ਲਿੰਟਰ ਚਲਾਉਂਦਾ; ਪੈਕਰ ਸਕ੍ਰਿਪਟ ਨੂੰ ਕਾਲ ਕਰਦਾ)।
prettierਰਿਪੋਜ਼ਟਰੀ ਨੂੰ ਥਾਂ ‘ਤੇ ਫਾਰਮੈਟ ਕਰੋ (ਬਦਲਾਅ ਲਿਖਦਾ ਹੈ)।
prettier_checkPrettier ਚੈਕ ਮੋਡ ਵਿੱਚ (ਕੋਈ ਲਿਖਤ ਨਹੀਂ); ਰੀਫਾਰਮੈਟ ਦੀ ਲੋੜ ਹੋਣ ‘ਤੇ ਫੇਲ।
prettier_writeprettier ਲਈ ਉਪਨਾਮ।
testPrettier (write), ESLint, ਫਿਰ Vitest (ਜੇ ਕਨਫਿਗਰ ਹੋਵੇ ਤਾਂ ਕਵਰੇਜ)।
test_i18nਕੇਵਲ i18n ਟੈਸਟ: ਐਡ‑ਆਨ ਪਲੇਸਹੋਲਡਰ/ਸਮਾਨਤਾ + ਵੈੱਬਸਾਈਟ ਸਮਾਨਤਾ।
translate_apptranslation_app ਲਈ ਉਪਨਾਮ।
translation_appਐਪ UI ਸਟਰਿੰਗਾਂ ਦਾ sources/_locales/en/messages.json ਤੋਂ ਅਨੁਵਾਦ ਕਰੋ।
translate_web_docs_batchਵੈੱਬਸਾਈਟ ਦਸਤਾਵੇਜ਼ਾਂ ਦਾ OpenAI Batch API ਰਾਹੀਂ ਅਨੁਵਾਦ (ਤਰਜੀਹੀ)।
translate_web_docs_syncਵੈੱਬਸਾਈਟ ਦਸਤਾਵੇਜ਼ਾਂ ਦਾ ਸਿੰਕ੍ਰੋਨਸ ਅਨੁਵਾਦ (ਵਿਰਾਸਤੀ, ਨਾਨ‑ਬੈਚ)।
translate_web_indextranslation_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_githubwebsite/build ਨੂੰ gh-pages ਬ੍ਰਾਂਚ ‘ਤੇ ਪੁਸ਼ ਕਰੋ।

ਚੋਣਾਂ ਲਈ ਸਿੰਟੈਕਸ

  • ਵਿਕਲਪ ਪਾਸ ਕਰਨ ਲਈ make <command> OPTS="…" ਵਰਤੋ (ਕੋਟਸ ਸਿਫ਼ਾਰਸ਼ੀ)। ਹੇਠਾਂ ਹਰ ਟਾਰਗੇਟ ਵਰਤੋਂ ਦਾ ਉਦਾਹਰਨ ਦਿਖਾਉਂਦਾ ਹੈ।

--

ਲੋਕੇਲ ਬਿਲਡ ਟਿੱਪਸ

  • ਲੋਕੇਲਾਂ ਦੇ ਸਬਸੈਟ ਬਣਾਓ: BUILD_LOCALES="en de" ਸੈੱਟ ਕਰੋ ਜਾਂ ਵੈੱਬ ਟਾਰਗੇਟਾਂ ਨੂੰ OPTS="--locales en,de" ਦਿਓ।
  • ਕਿਸੇ ਖਾਸ ਲੋਕੇਲ ਦਾ ਪ੍ਰੀਵਿਊ: http://localhost:<port>/Thunderbird-Reply-with-Attachments/de/

ਬਿਲਡ ਅਤੇ ਪੈਕੇਜ

  • ZIPs ਬਣਾਓ: make pack
  • ਰਿਪੋ ਰੂਟ ਵਿੱਚ ATN ਅਤੇ LOCAL ZIPs ਬਣਾਉਂਦਾ ਹੈ (ਆਰਟੀਫੈਕਟ ਹੱਥੋਂ ਨਾ ਸੋਧੋ)
  • ਟਿਪ: ਪੈਕੇਜਿੰਗ ਤੋਂ ਪਹਿਲਾਂ ਵਰਜਨ sources/manifest_ATN.json ਅਤੇ sources/manifest_LOCAL.json ਦੋਹਾਂ ਵਿੱਚ ਅੱਪਡੇਟ ਕਰੋ
  • ਹੱਥੋਂ ਇੰਸਟਾਲ (ਡਿਵ): Thunderbird → Tools → Add‑ons and Themes → ਗਿਅਰ → Install Add‑on From File… → ਬਣੀ ਹੋਈ ZIP ਚੁਣੋ

ਟੈਸਟ

  • ਪੂਰਾ ਸੂਟ: make test (Vitest)
  • ਕਵਰੇਜ (ਵਿਕਲਪਿਕ):
  • npm i -D @vitest/coverage-v8
  • make test ਚਲਾਓ; HTML ਰਿਪੋਰਟ ਲਈ coverage/index.html ਖੋਲ੍ਹੋ
  • ਕੇਵਲ i18n: make test_i18n (UI keys/placeholders/titles + ਵੈੱਬਸਾਈਟ ਪ੍ਰਤੀ‑ਲੋਕੇਲ ਪ੍ਰਤੀ‑ਦਸਤਾਵੇਜ਼ ਸਮਾਨਤਾ id/title/sidebar_label ਜਾਂਚਾਂ ਨਾਲ)

ਡਿਬੱਗਿੰਗ ਅਤੇ ਲੌਗ

  • Error Console: Tools → Developer Tools → Error Console
  • ਰਨਟਾਈਮ ‘ਤੇ verbose ਲੌਗ ਟੌਗਲ ਕਰੋ:
  • ਯੋਗ ਕਰੋ: 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, ਟੈਸਟ/ਲਿੰਕ‑ਚੈਕ ਛੱਡੋ, ਕੋਈ ਪੁਸ਼ ਨਹੀਂ: make web_build_local_preview OPTS="--locales en --no-test --no-link-check --dry-run"
  • ਸਾਰੀਆਂ ਲੋਕੇਲਾਂ, ਟੈਸਟ/ਲਿੰਕ‑ਚੈਕ ਸਮੇਤ, ਫਿਰ ਪੁਸ਼: 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 ਵਿੱਚ
  • ਖੋਜ: ਜੇ Algolia DocSearch env ਵੇਰੀਏਬਲ CI ਵਿੱਚ ਸੈੱਟ ਹਨ (DOCSEARCH_APP_ID, DOCSEARCH_API_KEY, DOCSEARCH_INDEX_NAME), ਤਾਂ ਸਾਈਟ Algolia ਖੋਜ ਵਰਤਦੀ ਹੈ; ਨਹੀਂ ਤਾਂ ਇਹ ਲੋਕਲ ਖੋਜ ‘ਤੇ ਵਾਪਸ ਜਾਂਦੀ ਹੈ। ਹੋਮਪੇਜ ‘ਤੇ, ਖੋਜ ਬਾਕਸ ਖੋਲ੍ਹਣ ਲਈ / ਜਾਂ Ctrl+K ਦਬਾਓ।

  • 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} ਵਰਗੇ ਪਲੇਸਹੋਲਡਰ ਅਣਬਦਲੇ ਰਹਿਣ ਦਿਓ।

ਫਾਇਲਾਂ ਬਣਾਓ ਜਾਂ ਤਾਜ਼ਾ ਕਰੋ

  • ਸਾਰੀਆਂ ਲੋਕੇਲਾਂ ਲਈ ਗਾਇਬ ਸਟਬ ਬਣਾਓ: npm --prefix website run i18n:stubs
  • ਅੰਗਰੇਜ਼ੀ ਤੋਂ ਸਟਬ ਓਵਰਰਾਈਟ ਕਰੋ (ਨਵੀਆਂ ਸਟਰਿੰਗਾਂ ਜੋੜਨ ਤੋਂ ਬਾਅਦ): npm --prefix website run i18n:stubs:force
  • ਇੱਕ ਲੋਕੇਲ ਲਈ ਵਿਕਲਪ: npx --prefix website docusaurus write-translations --locale <locale>

ਹੋਮਪੇਜ/ਨੈਵਬਾਰ/ਫੁਟਰ UI ਸਟਰਿੰਗਾਂ ਦਾ ਅਨੁਵਾਦ (OpenAI)

  • ਪਰਮਾਣ‑ਪੱਤਰ ਇੱਕ ਵਾਰੀ ਸੈੱਟ ਕਰੋ (ਸ਼ੈਲ ਜਾਂ .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 ਪਲੇਸਹੋਲਡਰ ਸੰਭਾਲਦਾ ਹੈ, ਅਤੇ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ URLs ਅਣਬਦਲੇ ਹਨ।
  • ਵੈਲੀਡੇਸ਼ਨ ਅਸਫਲ ਹੋਣ ‘ਤੇ, ਇਹ ਫੀਡਬੈਕ ਨਾਲ 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 ਸਥਿਰ ਰੱਖੋ

ਸੈਟਿੰਗਾਂ ਦੀ ਸਥਾਇਤਾ

  • ਸਟੋਰੇਜ: ਸਾਰੀਆਂ ਯੂਜ਼ਰ ਸੈਟਿੰਗਾਂ storage.local ਵਿੱਚ ਰਹਿੰਦੀਆਂ ਹਨ ਅਤੇ ਐਡ‑ਆਨ ਅੱਪਡੇਟਾਂ ਵਿਚਕਾਰ ਕਾਇਮ ਰਹਿੰਦੀਆਂ ਹਨ।
  • ਇੰਸਟਾਲ: ਡਿਫਾਲਟਸ ਕੇਵਲ ਤਦ ਲਾਗੂ ਹੁੰਦੀਆਂ ਹਨ ਜਦੋਂ ਕੋਈ ਕੁੰਜੀ ਸਖ਼ਤੀ ਨਾਲ ਗੈਰਹਾਜ਼ਰ ਹੋਵੇ (undefined)।
  • ਅੱਪਡੇਟ: ਮਾਈਗ੍ਰੇਸ਼ਨ ਕੇਵਲ ਗੈਰਹਾਜ਼ਰ ਕੁੰਜੀਆਂ ਭਰਦਾ ਹੈ; ਮੌਜੂਦਾ ਮੁੱਲ ਕਦੇ ਓਵਰਰਾਈਟ ਨਹੀਂ ਹੁੰਦੇ।
  • ਸਕੀਮਾ ਮਾਰਕਰ: settingsVersion (ਮੌਜੂਦਾ 1)।
  • ਕੁੰਜੀਆਂ ਅਤੇ ਡਿਫਾਲਟ:
  • blacklistPatterns: string[]['*intern*', '*secret*', '*passwor*']
  • confirmBeforeAdd: booleanfalse
  • confirmDefaultChoice: 'yes'|'no''yes'
  • warnOnBlacklistExcluded: booleantrue
  • ਕੋਡ: sources/background.jsinitializeOrMigrateSettings() ਅਤੇ SCHEMA_VERSION ਵੇਖੋ।

ਡਿਵ ਵਰਕਫ਼ਲੋ (ਨਵੀਂ ਸੈਟਿੰਗ ਜੋੜਨਾ)

  • sources/background.js ਵਿੱਚ SCHEMA_VERSION ਵਧਾਓ।
  • initializeOrMigrateSettings() ਵਿੱਚ DEFAULTS ਆਬਜੈਕਟ ਵਿੱਚ ਨਵੀਂ ਕੁੰਜੀ + ਡਿਫਾਲਟ ਜੋੜੋ।
  • ਡਿਫਾਲਟ ਸੀਡ ਕਰਦੇ ਸਮੇਂ "only-if-undefined" ਨਿਯਮ ਵਰਤੋ; ਮੌਜੂਦਾ ਮੁੱਲ ਓਵਰਰਾਈਟ ਨਹੀਂ ਕਰਨੇ।
  • ਜੇ ਸੈਟਿੰਗ ਯੂਜ਼ਰ‑ਵਿਜ਼ਿਬਲ ਹੈ, ਤਾਂ ਇਸਨੂੰ sources/options.js ਵਿੱਚ ਵਾਇਰ ਕਰੋ ਅਤੇ ਲੋਕਲਾਈਜ਼ਡ ਸਟਰਿੰਗਾਂ ਜੋੜੋ।
  • ਟੈਸਟ ਜੋੜੋ/ਸਮਾਯੋਜਿਤ ਕਰੋ (tests/background.settings.migration.test.js ਵੇਖੋ)।

ਹੱਥੋਂ ਟੈਸਟਿੰਗ ਸੁਝਾਅ

  • ਤਾਜ਼ਾ ਇੰਸਟਾਲ ਦਾ ਸਿਮੂਲੇਟ ਕਰੋ: ਐਕਸਟੈਂਸ਼ਨ ਦੀ ਡਾਟਾ ਡਾਇਰੈਕਟਰੀ ਕਲੀਅਰ ਕਰੋ ਜਾਂ ਨਵੇਂ ਪ੍ਰੋਫ਼ਾਈਲ ਨਾਲ ਸ਼ੁਰੂ ਕਰੋ।
  • ਅੱਪਡੇਟ ਦਾ ਸਿਮੂਲੇਟ ਕਰੋ: storage.local ਵਿੱਚ settingsVersion ਨੂੰ 0 ਤੇ ਸੈੱਟ ਕਰੋ ਅਤੇ ਰੀਲੋਡ ਕਰੋ; ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਮੌਜੂਦਾ ਮੁੱਲ ਅਣਬਦਲੇ ਰਹਿੰਦੇ ਹਨ ਅਤੇ ਕੇਵਲ ਗੈਰਹਾਜ਼ਰ ਕੁੰਜੀਆਂ ਹੀ ਜੋੜੀਆਂ ਜਾਂਦੀਆਂ ਹਨ।

ਟ੍ਰਬਲਸ਼ੂਟਿੰਗ

  • ਇਹ ਯਕੀਨੀ ਬਣਾਓ ਕਿ Thunderbird 128 ESR ਜਾਂ ਨਵਾਂ ਹੈ
  • ਰਨਟਾਈਮ ਸਮੱਸਿਆਵਾਂ ਲਈ Error Console ਵਰਤੋ
  • ਜੇ ਸੰਭਾਲੀਆਂ ਸੈਟਿੰਗਾਂ ਠੀਕ ਤਰ੍ਹਾਂ ਲਾਗੂ ਨਹੀਂ ਹੁੰਦੀਆਂ ਦਿੱਸਦੀਆਂ, ਤਾਂ Thunderbird ਰੀਸਟਾਰਟ ਕਰੋ ਅਤੇ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰੋ। (Thunderbird ਸੈਸ਼ਨਾਂ ਵਿਚਕਾਰ ਸਟੇਟ ਕੈਸ਼ ਕਰ ਸਕਦਾ ਹੈ; ਰੀਸਟਾਰਟ ਇਹ ਯਕੀਨੀ ਕਰਦਾ ਹੈ ਕਿ ਨਵੀਆਂ ਸੈਟਿੰਗਾਂ ਲੋਡ ਹੋਣ।)

CI ਅਤੇ ਕਵਰੇਜ

  • GitHub Actions (CI — Tests) vitest ਨੂੰ ਕਵਰੇਜ ਥ੍ਰੈਸ਼ਹੋਲਡਸ (85% ਲਾਈਨ/ਫੰਕਸ਼ਨ/ਬ੍ਰਾਂਚ/ਸਟੇਟਮੈਂਟ) ਨਾਲ ਚਲਾਂਦਾ ਹੈ। ਜੇ ਥ੍ਰੈਸ਼ਹੋਲਡ ਪੂਰੇ ਨਹੀਂ ਹੁੰਦੇ, ਜੌਬ ਫੇਲ੍ਹ ਹੁੰਦਾ ਹੈ।
  • ਵਰਕਫ਼ਲੋ HTML ਰਿਪੋਰਟ ਸਮੇਤ ਇੱਕ ਆਰਟੀਫੈਕਟ coverage-html ਅੱਪਲੋਡ ਕਰਦਾ ਹੈ; ਇਸਨੂੰ ਰਨ ਪੇਜ ਤੋਂ ਡਾਊਨਲੋਡ ਕਰੋ (Actions → ਤਾਜ਼ਾ ਰਨ → Artifacts)।

ਯੋਗਦਾਨ

  • ਬ੍ਰਾਂਚ/ਕਮਿਟ/PR ਦਿਸ਼ਾ‑ਨਿਰਦੇਸ਼ਾਂ ਲਈ CONTRIBUTING.md ਵੇਖੋ
  • ਟਿਪ: ਟੈਸਟਿੰਗ ਲਈ ਵੱਖਰਾ Thunderbird ਡਿਵੈਲਪਮੈਂਟ ਪ੍ਰੋਫ਼ਾਈਲ ਬਣਾਓ ਤਾਂ ਜੋ ਤੁਹਾਡੇ ਰੋਜ਼ਾਨਾ ਪ੍ਰੋਫ਼ਾਈਲ ‘ਤੇ ਅਸਰ ਨਾ ਪਏ।

ਅਨੁਵਾਦ

  • ਵੱਡੇ “all → all” ਅਨੁਵਾਦ ਜੌਬ ਹੌਲੇ ਤੇ ਮਹਿੰਗੇ ਹੋ ਸਕਦੇ ਹਨ। ਇੱਕ ਸਬਸੈਟ ਨਾਲ ਸ਼ੁਰੂ ਕਰੋ (ਉਦਾਹਰਨ ਲਈ, ਕੁਝ ਦਸਤਾਵੇਜ਼ ਅਤੇ 1–2 ਲੋਕੇਲ), ਨਤੀਜਾ ਸਮੀਖਿਆ ਕਰੋ, ਫਿਰ ਵਿਸਥਾਰ ਕਰੋ।

  • ਮੁੜ‑ਕੋਸ਼ਿਸ਼ ਨੀਤੀ: ਅਨੁਵਾਦ ਜੌਬ API ਗਲਤੀਆਂ ‘ਤੇ ਘਾਤਾਂਕ ਬੈਕਆਫ਼ ਨਾਲ ਵੱਧ ਤੋਂ ਵੱਧ 3 ਮੁੜ‑ਕੋਸ਼ਿਸ਼ਾਂ ਕਰਦੇ ਹਨ; scripts/translate_web_docs_batch.js ਅਤੇ scripts/translate_web_docs_sync.js ਵੇਖੋ।

ਦਸਤਾਵੇਜ਼ਾਂ ਲਈ ਸਕ੍ਰੀਨਸ਼ਾਟ

  • ਚਿੱਤਰ website/static/img/ ਹੇਠ ਸਟੋਰ ਕਰੋ।

  • ਉਨ੍ਹਾਂ ਨੂੰ MD/MDX ਵਿੱਚ useBaseUrl('/img/<filename>') ਰਾਹੀਂ ਰੈਫਰੈਂਸ ਕਰੋ ਤਾਂ ਜੋ ਪਾਥ ਸਾਈਟ ਦੇ baseUrl ਨਾਲ ਕੰਮ ਕਰਨ।

  • website/static/img/ ਹੇਠ ਚਿੱਤਰ ਜੋੜਣ ਜਾਂ ਨਾਂ ਬਦਲਣ ਤੋਂ ਬਾਅਦ, ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਸਾਰੇ ਰੈਫਰੈਂਸ ਹੁਣ ਵੀ useBaseUrl('/img/…') ਵਰਤਦੇ ਹਨ ਅਤੇ ਲੋਕਲ ਪ੍ਰੀਵਿਊ ਵਿੱਚ ਰੈਂਡਰ ਹੋ ਰਹੇ ਹਨ। ਫੇਵਆਈਕਾਨ

  • ਮਲਟੀ‑ਸਾਈਜ਼ favicon.ico ਸਭ ਬਿਲਡ ਪਾਥਾਂ (Make + ਸਕ੍ਰਿਪਟ) ਵਿੱਚ ਆਪਣੇ‑ਆਪ website/scripts/build-favicon.mjs ਰਾਹੀਂ ਬਣਦਾ ਹੈ।

  • ਕੋਈ ਹੱਥੋਂ ਕਦਮ ਲੋੜੀਂਦਾ ਨਹੀਂ; icon-*.png ਅੱਪਡੇਟ ਕਰਨਾ ਹੀ ਕਾਫੀ ਹੈ। ਸਮੀਖਿਆ ਸੁਝਾਅ

  • ਅਨੁਵਾਦੀਤ ਦਸਤਾਵੇਜ਼ਾਂ ਵਿੱਚ front‑matter id ਅਣਬਦਲੇ ਰੱਖੋ; ਮੌਜੂਦ ਹੋਣ ‘ਤੇ ਸਿਰਫ਼ title ਅਤੇ sidebar_label ਦਾ ਅਨੁਵਾਦ ਕਰੋ।

clean

  • ਉਦੇਸ਼: ਸਥਾਨਕ ਬਿਲਡ/ਪ੍ਰੀਵਿਊ ਆਰਟੀਫੈਕਟ ਹਟਾਉਣਾ।
  • ਵਰਤੋਂ: make clean
  • ਹਟਾਉਂਦਾ ਹੈ (ਜੇ ਮੌਜੂਦ ਹੋਣ):
  • tmp/
  • web-local-preview/
  • website/build/

commit

  • ਉਦੇਸ਼: ਫਾਰਮੈਟ, ਟੈਸਟ, ਚੇਂਜਲਾਗ ਅੱਪਡੇਟ, ਕਮਿਟ ਅਤੇ ਪੁਸ਼।
  • ਵਰਤੋਂ: make commit
  • ਵੇਰਵੇ: Prettier (write), make test, make test_i18n ਚਲਾਂਦਾ ਹੈ; ਜਦੋਂ staged ਡਿਫ ਹੋਣ ਤਾਂ ਚੇਂਜਲਾਗ ਜੋੜਦਾ ਹੈ; origin/<branch> ‘ਤੇ ਪੁਸ਼ ਕਰਦਾ ਹੈ।

eslint

  • ਉਦੇਸ਼: flat ਕਨਫਿਗ ਰਾਹੀਂ ESLint ਚਲਾਉਣਾ।
  • ਵਰਤੋਂ: make eslint

help

  • ਉਦੇਸ਼: ਇੱਕ‑ਲਾਈਨ ਡੌਕਸ ਨਾਲ ਸਾਰੇ ਟਾਰਗੇਟ ਲਿਸਟ ਕਰੋ।
  • ਵਰਤੋਂ: make help

lint

  • ਉਦੇਸ਼: web-ext ਨਾਲ MailExtension ਨੂੰ ਲਿੰਟ ਕਰੋ।
  • ਵਰਤੋਂ: make lint
  • ਨੋਟ: ਅਸਥਾਈ ਤੌਰ ‘ਤੇ sources/manifest_LOCAL.jsonsources/manifest.json ਕਾਪੀ ਕਰਦਾ ਹੈ; ਬਣੀਆਂ ZIPs ਅਣਡਿੱਠੀਆਂ; ਚੇਤਾਵਨੀਆਂ ਪਾਈਪਲਾਈਨ ਫੇਲ੍ਹ ਨਹੀਂ ਕਰਦੀਆਂ।

menu

  • ਉਦੇਸ਼: Make ਟਾਰਗੇਟ ਅਤੇ ਵਿਕਲਪਿਕ ਆਰਗੂਮੈਂਟ ਚੁਣਨ ਲਈ ਇੰਟਰਐਕਟਿਵ ਮੇਨੂ।
  • ਵਰਤੋਂ: make ਨੂੰ ਬਿਨਾਂ ਆਰਗੂਮੈਂਟ ਚਲਾਓ।
  • ਨੋਟ: ਜੇ whiptail ਉਪਲਬਧ ਨਹੀਂ, ਤਾਂ ਮੇਨੂ make help ‘ਤੇ ਫਾਲਬੈਕ ਕਰਦਾ ਹੈ।

pack

  • ਉਦੇਸ਼: ATN ਅਤੇ LOCAL ZIPs ਬਣਾਓ (lint ‘ਤੇ ਨਿਰਭਰ)।
  • ਵਰਤੋਂ: make pack
  • ਟਿਪ: ਪੈਕੇਜਿੰਗ ਤੋਂ ਪਹਿਲਾਂ ਦੋਹਾਂ sources/manifest_*.json ਵਿੱਚ ਵਰਜਨ ਵਧਾਓ।

prettier

  • ਉਦੇਸ਼: ਰਿਪੋ ਨੂੰ ਥਾਂ ‘ਤੇ ਫਾਰਮੈਟ ਕਰਨਾ।
  • ਵਰਤੋਂ: make prettier

prettier_check

  • ਉਦੇਸ਼: ਫਾਰਮੈਟਿੰਗ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨਾ (ਕੋਈ ਲਿਖਤ ਨਹੀਂ)।
  • ਵਰਤੋਂ: make prettier_check

prettier_write

  • ਉਦੇਸ਼: prettier ਲਈ ਉਪਨਾਮ।
  • ਵਰਤੋਂ: make prettier_write

test

  • ਉਦੇਸ਼: Prettier (write), ESLint, ਫਿਰ Vitest (ਜੇ ਇੰਸਟਾਲ ਹੋਵੇ ਤਾਂ ਕਵਰੇਜ) ਚਲਾਉਣਾ।
  • ਵਰਤੋਂ: make test

test_i18n

  • ਉਦੇਸ਼: ਐਡ‑ਆਨ ਸਟਰਿੰਗਾਂ ਅਤੇ ਵੈੱਬਸਾਈਟ ਦਸਤਾਵੇਜ਼ਾਂ ਲਈ i18n‑ਕੇਂਦ੍ਰਿਤ ਟੈਸਟ।
  • ਵਰਤੋਂ: make test_i18n
  • ਚਲਾਂਦਾ ਹੈ: npm run test:i18n ਅਤੇ npm run -s test:website-i18n

translate_app / translation_app

  • ਉਦੇਸ਼: ਐਡ‑ਆਨ UI ਸਟਰਿੰਗਾਂ ਦਾ EN ਤੋਂ ਹੋਰ ਲੋਕੇਲਾਂ ਵਿੱਚ ਅਨੁਵਾਦ।
  • ਵਰਤੋਂ: make translation_app OPTS="--locales all|de,fr"
  • ਨੋਟ: ਕੁੰਜੀ ਸਟ੍ਰਕਚਰ ਅਤੇ ਪਲੇਸਹੋਲਡਰ ਸੰਭਾਲਦਾ ਹੈ; translation_app.log ਵਿੱਚ ਲੌਗ ਕਰਦਾ ਹੈ। ਸਕ੍ਰਿਪਟ ਰੂਪ: node scripts/translate_app.js --locales …

translate_web_docs_batch / translate_web_docs_sync

  • ਉਦੇਸ਼: ਵੈੱਬਸਾਈਟ ਦਸਤਾਵੇਜ਼ਾਂ ਦਾ website/docs/*.md ਤੋਂ website/i18n/<locale>/... ਵਿੱਚ ਅਨੁਵਾਦ।
  • ਤਰਜੀਹੀ: translate_web_docs_batch (OpenAI Batch API)
    • ਵਰਤੋਂ (ਫਲੈਗ): make translate_web_docs_batch OPTS="--files <doc1,doc2|all> --locales <lang1,lang2|all>"
    • ਵਿਰਾਸਤੀ ਪੋਜ਼ੀਸ਼ਨਲ ਹਾਲੇ ਵੀ ਸਵੀਕਾਰ ਹੈ: OPTS="<doc|all> <lang|all>"
  • ਵਰਤਾਓ: JSONL ਬਣਾਉਂਦਾ, ਅੱਪਲੋਡ ਕਰਦਾ, ਹਰ 30ਸ ‘ਤੇ ਪੋਲ ਕਰਦਾ, ਨਤੀਜੇ ਡਾਊਨਲੋਡ ਕਰਦਾ, ਫਾਇਲਾਂ ਲਿਖਦਾ ਹੈ।
  • ਨੋਟ: ਬੈਚ ਜੌਬ ਨੂੰ ਪੂਰਾ ਹੋਣ ਲਈ 24 ਘੰਟੇ ਤੱਕ ਲੱਗ ਸਕਦੇ ਹਨ (OpenAI ਦੇ ਬੈਚ ਵਿੰਡੋ ਅਨੁਸਾਰ)। ਕੰਸੋਲ ਹਰ ਪੋਲ ‘ਤੇ ਬੀਤਿਆ ਸਮਾਂ ਦਿਖਾਉਂਦਾ ਹੈ।
  • Env: OPENAI_API_KEY (ਲਾਜ਼ਮੀ), ਵਿਕਲਪਿਕ OPENAI_MODEL, OPENAI_TEMPERATURE, OPENAI_BATCH_WINDOW (ਡਿਫਾਲਟ 24h), BATCH_POLL_INTERVAL_MS
  • ਵਿਰਾਸਤੀ: translate_web_docs_sync
    • ਵਰਤੋਂ (ਫਲੈਗ): make translate_web_docs_sync OPTS="--files <doc1,doc2|all> --locales <lang1,lang2|all>"
    • ਵਿਰਾਸਤੀ ਪੋਜ਼ੀਸ਼ਨਲ ਹਾਲੇ ਵੀ ਸਵੀਕਾਰ ਹੈ: OPTS="<doc|all> <lang|all>"
  • ਵਰਤਾਓ: ਪ੍ਰਤੀ‑ਜੋੜਾ ਸਿੰਕ੍ਰੋਨਸ ਰਿਕਵੈਸਟ (ਕੋਈ ਬੈਚ ਏਗਰੀਗੇਸ਼ਨ ਨਹੀਂ)।
  • ਨੋਟ: ਜਦੋਂ OPTS ਛੱਡਿਆ ਜਾਂਦਾ ਹੈ ਤਾਂ ਇੰਟਰਐਕਟਿਵ ਪ੍ਰਾਮਪਟ। ਦੋਹਾਂ ਮੋਡ ਕੋਡ ਬਲਾਕ/ਇਨਲਾਈਨ ਕੋਡ ਸੰਭਾਲਦੇ ਹਨ ਅਤੇ front‑matter id ਅਣਬਦਲੇ ਰੱਖਦੇ ਹਨ; translation_web_batch.log (ਬੈਚ) ਜਾਂ translation_web_sync.log (ਸਿੰਕ) ਵਿੱਚ ਲੌਗ ਕਰਦੇ ਹਨ।

translate_web_index / translation_web_index

  • ਉਦੇਸ਼: ਵੈੱਬਸਾਈਟ UI ਸਟਰਿੰਗਾਂ (ਹੋਮਪੇਜ, ਨੈਵਬਾਰ, ਫੁਟਰ) ਦਾ website/i18n/en/code.json ਤੋਂ ਸਾਰੀਆਂ ਲੋਕੇਲਾਂ ਵਿੱਚ website/i18n/<locale>/code.json ਹੇਠ ਅਨੁਵਾਦ ( en ਤੋਂ ਇਲਾਵਾ)।
  • ਵਰਤੋਂ: make translate_web_index ਜਾਂ make translate_web_index OPTS="--locales de,fr [--force]"
  • ਲੋੜਾਂ: OPENAI_API_KEY ਐਕਸਪੋਰਟ ਕਰੋ (ਵਿਕਲਪਿਕ: OPENAI_MODEL=gpt-4o-mini)।
  • ਵਰਤਾਓ: JSON ਰਚਨਾ ਦੀ ਪੜਤਾਲ ਕਰਦਾ, curly‑brace ਪਲੇਸਹੋਲਡਰ ਸੰਭਾਲਦਾ, URLs ਅਣਬਦਲੇ ਰੱਖਦਾ, ਅਤੇ ਵੈਲੀਡੇਸ਼ਨ ਗਲਤੀਆਂ ‘ਤੇ ਫੀਡਬੈਕ ਨਾਲ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ।

web_build

  • ਉਦੇਸ਼: ਦਸਤਾਵੇਜ਼ ਸਾਈਟ ਨੂੰ website/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/node_modules/@docusaurus ਗੈਰਹਾਜ਼ਰ ਹੋਵੇ ਤਾਂ ਕੇਵਲ website/ ਵਿੱਚ npm ci ਚਲਾਉਂਦਾ ਹੈ।

web_build_linkcheck

  • ਉਦੇਸ਼: ਆਫਲਾਈਨ‑ਸੁਰੱਖਿਅਤ ਲਿੰਕ ਚੈਕ।
  • ਵਰਤੋਂ: make web_build_linkcheck OPTS="--locales en|all"
  • ਨੋਟ: tmp_linkcheck_web_pages ਤੱਕ ਬਣਾਉਂਦਾ ਹੈ; GH Pages baseUrl ਨੂੰ / ‘ਚ ਰੀਰਾਈਟ ਕਰਦਾ ਹੈ; ਰਿਮੋਟ HTTP(S) ਲਿੰਕ ਛੱਡਦਾ ਹੈ।

web_build_local_preview

  • ਉਦੇਸ਼: ਵਿਕਲਪਿਕ ਟੈਸਟ/ਲਿੰਕ‑ਚੈਕ ਨਾਲ ਲੋਕਲ gh‑pages ਪ੍ਰੀਵਿਊ।
  • ਵਰਤੋਂ: make web_build_local_preview OPTS="--locales en|all [--no-test] [--no-link-check] [--dry-run] [--no-serve]"
  • ਵਰਤਾਓ: ਪਹਿਲਾਂ Node ਪ੍ਰੀਵਿਊ ਸਰਵਰ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ (scripts/preview-server.mjs, /__stop ਸਮਰਥਿਤ), ਨਹੀਂ ਤਾਂ python3 -m http.server ‘ਤੇ ਫਾਲਬੈਕ; 8080–8090 ‘ਤੇ ਸਰਵ ਕਰਦਾ; PID web-local-preview/.server.pid ‘ਤੇ।

web_push_github

  • ਉਦੇਸ਼: website/build ਨੂੰ gh-pages ਬ੍ਰਾਂਚ ‘ਤੇ ਪੁਸ਼ ਕਰਨਾ।
  • ਵਰਤੋਂ: make web_push_github

ਟਿਪ: Makefile ਵੱਲੋਂ ਵਰਤੇ ਪੈਕੇਜ ਮੈਨੇਜਰ ਨੂੰ ਓਵਰਰਾਈਡ ਕਰਨ ਲਈ NPM=… ਸੈੱਟ ਕਰੋ (ਡਿਫਾਲਟ npm)।