ajv-i18n
Internationalised error messages for Ajv - superfast JSON validator for JSON Schema and JSON Type Definition.

Supported locales
1 added boolean schema, keywords const, contains, propertyNames
2 added keywords if/then/else
3 added messages for keywords unevaluatedProperties, unevaluatedItems, dependentRequired
4 keyword items messages
5 JSON Type Definition
* discriminator form messages are not translated
Please contribute locales that you need to use if they are missing or incomplete.
Install
Using npm:
npm install ajv-i18n
Usage
In node:
const Ajv = require("ajv")
const localize = require("ajv-i18n")
const ajv = Ajv({allErrors: true, messages: false})
const validate = ajv.compile(schema)
const valid = validate(data)
if (!valid) {
localize.ru(validate.errors)
console.log(ajv.errorsText(validate.errors, {separator: '\n'}))
}
To require only necessary locales (e.g., with browserify):
const localize_ru = require('ajv-i18n/localize/ru')
or
const localize = {
en: require('ajv-i18n/localize/en'),
ru: require('ajv-i18n/localize/ru'),
}
See Ajv docs for more information.
Tests
npm install
git submodule update --init
npm test
Contributing
Functions that localize error messages are generated using doT template localize.jst, JSON Schema messages and JSON Type Definition messages. Templates are pre-compiled, so doT is not a run-time dependency.
npm run build - compiles functions to localize folder.
Contributors of locales

Enterprise support
ajv-i18n package is a part of Tidelift enterprise subscription - it provides a centralised commercial support to open-source software users, in addition to the support provided by software maintainers.
Security contact
To report a security vulnerability, please use the
Tidelift security contact.
Tidelift will coordinate the fix and disclosure. Please do NOT report security vulnerability via GitHub issues.
License
MIT