Internationalised error messages for Ajv - superfast JSON validator for JSON Schema and JSON Type Definition.
| locale | language | contributor | draft-04 | draft-061 | draft-072 | draft 2019-093 /2020-124 | JTD5 |
|---|---|---|---|---|---|---|---|
| 🇬🇧 en | English | ✓ | ✓ | ✓ | ✓ | ✓ | |
| AR ar | Arabic | Mahmoud-Mardeni | ✓ | ✓ | ✓ | - | - |
| CA ca | Catalan | alexandreec | ✓ | ✓ | ✓ | - | * |
| 🇨🇿 cs | Czech | kiskovacs NAM0007 | ✓ | ✓ | ✓ | - | * |
| 🇩🇪 de | German | jmtoball gflohr | ✓ | ✓ | ✓ | ✓ | ✓ |
| 🇪🇸 es | Spanish | jpablom | ✓ | ✓ | ✓ | - | * |
| 🇫🇮 fi | Finnish | saulipurhonen | ✓ | ✓ | ✓ | ✓ | ✓ |
| 🇫🇷 fr | French | monlouisj Telokis | ✓ | ✓ | ✓ | - | * |
| 🇭🇺 hu | Hungarian | szilveszter9 | ✓ | - | - | - | * |
| 🇮🇩 id | Indonesian | ekoeryanto | ✓ | ✓ | ✓ | - | * |
| 🇮🇹 it | Italian | jasoniangreen lucacorti | ✓ | ✓ | ✓ | ✓ | ✓ |
| 🇯🇵 ja | Japanese | gilgongo | ✓ | - | - | - | * |
| 🇰🇷 ko | Korean | MinByeongDon | ✓ | ✓ | ✓ | ✓ | ✓ |
| 🇳🇴 nb | Norwegian bokmål | mtramm | ✓ | ✓ | - | - | * |
| 🇳🇱 nl | Dutch | pimlie niekvb | ✓ | ✓ | ✓ | ✓ | ✓ |
| 🇵🇱 pl | Polish | danielzurawski | ✓ | - | - | - | * |
| 🇧🇷 pt-BR | Português - Brasil | marcosrava ggondim | ✓ | ✓ | ✓ | ✓ | ✓ |
| 🇷🇺 ru | Russian | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 🇸🇰 sk | Slovak | kiskovacs | ✓ | ✓ | - | - | * |
| 🇸🇪 sv | Swedish | limmen | ✓ | ✓ | - | - | * |
| 🇹🇭 th | Thai | encX | ✓ | ✓ | ✓ | ✓ | ✓ |
| 🇨🇳 zh | Chinese | jinzhubaofu leuction | ✓ | ✓ | ✓ | ✓ | ✓ |
| 🇹🇼 zh-TW | Chinese - Taiwan | minipai | ✓ | ✓ | ✓ | ✓ | ✓ |
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.
Using npm:
npm install ajv-i18n 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.
npm install git submodule update --init npm test 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.
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.
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.