Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Ukrainian support #250

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,10 @@ Internationalised error messages for [Ajv](https://github.com/ajv-validator/ajv)
|🇸🇰 sk|Slovak |[kiskovacs](https://github.com/kiskovacs)|✓|✓|-|-|*|
|🇸🇪 sv|Swedish |[limmen](https://github.com/Limmen)|✓|✓|-|-|*|
|🇹🇭 th|Thai |[encX](https://github.com/encX)|✓|✓|✓|✓|✓|
|🇺🇦 uk|Ukrainian |[switchy](https://github.com/switchy)|✓|✓|✓|✓|✓|
|🇨🇳 zh|Chinese |[jinzhubaofu](https://github.com/jinzhubaofu)<br>[leuction](https://github.com/leuction)|✓<br>&nbsp;|<br>✓|<br>✓|<br>✓|<br>✓|
|🇹🇼 zh-TW|Chinese - Taiwan|[minipai](https://github.com/minipai)|✓|✓|✓|✓|✓|


<sup>1</sup> added boolean schema, keywords `const`, `contains`, `propertyNames`

<sup>2</sup> added keywords `if`/`then`/`else`
Expand Down Expand Up @@ -143,7 +143,7 @@ Functions that localize error messages are generated using doT template [localiz
[![niekvb](https://avatars3.githubusercontent.com/u/37668320?s=40&v=4)](https://github.com/niekvb "niekvb")
[![NAM0007](https://avatars1.githubusercontent.com/u/47188486?s=40&v=4)](https://github.com/NAM0007 "NAM0007")
[![saulipurhonen](https://avatars.githubusercontent.com/u/48789543?s=40&v=4)](https://github.com/saulipurhonen "saulipurhonen")

[![switchy](https://avatars.githubusercontent.com/u/1830978?s=40&v=4)](https://github.com/switchy "switchy")
## Enterprise support

ajv-i18n package is a part of [Tidelift enterprise subscription](https://tidelift.com/subscription/pkg/npm-ajv-i18n?utm_source=npm-ajv-i18n&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) - it provides a centralised commercial support to open-source software users, in addition to the support provided by software maintainers.
Expand Down
37 changes: 37 additions & 0 deletions messages/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ module.exports = {
"sk",
"sv",
"th",
"uk",
"zh",
"zh-TW",
],
Expand All @@ -54,6 +55,7 @@ module.exports = {
ru: "{{? n>=2 && n<=4 }}а{{?? n!=1 }}ов{{?}}",
sk: "{{? n==1 }}ok{{??}}kov{{?}}",
sv: "{{? n!=1 }}er{{?}}",
uk: "{{? n>=2 && n<=4 }}и{{?? n!=1 }}ів{{?}}",
},
propPlural: {
// plural for the word property (attribute)
Expand All @@ -73,6 +75,7 @@ module.exports = {
ru: "{{? n==1 }}е{{?? n>=2 && n<=4 }}я{{??}}ей{{?}}",
sk: "{{? n>=2 && n<=4 }}ky{{?? n!=1 }}iek{{??}}ka{{?}}",
sv: "{{? n!=1 }}er{{?}}",
uk: "{{? n==1 }}е{{?? n>=2 && n<=4 }}я{{??}}ів{{?}}",
},
},

Expand All @@ -97,6 +100,7 @@ module.exports = {
sk: 'musí splniť "{{=e.keyword}}" validáciu',
sv: 'bör passera "{{=e.keyword}}" nyckelord validering',
th: 'ต้องผ่านคีย์เวิร์ด "{{=e.keyword}}"',
uk: 'повинно відповідати правилу {{=e.keyword}}"',
zh: '应当通过 "{{=e.keyword}} 关键词校验"',
"zh-TW": '應該通過 "{{=e.keyword}} 關鍵詞檢驗"',
},
Expand All @@ -120,6 +124,7 @@ module.exports = {
sk: "schéma je false",
sv: "boolean schema är falskt",
th: "schema เป็น false",
uk: "булева схема рівна false",
zh: "布尔模式出错",
"zh-TW": "布林模式不正確",
},
Expand All @@ -146,6 +151,7 @@ module.exports = {
sk: "{{#def.n}}nemôže obsahovať viac, než {{=n}} prv{{#def.mPlural}}",
sv: "{{#def.n}}borde ha fler än {{=n}} sak{{#def.mPlural}}",
th: "{{#def.n}}ต้องมีสมาชิกไม่เกิน {{=n}} ตัว",
uk: "{{#def.n}} повинна мати не більше аніж {{=n}} елемент{#def.mPlural}}",
zh: "{{#def.n}}不允许超过{{=n}}个元素",
"zh-TW": "{{#def.n}}不可以超過{{=n}}個元素",
},
Expand All @@ -171,6 +177,7 @@ module.exports = {
sk: "nemôže obsahovať ďalšie položky",
sv: "borde inte ha fler egenskaper",
th: "ต้องไม่มี property อื่นๆ นอกเหนีอจากที่กำหนดไว้",
uk: "не повинно мати додаткових полів",
zh: "不允许有额外的属性",
"zh-TW": "不可以有額外的屬性",
},
Expand All @@ -196,6 +203,7 @@ module.exports = {
sk: 'musí splňovať aspoň jednu zo schém v "anyOf"',
sv: 'borde matcha något schema i "anyOf"',
th: 'ต้องตรงกับหนึ่งใน schema ที่กำหนดไว้ใน "anyOf"',
uk: 'повинно відповідати одній із схем в "anyOf"',
zh: "数据应为 anyOf 所指定的其中一个",
"zh-TW": "不符合 anyOf 指定的模式",
},
Expand Down Expand Up @@ -226,6 +234,7 @@ module.exports = {
sk: "{{#def.n}} musí obsahovať polož{{#def.propPlural}}: {{=e.params.deps}}, ak obsahuje {{=e.params.property}}",
sv: "{{#def.n}}borde ha egenskap{{#def.propPlural}} {{=e.params.deps}} när egenskap {{=e.params.property}} finns tillgängligt",
th: "{{#def.n}}เมื่อมี property {{=e.params.property}} แล้วจะต้องมี property {{=e.params.deps}} ด้วย",
uk: "{{#def.n}}повинно мати пол{{? n==1 }}е{{??}}я{{?}} {{=e.params.deps}}, коли присутнє поле {{=e.params.property}}",
zh: "{{#def.n}}应当拥有属性{{=e.params.property}}的依赖属性{{=e.params.deps}}",
"zh-TW": "{{#def.n}}應該要有屬性{{=e.params.property}}的依賴屬性{{=e.params.deps}}",
},
Expand All @@ -251,6 +260,7 @@ module.exports = {
sk: "musí byť jedna z definovaných hodnôt",
sv: "borde vara ekvivalent med en av dess fördefinierade värden",
th: "ต้องตรงกับหนึ่งในค่าที่กำหนดไว้",
uk: "повинно дорівнювати одному з дозволених значень",
zh: "应当是预设定的枚举值之一",
"zh-TW": "應該要在預設的值之中",
},
Expand All @@ -276,6 +286,7 @@ module.exports = {
sk: 'musí obsahovať formát "{{=e.params.format}}"',
sv: 'borde matcha formatet "{{=e.params.format}}"',
th: 'ต้องเป็นรูปแบบ "{{=e.params.format}}"',
uk: 'повинно відповідати формату "{{=e.params.format}}"',
zh: '应当匹配格式 "{{=e.params.format}}"',
"zh-TW": "應該要符合{{=e.params.format}}格式",
},
Expand Down Expand Up @@ -305,6 +316,7 @@ module.exports = {
sk: "{{#def.c}}musí byť {{=cond}}",
sv: "{{#def.c}}borde vara {{=cond}}",
th: "{{#def.c}}ต้อง {{=cond}}",
uk: "{{#def.c}}повинно бути {{=cond}}",
zh: "{{#def.c}}应当为 {{=cond}}",
"zh-TW": "{{#def.c}}應該要 {{=cond}}",
},
Expand Down Expand Up @@ -334,6 +346,7 @@ module.exports = {
sk: "{{#def.c}}musí byť {{=cond}}",
sv: "{{#def.c}}borde vara {{=cond}}",
th: "{{#def.c}}ต้อง {{=cond}}",
uk: "{{#def.c}}повинно бути {{=cond}}",
zh: "{{#def.c}}应当为 {{=cond}}",
"zh-TW": "{{#def.c}}應該要 {{=cond}}",
},
Expand All @@ -359,6 +372,7 @@ module.exports = {
sk: "{{#def.n}}nesmie obsahovať viac než {{=n}} prv{{#def.mPlural}}",
sv: "{{#def.n}}borde inte ha fler än {{=n}} sak{{#def.mPlural}}",
th: "{{#def.n}}ต้องมีสมาชิกไม่เกิน {{=n}}",
uk: "{{#def.n}}повинно мати не більше аніж {{=n}} елемент{{#def.mPlural}}",
zh: "{{#def.n}}不应多于 {{=n}} 个项",
"zh-TW": "{{#def.n}}不應該多於 {{=n}} 個",
},
Expand All @@ -384,6 +398,7 @@ module.exports = {
sk: "{{#def.n}}nesmie obsahovať menej než {{=n}} prv{{#def.mPlural}}",
sv: "{{#def.n}}borde inte ha färre än {{=n}} sak{{#def.mPlural}}",
th: "{{#def.n}}ควรมีสมาชิกไม่น้อยกว่า {{=n}}",
uk: "{{#def.n}}повинно мати не менше аніж {{=n}} елемент{{#def.mPlural}}",
zh: "{{#def.n}}不应少于 {{=n}} 个项",
"zh-TW": "{{#def.n}}不應該少於 {{=n}} 個",
},
Expand All @@ -409,6 +424,7 @@ module.exports = {
sk: "{{#def.n}}nesmie byť dlhší než {{=n}} znak{{? n!=1 }}ov{{?}}",
sv: "{{#def.n}}borde inte vara längre än {{=n}} tecken",
th: "{{#def.n}}ต้องยาวไม่เกิน {{=n}} ตัวอักษร",
uk: "{{#def.n}}повинно бути не довше аніж {{=n}} символ{{#def.mPlural}}",
zh: "{{#def.n}}不应多于 {{=n}} 个字符",
"zh-TW": "{{#def.n}}不應該多於 {{=n}} 個字元",
},
Expand All @@ -434,6 +450,7 @@ module.exports = {
sk: "{{#def.n}}nesmie byť kratší než {{=n}} znak{{? n!=1 }}ov{{?}}",
sv: "{{#def.n}}borde inte vara kortare än {{=n}} tecken",
th: "{{#def.n}}ต้องมีอย่างน้อย {{=n}} ตัวอักษร",
uk: "{{#def.n}}повинно бути не коротше аніж {{=n}} символ{{#def.mPlural}}",
zh: "{{#def.n}}不应少于 {{=n}} 个字符",
"zh-TW": "{{#def.n}}不應該少於 {{=n}} 個字元",
},
Expand All @@ -459,6 +476,7 @@ module.exports = {
sk: "{{#def.n}}nesmie obsahovať viac než {{=n}} polož{{#def.propPlural}}",
sv: "{{#def.n}}borde inte ha fler än {{=n}} egenskap{{#def.propPlural}}",
th: "{{#def.n}}ต้องมี property ไม่เกิน {{=n}} ตัว",
uk: "{{#def.n}}повинно мати не більше аніж {{=n}} пол{{#def.propPlural}}",
zh: "{{#def.n}}不应有多于 {{=n}} 个属性",
"zh-TW": "{{#def.n}}不應該多於 {{=n}} 個屬性",
},
Expand All @@ -484,6 +502,7 @@ module.exports = {
sk: "{{#def.n}}nesmie obsahovať menej než {{=n}} polož{{#def.propPlural}}",
sv: "{{#def.n}}borde inte ha färre än {{=n}} egenskap{{#def.propPlural}}",
th: "{{#def.n}}ต้องมี property อย่างน้อย {{=n}} ตัว",
uk: "{{#def.n}}повинно мати не менше аніж {{=n}} пол{{#def.propPlural}}",
zh: "{{#def.n}}不应有少于 {{=n}} 个属性",
"zh-TW": "{{#def.n}}不應該少於 {{=n}} 個屬性",
},
Expand All @@ -509,6 +528,7 @@ module.exports = {
sk: "musí byť násobkom {{=e.params.multipleOf}}",
sv: "borde vara en multipel av {{=e.params.multipleOf}}",
th: "ต้องเป็นเลขที่หาร {{=e.params.multipleOf}} ลงตัว",
uk: "має бути кратним {{=e.params.multipleOf}}",
zh: "应当是 {{=e.params.multipleOf}} 的整数倍",
"zh-TW": "應該是 {{=e.params.multipleOf}} 的整數倍",
},
Expand All @@ -534,6 +554,7 @@ module.exports = {
sk: 'nesmie splňovať schému v "not"',
sv: 'borde inte vara giltigt enligt schema i "not"',
th: 'ต้องไม่ผ่าน schema ที่กำหนดไว้ใน "not"',
uk: 'не повинно відповідати схемі в "not"',
zh: '不应当匹配 "not" schema',
"zh-TW": '不應該符合 "not" schema',
},
Expand All @@ -559,6 +580,7 @@ module.exports = {
sk: 'musí splňovať práve jednu schému v "oneOf"',
sv: 'borde matcha exakt ett schema i "oneOf"',
th: 'ต้องตรงกับ schema ตัวเดียวใน "oneOf" เท่านั้น',
uk: 'має точно відповідати одній схемі в "oneOf"',
zh: '只能匹配一个 "oneOf" 中的 schema',
"zh-TW": '只能符合一個 "oneOf" 中的 schema',
},
Expand All @@ -584,6 +606,7 @@ module.exports = {
sk: 'musí splňovať regulárny výraz "{{=e.params.pattern}}"',
sv: 'borde matcha mönstret "{{=e.params.pattern}}"',
th: 'ต้องตรงตาม pattern "{{=e.params.pattern}}"',
uk: 'має відповідати шаблону "{{=e.params.pattern}}"',
zh: '应当匹配模式 "{{=e.params.pattern}}"',
"zh-TW": '應該符合模式 "{{=e.params.pattern}}"',
},
Expand All @@ -609,6 +632,7 @@ module.exports = {
sk: "musí obsahovať požadovanú položku {{=e.params.missingProperty}}",
sv: "borde ha den nödvändiga egenskapen {{=e.params.missingProperty}}",
th: "ต้องมี property {{=e.params.missingProperty}} ด้วย",
uk: "повинно мати обов'язкове поле {{=e.params.missingProperty}}",
zh: "应当有必需属性 {{=e.params.missingProperty}}",
"zh-TW": "應該有必須屬性 {{=e.params.missingProperty}}",
},
Expand Down Expand Up @@ -638,6 +662,7 @@ module.exports = {
sk: "musí byť {{=e.params.type}}",
sv: "borde vara {{=e.params.type}}",
th: "ต้องเป็น {{=e.params.type}}",
uk: "повинно бути {{=e.params.type}}",
zh: "应当是 {{=e.params.type}} 类型",
"zh-TW": "應該是 {{=e.params.type}} 類型",
},
Expand All @@ -651,6 +676,7 @@ module.exports = {
"pt-BR": "não pode possuir propridades não avaliadas",
ru: "не должно иметь непроверенных полей",
th: "ต้องไม่มี property ที่ยังไม่ได้ผ่านการตรวจสอบเงื่อนไขใดๆ",
uk: "не повинно мати неперевірених полів",
zh: "不允许存在未求值的属性",
"zh-TW": "不應該有未驗證的屬性",
},
Expand All @@ -667,6 +693,7 @@ module.exports = {
"pt-BR": "{{#def.n}}não pode possuir mais que {{=n}} {{? n==1 }}item{{??}}itens{{?}}",
ru: "{{#def.n}}должно иметь не более, чем {{=n}} элемент{{#def.mPlural}}",
th: "{{#def.n}}ต้องมีไม่เกิน {{=n}} ตัว",
uk: "{{#def.n}}повинно мате не більше аніж {{=n}} елемент{{#def.mPlural}}",
zh: "{{#def.n}} 不允许有超过 {{=n}} 个元素",
"zh-TW": "{{#def.n}} 的元素不可以超過 {{=n}} 個",
},
Expand All @@ -693,6 +720,7 @@ module.exports = {
sk: "nesmie obsahovať duplicitné prvky (prvky ## {{=e.params.j}} a {{=e.params.i}} sú rovnaké)",
sv: "borde inte ha duplicerade saker (sakerna ## {{=e.params.j}} och {{=e.params.i}} är identiska)",
th: "ต้องมีสมาชิกไม่ซ้ำักัน (ลำดับที่ {{=e.params.j}} กับ {{=e.params.i}} ซ้ำกัน)",
uk: "не повинно мати дублюваних елементів (елементи {{=e.params.j}} та {{=e.params.i}} ідентичні)",
zh: "不应当含有重复项 (第 {{=e.params.j}} 项与第 {{=e.params.i}} 项是重复的)",
"zh-TW": "不應該有重複項目 (第 {{=e.params.j}} 項和第 {{=e.params.i}} 項是重複的)",
},
Expand All @@ -715,6 +743,7 @@ module.exports = {
sk: "názov položky nezodpovedá schéme",
sv: "egenskap med namnet är inte giltig",
th: "ชื่อ property ไม่ถูกต้อง",
uk: "назва поле є помилковою",
zh: "属性名 无效",
"zh-TW": "属性名 無效",
},
Expand All @@ -738,6 +767,7 @@ module.exports = {
sk: 'musí obsahovať položku splňjúcu regulárny výraz "{{=e.params.missingPattern}}"',
sv: 'bör ha en egenskap som matchar mönstret "{{=e.params.missingPattern}}"',
th: 'ต้องมี property ที่มีชื่อตรงตาม pattern "{{=e.params.missingPattern}}"',
uk: 'повинно мати поле, яка відповідає зразку "{{=e.params.missingPattern}}"',
zh: "应当有属性匹配模式 {{=e.params.missingPattern}}",
"zh-TW": "應該有屬性對應模式 {{=e.params.missingPattern}}",
},
Expand All @@ -761,6 +791,7 @@ module.exports = {
sk: "musí byť konštanta",
sv: "bör vara en konstant",
th: "ต้องเท่ากับค่าคงที่",
uk: "має дорівнювати постійному значенню",
zh: "应当等于常量",
"zh-TW": "應該等於常數",
},
Expand All @@ -783,6 +814,7 @@ module.exports = {
sk: "musí obsahovať prvok zodpovedajúci schéme",
sv: "bör innehålla ett giltigt objekt",
th: "ต้องมีสมาชิกที่ผ่านเงื่อนไขอยู่",
uk: "має містити дійсний елемент",
zh: "应当包含一个有效项",
"zh-TW": "應該包含一個有效元素",
},
Expand Down Expand Up @@ -810,6 +842,7 @@ module.exports = {
sk: "{{#def.c}}musí byť {{=cond}}",
sv: "{{#def.c}}bör vara {{=cond}}",
th: "{{#def.c}}ต้อง {{=cond}}",
uk: "{{#def.c}}повинно бути {{=cond}}",
zh: "{{#def.c}}应当是 {{=cond}}",
"zh-TW": "{{#def.c}}應該是 {{=cond}}",
},
Expand Down Expand Up @@ -837,6 +870,7 @@ module.exports = {
sk: "{{#def.c}}musí byť {{=cond}}",
sv: "{{#def.c}}bör vara {{=cond}}",
th: "{{#def.c}}ต้อง {{=cond}}",
uk: "{{#def.c}}повинно бути {{=cond}}",
zh: "{{#def.c}}应当是 {{=cond}}",
"zh-TW": "{{#def.c}}應該是 {{=cond}}",
},
Expand All @@ -856,6 +890,7 @@ module.exports = {
"pt-BR": 'deve corresponder ao schema "{{=e.params.failingKeyword}}"',
ru: 'должно соответствовать схемe "{{=e.params.failingKeyword}}"',
th: 'ต้องตรงกับ schema "{{=e.params.failingKeyword}}"',
uk: 'повинно відповідати схемі "{{=e.params.failingKeyword}}"',
zh: '应当匹配模式 "{{=e.params.failingKeyword}}" ',
"zh-TW": '應該符合 "{{=e.params.failingKeyword}}" schema',
},
Expand All @@ -871,6 +906,7 @@ module.exports = {
"pt-BR": 'a tag "{{=e.params.tag}}" deve ser uma string',
ru: 'поле "{{=e.params.tag}}" должно быть строкой',
th: 'tag "{{=e.params.tag}}" ต้องเป็น string',
uk: 'таг "{{=e.params.tag}}" має бути рядком',
zh: '标签 "{{=e.params.tag}}" 的类型必须为字符串',
"zh-TW": '標籤 "{{=e.params.tag}}" 的類型必須是字串',
},
Expand All @@ -884,6 +920,7 @@ module.exports = {
"pt-BR": 'o valor da tag "{{=e.params.tag}}" deve estar no oneOf',
ru: 'значение поля "{{=e.params.tag}}" должно быть в одной из oneOf схем ',
th: 'ต้องมีค่าของ tag "{{=e.params.tag}}" ใน oneOf',
uk: 'значення тагу "{{=e.params.tag}}" має бути в oneOf схемі',
zh: '标签 "{{=e.params.tag}}" 的值必须在 oneOf 之中',
"zh-TW": '標籤 "{{=e.params.tag}}" 必須在 oneOf 其中之一',
},
Expand Down
Loading