Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ jobs:
- name: Check i18n key coverage
run: node scripts/check-i18n-keys.js

- name: Check locale cross-contamination (wrong-language values)
run: node scripts/check-locale-contamination.js

- name: Check dictionary coverage (POSITIONING.md "48h" SLA)
run: node scripts/check-dict-coverage.js

Expand Down
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

## [Unreleased]

### Fixed
- **Italian locale was ~51% Spanish.** `src/data/it.json` had been built from `es.json` and only partially re-translated — 632 of its long strings were byte-identical Spanish, and the `_protected` brand map mistranslated `Claude → Claudio`, `Anthropic → Antropico`, `Claude Code → Codice Claudio`, silently breaking runtime brand-term restoration for Italian (our #1 install market). Re-translated every contaminated string from the English source via the same Google Translate endpoint the extension uses, restored brand/technical terms to canonical English, and rebuilt `_protected` with the correct Italian wrong-forms. Italian↔Spanish overlap is now 0.1% (parity with the other 10 locales).

### Added
- **Locale cross-contamination guard** (`scripts/check-locale-contamination.js`, `npm run check:locales`, wired into CI). Fails when any locale shares >8% of its long strings with another — the bug class the key/shape checks (`check-i18n`, `check-dict-coverage`) cannot see because they only verify structure, not language. Clean locales sit at ≤2.1%; the contaminated Italian file was 51%.

## [3.5.39] - 2026-06-01

### Security
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
"check:dicts": "node scripts/check-dicts.js",
"check:sync": "node scripts/check-bg-sync.js",
"check:i18n": "node scripts/check-i18n-keys.js",
"check:locales": "node scripts/check-locale-contamination.js",
"check:dict-coverage": "node scripts/check-dict-coverage.js",
"check:academy": "node scripts/check-academy-courses.js",
"check:cws-drift": "node scripts/check-cws-drift.js",
Expand Down
Binary file added scripts/check-locale-contamination.js
Binary file not shown.
Loading
Loading