ajv-i18n-excelation
v0.2.1
Published
Internationalised error messages for Ajv JSON validator with adaptions to support type translations.
Downloads
8
Maintainers
Readme
excelation-ajv-i18n
Internationalised error messages for Ajv - superfast JSON validator for JSON Schema and JSON Type Definition.
This modification supports german type names and is based on the package by Evgeny Poberezkin Git.
Supported locales
|locale|language |contributor|draft-04|draft-061|draft-072|draft2019-093/2020-124|JTD5 |------|:-------:|:---------:|:------:|:------:|:------:|:------:|:------:| |🇩🇪 de|German |jmtoballgflohr|✓ |✓ |✓|✓ |✓ |
Install
Using npm:
npm install ajv-i18n
Usage
In node:
const Ajv = require("ajv") // version >= 8.0.0
const localize = require("ajv-i18n")
// or for JSON Type Definition
// const localize = require("ajv-i18n/localize/jtd")
const ajv = Ajv({allErrors: true, messages: false})
const validate = ajv.compile(schema)
const valid = validate(data)
if (!valid) {
// ru for Russian
localize.ru(validate.errors)
// string with all errors and data paths
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 for JSON Type Definition
// const localize_ru = require('ajv-i18n/localize/ru/jtd')
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.