From 4873a8db20dd3d3efbf4611b455500b0b03efddf Mon Sep 17 00:00:00 2001 From: StefanVukovic99 Date: Mon, 22 Apr 2024 18:36:44 +0200 Subject: [PATCH 1/2] move Albanian grammar comments to test (#852) * move albanian grammar comments to test * redundant line --- ext/js/language/sq/albanian-transforms.js | 120 +++++++++--------- test/language/albanian-transforms.test.js | 147 ++++++++++++++++++++++ 2 files changed, 207 insertions(+), 60 deletions(-) create mode 100644 test/language/albanian-transforms.test.js diff --git a/ext/js/language/sq/albanian-transforms.js b/ext/js/language/sq/albanian-transforms.js index 16ce202dd5..53faffec14 100644 --- a/ext/js/language/sq/albanian-transforms.js +++ b/ext/js/language/sq/albanian-transforms.js @@ -97,7 +97,7 @@ export const albanianTransforms = { description: 'Plural form of a noun', rules: [ suffixInflection('e', '', ['np'], ['ns']), - suffixInflection('t', '', ['np'], ['ns']) // Pijet + suffixInflection('t', '', ['np'], ['ns']) ] }, // Verbs @@ -107,7 +107,7 @@ export const albanianTransforms = { rules: [ suffixInflection('on', 'oj', [], ['v']), suffixInflection('uan', 'uaj', [], ['v']), - suffixInflection('n', 'j', [], ['v']), // Fshin + suffixInflection('n', 'j', [], ['v']), suffixInflection('hesh', 'hem', [], ['v']) ] }, @@ -117,7 +117,7 @@ export const albanianTransforms = { rules: [ suffixInflection('on', 'oj', [], ['v']), suffixInflection('uan', 'uaj', [], ['v']), - suffixInflection('n', 'j', [], ['v']), // Fshin + suffixInflection('n', 'j', [], ['v']), suffixInflection('het', 'hem', [], ['v']) ] }, @@ -125,8 +125,8 @@ export const albanianTransforms = { name: 'present indicative first-person plural', description: 'Present indicative first-person plural form of a verb', rules: [ - suffixInflection('më', '', [], ['v']), // Ndihmojmë, paguajmë, fshijmë - suffixInflection('im', '', [], ['v']), // Vendosim, hapim + suffixInflection('më', '', [], ['v']), + suffixInflection('im', '', [], ['v']), suffixInflection('hemi', 'hem', [], ['v']) ] }, @@ -134,8 +134,8 @@ export const albanianTransforms = { name: 'present indicative second-person plural', description: 'Present indicative second-person plural form of a verb', rules: [ - suffixInflection('ni', 'j', [], ['v']), // Ndihmoni, paguani, fshini - suffixInflection('ni', '', [], ['v']), // Vendosni, hapni + suffixInflection('ni', 'j', [], ['v']), + suffixInflection('ni', '', [], ['v']), suffixInflection('heni', 'hem', [], ['v']) ] }, @@ -143,8 +143,8 @@ export const albanianTransforms = { name: 'present indicative third-person plural', description: 'Present indicative third-person plural form of a verb', rules: [ - suffixInflection('në', '', [], ['v']), // Ndihmojnë, paguajnë, fshijnë - suffixInflection('in', '', [], ['v']), // Vendosin, hapin + suffixInflection('në', '', [], ['v']), + suffixInflection('in', '', [], ['v']), suffixInflection('hen', 'hem', [], ['v']) ] }, @@ -152,8 +152,8 @@ export const albanianTransforms = { name: 'imperfect first-person singular indicative', description: 'Imperfect first-person singular indicative form of a verb', rules: [ - suffixInflection('ja', 'j', [], ['v']), // Ndihmoja, paguaja, fshija - suffixInflection('ja', '', [], ['v']), // Vendosja, hapja + suffixInflection('ja', 'j', [], ['v']), + suffixInflection('ja', '', [], ['v']), suffixInflection('hesha', 'hem', [], ['v']) ] }, @@ -161,8 +161,8 @@ export const albanianTransforms = { name: 'imperfect second-person singular indicative', description: 'Imperfect second-person singular indicative form of a verb', rules: [ - suffixInflection('je', 'j', [], ['v']), // Ndihmoje, paguaje, fshije - suffixInflection('je', '', [], ['v']), // Vendosje, hapje + suffixInflection('je', 'j', [], ['v']), + suffixInflection('je', '', [], ['v']), suffixInflection('heshe', 'hem', [], ['v']) ] }, @@ -170,8 +170,8 @@ export const albanianTransforms = { name: 'imperfect third-person singular indicative', description: 'Imperfect third-person singular indicative form of a verb', rules: [ - suffixInflection('nte', 'j', [], ['v']), // Ndihmonte, paguante, fshinte - suffixInflection('te', '', [], ['v']), // Vendoste, hapte + suffixInflection('nte', 'j', [], ['v']), + suffixInflection('te', '', [], ['v']), suffixInflection('hej', 'hem', [], ['v']) ] }, @@ -179,8 +179,8 @@ export const albanianTransforms = { name: 'imperfect first-person plural indicative', description: 'Imperfect first-person plural indicative form of a verb', rules: [ - suffixInflection('nim', 'j', [], ['v']), // Ndihmonim, paguanim, fshinim - suffixInflection('nim', '', [], ['v']), // Vendosnim, hapnim + suffixInflection('nim', 'j', [], ['v']), + suffixInflection('nim', '', [], ['v']), suffixInflection('heshim', 'hem', [], ['v']) ] }, @@ -188,8 +188,8 @@ export const albanianTransforms = { name: 'imperfect second-person plural indicative', description: 'Imperfect second-person plural indicative form of a verb', rules: [ - suffixInflection('nit', 'j', [], ['v']), // Ndihmonit, paguanit, fshinit - suffixInflection('nit', '', [], ['v']), // Vendosnit, hapnit + suffixInflection('nit', 'j', [], ['v']), + suffixInflection('nit', '', [], ['v']), suffixInflection('heshit', 'hem', [], ['v']) ] }, @@ -197,8 +197,8 @@ export const albanianTransforms = { name: 'imperfect third-person plural indicative', description: 'Imperfect third-person plural indicative form of a verb', rules: [ - suffixInflection('nin', 'j', [], ['v']), // Ndihmonin, paguanin, fshinin - suffixInflection('nin', '', [], ['v']), // Vendosnin, hapnin + suffixInflection('nin', 'j', [], ['v']), + suffixInflection('nin', '', [], ['v']), suffixInflection('heshin', 'hem', [], ['v']) ] }, @@ -206,59 +206,59 @@ export const albanianTransforms = { name: 'aorist first-person singular indicative', description: 'Aorist first-person singular indicative form of a verb', rules: [ - suffixInflection('ova', 'uaj', [], ['v']), // Pagova - suffixInflection('va', 'j', [], ['v']), // Ndihmova, fshiva - conjugationIISuffixInflection('a', '', [], ['v']) // Vendosa, hapa + suffixInflection('ova', 'uaj', [], ['v']), + suffixInflection('va', 'j', [], ['v']), + conjugationIISuffixInflection('a', '', [], ['v']) ] }, { name: 'aorist second-person singular indicative', description: 'Aorist second-person singular indicative form of a verb', rules: [ - suffixInflection('ove', 'uaj', [], ['v']), // Pagove - suffixInflection('ve', 'j', [], ['v']), // Ndihmove, fshive - conjugationIISuffixInflection('e', '', [], ['v']) // Vendose, hape + suffixInflection('ove', 'uaj', [], ['v']), + suffixInflection('ve', 'j', [], ['v']), + conjugationIISuffixInflection('e', '', [], ['v']) ] }, { name: 'aorist third-person singular indicative', description: 'Aorist third-person singular indicative form of a verb', rules: [ - suffixInflection('oi', 'oj', [], ['v']), // Ndihmoi - suffixInflection('oi', 'uaj', [], ['v']), // Pagoi - suffixInflection('u', 'j', [], ['v']), // Fshiu - conjugationIISuffixInflection('i', '', [], ['v']) // Vendosi, hapi + suffixInflection('oi', 'oj', [], ['v']), + suffixInflection('oi', 'uaj', [], ['v']), + suffixInflection('u', 'j', [], ['v']), + conjugationIISuffixInflection('i', '', [], ['v']), + suffixInflection('ye', 'ej', [], ['v']) ] }, { name: 'aorist first-person plural indicative', description: 'Aorist first-person plural indicative form of a verb', rules: [ - suffixInflection('uam', 'oj', [], ['v']), // Ndihmuam - suffixInflection('uam', 'uaj', [], ['v']), // Paguam - suffixInflection('më', 'j', [], ['v']), // Fshimë - conjugationIISuffixInflection('ëm', '', [], ['v']) // Vendosëm, hapëm + suffixInflection('uam', 'oj', [], ['v']), + suffixInflection('uam', 'uaj', [], ['v']), + suffixInflection('më', 'j', [], ['v']), + conjugationIISuffixInflection('ëm', '', [], ['v']) ] }, { name: 'aorist second-person plural indicative', description: 'Aorist second-person plural indicative form of a verb', rules: [ - suffixInflection('uat', 'oj', [], ['v']), // Ndihmuat - suffixInflection('uat', 'uaj', [], ['v']), // Paguat - suffixInflection('të', 'j', [], ['v']), // Fshitë - conjugationIISuffixInflection('ët', '', [], ['v']) // Vendosët, hapët + suffixInflection('uat', 'oj', [], ['v']), + suffixInflection('uat', 'uaj', [], ['v']), + suffixInflection('të', 'j', [], ['v']), + conjugationIISuffixInflection('ët', '', [], ['v']) ] }, { name: 'aorist third-person plural indicative', description: 'Aorist third-person plural indicative form of a verb', rules: [ - suffixInflection('uan', 'oj', [], ['v']), // Ndihmuan - suffixInflection('uan', 'uaj', [], ['v']), // Paguan - suffixInflection('në', 'j', [], ['v']), // Fshinë - suffixInflection('ye', 'ej', [], ['v']), // U kthye ? - conjugationIISuffixInflection('ën', '', [], ['v']) // Vendosën, hapën + suffixInflection('uan', 'oj', [], ['v']), + suffixInflection('uan', 'uaj', [], ['v']), + suffixInflection('në', 'j', [], ['v']), + conjugationIISuffixInflection('ën', '', [], ['v']) ] }, { @@ -266,16 +266,16 @@ export const albanianTransforms = { description: 'Imperative second-person singular present form of a verb', rules: [ suffixInflection('o', 'oj', [], ['v']), - suffixInflection('hu', 'hem', [], ['v']) // Kujtohu + suffixInflection('hu', 'hem', [], ['v']) ] }, { name: 'imperative second-person plural present', description: 'Imperative second-person plural present form of a verb', rules: [ - suffixInflection('ni', 'j', [], ['v']), // Ndihmoni, paguani, fshini - suffixInflection('ni', '', [], ['v']), // Vendosni, hapni - suffixInflection('huni', 'hem', [], ['v']) // Kujtohuni + suffixInflection('ni', 'j', [], ['v']), + suffixInflection('ni', '', [], ['v']), + suffixInflection('huni', 'hem', [], ['v']) ] }, { @@ -284,8 +284,8 @@ export const albanianTransforms = { rules: [ suffixInflection('uar', 'oj', [], ['v']), suffixInflection('ur', '', [], ['v']), - suffixInflection('rë', 'j', [], ['v']), // Fshirë, - suffixInflection('yer', 'ej', [], ['v']) // Shkëlqyer + suffixInflection('rë', 'j', [], ['v']), + suffixInflection('yer', 'ej', [], ['v']) ] }, { @@ -300,51 +300,51 @@ export const albanianTransforms = { name: 'optative first-person singular present', description: 'Optative first-person singular present form of a verb', rules: [ - suffixInflection('fsha', 'j', [], ['v']) // Ndihmofsha + suffixInflection('fsha', 'j', [], ['v']) ] }, { name: 'optative second-person singular present', description: 'Optative second-person singular present form of a verb', rules: [ - suffixInflection('fsh', 'j', [], ['v']) // Ndihmofsh + suffixInflection('fsh', 'j', [], ['v']) ] }, { name: 'optative third-person singular present', description: 'Optative third-person singular present form of a verb', rules: [ - suffixInflection('ftë', 'j', [], ['v']) // Ndihmoftë + suffixInflection('ftë', 'j', [], ['v']) ] }, { name: 'optative first-person plural present', description: 'Optative first-person plural present form of a verb', rules: [ - suffixInflection('fshim', 'j', [], ['v']) // Ndihmofshim + suffixInflection('fshim', 'j', [], ['v']) ] }, { name: 'optative second-person plural present', description: 'Optative second-person plural present form of a verb', rules: [ - suffixInflection('fshi', 'j', [], ['v']) // Ndihmofshi + suffixInflection('fshi', 'j', [], ['v']) ] }, { name: 'optative third-person plural present', description: 'Optative third-person plural present form of a verb', rules: [ - suffixInflection('fshin', 'j', [], ['v']) // Ndihmofshin + suffixInflection('fshin', 'j', [], ['v']) ] }, { - name: 'noun', + name: 'nominalization', description: 'Noun form of a verb', rules: [ - suffixInflection('im', 'oj', [], ['v']), // Gëzim, zbulim - suffixInflection('im', 'ej', [], ['v']), // Përkthim - suffixInflection('je', '', [], ['v']) // Lëvizje + suffixInflection('im', 'oj', [], ['v']), + suffixInflection('im', 'ej', [], ['v']), + suffixInflection('je', '', [], ['v']) ] } ] diff --git a/test/language/albanian-transforms.test.js b/test/language/albanian-transforms.test.js new file mode 100644 index 0000000000..f99307c47a --- /dev/null +++ b/test/language/albanian-transforms.test.js @@ -0,0 +1,147 @@ +/* + * Copyright (C) 2023-2024 Yomitan Authors + * Copyright (C) 2020-2022 Yomichan Authors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +import {LanguageTransformer} from '../../ext/js/language/language-transformer.js'; +import {albanianTransforms} from '../../ext/js/language/sq/albanian-transforms.js'; +import {testLanguageTransformer} from '../fixtures/language-transformer-test.js'; + +/* eslint-disable @stylistic/no-multi-spaces */ +const tests = [ + { + category: 'verbs', + valid: true, + tests: [ + {term: 'fshij', source: 'fshin', rule: 'v', reasons: ['present indicative second-person singular']}, + {term: 'fshij', source: 'fshin', rule: 'v', reasons: ['present indicative third-person singular']}, + {term: 'fshij', source: 'fshijmë', rule: 'v', reasons: ['present indicative first-person plural']}, + {term: 'fshij', source: 'fshini', rule: 'v', reasons: ['present indicative second-person plural']}, + {term: 'fshij', source: 'fshijnë', rule: 'v', reasons: ['present indicative third-person plural']}, + {term: 'fshij', source: 'fshija', rule: 'v', reasons: ['imperfect first-person singular indicative']}, + {term: 'fshij', source: 'fshije', rule: 'v', reasons: ['imperfect second-person singular indicative']}, + {term: 'fshij', source: 'fshinte', rule: 'v', reasons: ['imperfect third-person singular indicative']}, + {term: 'fshij', source: 'fshinim', rule: 'v', reasons: ['imperfect first-person plural indicative']}, + {term: 'fshij', source: 'fshinit', rule: 'v', reasons: ['imperfect second-person plural indicative']}, + {term: 'fshij', source: 'fshinin', rule: 'v', reasons: ['imperfect third-person plural indicative']}, + {term: 'fshij', source: 'fshiva', rule: 'v', reasons: ['aorist first-person singular indicative']}, + {term: 'fshij', source: 'fshive', rule: 'v', reasons: ['aorist second-person singular indicative']}, + {term: 'fshij', source: 'fshiu', rule: 'v', reasons: ['aorist third-person singular indicative']}, + {term: 'fshij', source: 'fshimë', rule: 'v', reasons: ['aorist first-person plural indicative']}, + {term: 'fshij', source: 'fshitë', rule: 'v', reasons: ['aorist second-person plural indicative']}, + {term: 'fshij', source: 'fshinë', rule: 'v', reasons: ['aorist third-person plural indicative']}, + {term: 'fshij', source: 'fshini', rule: 'v', reasons: ['imperative second-person plural present']}, + {term: 'fshij', source: 'fshirë', rule: 'v', reasons: ['participle']}, + + {term: 'ndihmoj', source: 'ndihmojmë', rule: 'v', reasons: ['present indicative first-person plural']}, + {term: 'ndihmoj', source: 'ndihmoni', rule: 'v', reasons: ['present indicative second-person plural']}, + {term: 'ndihmoj', source: 'ndihmojnë', rule: 'v', reasons: ['present indicative third-person plural']}, + {term: 'ndihmoj', source: 'ndihmoja', rule: 'v', reasons: ['imperfect first-person singular indicative']}, + {term: 'ndihmoj', source: 'ndihmoje', rule: 'v', reasons: ['imperfect second-person singular indicative']}, + {term: 'ndihmoj', source: 'ndihmonte', rule: 'v', reasons: ['imperfect third-person singular indicative']}, + {term: 'ndihmoj', source: 'ndihmonim', rule: 'v', reasons: ['imperfect first-person plural indicative']}, + {term: 'ndihmoj', source: 'ndihmonit', rule: 'v', reasons: ['imperfect second-person plural indicative']}, + {term: 'ndihmoj', source: 'ndihmonin', rule: 'v', reasons: ['imperfect third-person plural indicative']}, + {term: 'ndihmoj', source: 'ndihmova', rule: 'v', reasons: ['aorist first-person singular indicative']}, + {term: 'ndihmoj', source: 'ndihmove', rule: 'v', reasons: ['aorist second-person singular indicative']}, + {term: 'ndihmoj', source: 'ndihmoi', rule: 'v', reasons: ['aorist third-person singular indicative']}, + {term: 'ndihmoj', source: 'ndihmuam', rule: 'v', reasons: ['aorist first-person plural indicative']}, + {term: 'ndihmoj', source: 'ndihmuat', rule: 'v', reasons: ['aorist second-person plural indicative']}, + {term: 'ndihmoj', source: 'ndihmuan', rule: 'v', reasons: ['aorist third-person plural indicative']}, + {term: 'ndihmoj', source: 'ndihmoni', rule: 'v', reasons: ['imperative second-person plural present']}, + {term: 'ndihmoj', source: 'ndihmofsha', rule: 'v', reasons: ['optative first-person singular present']}, + {term: 'ndihmoj', source: 'ndihmofsh', rule: 'v', reasons: ['optative second-person singular present']}, + {term: 'ndihmoj', source: 'ndihmoftë', rule: 'v', reasons: ['optative third-person singular present']}, + {term: 'ndihmoj', source: 'ndihmofshim', rule: 'v', reasons: ['optative first-person plural present']}, + {term: 'ndihmoj', source: 'ndihmofshi', rule: 'v', reasons: ['optative second-person plural present']}, + {term: 'ndihmoj', source: 'ndihmofshin', rule: 'v', reasons: ['optative third-person plural present']}, + + {term: 'paguaj', source: 'paguajmë', rule: 'v', reasons: ['present indicative first-person plural']}, + {term: 'paguaj', source: 'paguani', rule: 'v', reasons: ['present indicative second-person plural']}, + {term: 'paguaj', source: 'paguajnë', rule: 'v', reasons: ['present indicative third-person plural']}, + {term: 'paguaj', source: 'paguaja', rule: 'v', reasons: ['imperfect first-person singular indicative']}, + {term: 'paguaj', source: 'paguaje', rule: 'v', reasons: ['imperfect second-person singular indicative']}, + {term: 'paguaj', source: 'paguante', rule: 'v', reasons: ['imperfect third-person singular indicative']}, + {term: 'paguaj', source: 'paguanim', rule: 'v', reasons: ['imperfect first-person plural indicative']}, + {term: 'paguaj', source: 'paguanit', rule: 'v', reasons: ['imperfect second-person plural indicative']}, + {term: 'paguaj', source: 'paguanin', rule: 'v', reasons: ['imperfect third-person plural indicative']}, + {term: 'paguaj', source: 'pagova', rule: 'v', reasons: ['aorist first-person singular indicative']}, + {term: 'paguaj', source: 'pagove', rule: 'v', reasons: ['aorist second-person singular indicative']}, + {term: 'paguaj', source: 'pagoi', rule: 'v', reasons: ['aorist third-person singular indicative']}, + {term: 'paguaj', source: 'paguam', rule: 'v', reasons: ['aorist first-person plural indicative']}, + {term: 'paguaj', source: 'paguat', rule: 'v', reasons: ['aorist second-person plural indicative']}, + {term: 'paguaj', source: 'paguan', rule: 'v', reasons: ['aorist third-person plural indicative']}, + {term: 'paguaj', source: 'paguani', rule: 'v', reasons: ['imperative second-person plural present']}, + + {term: 'vendos', source: 'vendosim', rule: 'v', reasons: ['present indicative first-person plural']}, + {term: 'vendos', source: 'vendosni', rule: 'v', reasons: ['present indicative second-person plural']}, + {term: 'vendos', source: 'vendosin', rule: 'v', reasons: ['present indicative third-person plural']}, + {term: 'vendos', source: 'vendosja', rule: 'v', reasons: ['imperfect first-person singular indicative']}, + {term: 'vendos', source: 'vendosje', rule: 'v', reasons: ['imperfect second-person singular indicative']}, + {term: 'vendos', source: 'vendoste', rule: 'v', reasons: ['imperfect third-person singular indicative']}, + {term: 'vendos', source: 'vendosnim', rule: 'v', reasons: ['imperfect first-person plural indicative']}, + {term: 'vendos', source: 'vendosnit', rule: 'v', reasons: ['imperfect second-person plural indicative']}, + {term: 'vendos', source: 'vendosnin', rule: 'v', reasons: ['imperfect third-person plural indicative']}, + {term: 'vendos', source: 'vendosa', rule: 'v', reasons: ['aorist first-person singular indicative']}, + {term: 'vendos', source: 'vendose', rule: 'v', reasons: ['aorist second-person singular indicative']}, + {term: 'vendos', source: 'vendosi', rule: 'v', reasons: ['aorist third-person singular indicative']}, + {term: 'vendos', source: 'vendosëm', rule: 'v', reasons: ['aorist first-person plural indicative']}, + {term: 'vendos', source: 'vendosët', rule: 'v', reasons: ['aorist second-person plural indicative']}, + {term: 'vendos', source: 'vendosën', rule: 'v', reasons: ['aorist third-person plural indicative']}, + {term: 'vendos', source: 'vendosni', rule: 'v', reasons: ['imperative second-person plural present']}, + + {term: 'hap', source: 'hapim', rule: 'v', reasons: ['present indicative first-person plural']}, + {term: 'hap', source: 'hapni', rule: 'v', reasons: ['present indicative second-person plural']}, + {term: 'hap', source: 'hapin', rule: 'v', reasons: ['present indicative third-person plural']}, + {term: 'hap', source: 'hapja', rule: 'v', reasons: ['imperfect first-person singular indicative']}, + {term: 'hap', source: 'hapje', rule: 'v', reasons: ['imperfect second-person singular indicative']}, + {term: 'hap', source: 'hapte', rule: 'v', reasons: ['imperfect third-person singular indicative']}, + {term: 'hap', source: 'hapnim', rule: 'v', reasons: ['imperfect first-person plural indicative']}, + {term: 'hap', source: 'hapnit', rule: 'v', reasons: ['imperfect second-person plural indicative']}, + {term: 'hap', source: 'hapnin', rule: 'v', reasons: ['imperfect third-person plural indicative']}, + {term: 'hap', source: 'hapa', rule: 'v', reasons: ['aorist first-person singular indicative']}, + {term: 'hap', source: 'hape', rule: 'v', reasons: ['aorist second-person singular indicative']}, + {term: 'hap', source: 'hapi', rule: 'v', reasons: ['aorist third-person singular indicative']}, + {term: 'hap', source: 'hapëm', rule: 'v', reasons: ['aorist first-person plural indicative']}, + {term: 'hap', source: 'hapët', rule: 'v', reasons: ['aorist second-person plural indicative']}, + {term: 'hap', source: 'hapën', rule: 'v', reasons: ['aorist third-person plural indicative']}, + {term: 'hap', source: 'hapni', rule: 'v', reasons: ['imperative second-person plural present']}, + + {term: 'kujtohem', source: 'kujtohu', rule: 'v', reasons: ['imperative second-person singular present']}, + {term: 'kujtohem', source: 'kujtohuni', rule: 'v', reasons: ['imperative second-person plural present']}, + + {term: 'kthej', source: 'kthye', rule: 'v', reasons: ['aorist third-person singular indicative']}, + {term: 'shkëlqej', source: 'shkëlqyer', rule: 'v', reasons: ['participle']} + ] + }, + { + category: 'nouns', + valid: true, + tests: [ + {term: 'pije', source: 'pijet', rule: 'ns', reasons: ['plural']}, + + {term: 'gëzoj', source: 'gëzim', rule: 'v', reasons: ['nominalization']}, + {term: 'zbuloj', source: 'zbulim', rule: 'v', reasons: ['nominalization']}, + {term: 'përkthej', source: 'përkthim', rule: 'v', reasons: ['nominalization']}, + {term: 'lëviz', source: 'lëvizje', rule: 'v', reasons: ['nominalization']} + ] + } +]; +/* eslint-enable @stylistic/no-multi-spaces */ + +const languageTransformer = new LanguageTransformer(); +languageTransformer.addDescriptor(albanianTransforms); +testLanguageTransformer(languageTransformer, tests); From 808ddef82a8eabc77ba20a0da89a392926550e76 Mon Sep 17 00:00:00 2001 From: Matttttt <18152455+martholomew@users.noreply.github.com> Date: Mon, 22 Apr 2024 16:38:04 +0000 Subject: [PATCH 2/2] Added Details and Summary tags to Structured Content (#842) * add details and summary tags * fixed css test --------- Co-authored-by: martholomew --- dev/data/structured-content-overrides.css | 6 ++++++ ext/css/structured-content.css | 9 +++++++++ ext/data/schemas/dictionary-term-bank-v3-schema.json | 2 +- ext/js/display/structured-content-generator.js | 2 ++ types/ext/structured-content.d.ts | 2 +- 5 files changed, 19 insertions(+), 2 deletions(-) diff --git a/dev/data/structured-content-overrides.css b/dev/data/structured-content-overrides.css index 46859b1bfe..c792cbb684 100644 --- a/dev/data/structured-content-overrides.css +++ b/dev/data/structured-content-overrides.css @@ -75,3 +75,9 @@ :root[data-glossary-layout-mode=compact] .gloss-sc-ul[data-sc-content=glossary] .gloss-sc-li:not(:first-child)::before { /* remove-rule */ } +.gloss-sc-details { + /* remove-rule */ +} +.gloss-sc-summary { + /* remove-rule */ +} diff --git a/ext/css/structured-content.css b/ext/css/structured-content.css index 532f1e541d..2cb3fafe32 100644 --- a/ext/css/structured-content.css +++ b/ext/css/structured-content.css @@ -254,3 +254,12 @@ display: inline; color: var(--text-color-light3); } +.gloss-sc-details { + cursor: pointer; + padding-left: var(--list-padding2); + border-top: calc(1em / var(--font-size-no-units)) solid var(--medium-border-color); + border-bottom: calc(1em / var(--font-size-no-units)) solid var(--medium-border-color); +} +.gloss-sc-summary { + list-style-position: outside; +} diff --git a/ext/data/schemas/dictionary-term-bank-v3-schema.json b/ext/data/schemas/dictionary-term-bank-v3-schema.json index 40a326f62d..47305177b4 100644 --- a/ext/data/schemas/dictionary-term-bank-v3-schema.json +++ b/ext/data/schemas/dictionary-term-bank-v3-schema.json @@ -104,7 +104,7 @@ "properties": { "tag": { "type": "string", - "enum": ["span", "div", "ol", "ul", "li"] + "enum": ["span", "div", "ol", "ul", "li", "details", "summary"] }, "content": { "$ref": "#/definitions/structuredContent" diff --git a/ext/js/display/structured-content-generator.js b/ext/js/display/structured-content-generator.js index a7fd9f3d01..f3b0890e56 100644 --- a/ext/js/display/structured-content-generator.js +++ b/ext/js/display/structured-content-generator.js @@ -275,6 +275,8 @@ export class StructuredContentGenerator { case 'ol': case 'ul': case 'li': + case 'details': + case 'summary': return this._createStructuredContentElement(tag, content, dictionary, language, 'simple', true, true); case 'img': return this.createDefinitionImage(content, dictionary); diff --git a/types/ext/structured-content.d.ts b/types/ext/structured-content.d.ts index 8ab459b6c4..253f032458 100644 --- a/types/ext/structured-content.d.ts +++ b/types/ext/structured-content.d.ts @@ -122,7 +122,7 @@ export type TableElement = { }; export type StyledElement = { - tag: 'span' | 'div' | 'ol' | 'ul' | 'li'; + tag: 'span' | 'div' | 'ol' | 'ul' | 'li' | 'details' | 'summary'; content?: Content; data?: Data; style?: StructuredContentStyle;