Internationalised error messages for Ajv - currently the fastest JSON-Schema validator
locale | language | contributor | draft-04 | draft-06* | draft-07** |
---|---|---|---|---|---|
🇬🇧 en | English | ✓ | ✓ | ✓ | |
AR ar | Arabic | Mahmoud-Mardeni | ✓ | ✓ | - |
🇨🇿 cz | Czech | kiskovacs | ✓ | ✓ | - |
🇩🇪 de | German | jmtoball | ✓ | ✓ | - |
🇪🇸 es | Spanish | jpablom | ✓ | - | - |
🇫🇷 fr | French | monlouisj | ✓ | - | - |
🇭🇺 hu | Hungarian | szilveszter9 | ✓ | - | - |
🇮🇹 it | Italian | jasoniangreen | ✓ | - | - |
🇯🇵 ja | Japanese | gilgongo | ✓ | - | - |
🇳🇴 nb | Norwegian bokmål | mtramm | ✓ | ✓ | - |
🇵🇱 pl | Polish | danielzurawski | ✓ | - | - |
🇧🇷 pt-BR | Português - Brasil | marcosrava | ✓ | - | - |
🇷🇺 ru | Russian | ✓ | ✓ | ✓ | |
🇸🇰 sk | Slovak | kiskovacs | ✓ | ✓ | - |
🇸🇪 sv | Swedish | limmen | ✓ | ✓ | - |
🇨🇳 zh | Chinese | jinzhubaofu | ✓ | - | - |
* added boolean schema, keywords const
, contains
, propertyNames
** added keywords if
/then
/else
Please contribute locales that you need to use if they are missing or incomplete.
Using npm:
npm install ajv-i18n
Using bower:
bower install ajv-i18n
cd bower_components/ajv-i18n
npm install && npm run bundle-all
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.
npm install
git submodule update --init
npm test
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.