Skip to content

Latest commit

 

History

History
159 lines (121 loc) · 9.11 KB

README.md

File metadata and controls

159 lines (121 loc) · 9.11 KB

ajv-i18n

Internationalised error messages for Ajv - superfast JSON validator for JSON Schema and JSON Type Definition.

Build Status npm Coverage Status Gitter

Supported locales

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.

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

danielzurawski szilveszter9 jmtoball gilgongo jasoniangreen jpablom limmen jinzhubaofu kiskovacs mahmoud-mardeni monlouisj marcosrava mtramm Mahmoud-Mardeni leuction lucacorti minipai encX pimlie MinByeongDon gflohr ekoeryanto Telokis alexandreec ggondim niekvb NAM0007 saulipurhonen

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.

License

MIT