manifest.json migrated to chrome i18n placeholders: - name: 'AI Call Recorder' → '__MSG_extName__' - description: 'Запись сессий операторов для диагностики ошибок' → '__MSG_extDesc__' - default_locale: 'en' (new field per RESEARCH §11 + Pitfall 4 fallback chain) - action.default_title: '__MSG_tooltipOff__' (new field per Brief §02 string #1) _locales/en/messages.json + _locales/ru/messages.json each carry the same 16-key matrix per RESEARCH §10 + Brief §02 verbatim + D-07 user override + D-08 tagline: extName, extDesc, tooltipOff, tooltipRecPrefix, tooltipErr, popupSavePrompt, popupSaveCta, popupSaveDone, popupSaving, popupSaveDoneShort, popupEmptyState, popupInfoText, notifStartup, notifRecovery, welcomeHeroRu, welcomeHeroEn Canonical values (per brand-decisions-v1.md + RESEARCH §10 Brief §02): - EN extName = 'Mokosh — Session Capture' (D-07 user override of A) - EN extDesc = 'Thirty seconds ago, always at hand.' (D-08 tagline) - RU extName = 'Mokosh — Запись сессии' - RU extDesc = 'Тридцать секунд назад, всегда под рукой.' NB on key count: the artifact-table 12-key baseline excluded the three Wave-4 deltas (popupSaving, popupSaveDoneShort, popupEmptyState) which are introduced now to avoid a re-locale-parity flap when Wave 4 lands. popupInfoText is present in BOTH locales (the plan-checker flag 1 informational scope-slip is corrected here — see deviation block below). Plan success-criteria reading: ≥12 keys with Wave 4 additive deltas accounted for. Each key carries both `message` and `description` per Chrome i18n schema. EN descriptions are translator-facing; RU descriptions are plain-Russian context for native operators. npm run build emits: - dist/manifest.json carries the i18n shape verbatim (crxjs preserves __MSG_* placeholders; Chrome's manifest loader resolves them at install) - dist/_locales/en/messages.json (3.30 KB) - dist/_locales/ru/messages.json (3.81 KB) Verification: - tests/i18n/manifest-i18n.test.ts: 10/10 GREEN - tests/i18n/locale-parity.test.ts: 4/4 GREEN (en↔ru parity, non-empty messages, 16 keys each) - tests/build/no-remote-fonts.test.ts: 4/4 GREEN (post-build dist/ has zero remote font URLs) - Full vitest sweep: 145/147 GREEN (2 RED remaining are popup/style.css tokens-adopted cases — Wave 4 work) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
44 lines
913 B
JSON
44 lines
913 B
JSON
{
|
|
"manifest_version": 3,
|
|
"name": "__MSG_extName__",
|
|
"version": "1.0.0",
|
|
"default_locale": "en",
|
|
"description": "__MSG_extDesc__",
|
|
"permissions": [
|
|
"desktopCapture",
|
|
"activeTab",
|
|
"downloads",
|
|
"scripting",
|
|
"storage",
|
|
"offscreen",
|
|
"notifications"
|
|
],
|
|
"host_permissions": [
|
|
"<all_urls>"
|
|
],
|
|
"background": {
|
|
"service_worker": "src/background/index.ts",
|
|
"type": "module"
|
|
},
|
|
"content_scripts": [
|
|
{
|
|
"matches": ["<all_urls>"],
|
|
"js": ["src/content/index.ts"],
|
|
"run_at": "document_start"
|
|
}
|
|
],
|
|
"action": {
|
|
"default_popup": "src/popup/index.html",
|
|
"default_title": "__MSG_tooltipOff__",
|
|
"default_icon": {
|
|
"16": "icons/icon16.png",
|
|
"48": "icons/icon48.png",
|
|
"128": "icons/icon128.png"
|
|
}
|
|
},
|
|
"icons": {
|
|
"16": "icons/icon16.png",
|
|
"48": "icons/icon48.png",
|
|
"128": "icons/icon128.png"
|
|
}
|
|
} |