From 76ca0a69a6b3e69c91670e411ad4e8e92ddcae54 Mon Sep 17 00:00:00 2001 From: Valentyne Stigloher Date: Wed, 5 Jun 2024 14:50:11 +0200 Subject: [PATCH 1/5] (nouns) disable templates for locales with no defined templates --- locale/eo/config.suml | 2 +- locale/fr/config.suml | 2 +- locale/he/config.suml | 2 +- locale/it/config.suml | 2 +- locale/ja/config.suml | 2 +- locale/ko/config.suml | 2 +- locale/no/config.suml | 2 +- locale/sv/config.suml | 2 +- locale/tok/config.suml | 2 +- locale/tr/config.suml | 2 +- locale/vi/config.suml | 2 +- locale/yi/config.suml | 2 +- locale/zh/config.suml | 2 +- plugins/data.d.ts | 14 ++++++++++++++ test/locales/data.test.ts | 16 +++++++++++++++- 15 files changed, 42 insertions(+), 14 deletions(-) diff --git a/locale/eo/config.suml b/locale/eo/config.suml index 96f3ef217..7fa37ce66 100644 --- a/locale/eo/config.suml +++ b/locale/eo/config.suml @@ -107,7 +107,7 @@ nouns: pluralsRequired: false declension: false submit: true - templates: true + templates: false community: route: 'terminologio' diff --git a/locale/fr/config.suml b/locale/fr/config.suml index 24fe442e0..4e6d07314 100644 --- a/locale/fr/config.suml +++ b/locale/fr/config.suml @@ -57,7 +57,7 @@ nouns: pluralsRequired: false declension: false submit: true - templates: true + templates: false inclusive: enabled: false diff --git a/locale/he/config.suml b/locale/he/config.suml index e9ab41eae..e854bd044 100644 --- a/locale/he/config.suml +++ b/locale/he/config.suml @@ -119,7 +119,7 @@ nouns: pluralsRequired: false declension: false submit: true - templates: true + templates: false community: route: 'terminology' diff --git a/locale/it/config.suml b/locale/it/config.suml index 5993f5129..e78f6cd59 100644 --- a/locale/it/config.suml +++ b/locale/it/config.suml @@ -118,7 +118,7 @@ nouns: pluralsRequired: false declension: false submit: true - templates: true + templates: false community: route: 'Terminologia' diff --git a/locale/ja/config.suml b/locale/ja/config.suml index d04b43113..1acb61049 100644 --- a/locale/ja/config.suml +++ b/locale/ja/config.suml @@ -60,7 +60,7 @@ nouns: pluralsRequired: false declension: false submit: true - templates: true + templates: false community: route: '用語' diff --git a/locale/ko/config.suml b/locale/ko/config.suml index 06cdf8459..674f394a7 100644 --- a/locale/ko/config.suml +++ b/locale/ko/config.suml @@ -65,7 +65,7 @@ nouns: pluralsRequired: false declension: false submit: true - templates: true + templates: false community: route: '술어' diff --git a/locale/no/config.suml b/locale/no/config.suml index 83edb6ec2..18ed3e66a 100644 --- a/locale/no/config.suml +++ b/locale/no/config.suml @@ -45,7 +45,7 @@ nouns: pluralsRequired: false declension: false submit: true - templates: true + templates: false inclusive: enabled: false diff --git a/locale/sv/config.suml b/locale/sv/config.suml index e4a3db08a..4df209e01 100644 --- a/locale/sv/config.suml +++ b/locale/sv/config.suml @@ -46,7 +46,7 @@ nouns: pluralsRequired: false declension: false submit: true - templates: true + templates: false community: route: 'terminologi' diff --git a/locale/tok/config.suml b/locale/tok/config.suml index a3234bb7e..8b25b3d17 100644 --- a/locale/tok/config.suml +++ b/locale/tok/config.suml @@ -41,7 +41,7 @@ nouns: pluralsRequired: false declension: false submit: true - templates: true + templates: false community: route: 'kulupu-pi-nasin-toki' diff --git a/locale/tr/config.suml b/locale/tr/config.suml index 05ef9f064..4f607d908 100644 --- a/locale/tr/config.suml +++ b/locale/tr/config.suml @@ -28,7 +28,7 @@ nouns: pluralsRequired: false declension: false submit: true - templates: true + templates: false community: route: 'terminoloji' diff --git a/locale/vi/config.suml b/locale/vi/config.suml index 3ea00cecc..f941a7b7f 100644 --- a/locale/vi/config.suml +++ b/locale/vi/config.suml @@ -98,7 +98,7 @@ nouns: pluralsRequired: false declension: false submit: true - templates: true + templates: false community: route: 'thuật-ngữ' diff --git a/locale/yi/config.suml b/locale/yi/config.suml index 9d7d9b3da..5d46f05b1 100644 --- a/locale/yi/config.suml +++ b/locale/yi/config.suml @@ -50,7 +50,7 @@ nouns: pluralsRequired: false declension: false submit: true - templates: true + templates: false inclusive: enabled: false diff --git a/locale/zh/config.suml b/locale/zh/config.suml index ff947fab8..8081d0a7f 100644 --- a/locale/zh/config.suml +++ b/locale/zh/config.suml @@ -49,7 +49,7 @@ nouns: pluralsRequired: false declension: false submit: true - templates: true + templates: false inclusive: enabled: false diff --git a/plugins/data.d.ts b/plugins/data.d.ts index ae2ab2e1d..540622fd1 100644 --- a/plugins/data.d.ts +++ b/plugins/data.d.ts @@ -22,6 +22,15 @@ export interface PronounExamplesData { isHonorific?: boolean; } +export interface NounTemplatesData { + masc: string; + fem: string; + neutr: string; + mascPl: string; + femPl: string; + neutrPl: string; +} + declare namespace Data { declare module '*/config.suml' { declare const config: Config; @@ -43,6 +52,11 @@ declare namespace Data { export default data; } + declare module '*/nouns/nounTemplates.tsv' { + declare const data: NounTemplatesData[]; + export default data; + } + declare module '*.tsv' { declare const data: Record[]; export default data; diff --git a/test/locales/data.test.ts b/test/locales/data.test.ts index 0b7e6aedb..1e2d7abcf 100644 --- a/test/locales/data.test.ts +++ b/test/locales/data.test.ts @@ -6,7 +6,7 @@ import { Example } from '../../src/classes.ts'; import type { ExpectationResult } from 'expect'; import { loadSumlFromBase } from '../../server/loader.ts'; import type { Config } from '../../locale/config.ts'; -import type { PronounExamplesData, PronounsData } from '../../plugins/data'; +import type { NounTemplatesData, PronounExamplesData, PronounsData } from '../../plugins/data'; const __dirname = new URL('.', import.meta.url).pathname; @@ -41,6 +41,8 @@ describe.each(allLocales)('data files of $code', ({ code }) => { const examples = loadTsv(`${__dirname}/../../locale/${code}/pronouns/examples.tsv`); + const nounTemplates = loadTsv(`${__dirname}/../../locale/${code}/nouns/nounTemplates.tsv`); + test('pronouns/pronouns.tsv match schema', async () => { const { default: MORPHEMES } = await import(`../../locale/${code}/pronouns/morphemes.js`); const pronouns = loadTsv>(`${__dirname}/../../locale/${code}/pronouns/pronouns.tsv`); @@ -96,4 +98,16 @@ describe.each(allLocales)('data files of $code', ({ code }) => { const hasExamplesWithHonorifics = examples.some((example) => example.isHonorific); expect(hasExamplesWithHonorifics).toBe(!!config.pronouns.honorifics); }); + + test('nouns/nounTemplates.tsv match schema', () => { + if (nounTemplates.length === 0) { + return; + } + const required = ['masc', 'fem', 'neutr', 'mascPl', 'femPl', 'neutrPl']; + const actual = Object.keys(nounTemplates[0]); + expect(actual).toEqual(required); + }); + test('nouns/nounTemplates.tsv contains templates when templates are enabled', () => { + expect(nounTemplates.length > 0).toBe(config.nouns.templates); + }); }); From 21807d8a10d2111262e8e9ea96f150bca4333122 Mon Sep 17 00:00:00 2001 From: Valentyne Stigloher Date: Wed, 5 Jun 2024 15:00:01 +0200 Subject: [PATCH 2/5] (nouns) remove and disable templates for locales which got them from their base --- locale/nl/config.suml | 2 +- locale/nl/nouns/nounTemplates.tsv | 2 - locale/ua/config.suml | 2 +- locale/ua/nouns/nounTemplates.tsv | 152 ------------------------------ 4 files changed, 2 insertions(+), 156 deletions(-) diff --git a/locale/nl/config.suml b/locale/nl/config.suml index 11991d0d0..fd7018cd0 100644 --- a/locale/nl/config.suml +++ b/locale/nl/config.suml @@ -64,7 +64,7 @@ nouns: pluralsRequired: false declension: false submit: true - templates: true + templates: false community: route: 'terminologie' diff --git a/locale/nl/nouns/nounTemplates.tsv b/locale/nl/nouns/nounTemplates.tsv index 696511d98..2a0ef7c94 100644 --- a/locale/nl/nouns/nounTemplates.tsv +++ b/locale/nl/nouns/nounTemplates.tsv @@ -1,3 +1 @@ masc fem neutr mascPl femPl neutrPl --mann -frau -person -männer -frauen -leute -- -in -In/-:in/-*in -e -innen -Innen/-:innen/-*innen diff --git a/locale/ua/config.suml b/locale/ua/config.suml index 0a09f0497..5fb79b1fe 100644 --- a/locale/ua/config.suml +++ b/locale/ua/config.suml @@ -97,7 +97,7 @@ nouns: pluralsRequired: false declension: false submit: true - templates: true + templates: false community: route: 'terminology' diff --git a/locale/ua/nouns/nounTemplates.tsv b/locale/ua/nouns/nounTemplates.tsv index bc000eca7..2a0ef7c94 100644 --- a/locale/ua/nouns/nounTemplates.tsv +++ b/locale/ua/nouns/nounTemplates.tsv @@ -1,153 +1 @@ masc fem neutr mascPl femPl neutrPl --ак -ачиня -аче(в) -аки -ачини -аче(ва) --ак -ачица -аче(в) -аки -ачицы -аче(ва) --ал -алка -альт –алы -алки -альты --ал -алка -альче(в) -алы -алки -альче(ва) --ал -анка -альт -алы -анки -альты --ан -анка -альче(в) -аны -анки -альче(ва) --анин -анка -аже -ане -анки -аже --анин -анка -альт -ане -анки -альты --анин -анка -анче(в) -ане -анки -анче(ва) --ант -антка -альт -анты -антки -альты --ант -е́нта -е́нта -анты -е́нты -е́нты --ар -е́ра -арев -ара -е́ры -арева --ар -е́ра -арекс -ара -е́ры -арексы --ар -е́ра -арикс -ара -е́ры -ариксы --ар -е́ра -ире -ара -е́ры -ире --арь -арица -арев -ари -арицы -арева --арь -арица -арче -ари -арицы -арче --арь -арыня -арев -ари -арыни -арева --арь -арыня -арче -ари -арыни -арче --ач -ачиня -аче -ачи -ачини -аче --ач -ачиня -ачикс -ачи -ачини -ачиксы --ач -ачиня -ачина -ачи -ачини -ачины --ач -ачиня -яга -ачи -ачини -яги --ач -ачица -аче -ачи -ачицы -аче --ач -ачица -ачикс -ачи -ачицы -ачиксы --ач -ачица -ачина -ачи -ачицы -ачины --ач -ачица -яга -ачи -ачицы -яги --ач -ачка -аче -ачи -ачки -аче --граф -графиня -гра́фос -графы -графини -гра́фос --евт -евтесса -евтикс -евты -евтессы -евтиксы --ей -ея -ейче -еи -еи -еи --ей -ея -ейше -еи -еи -еи --ек -ка -ушко -ки -ки -ки --ент -ентка -екс -енты -ентки -ексы --ент -ентка -ентикс -енты -ентки -ентиксы --ент -ентка -иже -енты -ентки -иже --ент -ентка -икс -енты -ентки -иксы --ент -ея -екс -енты -еи -ексы --ент -ея -ентикс -енты -еи -ентиксы --ент -ея -иже -енты -еи -иже --ент -ея -икс -енты -еи -иксы --ент -инта -екс -енты -инты -ексы --ент -инта -ентикс -енты -инты -ентиксы --ент -инта -иже -енты -инты -иже --ент -инта -икс -енты -инты -иксы --ент -иня -екс -инты -ини -ексы --ент -иня -ентикс -инты -ини -ентиксы --ент -иня -иже -инты -ини -иже --ент -иня -икс -инты -ини -иксы --ер -ерка -ерикс -еры -ерки -ериксы --ер -ерка -и́ре -еры -ерки -и́ре --ер -и́ра -ерикс -еры -и́ры -ериксы --ер -и́ра -и́ре -еры -и́ры -и́ре --ец -ея -еже -еи -еи -еи --ец -ея -ече -еи -еи -еи --ец -ея -ечев -еи -еи -ечева --ец -ея -ечина -еи -еи -еи --ец -ица -(ь)же -(ь)цы -ицы -(ь)же --ец -ица -(ь)че -(ь)цы -ицы -(ь)че --ец -ица -(ь)чев -(ь)цы -ицы -(ь)чева --ец -ица -(ь)чина -(ь)цы -ицы -(ь)чины --ец -ица -екс -(ь)цы -ицы -ексы --ец -ица -икс -(ь)цы -ицы -иксы --ец -ка -(ь)же -ец -ка -(ь)же --ец -ка -(ь)че -ец -ка -(ь)че --ец -ка -(ь)чев -ец -ка -чева --ец -ка -(ь)чина -ец -ка -(ь)чины --ец -ка -екс -ец -ка -ексы --ец -ка -икс -ец -ка -иксы --ец -чиня -же -цы -чини -же --ец -чиня -че -цы -чини -че --ец -чиня -чев -чи -чини -чева --ец -чиня -чина -цы -чини -чины --ец -чиха -же -цы -чихи -же --ец -чиха -че -цы -чихи -че --ец -чиха -чина -цы -чихи -чины --ик -ица -кин(с) -ики -ицы -кин(с)ы --ик -ица -икс -ики -ицы -иксы --ик -ица -ира -ики -ицы -иры --ик -ица -ирь -ики -ицы -ирь --ик -ица -че(в) -ики -ицы -че(ва) --ик -ица -яга -ики -ицы -яги --ик -ка -кин(с) -ики -ицы -кин(с)ы --ик -ка -икс -ики -ки -иксы --ик -ка -ира -ики -ки -иры --ик -ка -ирь -ики -ки -ирь --ик -ка -че(в) -ики -ки -че(ва) --ик -ка -яга -ики -ки -яги --ил -илка -ильче -илы -илки -ильче --ир -ера -рикс -иры -еры -рикс --ист -истка -икс -исты -истки -иксы --ист -истка -иста -исты -истки -иста --ист -ина -икс -исты -ины -иксы --ист -ина -иста -исты -ины -иста --ич -ичка -иже(в) -ичи -ички -иже(ва) --ич -ичка -иче(в) -ичи -ички -иче(ва) --лог -логиня -ло́гос -логи -логини -ло́гос --ник -ница -не -ники -ницы -же --ник -ница -не -ники -ницы -не --ник -ница -никс -ники -ницы -никсы --ник -ница -нира -ники -ницы -ниры --ник -ница -нирь -ники -ницы -нирь --ник -ница -няга -ники -ницы -няги --ок -ка -кин(с) -ки -ки -ки(нсы) --ок -ка -ко -ки -ки -ки --онок -онка -оня -ята -ята -ята --ор -е́ра -е́ри -оров -е́р -е́ри --ор -е́ра -о́ра -оров -е́р -о́ра --ор -е́ра -орекс -оров -е́р -орекс --ор -е́ра -орче -оров -е́р -орче --ор -орица -е́ри -ора -орицы -е́ри --ор -орица -о́ра -ора -орицы -о́ра --ор -орица -орекс -ора -орицы -орексы --ор -орица -орче -ора -орицы -орче --ор -орка -е́ри -оров -орок -е́ри --ор -орка -о́ра -оров -орок -о́ра --ор -орка -орекс -оров -орок -орекс --ор -орка -орче -оров -орок -орче --ор -риня -рикс -ры -рини -риксы --ор -риса -рикс -ора -рисы -риксы --тель -тельница -текс -тели -тельницы -тексы --тель -тельница -тельже -тели -тельницы -тельже --тель -тчица -тче(в) -тели -тчицы -тче(ва) --тель -тчица -тчикс -тели -тчицы -тчиксы --ун -ина -унь -уны -ины -уни --ун -ина -уш -уны -ины -уш(к)и --ун -унья -уш -уны -ины -уш(к)и --ун -ушка -уш -уны -ины -уш(к)и --чик -очка -оня -чики -очки -они --чик -чица -(ь)ма -чики -чицы -(ь)мы --чик -чица -че(в) -чики -чицы -че(ва) --чик -чица -че(в) -чики -чицы -че(ва) --чик -чица -чикс -чики -чицы -чиксы --чик -чица -чикс -чики -чицы -чиксы --чик -чица -чина -чики -чицы -чины --чик -чица -щина -чики -чицы –щины --щик -щица -че -щики -щицы -че --щик -щица -щикс -щики -щицы -щиксы --ыка -ычица -ыка -ик -ычиц -ык --язь -ягиня -яже -язья -ягини -яже --яин -яйка -яев -яева -яева -яева --як -ячица -яга -яки -ячицы -яга --як -ячица -яже -яки -ячицы -яже --як -ячица -яче(в) -яки -ячицы -яче(ва) --як -ячка -яга -яки -ячки -яги --як -ячка -яже -яки -ячки -яже --як -ячка -яче -яки -ячки -яче --янин -янка -янже -яне -янки -янже --янин -янка -янче(в) -яне -янки -янче(ва) --янин -янка -ячев -яне -янки -ячева --ян -янка -яжь -яне -янки -яжи --ёнок -ёнка -ёня -ята -ята -ята From ff2788fc72cc5451174d77aca6c0905874b51087 Mon Sep 17 00:00:00 2001 From: Valentyne Stigloher Date: Thu, 6 Jun 2024 12:56:36 +0200 Subject: [PATCH 3/5] (ru)(nouns) add subpage containing all templates to view the endings separately --- components/NounSubmitForm.vue | 76 +++++++------------------------ components/NounTemplatesTable.vue | 61 +++++++++++++++++++++++++ locale/_base/config.suml | 3 +- locale/ar/config.suml | 3 +- locale/config.ts | 9 +++- locale/de/config.suml | 3 +- locale/en/config.suml | 3 +- locale/eo/config.suml | 3 +- locale/es/config.suml | 3 +- locale/et/config.suml | 3 +- locale/fr/config.suml | 3 +- locale/gl/config.suml | 3 +- locale/he/config.suml | 3 +- locale/it/config.suml | 3 +- locale/ja/config.suml | 3 +- locale/ko/config.suml | 3 +- locale/lad/config.suml | 3 +- locale/nl/config.suml | 3 +- locale/no/config.suml | 3 +- locale/pl/config.suml | 3 +- locale/pt/config.suml | 3 +- locale/ro/config.suml | 3 +- locale/ru/config.suml | 4 +- locale/sv/config.suml | 3 +- locale/tok/config.suml | 3 +- locale/tr/config.suml | 3 +- locale/ua/config.suml | 3 +- locale/vi/config.suml | 3 +- locale/yi/config.suml | 3 +- locale/zh/config.suml | 3 +- nuxt.config.ts | 6 +++ routes/nounTemplates.vue | 34 ++++++++++++++ test/locales/data.test.ts | 2 +- 33 files changed, 182 insertions(+), 88 deletions(-) create mode 100644 components/NounTemplatesTable.vue create mode 100644 routes/nounTemplates.vue diff --git a/components/NounSubmitForm.vue b/components/NounSubmitForm.vue index 62f4f86d3..3ba919d70 100644 --- a/components/NounSubmitForm.vue +++ b/components/NounSubmitForm.vue @@ -80,7 +80,7 @@ -