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/: મુખ્ય એડ‑ઓન કોડ (background, options/popup UI, manifests, icons)
  • tests/: Vitest સુઈટ
  • website/: Docusaurus દસ્તાવેજો (i18n સાથે website/i18n/de/... હેઠળ)

ઇન્સ્ટોલ અને ટૂલિંગ

  • રૂટ ડિપ્સ ઇન્સ્ટોલ કરો: npm ci
  • Docs (વૈકલ્પિક): cd website && npm ci
  • Targets શોધો: make help

લાઇવ ડેવ (web‑ext run)

  • Firefox Desktop માં ઝડપી લૂપ (ફક્ત 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 event પેજિસ નિષ્ક્રિય થયા પછી સસ્પેન્ડ થાય છે; કોડમાં ફેરફાર પછી એડ‑ઓન રિલોડ કરો અથવા web‑ext ને auto‑reload કરવા દો.
  • કેટલાક Firefox‑માત્ર વર્તનો ભિન્ન હોઈ શકે; API parity માટે હંમેશા Thunderbird માં ચકાસો.
  • Thunderbird બાયનરી પાથ્સ (ઉદાહરણ):
  • Linux: thunderbird (જેમ કે /usr/bin/thunderbird)
  • macOS: /Applications/Thunderbird.app/Contents/MacOS/thunderbird
  • Windows: "C:\\Program Files\\Mozilla Thunderbird\\thunderbird.exe"
  • પ્રોફાઇલ આઇસોલેશન: તમારા દૈનિક સેટઅપને અસરથી બચાવવા વિકાસ માટે અલગ Thunderbird પ્રોફાઇલનો ઉપયોગ કરો.

Make Targets (આલ્ફાબેટીકલ)

Makefile સામાન્ય ડેવ ફ્લોઝને સ્ટાન્ડર્ડાઇઝ કરે છે. દરેક target માટે એક‑લાઇન સારાંશ માટે ક્યારેય પણ make help ચલાવો.

ટીપ: target વગર make ચલાવતાં સરળ Whiptail મેનુ ખુલે છે જ્યાંથી target પસંદ કરી શકો છો.

Targetએક‑પંક્તિનું વર્ણન
cleanલોકલ build/preview આર્ટિફેક્ટ્સ દૂર કરો (tmp/, web-local-preview/, website/build/).
commitફૉર્મેટ, ટેસ્ટ (i18n સહિત), changelog અપડેટ, commit અને push.
eslintફ્લેટ કૉન્ફિગ મારફતે ESLint ચલાવો (npm run -s lint:eslint).
helpબધી targets ને એક‑લાઇન ડૉક્સ સાથે યાદીબદ્ધ કરો (સૉર્ટેડ).
lintsources/ પર web‑ext lint (ટેમ્પ મેનિફેસ્ટ; ZIPs અવગણે છે; non‑fatal).
menutarget અને વૈકલ્પિક arguments પસંદ કરવા માટે ઇન્ટરએક્ટિવ મેનુ.
packATN અને LOCAL ZIPs બનાવો (linter ચલાવે; packer સ્ક્રિપ્ટ કોલ કરે).
prettierરેપોઝીટરીને સ્થળ પર ફૉર્મેટ કરો (ફેરફારો લખે છે).
prettier_checkPrettier ચેક મોડમાં (લખાણ નહીં); રિફૉર્મેટ જોઈએ તો નિષ્ફળ જાય.
prettier_writeprettier માટે એલિયસ.
testPrettier (લખાણ), ESLint, પછી Vitest (કવરેજ જો કન્ફિગર્ડ હોય).
test_i18nફક્ત i18n ટેસ્ટ્સ: એડ‑ઓન placeholders/parity + વેબસાઇટ parity.
translate_apptranslation_app માટે એલિયસ.
translation_appsources/_locales/en/messages.json માંથી એપ UI સ્ટ્રિંગ્સનું અનુવાદ કરો.
translate_web_docs_batchOpenAI Batch API મારફતે વેબસાઇટ દસ્તાવેજોનું અનુવાદ (પ્રાથમિક).
translate_web_docs_syncવેબસાઇટ દસ્તાવેજોનું સમકાલીન અનુવાદ (લેગસી, non-batch).
translate_web_indextranslation_web_index માટે એલિયસ.
translation_web_indexહોમપેજ/નેવબાર/ફૂટર UI અનુવાદ (website/i18n/en/code.json → .../<lang>/code.json).
web_buildwebsite/build પર દસ્તાવેજો બિલ્ડ કરો (--locales / BUILD_LOCALES સમર્થન કરે).
web_build_linkcheckઑફલાઇન‑સેફ લિંક ચેક (રિમોટ HTTP[S] ટાળી દે છે).
web_build_local_previewલોકલ gh‑pages_preview; 8080–8090 પર auto‑serve; વૈકલ્પિક ટેસ્ટ્સ/લિંક‑ચેક.
web_push_githubwebsite/build ને gh-pages બ્રાંચમાં push કરો.

Syntax for options

  • વિકલ્પો પારિત કરવા make <command> OPTS="…" નો ઉપયોગ કરો (ક્વોટ્સ ભલામણ). નીચેના દરેક target ઉદાહરણ વપરાશ બતાવે છે.

--

લોકેલ બિલ્ડ ટીપ્સ

  • લોકેલ્સનો સબસેટ બિલ્ડ કરો: BUILD_LOCALES="en de" સેટ કરો અથવા OPTS="--locales en,de" વેબ targets ને આપો.
  • ચોક્કસ લોકેલનું પ્રિવ્યુ: 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 કીસ/પ્લેસહોલ્ડર્સ/શીર્ષકો + વેબસાઇટ પર‑લોકેલ પર‑ડોક parity સાથે id/title/sidebar_label ચેક્સ)

