Cypress Translations Checker
Cypress Translations Checker is a personal open source plugin that validates translation quality automatically while your normal Cypress tests run. Instead of sprinkling manual checks throughout every flow, the plugin detects navigation and checks each newly visited page for untranslated keys.
It is designed for teams that want stronger localization coverage without increasing test maintenance.
Why I Built It
In real projects, localization issues are rarely just “nice to have” fixes. They directly impact trust, usability, and perceived product quality. I wanted a lightweight way to shift those checks left and make translation quality part of normal test execution.
This project came from that need: a focused helper that brings translation validation closer to everyday testing work.
What It Offers
- Automatic navigation detection through Cypress URL change events
- Zero test-style changes: standard
cy.visit()andcy.click()flows still work as-is - Smart deduplication: each unique URL is checked once per test
- Non-invasive reporting: functional tests are not failed by translation checks
- Separate validation stage via
createTranslationValidationTests() - Configurable
patterns,excludeSelectors,allowedKeys,checkAttributes, andwaitTime - Attribute scanning for
placeholder,title,alt, andaria-label - Optional manual check support with
cy.checkTranslations()for advanced scenarios
Typical Setup
- Register persistence tasks in
cypress.config.js. - Enable the plugin in
cypress/support/e2e.jswithenableAutoTranslationCheck(...). - Add
zz-translation-validation.cy.jsand callcreateTranslationValidationTests()so translation reporting runs after functional specs.
This setup creates a practical split: functional tests stay focused on behavior, while translation issues are collected and reported cleanly at the end.
Project Link
Why It Matters To Me
This project reflects my broader testing mindset: quality is not only about interactions passing, but also about content being usable and trustworthy for real users across locales. Localization should be continuously validated, not treated as an afterthought.