Awesome
ajv-i18n
Internationalised error messages for Ajv - superfast JSON validator for JSON Schema and JSON Type Definition.
Supported locales
locale | language | contributor | draft-04 | draft-06<sup>1</sup> | draft-07<sup>2</sup> | draft<br>2019-09<sup>3</sup><br>/2020-12<sup>4</sup> | JTD<sup>5</sup> |
---|---|---|---|---|---|---|---|
๐ฌ๐ง en | English | โ | โ | โ | โ | โ | |
AR ar | Arabic | Mahmoud-Mardeni | โ | โ | โ | - | - |
CA ca | Catalan | alexandreec | โ | โ | โ | - | * |
๐จ๐ฟ cs | Czech | kiskovacs<br>NAM0007 | โ<br>ย | โ<br>ย | <br>โ | - | * |
๐ฉ๐ช de | German | jmtoball<br>gflohr | โ<br>ย | โ<br>ย | <br>โ | โ<br>ย | โ<br>ย |
๐ช๐ธ es | Spanish | jpablom | โ | โ | โ | - | * |
๐ซ๐ฎ fi | Finnish | saulipurhonen | โ | โ | โ | โ | โ |
๐ซ๐ท fr | French | monlouisj<br>Telokis | โ<br>ย | โ<br>ย | <br>โ | - | * |
๐ญ๐บ hu | Hungarian | szilveszter9 | โ | - | - | - | * |
๐ฎ๐ฉ id | Indonesian | ekoeryanto | โ | โ | โ | - | * |
๐ฎ๐น it | Italian | jasoniangreen<br>lucacorti | โ<br>ย | <br>โ | <br>โ | <br>โ | <br>โ |
๐ฏ๐ต ja | Japanese | gilgongo | โ | - | - | - | * |
๐ฐ๐ท ko | Korean | MinByeongDon | โ | โ | โ | โ | โ |
๐ณ๐ด nb | Norwegian bokmรฅl | mtramm | โ | โ | - | - | * |
๐ณ๐ฑ nl | Dutch | pimlie<br>niekvb | โ | โ | โ | <br>โ | <br>โ |
๐ต๐ฑ pl | Polish | danielzurawski | โ | - | - | - | * |
๐ง๐ท pt-BR | Portuguรชs - Brasil | marcosrava<br>ggondim | โ | โ | โ | <br>โ | <br>โ |
๐ท๐บ ru | Russian | โ | โ | โ | โ | โ | |
๐ธ๐ฐ sk | Slovak | kiskovacs | โ | โ | - | - | * |
๐ธ๐ช sv | Swedish | limmen | โ | โ | - | - | * |
๐น๐ญ th | Thai | encX | โ | โ | โ | โ | โ |
๐จ๐ณ zh | Chinese | jinzhubaofu<br>leuction | โ<br>ย | <br>โ | <br>โ | <br>โ | <br>โ |
๐น๐ผ zh-TW | Chinese - Taiwan | minipai | โ | โ | โ | โ | โ |
<sup>1</sup> added boolean schema, keywords const
, contains
, propertyNames
<sup>2</sup> added keywords if
/then
/else
<sup>3</sup> added messages for keywords unevaluatedProperties
, unevaluatedItems
, dependentRequired
<sup>4</sup> keyword items
messages
<sup>5</sup> 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") // 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.
Contributors of locales
<img src="https://avatars3.githubusercontent.com/u/1067403?s=40&v=4" alt="pimlie" width="40px"/> <img src="https://avatars3.githubusercontent.com/u/15526814?s=40&v=4" alt="alexandreec" width="40px">
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.