ડિબગિંગ અને લોગ્સ

  • Error Console: Tools → Developer Tools → Error Console
  • રનટાઇમ પર વર્બોઝ લોગ્સ ટૉગલ કરો:
  • સક્ષમ કરો: messenger.storage.local.set({ debug: true })
  • અક્ષમ કરો: messenger.storage.local.set({ debug: false })
  • લોગ્સ compose/મોકલતી વખતે દેખાશે

Docs (વેબસાઇટ)

  • ડેવ સર્વર: 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, ટેસ્ટ્સ/લિંક‑ચેક સ્કિપ, કોઈ push નહીં: make web_build_local_preview OPTS="--locales en --no-test --no-link-check --dry-run"
  • બધી લોકેલ્સ, ટેસ્ટ્સ/લિંક‑ચેક સાથે, પછી 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 માં
  • શોધ: જો 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 preview સ્વચ્છ રીતે બંધ કરો: 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} જેવા placeholders અનચેઇન્જ્ડ રાખો.

ફાઇલો જનરેટ કરો અથવા રિફ્રેશ કરો

  • બધી લોકેલ્સ માટે ગેરહાજર સ્ટબ્સ બનાવો: 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 આકાર વેલિડેટ કરે છે, કર્લી‑બ્રેસ placeholders સાચવે છે, અને URLs અચળ રાખે છે.
  • વેલીડેશન નિષ્ફળતાની સ્થિતિમાં, તે પ્રતિભાવ સાથે 2 વખત સુધી ફરી પ્રયાસ કરે છે અને ત્યાર પછી હાલના મૂલ્યો જ રાખે છે.

તમારો લોકેલ પ્રિવ્યુ કરો

  • ડેવ સર્વર: npm --prefix website run start
  • મુલાકાત લો: http://localhost:3000/<locale>/Thunderbird-Reply-with-Attachments/

સબમિટિંગ

  • સંપાદિત code.json ફાઇલ(ઓ) સાથે PR ખોલો. ફેરફારો કેન્દ્રિત રાખો અને શક્ય હોય ત્યારે ઝડપી સ્ક્રીનશોટ ઉમેરો.

સુરક્ષા અને કન્ફિગ્યુરેશન ટીપ્સ

  • sources/manifest.json commit ન કરો (બિલ્ડ દ્વારા થોડીવાર માટે બનાવાય છે)
  • અપડેટ ચેનલ સાચવવા browser_specific_settings.gecko.id સ્થિર રાખો

