Әзірлеу
Әзірлеу нұсқаулығы
Тек ағылшын нұсқасын өңдеңіз; аудармалар таратылады
Құжаттаманы тек website/docs (ағылшынша) астында жаңартыңыз. 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 құжаттары (i18nwebsite/i18n/de/...ішінде)
Орнату және құралдар
- Түбір тәуелділіктерін орнату:
npm ci - Құжаттар (қосымша):
cd website && npm ci - Мақсаттарды көру:
make help
Тікелей әзірлеу (web‑ext run)
- Firefox Desktop-та жедел цикл (тек UI smoke-тесттері):
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 қателер консольін ашық ұстаңыз (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 | Жергілікті құрастыру/превью артефакттарын жою (tmp/, web-local-preview/, website/build/). |
commit | Форматтау, тесттерді іске қосу (i18n қоса), өзгерістер журналын жаңарту, commit & push. |
eslint | ESLint-ті flat конфиг арқылы іске қосу (npm run -s lint:eslint). |
help | Барлық мақсаттарды бір жолдық сипаттамамен тізімдеу (сұрыпталған). |
lint | web‑ext lint sources/ бойынша (уақытша манифест; ZIP-тер еленбейді; фатал емес). |
menu | Мақсат пен қосымша аргументтерді таңдауға арналған интерактивті мәзір. |
pack | ATN және LOCAL ZIP-терін құрастыру (линтерді іске қосады; packer скриптін шақырады). |
prettier | Репозиторийді орнында форматтау (өзгерістерді жазады). |
prettier_check | Prettier тексеру режимі (жазусыз); қайта форматтау керек болса, сәтсіз болады. |
prettier_write | prettier үшін балама атау. |
test | Prettier (жазу), ESLint, содан кейін Vitest (қамту бапталса). |
test_i18n | Тек i18n тесттері: қондырма placeholder-лары/паритеті + веб‑сайт паритеті. |
translate_app | translation_app үшін балама атау. |
translation_app | Қосымша UI жолдарын sources/_locales/en/messages.json бастап аудару. |
translate_web_docs_batch | Веб‑сайт құжаттарын OpenAI Batch API арқылы аудару (ұсынылады). |
translate_web_docs_sync | Веб‑сайт құжаттарын синхронды аудару (мұрагер, batch емес). |
translate_web_index | translation_web_index үшін балама атау. |
translation_web_index | Басты бет/навигация/түсініктеме (footer) 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_github | website/build элементін gh-pages тармағына итеру (push). |
Опциялар синтаксисі
- Опцияларды беру үшін
make <command> OPTS="…"пайдаланыңыз (тырнақша ұсынылады). Төмендегі әр мақсатта қолдану үлгілері көрсетілген.
--
Локаль құрастыру кеңестері
- Локальдардың ішкі жиынын құрастыру:
BUILD_LOCALES="en de"орнатыңыз немесе веб мақсаттарына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екеуінде де жаңартыңыз - Қолмен орнату (dev): Thunderbird → Tools → Add‑ons and Themes → gear → 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 кілттері/placeholder-лар/атаулар + веб‑сайтта әр локаль бойынша әр құжаттың паритеті id/title/sidebar_label тексерістерімен)
Жөндеу және журналдар
- Қате консолі: Tools → Developer Tools → Error Console
- Жіктелген (verbose) журналдарды орындалу кезінде қосу/өшіру:
- Қосу:
messenger.storage.local.set({ debug: true }) - Өшіру:
messenger.storage.local.set({ debug: false }) - Жауаптарды жазу/жіберу кезінде журналдар көрінеді
Құжаттар (веб‑сайт)
- Dev сервері:
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 орта айнымалылары 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}сияқты placeholder-ларды өзгертпеңіз.
Файлдарды жасау немесе жаңарту
- Барлық локальдер үшін жетіспейтін қалқаларды (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 пішінін тексереді, ирек жақшадағы placeholder-ларды сақтайды және URL‑дер өзгермегенін қамтамасыз етеді.
- Тексеру сәтсіз болса, бар мәндерді қалдырмас бұрын 2 ретке дейін кері байланыспен қайта әрекет жасайды.
Локальді алдын ала қараңыз
- Dev сервері:
npm --prefix website run start http://localhost:3000/<locale>/Thunderbird-Reply-with-Attachments/сілтемесіне өтіңіз
Жіберу
- Өңделген
code.jsonфайл(дар)ымен PR ашыңыз. Өзгерістерді ықшам ұстаңыз және мүмкін болса, қысқа скриншот қосыңыз.