વિકાસ
વિકાસ માર્ગદર્શિકા
દસ્તાવેજીકરણ માત્ર 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 ને એક‑લાઇન ડૉક્સ સાથે યાદીબદ્ધ કરો (સૉર્ટેડ). |
lint | sources/ પર web‑ext lint (ટેમ્પ મેનિફેસ્ટ; ZIPs અવગણે છે; non‑fatal). |
menu | target અને વૈકલ્પિક arguments પસંદ કરવા માટે ઇન્ટરએક્ટિવ મેનુ. |
pack | ATN અને LOCAL ZIPs બનાવો (linter ચલાવે; packer સ્ક્રિપ્ટ કોલ કરે). |
prettier | રેપોઝીટરીને સ્થળ પર ફૉર્મેટ કરો (ફેરફારો લખે છે). |
prettier_check | Prettier ચેક મોડમાં (લખાણ નહીં); રિફૉર્મેટ જોઈએ તો નિષ્ફળ જાય. |
prettier_write | prettier માટે એલિયસ. |
test | Prettier (લખાણ), ESLint, પછી Vitest (ક વરેજ જો કન્ફિગર્ડ હોય). |
test_i18n | ફક્ત i18n ટેસ્ટ્સ: એડ‑ઓન placeholders/parity + વેબસાઇટ parity. |
translate_app | translation_app માટે એલિયસ. |
translation_app | sources/_locales/en/messages.json માંથી એપ UI સ્ટ્રિંગ્સનું અનુવાદ કરો. |
translate_web_docs_batch | OpenAI Batch API મારફતે વેબસાઇટ દસ્તાવેજોનું અનુવાદ (પ્રાથમિક). |
translate_web_docs_sync | વેબસાઇટ દસ્તાવેજોનું સમકાલીન અનુવાદ (લેગસી, non-batch). |
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_preview; 8080–8090 પર auto‑serve; વૈકલ્પિક ટેસ્ટ્સ/લિંક‑ચેક. |
web_push_github | website/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-v8make 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દબાવો.
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 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.jsoncommit ન કરો (બિલ્ડ દ્વારા થોડીવાર માટે બનાવાય છે)- અપડેટ ચેનલ સાચવવા
browser_specific_settings.gecko.idસ્થિર રાખો
સેટિંગ્સ પરસિસ્ટન્સ
- Storage: તમામ યુઝર સેટિંગ્સ
storage.localમાં રહે છે અને એડ‑ઓન અપડેટ્સમાં પરસિસ્ટ થાય છે. - ઇન્સ્ટોલ: ડિફૉલ્ટ્સ ફક્ત ત્યારે લાગુ પડે છે જ્યારે કી કડક રીતે ગેરહાજર હોય (undefined).
- અપડેટ: માઇગ્રેશન ફક્ત ગેરહાજર કીઓ ભરે છે; હાલના મૂલ્યો ક્યારેય ઓવરરાઇટ થતા નથી.
- Schema માર્કર:
settingsVersion(હાલમાં1). - કીઓ અને ડિફૉલ્ટ્સ:
blacklistPatterns: string[]→['*intern*', '*secret*', '*passwor*']confirmBeforeAdd: boolean→falseconfirmDefaultChoice: 'yes'|'no'→'yes'warnOnBlacklistExcluded: boolean→true- કોડ:
sources/background.js→initializeOrMigrateSettings()અને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.json→sources/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‑matteridઅનચેઇન્જ્ડ રાખે છે;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 PagesbaseUrlને/માટે રીરાઇટ કરે છે; રિમોટ 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 પર સર્વ કરે છે; PIDweb-local-preview/.server.pidપર.
web_push_github
- હેતુ:
website/buildનેgh-pagesબ્રાંચમાં push કરો. - વપરાશ:
make web_push_github
ટીપ: Makefile દ્વારા વપરાતા પેકેજ મેનેજરને ઓવરને લખવા માટે NPM=… સેટ કરો (ડિફૉલ્ટ npm).