સેટિંગ્સ પરસિસ્ટન્સ

  • Storage: તમામ યુઝર સેટિંગ્સ storage.local માં રહે છે અને એડ‑ઓન અપડેટ્સમાં પરસિસ્ટ થાય છે.
  • ઇન્સ્ટોલ: ડિફૉલ્ટ્સ ફક્ત ત્યારે લાગુ પડે છે જ્યારે કી કડક રીતે ગેરહાજર હોય (undefined).
  • અપડેટ: માઇગ્રેશન ફક્ત ગેરહાજર કીઓ ભરે છે; હાલના મૂલ્યો ક્યારેય ઓવરરાઇટ થતા નથી.
  • Schema માર્કર: 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 ઓબ્જેક્ટમાં નવી કી + ડિફૉલ્ટ ઉમેરો.
  • ડિફૉલ્ટ્સ સિડ કરતી વખતે "માત્ર‑જો‑undefined" નિયમ વાપરવો; હાલના મૂલ્યો ઓવરરાઇટ ન કરો.
  • સેટિંગ યુઝર‑વિઝિબલ હોય તો sources/options.js માં વાયર કરો અને સ્થાનિકીકૃત સ્ટ્રિંગ્સ ઉમેરો.
  • ટેસ્ટ્સ ઉમેરો/સમાયોજિત કરો (tests/background.settings.migration.test.js જુઓ).

મેન્યુઅલ ટેસ્ટિંગ ટીપ્સ

  • તાજી ઇન્સ્ટોલનું અનુકરણ: એક્સ્ટેન્શનની ડેટા ડિર સાફ કરો અથવા નવી પ્રોફાઇલથી શરૂ કરો.
  • અપડેટનું અનુકરણ: storage.local માં settingsVersion ને 0 પર સેટ કરો અને ફરી લોડ કરો; ખાતરી કરો કે હાલના મૂલ્યો અચળ રહે અને ફક્ત ગેરહાજર કીઓ ઉમેરાય.

ટ્રબલશૂટિંગ

  • ખાતરી કરો કે Thunderbird 128 ESR અથવા નવીનતર છે
  • રનટાઇમ મુદ્દાઓ માટે Error Console વાપરો
  • જો સ્ટોર થયેલ સેટિંગ્સ યોગ્ય રીતે લાગુ પડતા ન દેખાતા હોય, તો Thunderbird રિસ્ટાર્ટ કરો અને ફરી પ્રયાસ કરો. (Thunderbird સત્રો વચ્ચે state કેશ કરી શકે છે; રિસ્ટાર્ટથી તાજા સેટિંગ્સ લોડ થાય છે.)

CI અને કવરેજ

  • GitHub Actions (CI — Tests) coverage thresholds (85% lines/functions/branches/statements) સાથે vitest ચલાવે છે. thresholds ન મળ્યાં હોય તો જોબ નિષ્ફળ જાય છે.
  • વર્કફ્લો HTML રિપોર્ટ સાથે coverage-html આર્ટિફેક્ટ અપલોડ કરે છે; રન પેજ પરથી ડાઉનલોડ કરો (Actions → છેલ્લો રન → Artifacts).

સહયોગ

  • બ્રાન્ચ/કમિટ/PR માર્ગદર્શિકાઓ માટે CONTRIBUTING.md જુઓ
  • ટીપ: તમારા દૈનિક પ્રોફાઇલને અસરથી બચાવવા માટે ટેસ્ટિંગ માટે અલગ Thunderbird ડેવલપમેન્ટ પ્રોફાઇલ બનાવો.

અનુવાદ

  • મોટા “all → all” અનુવાદ જોબ્સ ધીમા અને ખર્ચાળ હોઈ શકે છે. સબસેટથી શરૂઆત કરો (જેમ કે થોડાં ડોક્સ અને 1–2 લોકેલ્સ), પરિણામ સમીક્ષો, પછી વિસ્તારો.

  • Retry નીતિ: અનુવાદ જોબ્સ 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/…') વાપરે છે અને લોકલ પ્રિવ્યુમાં દેખાય છે. Favicons

  • મલ્ટી‑સાઇઝ favicon.ico આપમેળે બધા બિલ્ડ પાથ્સ (Make + scripts) માં website/scripts/build-favicon.mjs મારફતે જનરેટ થાય છે.

  • કોઈ મેન્યુઅલ પગલું જરૂરી નથી; icon-*.png અપડેટ કરવું પૂરતું છે. Review tip

  • અનુવાદિત દસ્તાવેજોમાં front‑matter id અનચેઇન્જ્ડ રાખો; જ્યાં હાજર હોય ત્યાં ફક્ત title અને sidebar_label નો અનુવાદ કરો.

