@zitao/ajv-i18n
v3.6.0
Published
Internationalised error messages for ajv JSON-Schema validator
Downloads
35
Maintainers
Readme
ajv-i18n
Internationalised error messages for Ajv - currently the fastest JSON-Schema validator
Supported locales
|locale|language |contributor|draft-04|draft-061|draft-072|draft2019-092020-123| |------|:-------:|:---------:|:------:|:------:|:------:|:------:| |🇬🇧 en|English | |✓|✓|✓|✓| |AR ar|Arabic |Mahmoud-Mardeni|✓|✓|✓|-| |CA ca|Catalan |alexandreec|✓|✓|✓|-| |🇨🇿 cz|Czech |kiskovacsNAM0007|✓ |✓ |✓|-| |🇩🇪 de|German |jmtoballgflohr|✓ |✓ |✓|-| |🇪🇸 es|Spanish |jpablom|✓|✓|✓|-| |🇫🇷 fr|French |monlouisjTelokis|✓ |✓ |✓|-| |🇭🇺 hu|Hungarian|szilveszter9|✓|-|-|-| |🇮🇩 id|Indonesian|Eko Eryanto|✓|✓|✓|-| |🇮🇹 it|Italian |jasoniangreenlucacorti|✓ |✓|✓|-| |🇯🇵 ja|Japanese |gilgongo|✓|-|-|-| |🇰🇷 ko|Korean |MinByeongDon|✓|✓|✓|-| |🇳🇴 nb|Norwegian bokmål|mtramm|✓|✓|-|-| |🇳🇱 nl|Dutch |pimlieniekvb|✓|✓|✓|-| |🇵🇱 pl|Polish |danielzurawski|✓|-|-|-| |🇧🇷 pt-BR|Português - Brasil|marcosravaggondim|✓|✓|✓|-| |🇷🇺 ru|Russian | |✓|✓|✓|✓| |🇸🇰 sk|Slovak |kiskovacs|✓|✓|-|-| |🇸🇪 sv|Swedish |limmen|✓|✓|-|-| |🇹🇭 th|Thai |encX|✓|✓|✓|-| |🇨🇳 zh|Chinese |jinzhubaofuleuction|✓ |✓|✓|-| |🇹🇼 zh-TW|Chinese - Taiwan|minipai|✓|✓|✓|-|
1 added boolean schema, keywords const
, contains
, propertyNames
2 added keywords if
/then
/else
3 added keywords unevaluatedProperties
, unevaluatedItems
, dependentRequired
Please contribute locales that you need to use if they are missing or incomplete.
Install
Using npm:
npm install ajv-i18n
Using bower:
bower install ajv-i18n
cd bower_components/ajv-i18n
npm install && npm run bundle-all
Usage
In node:
var Ajv = require('ajv'); // version >= 2.0.0
var localize = require('ajv-i18n');
// option `i18n` is required for this package to work
var ajv = Ajv({ allErrors: true });
var validate = ajv.compile(schema);
var 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 in browser (with browserify):
var localize_ru = require('ajv-i18n/localize/ru');
or
var 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 templates in messages and localize.jst template. Templates are precompiled 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.