/* * Copyright (C) 2024 Yomitan 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 {suffixInflection} from '../language-transforms.js'; // TODO: -ne suffix (estne, nonne)? /** @type {import('language-transformer').LanguageTransformDescriptor} */ export const latinTransforms = { language: 'la', conditions: { v: { name: 'Verb', isDictionaryForm: true, }, n: { name: 'Noun', isDictionaryForm: true, subConditions: ['ns', 'np'], }, ns: { name: 'Noun, singular', isDictionaryForm: true, subConditions: ['n1s', 'n2s', 'n3s', 'n4s', 'n5s'], }, np: { name: 'Noun, plural', isDictionaryForm: true, subConditions: ['n1p', 'n2p', 'n3p', 'n4p', 'n5p'], }, n1: { name: 'Noun, 1st declension', isDictionaryForm: true, subConditions: ['n1s', 'n1p'], }, n1p: { name: 'Noun, 1st declension, plural', isDictionaryForm: true, }, n1s: { name: 'Noun, 1st declension, singular', isDictionaryForm: true, }, n2: { name: 'Noun, 2nd declension', isDictionaryForm: true, subConditions: ['n2s', 'n2p'], }, n2p: { name: 'Noun, 2nd declension, plural', isDictionaryForm: true, }, n2s: { name: 'Noun, 2nd declension, singular', isDictionaryForm: true, }, n3: { name: 'Noun, 3rd declension', isDictionaryForm: true, subConditions: ['n3s', 'n3p'], }, n3p: { name: 'Noun, 3rd declension, plural', isDictionaryForm: true, }, n3s: { name: 'Noun, 3rd declension, singular', isDictionaryForm: true, }, n4: { name: 'Noun, 4th declension', isDictionaryForm: true, subConditions: ['n4s', 'n4p'], }, n4p: { name: 'Noun, 4th declension, plural', isDictionaryForm: true, }, n4s: { name: 'Noun, 4th declension, singular', isDictionaryForm: true, }, n5: { name: 'Noun, 5th declension', isDictionaryForm: true, subConditions: ['n5s', 'n5p'], }, n5p: { name: 'Noun, 5th declension, plural', isDictionaryForm: true, }, n5s: { name: 'Noun, 5th declension, singular', isDictionaryForm: true, }, adj: { name: 'Adjective', isDictionaryForm: true, subConditions: ['adj3', 'adj12'], }, adj12: { name: 'Adjective, 1st-2nd declension', isDictionaryForm: true, }, adj3: { name: 'Adjective, 3rd declension', isDictionaryForm: true, }, adv: { name: 'Adverb', isDictionaryForm: true, }, }, transforms: [ { name: 'plural', description: 'Plural declension', rules: [ suffixInflection('i', 'us', ['n2p'], ['n2s']), suffixInflection('i', 'us', ['adj12'], ['adj12']), suffixInflection('e', '', ['n1p'], ['n1s']), suffixInflection('ae', 'a', ['adj12'], ['adj12']), suffixInflection('a', 'um', ['adj12'], ['adj12']), ], }, { name: 'feminine', description: 'Adjective form', rules: [ suffixInflection('a', 'us', ['adj12'], ['adj12']), ], }, { name: 'neuter', description: 'Adjective form', rules: [ suffixInflection('um', 'us', ['adj12'], ['adj12']), ], }, { name: 'ablative', description: 'Ablative case', rules: [ suffixInflection('o', 'um', ['n2s'], ['n2s']), ], }, ], };