clean

  • હેતુ: લોકલ build/preview આર્ટિફેક્ટ્સ દૂર કરો.
  • વપરાશ: make clean
  • દૂર કરે છે (હાજર હોય તો):
  • tmp/
  • web-local-preview/
  • website/build/

commit

  • હેતુ: ફૉર્મેટ, ટેસ્ટ, changelog અપડેટ, commit, અને push.
  • વપરાશ: make commit
  • વિગતો: Prettier (લખાણ), make test, make test_i18n ચલાવે છે; staged ડિફ્સ હોય ત્યારે changelog ઉમેરે છે; origin/<branch> પર push કરે છે.

eslint

  • હેતુ: ફ્લેટ કૉન્ફિગ મારફતે ESLint ચલાવો.
  • વપરાશ: make eslint

help

  • હેતુ: એક‑લાઇન ડૉક્સ સાથે બધી targets યાદીબદ્ધ કરો.
  • વપરાશ: make help

lint

  • હેતુ: web-ext નો ઉપયોગ કરીને MailExtension lint કરો.
  • વપરાશ: make lint
  • નોંધો: sources/manifest_LOCAL.jsonsources/manifest.json ટેમ્પ‑કૉપીઝ કરે છે; બિલ્ટ ZIPs અવગણે છે; ચેતવણીઓ પાઇપલાઇન નિષ્ફળ કરતી નથી.

menu

  • હેતુ: Make target અને વૈકલ્પિક arguments પસંદ કરવા ઇન્ટરએક્ટિવ મેનુ.
  • વપરાશ: કોઈ arguments વગર 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 (લખાણ), ESLint, પછી Vitest (કવરેજ જો ઇન્સ્ટોલ્ડ).
  • વપરાશ: make test

test_i18n

  • હેતુ: એડ‑ઓન સ્ટ્રિંગ્સ અને વેબસાઇટ દસ્તાવેજો માટે i18n‑ફોકસ્ડ ટેસ્ટ્સ.
  • વપરાશ: make test_i18n
  • ચલાવે છે: npm run test:i18n અને npm run -s test:website-i18n.

translate_app / translation_app

  • હેતુ: EN માંથી અન્ય લોકેલ્સમાં એડ‑ઓન UI સ્ટ્રિંગ્સનું અનુવાદ.
  • વપરાશ: make translation_app OPTS="--locales all|de,fr"
  • નોંધો: કી સ્ટ્રક્ચર અને placeholders સાચવે છે; 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 છોડાયેલી હોય ત્યારે ઇન્ટરએક્ટિવ પ્રોમ્પ્ટ્સ. બન્ને મોડ્સ code blocks/inline code સાચવે છે અને front‑matter id અનચેઇન્જ્ડ રાખે છે; translation_web_batch.log (બૅચ) અથવા translation_web_sync.log (સિંક) માં લોગ કરે છે.

translate_web_index / translation_web_index

  • હેતુ: website/i18n/en/code.json માંથી તમામ લોકેલ્સમાં ( en સિવાય) website/i18n/<locale>/code.json હેઠળ વેબસાઇટ UI સ્ટ્રિંગ્સ (હોમપેજ, નેવબાર, ફૂટર) નું અનુવાદ.
  • વપરાશ: make translate_web_index અથવા make translate_web_index OPTS="--locales de,fr [--force]"
  • આવશ્યકતાઓ: OPENAI_API_KEY એક્સપોર્ટ કરો (વૈકલ્પિક: OPENAI_MODEL=gpt-4o-mini).
  • વર્તન: JSON સ્ટ્રક્ચર વેલિડેટ કરે છે, કર્લી‑બ્રેસ placeholders સાચવે છે, 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 બ્રાંચમાં push કરો.
  • વપરાશ: make web_push_github

ટીપ: Makefile દ્વારા વપરાતા પેકેજ મેનેજરને ઓવરને લખવા માટે NPM=… સેટ કરો (ડિફૉલ્ટ npm).