Viccionari cawiktionary https://ca.wiktionary.org/wiki/Viccionari:Portada MediaWiki 1.47.0-wmf.14 case-sensitive Media Especial Discussió Usuari Usuari Discussió Viccionari Viccionari Discussió Fitxer Fitxer Discussió MediaWiki MediaWiki Discussió Plantilla Plantilla Discussió Ajuda Ajuda Discussió Categoria Categoria Discussió TimedText TimedText talk Mòdul Mòdul Discussió Event Event talk reguitzell 0 26124 2701801 2328539 2026-08-04T15:35:37Z Vriullop 219 /* {{-ca-}} */ corr. pron 2701801 wikitext text/x-wiki == {{-ca-}} == {{ca-pron|tz:dz,é}} {{-etimologia-}} Probablement de {{comp|ca|rec|guitza|-ell}}, {{etim-s|ca|XVII}}. === Nom === {{ca-nom|m}} # [[multitud|Multitud]] o nombre considerable. #: {{ex-us|ca|Havia passat un reguitzell d'anys.}} # Coses que van seguides una darrere de l'altra, formant una filera llarga. #: {{ex-us|ca|Anava massa carregat i, mentre caminava, anava deixant un reguitzell de paperets al seu pas.}} {{-sin-}} * [[fotimer]] {{-trad-}} {{t-inici}} * {{en}}: {{trad|en|trail}} * {{es}}: {{trad|es|retahila}}, {{trad|es|reguero}} * {{la}}: longa et interrupta rerum {{trad|la|series}} {{t-final}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|diec|gdlc|dcvb|optimot|decat}} * {{R:DLCCCL 1840}} o8a9uw2v94l6hdmqnpr1wjskiw3pw05 bunyol 0 34311 2701841 2233005 2026-08-05T07:40:49Z Vriullop 219 /* {{-ca-}} */ brunyol 2701841 wikitext text/x-wiki == {{-ca-}} == [[Fitxer:Brunyols de l'Empordà 2.jpg|miniatura|Uns bunyols de pastisseria]] {{ca-pron|ò}} {{etim-comp|ca|bony|-ol}}, amb reducció àtona, per la forma irregular que pot sortir segons la perícia del bunyoler, {{etim-s|ca|XIV}}. === Nom === {{ca-nom|m}} # Massa de forma rodona irregular, feta de [[pasta]] [[fregida]] de [[farina]] [[batuda]] i barrejada amb altres ingredients. # [[nyap]] {{-var-}} * [[brunyol]] {{-desc-}} * Sard: {{e|sc|bugnolu}}, {{e|sc|brugnolu}} {{-trad-}} {{t-inici|Massa de pasta fregida}} * {{en}}: {{trad|en|doughnut}}, {{trad|en|beignet}} * {{es}}: {{trad|es|buñuelo|m}} * {{fr}}: {{trad|fr|beignet|m}} * {{it}}: {{trad|it|frittella|f}} * {{oc}}: {{trad|oc|bonheta}}, {{trad|oc|coquilhon}} {{t-final}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{Viquipèdia|Bunyol (gastronomia)}} * {{ca-dicc|diec|dnv|gdlc|dcvb|optimot}} px4on8efv2mak9y4imzehqamhzhbpza abalo 0 78419 2701809 1692490 2026-08-04T15:58:16Z Jemily1 16917 creo esta entrada 2701809 wikitext text/x-wiki {{vegeu|abaló}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|1|pres}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|abola|alabo|alabó|aloba|alobá|Laoba|loaba|Olaba}} cba6xyzm6gvspd2epwg1zzww7k4n6p5 abalé 0 78420 2701823 1692491 2026-08-04T16:20:29Z Jemily1 16917 creo esta entrada 2701823 wikitext text/x-wiki {{vegeu|abale}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|1|pass}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|álabe|albea|Albea|albeá|balea|baleá}} dgfz5hd4juclh95s0s363bchdg0drb9 bases plenes 0 85522 2701840 2240090 2026-08-04T20:02:53Z Mölli-Möllerö 13859 https://urheiluvedot.com/vedonlyontiopas/baseball-ja-vedonlyonti/ «Paras mahdollinen tilanne on ajolähtö, jolloin pesät ovat täynnä.» → «La millor situació possible és la de bases plenes, quan totes les bases estan ocupades.» 2701840 wikitext text/x-wiki == {{-ca-}} == === Nom === {{ca-nom|fp}} # {{marca|ca|beisbol}} Situació de joc consistent en la presència d'un corredor a cadascuna de les tres primeres bases. {{-trad-}} {{t-inici}} * {{en}}: {{trad|en|bases full}}, {{trad|en|bases loaded}} * {{es}}: {{trad|es|bases llenas}} * {{fi}}: {{trad|fi|ajolähtö}} * {{fr}}: {{trad|fr|bases occupées}} {{t-final}} === Vegeu també === * {{Amical-Termcat|esport}} 5x7g3fl2eu5y4jvkhz9e9l6irtj7lgx reguitzells 0 116021 2701802 2438879 2026-08-04T15:36:13Z Vriullop 219 /* {{-ca-}} */ corr. pron 2701802 wikitext text/x-wiki == {{-ca-}} == {{ca-pron|tz:dz,é}} === Nom === {{ca-nom-forma|mp}} # {{forma-p|ca|reguitzell}} === Miscel·lània === * {{ca-sil}} gnd0ow34uk24avkeg6qbi4tgl8l2ehc Mòdul:ca-pron/AFI 828 238328 2701798 2696273 2026-08-04T15:33:09Z Vriullop 219 hint tz:dz, casos com [[guitza]] 2701798 Scribunto text/plain local p = {} -- dependencies local listToSet = require("Module:TableTools").listToSet local track = require('Module:utilitats').track -- shortcurts for string functions local str = {} str.find = mw.ustring.find str.match = mw.ustring.match str.gsub = mw.ustring.gsub str.sub = mw.ustring.sub str.lower = mw.ustring.lower str.len = mw.ustring.len local pagename -- lects generated, with variant "2" local lects = {"cen", "cen2", "bal", "bal2", "noc", "noc2", "val", "val2"} -- additional lects accepted as optional input: -- Girona "ceng" as variant of "cen", supposedly with respelling -- Northern "sep" and Algherese "alg", supposedly with IPA local input_lects = {"cen", "cen2", "ceng", "bal", "bal2", "sep", "alg", "noc", "noc2", "val", "val2"} local groups_lects = { ori = {"cen", "cen2", "bal", "bal2"}, occ = {"noc", "noc2", "val", "val2"} } local lects_group = { ["cen"] = "ori", ["cen2"] = "ori", ["ceng"] = "ori", ["bal"] = "ori", ["bal2"] = "ori", ["sep"] = "ori", ["alg"] = "ori", ["noc"] = "occ", ["noc2"] = "occ", ["val"] = "occ", ["val2"] = "occ" } local vowels = "aàāeèéëêēiíïoòóôōuúü" local ret_error local function plainText(text) -- vowels without diacritics local accents = "[" .. mw.ustring.char(0x0301, 0x0300, 0x0302, 0x0308, 0x0304) .. "]" -- acute, grave, circumflex, diaresis, macron local decomposed_text = mw.ustring.toNFD(text) decomposed_text = str.gsub(decomposed_text, "([aeiou])" .. accents, "%1") return mw.ustring.toNFC(decomposed_text) -- compose remaining characters (ç, l·l...) end local function fixPrefixes(word) -- Respellings for unassimilated prefixes -- TODO: review if it should be done by respelling "aero-", etc. local prefix = { "aéro", "ànte", "ànti", "àuto", -- ambiguous a-, ab- "bío", -- ambiguous co-, contra- "dia", "dodeca", "[eé]ntre", "equi", "est[eë]reo", -- ambiguous e-(radic) "f[oó]to", "g[aà]stro", "gr[eé]co", "hendeca", "hepta", "hexa", "h[oô]mo", "[ií]nfra", "[ií]ntra", "m[aà]cro", "m[ií]cro", "mono", "m[oô]rfo", "m[uú]lti", "n[eé]o", "octo", "orto", "p[eë]nta", "p[oô]li", "pol[ií]tico", "pr[oô]to", "ps[eë]udo", "psico", -- ambiguous pre-(s), pro- "qu[aà]si", "qu[ií]mio", "r[aà]dio", -- ambiguous re- "s[eë]mi", "sóbre", "s[uú]pra", "t[eë]rmo", "tetra", "tri", -- ambiguous tele-(r) "[uú]ltra", "[uu]n[ií]", "v[ií]ce" } local prefix_r = {"b[ií]li", "[eë]xtra", "pr[eé]"} local prefix_s = {"bi", "c[eé]ntro", "deca", "d[ií]no", "[eë]co", "[eë]xtra", "hetero", "p[aà]ra", "p[oô]st", "pré", "s[oó]ta", "t[eë]le" } local prefix_i = {"pr[eé]", "pr[ií]mo", "pro", "t[eë]le"} local no_prefix = {"bisa", "bisell", "bis[óò]", "contrari", "contrau", "diari", "equise", "heterosi", "monoi", "parasa", "parasit", "preix", "psicosi" } -- False prefixes for _, pr in ipairs(no_prefix) do if str.find(word, "^" .. pr) then return word end end -- Double r in prefix + r + vowel for _, pr in ipairs(prefix_r) do word = str.gsub(word, "^(" .. pr .. ")r([" .. vowels .. "])", "%1rr%2") end word = str.gsub(word, "^eradic", "erradic") -- Double s in prefix + s + vowel for _, pr in ipairs(prefix_s) do word = str.gsub(word, "^(" .. pr .. ")s([" .. vowels .. "])", "%1ss%2") end -- Hiatus in prefix + i for _, pr in ipairs(prefix_i) do word = str.gsub(word, "^(" .. pr .. ")i(.)", "%1ï%2") end if str.find(word, "^rei[^aegx].") and not str.find(word, "^rein[ae]") then word = str.gsub(word, "^rei", "reï") -- prefix re-, as in ca-general.sil end word = str.gsub(word, "^coin", "coïn") -- coincidir and derived, as in ca-general.sil -- Both prefix + r/s or i/u for _, pr in ipairs(prefix) do word = str.gsub(word, "^(" .. pr .. ")([rs])([" .. vowels .. "])", "%1%2%2%3") word = str.gsub(word, "^(" .. pr .. ")i(.)", "%1ï%2") word = str.gsub(word, "^(" .. pr .. ")u(.)", "%1ü%2") end -- Voiced s in prefix roots -fons-, -dins-, -trans- word = str.gsub(word, "^enfons([" .. vowels .. "])", "enfonz%1") word = str.gsub(word, "^endins([aàeèéiíoòóuú])", "endinz%1") word = str.gsub(word, "tr([aà])ns([" .. vowels .. "bdghlmv])", "tr%1nz%2") -- in + ex > ineks/inegz word = str.gsub(word, "^inex", "inhex") return word end local function restoreDiaereses(word) -- Some structural forms do not have diaeresis per diacritic savings, let's restore it to identify hiatus word = str.gsub(word, "ium(s?)$", "iüm%1") -- Latinisms (-ius is ambiguous but rare) word = str.gsub(word, "uum", "uüm") -- Latinisms duumvir, contínuum, ... and derived word = str.gsub(word, "([aeiou])isme(s?)$", "%1ísme%2") -- suffix -isme word = str.gsub(word, "([aeiou])ist([ae]s?)$", "%1íst%2") -- suffix -ista word = str.gsub(word, "([aeou])ir$", "%1ír") -- verbs -ir word = str.gsub(word, "([aeou])int$", "%1ínt") -- present participle word = str.gsub(word, "([aeo])ir([éà])$", "%1ïr%2") -- future word = str.gsub(word, "([^gq]u)ir([éà])$", "%1ïr%2") word = str.gsub(word, "([aeo])iràs$", "%1ïràs") word = str.gsub(word, "([^gq]u)iràs$", "%1ïràs") word = str.gsub(word, "([aeo])ir([eê][mu])$", "%1ïr%2") word = str.gsub(word, "([^gq]u)ir([eê][mu])$", "%1ïr%2") word = str.gsub(word, "([aeo])iran$", "%1ïran") word = str.gsub(word, "([^gq]u)iran$", "%1ïran") word = str.gsub(word, "([aeo])iria$", "%1ïria") -- conditional word = str.gsub(word, "([^gq]u)iria$", "%1ïria") word = str.gsub(word, "([aeo])ir(ie[sn])$", "%1ïr%2") word = str.gsub(word, "([^gq]u)ir(ie[sn])$", "%1ïr%2") return word end local function fixY(word) -- hint for voiced palatal nasal word = str.gsub(word, "ny", "ñ") -- y > vowel /i/ else consonant /j/ word = str.gsub(word, "y([^" .. vowels .. "])", "i%1") -- vowel if not next to another vowel word = str.gsub(word, "([^" .. vowels .. "·%-%.])y", "%1i") -- excluding also syllables separators return word end local function wordRespellings(word, lect) word = str.gsub(word, "%-([rs]?)", "-%1%1") word = str.gsub(word, "s%-c([eé])", "-c%1") -- dos-cents... never geminated word = str.gsub(word, "rç$", "rrs") -- silent r only in plurals -rs word = fixPrefixes(word) -- internal pause after a prefix word = restoreDiaereses(word) -- no diaeresis saving word = fixY(word) -- ny > ñ else y > i vowel or consonant word = str.gsub(word, "^sc?h([" .. vowels .."])", "xx%1") -- hint xx (scheelita, shigel·la) word = str.gsub(word, "^s([^" .. vowels .."w])", "es%1") -- epentetic vowel (spin) GEIC 3.3.3.1 word = str.gsub(word, "ch([" .. vowels .."])", "tx%1") word = str.gsub(word, "([^" .. vowels .. "h])h([^h])", "%1%2") -- anhel, adherir... but kh>hh -- initial consonant clusters GEIC 2.3.2, GNV 1.3.2.7.1.f word = str.gsub(word, "^[mp]n", "n") word = str.gsub(word, "^bd", "d") if lect ~= "cen" then -- formal doble consonant only in Central (GDLC) word = str.gsub(word, "^p([st])", "%1") -- psicòleg, ptolemaic word = str.gsub(word, "^gn", "n") -- gnom end return word end local function splitVowels(v) local syllables = {{onset = "", vowel = str.sub(v, 1, 1), coda = ""}} v = str.sub(v, 2) while v ~= "" do local syll = {onset = "", vowel = "", coda = ""} syll.onset, syll.vowel, v = str.match(v, "^([iu]?)(.)(.-)$") table.insert(syllables, syll) end local count = #syllables if count >= 2 and (syllables[count].vowel == "i" or syllables[count].vowel == "u") then syllables[count - 1].coda = syllables[count].vowel syllables[count] = nil end return syllables end -- Split the word into syllables local function splitSyllables(remainder, lect) local valid_onsets = listToSet({ "b", "bl", "br", "c", "cl", "cr", "ç", "d", "dr", "f", "fl", "fr", "g", "gl", "gr", "gu", "gü", "h", "hh", -- hint for aspirated h "i", "j", "k", "kl", "kr", "l", "ll", "m", "n", "ny", "ñ", "p", "pl", "pr", "qu", "qü", "r", "rr", "s", "ss", "t", "tg", "tj", "tr", "tx", "tz", "u", "v", "vl", "w", "x", "y", "z", }) local syllables = {} while remainder ~= "" do local rem_c, rem_v rem_c, remainder = str.match(remainder, "^([^aàāeèéêëēiíïoòóôōuúü]*)(.-)$") rem_v, remainder = str.match(remainder, "^([aàāeèéêëēiíïoòóôōuúü]*)(.-)$") if rem_v == "" then syllables[#syllables].coda = syllables[#syllables].coda .. rem_c else local onset = rem_c local first_vowel = str.sub(rem_v, 1, 1) if (str.find(onset, "[gq]$") and (first_vowel == "ü" or (first_vowel == "u" and rem_v ~= "u"))) or ((onset == "" or onset == "h") and #syllables == 0 and first_vowel == "i" and rem_v ~= "i" ) then onset = onset .. str.sub(rem_v, 1, 1) rem_v = str.sub(rem_v, 2) end local vsyllables = splitVowels(rem_v) vsyllables[1].onset = onset .. vsyllables[1].onset for _, s in ipairs(vsyllables) do table.insert(syllables, s) end end end -- Shift over consonants from the onset to the preceding coda, -- until the syllable onset is valid for i = 2, #syllables do local current = syllables[i] local previous = syllables[i-1] while not (current.onset == "" or valid_onsets[current.onset]) do local letter = str.sub(current.onset, 1, 1) current.onset = str.sub(current.onset, 2) if not str.find(letter, "[·%-%.]") then --syllables separators previous.coda = previous.coda .. letter else break end end end -- Detect stress for i, syll in ipairs(syllables) do if str.find(syll.vowel, "^[àèéêëíòóôú]$") then syllables.stress = i -- primary stress: the last one stressed syll.stressed = true end end if not syllables.stress then local count = #syllables if count == 1 then syllables.stress = 1 else local final = syllables[count] if final.coda == "" or final.coda == "s" or (final.coda == "n" and (final.vowel == "e" or final.vowel == "i" or final.vowel == "ï")) then syllables.stress = count - 1 else syllables.stress = count end end syllables[syllables.stress].stressed = true end -- Change stress in infinitive + -se, in Balearic -- informal in Mallorca and Menorca, not in Eivissa if lect == "bal2" and str.sub(pagename, -4) == 'r-se' then --and i == syllables.stress -- -ar-se, also entémer-se... syllables[syllables.stress].stressed = nil syllables[#syllables].stressed = true syllables[#syllables].vowel = "ə" syllables.stress = #syllables end -- text of syllable from components for i, syll in ipairs(syllables) do syllables[i].text = syll.onset .. syll.vowel .. syll.coda end return syllables end local function midVowelFixes(syllables) local post_consonants = syllables[syllables.stress].coda local post_vowel = "" local post_letters = post_consonants if syllables.stress == #syllables - 1 then post_consonants = post_consonants .. syllables[#syllables].onset post_vowel = syllables[#syllables].vowel post_letters = post_consonants .. post_vowel .. syllables[#syllables].coda end -- most common cases, other ones are ambiguous local stressed_vowel = syllables[syllables.stress].vowel if stressed_vowel == "e" then if post_vowel == "i" or post_vowel == "u" then return "è" elseif str.find(post_consonants, "^l") and not str.find(post_consonants, "^lls?$") and syllables.stress == #syllables then return "è" elseif post_consonants == "l" or post_consonants == "ls" or post_consonants == "l·l" then return "è" elseif post_letters == "nt" or post_letters == "nts" then return "é" elseif str.find(post_letters, "^r[ae]?s?$") then return "é" elseif str.find(post_consonants, "^r[dfjlnrstxyz]") then -- except bilabial and velar return "è" elseif post_letters == "sos" or post_letters == "sa" or post_letters == "ses" then -- inflection of -ès return "ê" elseif str.find(post_letters, "^t[ae]?s?$") then --track("ca-pron/et-final") return "ê" end elseif stressed_vowel == "o" then if post_vowel == "i" or post_vowel == "u" then --track("ca-pron/oi-ou") return "ò" elseif str.sub(post_letters, 1, 1) == "i" and str.sub(post_letters, 1, 2) ~= "ix" then -- diphthong oi except oix --track("ca-pron/oi-diftong") return "ò" elseif post_letters == "ma" or post_letters == "mes" then --track("ca-pron/oma") return "ó" elseif str.find(post_letters, "^r[ft]s?$") then --track("ca-pron/orC") return "ò" elseif str.find(post_letters, "^r[ae]?s?$") then track("ca-pron/or-final") return "ó" elseif post_letters == "rme" or post_letters == "rmes" then track("ca-pron/orme") return "ó" end end return stressed_vowel end local function reconstituteWordFromSyllables(syllables) local word_syl = {} local stressed_vowel = syllables[syllables.stress].vowel if str.find(stressed_vowel, "[eèo]") then syllables[syllables.stress].vowel = midVowelFixes(syllables) else syllables[syllables.stress].vowel = str.gsub(stressed_vowel, "[aiïu]", {["a"] = "à", ["i"] = "í", ["ï"] = "í", ["u"] = "ú"}) end for i, syl in ipairs(syllables) do word_syl[i] = syl.onset .. syl.vowel .. syl.coda end local word = table.concat(word_syl) if str.find(pagename, "l·l") then word = str.gsub(word, "ll", "l·l") -- restore geminated lost in splitSyllables() end if str.find(pagename, "-") then local first = str.match(pagename, "(.+)-") word = str.gsub(word, first, first .. "-") end return word end local function replaceContextFree(cons) cons = str.gsub(cons, "r", "ɾ") cons = str.gsub(cons, "ɾɾ", "r") cons = str.gsub(cons, "ss", "s") cons = str.gsub(cons, "ll", "ʎ") cons = str.gsub(cons, "ñ", "ɲ") -- hint ny > ñ if str.find(cons, "hh") then cons = str.gsub(cons, "hh", "h") -- hint hh > /h/ else cons = str.gsub(cons, "h", "") end cons = str.gsub(cons, "[dt]j", "d͡ʒ") cons = str.gsub(cons, "tx", "t͡ʃ") cons = str.gsub(cons, "[dt]z", "d͡z") cons = str.gsub(cons, "ç", "s") cons = str.gsub(cons, "[cq]", "k") cons = str.gsub(cons, "l", "ɫ") cons = str.gsub(cons, "g", "ɡ") cons = str.gsub(cons, "j", "ʒ") cons = str.gsub(cons, "x", "ʃ") cons = str.gsub(cons, "[iy]", "j") -- must be after j > ʒ and fixY cons = str.gsub(cons, "[uü]", "w") return cons end local function elisionContinguousVowels(syllables, lect) -- Eastern contiguous vowels losses last one in some contexts -- GIEC 3.4.i: amb vocal final i inicial dels dos components d’un compost: ---- ə+ə ([ae]+[ae]) elisió, però ea > /eə/ amb excepcions ---- altres vocals idèntiques ii, oo, ou ---- i+e travada: anti/poli(e)sportiu, anti(e)stàtic, multi(e)stàndard if lects_group[lect] ~= "ori" then return syllables end local first_stress = 0 local second_stress = 0 for i = 1, syllables.stress do if syllables[i].stressed then if first_stress == 0 then first_stress = i elseif second_stress == 0 then second_stress = i end end end if first_stress > 0 and second_stress > 0 then -- compound or prefixed word with secondary stress -- not the case of adverbs with -ment (but sóbreabundàntmént), avoiding possible errors local sec_str_syl = syllables[second_stress].onset .. syllables[second_stress].vowel .. syllables[second_stress].coda if sec_str_syl == "ment" then return syllables end -- it doesn't work in àntialcoholísme, a single case with -isme to be respelled -- elision ea only after some prefixes -- doing it before reduction /eə/ local prefix_vowel = {"centrea", "entrea", "obrea", "sobrea", "telea", "vicea"} local prefix_ea_match = false for _, pr in ipairs(prefix_vowel) do if str.find(pagename, pr) == 1 then prefix_ea_match = true end end local i = first_stress + 1 while i < second_stress - 1 do -- unstressed between two accents local current = syllables[i] local posterior = syllables[i + 1] local vowel_pair = current.vowel .. current.coda .. posterior.onset .. posterior.vowel if str.find(vowel_pair, "[ae]e") or vowel_pair == "aa" or (vowel_pair == "ea" and prefix_ea_match) or (vowel_pair == "ie" and posterior.coda == "s") or vowel_pair == "ii" or (vowel_pair == "oe" and posterior.coda == "s") or str.find(vowel_pair, "o[ou]") then syllables[i].coda = syllables[i + 1].coda -- re-syllabification table.remove(syllables, i + 1) syllables.stress = syllables.stress - 1 end i = i + 1 end end return syllables end local function reductionUnstressAE(syllables, lect) -- Eastern: <ae> /ə/ GIEC 3.3.1.2.b for i = 1, #syllables do local current = syllables[i] if current.stressed == nil and str.find(current.vowel, "[ae]") then local previous = syllables[i - 1] or {onset = "", vowel = "", coda = ""} local posterior = syllables[i + 1] or {onset = "", vowel = "", coda = ""} local pre_vowel_pair = previous.vowel .. previous.coda .. current.onset .. current.vowel local post_vowel_pair = current.vowel .. current.coda .. posterior.onset .. posterior.vowel local reduction = true if pre_vowel_pair == "əe" and not previous.stressed then reduction = false -- aerificar, aeròbic... elseif str.find(post_vowel_pair, "e[aɔ]") then reduction = false -- crear, teòric, but not lleó elseif i < syllables.stress -1 and post_vowel_pair == "ee" then posterior.vowel = "ə" -- both reduced, avoiding əe in next loop elseif i > syllables.stress and post_vowel_pair == "ee" then reduction = false -- àrees, as singular àrea elseif lect == "bal" and i == #syllables and previous.stressed and str.find(previous.vowel .. current.vowel .. current.coda, "aeks?$") then -- UIB: endings -à+C+ec in Majorcan, i.e. mànec reduction = false end if reduction then current.vowel = str.gsub(current.vowel, "[ae]", "ə") end end end return syllables end local function reductionUnstressO(syllables, lect) -- Central, Menorca, Eivissa: o àtona > /u/ -- Balear /u/ en una llista de 9 mots (UIB) -- DONE by respelling -- Alguns parlars mallorquins i occidentals en alguns contextos (GIEC 3.3.4.1.b): --- seguida de síl·laba tònica i (conill, cosí, coixí, tossir) --- habitualment precedit de palatoalveolar (Joan, Josep, joventut) ---- do nothing, vowel harmony don't use to happen in Palma ---- it will be as "bal2" for Menorca and Eivissa -- Valencià (GNV 1.2.2.3.2.e): --- estàndard: Josep, Joan --- acceptable en àmbit local: davant i tònica o C labial (collir, tossir, cobert, obert) ---- do nothing, not systematic, neither Northwestern ---- it seems from Old Catalan in first stage of unstressed reduction ---- DONE by respelling according with the DCVB for i = 1, #syllables do local current = syllables[i] local posterior = syllables[i + 1] or {onset = "", vowel = "", coda = ""} if lect ~= "bal" and current.vowel == "o" and not current.stressed and not (current.coda == "w" or current.coda .. posterior.onset == "w") then current.vowel = "u" -- some excepcions ow: derivates of brou, jou, nou, ou; done by respelling end end return syllables end -- Do context-sensitive phonological changes local function postprocessGeneral(syllables, lect, pos) local lect_12 = lect:sub(1, 3) for i = 1, #syllables do local current = syllables[i] local previous = syllables[i - 1] or {onset = "", vowel = "", coda = ""} -- Stressed -ig, final or in compound: mig, reig, roig, puig, migdiada local ending = current.vowel .. current.coda if current.stressed and ((i == #syllables and str.find(ending, "^iɡs?$")) or (i == #syllables and str.find(ending, "jɡs?$")) or (i == 1 and current.onset == "m" and str.find(ending, "^iɡs?$")) -- migdia+, but amígdala or (current.onset == "r" and str.find(ending, "^[eo]jɡs?$")) or (current.onset == "p" and str.find(ending, "^ujɡs?$")) ) then if lect == "cen2" then -- iodització final central V+igs: raigs > rajts, fet més endavant current.coda = str.gsub(current.coda, "(j?)ɡ(s?)", "%1t͡ʃ%2") else current.coda = str.gsub(current.coda, "j?ɡ(s?)", "t͡ʃ%1") end end -- Coda consonant losses if i < #syllables then current.coda = str.gsub(current.coda, "([ɫn])[td]$", "%1") current.coda = str.gsub(current.coda, "m[pb]$", "m") current.coda = str.gsub(current.coda, "s[td]$", "s") -- istme, postgrau else current.coda = str.gsub(current.coda, "([ɫn])[td]s", "%1s") -- malalts, accents current.coda = str.gsub(current.coda, "m[pb]s", "ms") -- camps, tombs current.coda = str.gsub(current.coda, "mpt(s?)", "mt%1") -- exempt, irredempt if lect_12 == "cen" or lect_12 == "noc" or lect == "val2" or lect == "bal2" then current.coda = str.gsub(current.coda, "([ɫn])[td]", "%1") -- malalt, cald, -ment, fecund if lect_12 == "cen" or lect_12 == "noc" or lect == "val2" then current.coda = str.gsub(current.coda, "m[pb]", "m") -- camp, tomb end end end -- Betacism v > /b/ in onsets, not in codas (ovni, hafni) -- doing it before assimilations and spirants if lect_12 == "cen" or lect_12 == "noc" or lect == "val2" then current.onset = str.gsub(current.onset, "v", "b") end -- Reduction geminated l·l > /l/ -- doing it before gemination tl > /ll/ and /ʎʎ/ > /ll/ if (lect == "cen2" or lect == "noc2" or lect == "val2") and current.onset == "ɫ" then previous.coda = str.gsub(previous.coda, "ɫ", "") end ---- Consonant assimilations -- t + lateral/nasal/plosive assimilation, not tm if str.find(previous.coda, "t$") and str.find(current.onset, "^ɫ") then -- tl > /ll/ except cultisms dl /dl/, nor atl /adl/ in Valencian -- doing it before devoicing d /t/ if lect_12 == "val" then if not (previous.onset == "" and previous.vowel == "a") then -- not atles, triatló... but batle, guatla... previous.coda = lect == "val" and "ɫ" or "" -- /l/ in val2 end else previous.coda = "ɫ" end elseif str.find(previous.coda, "t$") and str.find(current.onset, "^ʎ") then if lect_12 == "cen" or lect_12 == "noc" then -- Central and Northwestern tʎ > /ʎʎ/ previous.coda = str.gsub(previous.coda, "t$", "ʎ") else -- Balearic and Valencian: tʎ > /ll/ (inherited) or /ʎ/ (borrowed) local previous_syl = previous.onset .. previous.vowel .. previous.coda if str.find(previous_syl, "[bpw]at$") -- batlle, espatlla, guatlla or str.find(pagename, "[mv]etll") -- ametlla, -vetlla or (str.find(previous_syl, "tit$") -- titlla and not str.find(pagename, "estitll")) -- exc. estitll- or str.find(previous_syl, "m[oɔ]t$") -- motlle or (str.find(previous_syl, "r[oɔu]t$") -- -rotlle and lect_12 == "bal") or (str.find(previous_syl, "ut$") -- butlla, rutlla and not str.find(pagename, "butll[eo][tf]")) -- exc. butlleta, butlletí, -butllofa then previous.coda = "ɫ" current.onset = "ɫ" else previous.coda = "" end end elseif str.find(previous.coda, "t$") and str.find(current.onset, "^n") then -- tn > /nn/ except cultisms if not str.find(previous.vowel, "[eɛêë]") then -- except ètnic, etno-... previous.coda = str.gsub(previous.coda, "t$", "n") -- vietnamita, pitnegre to be fixed end elseif previous.coda:find("[dt]$") then -- GIEC 4.4.2.2 plosive assimilations if current.onset == "k" and lect_12 == "bal" then -- d/t + k > /kk/ DCVB, not in GDLV, DNV previous.coda = str.gsub(previous.coda, "[dt]$", "k") -- batcoll, sud-coreà elseif current.onset == "b" and lect_12 ~= "val" and previous.stressed == nil then -- t + b > /bb/ DCVB & GDLV, not in DNV, not ràtbúf previous.coda = str.gsub(previous.coda, "t$", "b") -- futbol elseif current.onset == "v" and lect_12 == "bal" then -- d/t + v > /bv/ DCVB, not in GDLV, DNV previous.coda = str.gsub(previous.coda, "[dt]$", "b") -- adverbi, gatvaire elseif current.onset == "p" and lect_12 == "bal" then -- t + p > /pp/ DCVB, not in GDLV, DNV previous.coda = str.gsub(previous.coda, "t$", "p") -- totpoderós end end -- nasal assimilations if str.find(current.onset, "^[mbp]") then -- nasal + labial > labialized if str.find(previous.coda, "n$") then previous.coda = str.gsub(previous.coda, "n$", "m") elseif str.find(previous.coda, "[bp]$") -- labial + nasal > labialized and str.find(current.onset, "^m") and (lect_12 == "cen" or lect_12 == "bal" or lect_12 == "noc") then previous.coda = str.gsub(previous.coda, "[bp]$", "m") end elseif str.find(current.onset, "^[fv]") then previous.coda = str.gsub(previous.coda, "[mn]$", "ɱ") elseif str.find(current.onset, "^[ɡk]") then -- n + velar > velarized previous.coda = str.gsub(previous.coda, "n$", "ŋ") elseif str.find(previous.coda, "[ɡk]$") -- velar + n > velarized and str.find(current.onset, "^n") and (lect_12 == "cen" or lect_12 == "bal" or lect_12 == "noc") then previous.coda = str.gsub(previous.coda, "[ɡk]$", "ŋ") elseif str.find(current.onset, "^[ʒʎʃɲ]") -- n + palatal > palatalized or str.find(current.onset, "^t͡ʃ") or str.find(current.onset, "^d͡ʒ") then previous.coda = str.gsub(previous.coda, "n$", "ɲ") end if i < #syllables then current.coda = str.gsub(current.coda, "n[kɡ]", "ŋ") -- sangglaçar, ping-pong, francmaçó... else current.coda = str.gsub(current.coda, "n[kɡ]", "ŋk") end if i == 1 then current.onset = str.gsub(current.onset, "ɡn", "ŋn") -- gnom end current.coda = str.gsub(current.coda, "[mn]([fv])", "ɱ%1") current.coda = str.gsub(current.coda, "n([ʃʒ])", "ɲ%1") current.coda = str.gsub(current.coda, "n(t͡ʃ)", "ɲ%1") current.coda = str.gsub(current.coda, "n(d͡ʒ)", "ɲ%1") if lect ~= "cen" and current.onset == "m" and previous.vowel == "a" then -- augm- and derivatives > aum previous.coda = str.gsub(previous.coda, "wɡ", "w") end -- l + palatal > palatalized -- doing it before fortition of palatal fricatives if str.find(current.onset, "^[ʎʃɲ]") or str.find(current.onset, "^t͡ʃ") or str.find(current.onset, "^d͡ʒ") then previous.coda = str.gsub(previous.coda, "ɫ$", "ʎ") elseif current.onset == "ʒ" and lect_12 == "cen" then if not (i == 2 and previous.text == "maɫ") -- except prefix mal- -- endings -àlgia/es, -àlgica/es, -àlgic/s are ambiguous, to be fixed by respelling and not (i > 2 and i == #syllables - 1 and str.find(previous.text, "aɫ$") and current.text == "ʒi" and str.find(syllables[i + 1].text, "^k?[ae]")) -- except cultisms -àlgia/es, -àlgica/es and not (i > 2 and i == #syllables and str.find(previous.text, "aɫ$") and str.find(current.text, "ʒiks?")) -- except cultisms -àlgic/s then previous.coda = str.gsub(previous.coda, "ɫ$", "ʎ") end end if (lect_12 == "bal" or lect_12 == "val") and previous.coda == "ʎ" and current.onset == "ʎ" then -- no palatal gemination in Balearic and Valencian: Bell-lloc previous.coda = "" end current.coda = str.gsub(current.coda, "ɫʃ", "ʎʃ") current.coda = str.gsub(current.coda, "ɫ(t͡ʃ)", "ʎ%1") if lect_12 == "cen" then current.coda = str.gsub(current.coda, "ɫʒ", "ʎʒ") end -- Double sound of letter x > ks/gz (on cultisms, ambiguous in onsets) -- doing it before fortition ʃ > t͡ʃ if current.vowel ~= "i" then current.coda = str.gsub(current.coda, "^ʃs?$", "ks") end if previous.coda == "kz" then previous.coda = "ɡz" -- voicing the group end if (previous.onset == "" and (previous.vowel == "e" or previous.vowel == "ɛ") or str.find(pagename, "hex")) and ((previous.coda == "" and current.onset == "ʃ") or (previous.coda == "ks" and current.onset == "")) then -- ex + (h) vowel > egz previous.coda = "ɡ" current.onset = "z" end -- Fortition of palatal fricatives if previous.coda == "ɡ" and current.onset == "ʒ" then current.onset = "d͡ʒ" previous.coda = "" end if lects_group[lect] == "occ" then if current.onset == "ʃ" and previous.coda ~= "j" and (previous.vowel .. previous.coda) ~= "i" then -- not hint xx > -ʃʃ, nor <ix>: xiuxiuejar, para-xocs current.onset = "t͡ʃ" end if lect_12 == "noc" then if current.onset == "ʒ" and (i == 1 or previous.coda ~= '') then current.onset = "d͡ʒ" end elseif lect_12 == "val" then current.onset = str.gsub(current.onset, "^ʒ", "d͡ʒ") current.coda = str.gsub(current.coda, "^ʒ", "d͡ʒ") if previous.vowel == "i" and previous.coda == "" and current.onset == "d͡z" then current.onset = "z" end end elseif lect == "bal" then -- fortition in -ejar/-ajar -- GIEC 4.2.3.1: tendència a l’africació del sufix ‑ej(ar) -- (passejar, festejar, glopejar, plantejar) i en algun altre mot (roja). -- UIB: s'admet fricativa o africada: -- assajar, festejar, manejar, rajar, passejar -- llegir, regir, corregir -- assajos, batejos, Magí, roja/os, rajola, boja/os, truja i algun altre. -- FIXME: move to bal2 -- TODO: try only a list of verbs and its forms, others by respelling -- TODO: currently it does not include all verb forms if i > 1 and current.vowel == "a" and i == syllables.stress and str.find(previous.vowel, "[ae]") and previous.coda == "" then current.onset = str.gsub(current.onset, "^ʒ", "d͡ʒ") end end current.onset = str.gsub(current.onset, "ʃʃ", "ʃ") -- remove hint xx current.coda = str.gsub(current.coda, "ʃʃ", "ʃ") if previous.vowel == "i" and previous.coda == "d" and current.onset == "z" then -- remove hint tz:dz previous.coda = "" current.onset = "d͡z" end -- Assimilation s + sibilant -- GIEC 4.4.3.4: ---- majoria de parlars, elisió: descentrar /s/, desxifrar /ʃ/, desgelar /ʒ/ ---- mallorquí i menorquí, africació i geminació: /tts/, /ttʃ/, /ddʒ/ -- UIB-totdret, recomanable allargament, no africació: /ss/, /ʃʃ/, /ʒʒ/ -- done after reduction s-c and exs, and fortition t͡ʃ d͡ʒ -- done before voicing s > z if previous.coda:find("s$") then if current.onset == "s" then if previous.coda == "s" then -- elision /ss/ intervocalic except in Balearic if lect_12 ~= "bal" then previous.coda = "" end else previous.coda = previous.coda:gsub("s$", "") end elseif current.onset == "ʃ" or current.onset == "ʒ" then if lect_12 == "cen" then previous.coda = previous.coda:gsub("s$", "") elseif lect_12 == "bal" then previous.coda = str.gsub(previous.coda, "s$", current.onset) end end end -- Voicing or devoicing local voiced = listToSet({"b", "d", "ɡ", "m", "n", "ɲ", "ɫ", "ʎ", "r", "ɾ", "v", "z", "ʒ"}) local voiceless = listToSet({"p", "t", "k", "f", "s", "ʃ", ""}) local devoicing = {["b"]="p", ["d"]="t", ["ɡ"]="k"} local voicing = {["p"]="b", ["t"]="d", ["k"]="ɡ", ["f"]="v", ["s"]="z", ["ʃ"]="ʒ"} local current_initial = str.sub(current.onset, 1, 1) local previous_final = str.sub(previous.coda, -1) if voiced[current_initial] and voicing[previous_final] then previous.coda = str.gsub(previous.coda, previous_final .. "$", voicing[previous_final]) previous.coda = str.gsub(previous.coda, "t͡ʒ", "d͡ʒ") elseif current_initial == "" and previous_final == "ʃ" then -- voicing sibilants before a vowel GIEC 4.4.1.2: baix-alemany, Puig-agut local onset_new = str.gsub(previous.coda, previous_final .. "$", voicing[previous_final]) onset_new = str.gsub(onset_new, "t͡ʒ", "d͡ʒ") current.onset = str.gsub(onset_new, "j", "") previous.coda = str.gsub(onset_new, "[^j]", "") elseif voiceless[current_initial] and devoicing[previous_final] then previous.coda = str.gsub(previous.coda, previous_final .. "$", devoicing[previous_final]) end previous.coda = str.gsub(previous.coda, "[bd]s", {["bs"] = "ps", ["ds"] = "ts"}) -- Final devoicing if i == #syllables then current.coda = str.gsub(current.coda, "d͡ʒ", "t͡ʃ") current.coda = str.gsub(current.coda, "d͡z", "t͡s") current.coda = str.gsub(current.coda, "b", "p") current.coda = str.gsub(current.coda, "d", "t") current.coda = str.gsub(current.coda, "ɡ", "k") current.coda = str.gsub(current.coda, "ʒ", "ʃ") current.coda = str.gsub(current.coda, "v", "f") current.coda = str.gsub(current.coda, "z", "s") end -- affricate + affricate/fricative (migjorn, puigcerdanenc): GIEC 4.4.3.4.b if lect ~= "val" and ((previous.coda == "d͡ʒ" and str.find(current.onset, "ʒ")) or (previous.coda == "t͡ʃ" and current.onset == "s")) then current.onset = previous.coda previous.coda = "" end -- Allophones of r -- in replaceContextFree(), we converted single r to ɾ and double rr to r -- doing it before spirant lenitions r+bdg if i == 1 then current.onset = str.gsub(current.onset, "^ɾ", "r") elseif str.find(previous.coda, "[ɫnz]$") then current.onset = str.gsub(current.onset, "^ɾ", "r") end -- GIEC 4.2.6.c: bategant mallorquí, eivissenc, nord-occcidental meridional, valencià if i < #syllables -- final coda done afterwards depending of hint and (lect_12 == "cen" or lect == "bal2" or lect == "noc") then current.coda = str.gsub(current.coda, "ɾ", "r") end -- GNV 1.3.2.1.1.c: reduction of first consonant on ads-, obs-, subs- + C -- previously devoiced d /t/, b /p/, and reduced sc /ss/ > /s/ (obscé) if lect == "val2" then if previous.vowel == "a" then previous.coda = str.gsub(previous.coda, "ts$", "s") elseif str.find(previous.vowel, "[ou]") then previous.coda = str.gsub(previous.coda, "ps$", "s") end end -- Gemination bl, gl: GIEC 4.3.6 local cons_cluster = previous.coda .. current.onset if lect == "cen2" or lect == "noc2" or lect_12 == "val" then -- remove respellings bbl/ggl if cons_cluster == "bbɫ" or cons_cluster == "ɡɡɫ" then previous.coda = "" end elseif str.find(cons_cluster, "^[bɡ]ɫ") and previous.stressed then previous.coda = str.sub(cons_cluster, 1, 1) -- geminated end -- remove respellings +bl/+gl if str.find(cons_cluster, "%+[bɡ]ɫ") then previous.coda = "" end -- No gemination dd -- doing it before spirant lenition if lect_12 == "val" and cons_cluster == "dd" then previous.coda = "" end -- Spirant lenition -- doing it before voicing assimilation s > z -- TODO: review with GIEC 4.4.3.3: -- en obertura -- després de vocal, semivocal, ròtica, lateral (exc. ð) -- fricativa labiodental -- fricativa alveolar i palatoalveolar -- africada alveolar i palatoalveolar -- ... if i > 1 and str.find(current.onset, "^[bdɡ]") and not str.find(current.onset, "^d͡") and not (str.find(current.onset, "^b") and (lect_12 == "bal" or lect == "val")) -- no β in v/b distintion and not (str.find(previous.coda, "[ɫʎ]$") and str.find(current.onset, "^d")) -- except lateral + d and not str.find(previous.coda, "[pbtdkɡmɱnɲŋ]$") and not (str.find(previous.coda, "[rz]$") and lect_12 == "cen") --and (previous.stressed == nil or current.stressed == nil) -- ? then current.onset = str.gsub(current.onset, "[bdɡ]", {["b"] = "β", ["d"] = "ð", ["ɡ"] = "ɣ"}) end -- iodització final central V+igs: raigs > rajts -- doing it before removing j and after final devoicing if lect == "cen2" and i == #syllables then current.coda = str.gsub(current.coda, "jt͡ʃs$", "jt͡s") end -- Remove j before palatal obstruents if lects_group[lect] == "ori" then current.coda = str.gsub(current.coda, "j([ʃʒ])", "%1") current.coda = str.gsub(current.coda, "j(t͡ʃ)", "%1") current.coda = str.gsub(current.coda, "j(d͡ʒ)", "%1") if str.find(previous.coda, "j$") and (str.find(current.onset, "^[ʃʒ]") or str.find(current.onset, "^d͡ʒ")) then previous.coda = str.gsub(previous.coda, "j$", "") end elseif lect == "val2" then if str.find(current.onset, "^ʃ") then previous.coda = str.gsub(previous.coda, "j$", "") end end -- Ascending diphthong /uj/ > /wi/ -- doing it before reduction o if lect == "val2" and current.vowel == "u" and str.find(current.coda, "^j") and i < #syllables and syllables[i + 1].onset ~= "ʃ" then current.onset = current.onset .. "w" current.vowel = "i" current.coda = str.gsub(current.coda, "^j", "") end -- Vowel assimilation of final a -- TODO: review, standard v. acceptable if lect == "val2" and i == #syllables and current.vowel == "a" and current.coda == "" and (previous.vowel == "ɛ" or previous.vowel == "ɔ") then current.vowel = previous.vowel end -- resyllabling some prefix+V if i == 2 and current.onset == "" then if previous.coda == "p" then -- sub- current.onset = "p" previous.coda = "" if lect == "val2" then current.onset = "β" end elseif str.find(previous.coda, "r?t$") then -- nord-, sud- current.onset = "t" previous.coda = str.gsub(previous.coda, "t$", "") end end end -- by syllables -- Elision and reduction of unstressed vowels a,e,o if lects_group[lect] == "ori" then syllables = elisionContinguousVowels(syllables, lect) syllables = reductionUnstressAE(syllables, lect) syllables = reductionUnstressO(syllables, lect) end -- Final consonant losses local final_coda = syllables[#syllables].coda final_coda = str.gsub(final_coda, "j(t͡ʃ)s?$", "%1") final_coda = str.gsub(final_coda, "([ʃs])s", "%1") -- homophone plurals -xs, -çs if lect_12 == "cen" or lect_12 == "noc" or lect == "val2" or (lect == "val" and syllables.stress < #syllables) then final_coda = str.gsub(final_coda, "ŋk(s?)$", "ŋ%1") end if lect == "val2" then final_coda = str.gsub(final_coda, "ʎs$", "ʎʃ") end -- final r, GIEC 4.3.4 -- elision in verbs -ar, -er, -ir, also in val2 GNV 1.3.2.6 -- + adj or nouns -ar, -er, -or stressed not monosyllables, not in val nor val2 -- coverts most cases, but plenty of exceptions to be fixed if pos == "inf" and lect ~= "val" then final_coda = str.gsub(final_coda, "^ɾ$", "") elseif #syllables > 1 and syllables.stress == #syllables and lect_12 ~= "val" then final_coda = str.gsub(final_coda, "^ɾ(s?)$", "%1") -- no loss with hint rr end final_coda = str.gsub(final_coda, "([rɾ])+?", "ɾ") -- remove hint if lect_12 == "cen" or lect_12 == "noc" or lect_12 == "bal" then final_coda = str.gsub(final_coda, "([rɾ])ts$", "%1s") end -- allophones of r in coda: GIEC 4.2.6.c /r/ in Central, Menorca and most Northwestern if lect_12 == "cen" or lect == "bal2" or lect == "noc" then final_coda = str.gsub(final_coda, "ɾ", "r") else final_coda = str.gsub(final_coda, "r", "ɾ") end syllables[#syllables].coda = final_coda return syllables end local function applySubstitutionSpec(respelling, term) local from, to = str.match(respelling, "^(.*):(.*)$") local nsub if from == "<stress>" then local mid_vowel_hint = to local syllables = splitSyllables(term) local stressed_vowel = syllables[syllables.stress].vowel if (str.find(mid_vowel_hint, "[èéêë]") and str.find(stressed_vowel, "[eèé]")) or (str.find(mid_vowel_hint, "[òóô]") and str.find(stressed_vowel, "[oòó]")) then syllables[syllables.stress].vowel = mid_vowel_hint else ret_error = "no s'ha pogut substituir '" .. mid_vowel_hint .. "' en la vocal '" .. syllables[syllables.stress].vowel .. "'." end term = reconstituteWordFromSyllables(syllables) elseif from == "<prefix>" then to = str.sub(to, 1, -2) local prefix = plainText(to) local remainder = str.sub(term, #prefix + 1) remainder = restoreDiaereses(remainder) -- wordRespellings for ending local syllables = splitSyllables(remainder) -- includes stress remainder = reconstituteWordFromSyllables(syllables) term, nsub = str.gsub(str.sub(term, 1, #prefix), prefix, to, 1) term = term .. remainder elseif from == "" then local plain_to = plainText(to) if to:sub(-1) == "-" then -- TODO: add secondary accent if str.find(term, "-") then from = str.sub(plain_to, 1, -2) to = str.sub(to, 1, -2) else from = plainText(str.sub(to, 1, -2)) end term, nsub = str.gsub(term, from, to, 1) elseif to ~= plain_to then term, nsub = str.gsub(term, plain_to, to, 1) else term = to end else term, nsub = str.gsub(term, from, to, 1) end if nsub == 0 then ret_error = "no s'ha trobat '" .. from .. "' a '" .. term .. "'" end return term end local function canonRespelling(text) text = mw.text.trim(text) text = str.gsub(text, "%s+", " ") local lower_first = str.lower(str.sub(text, 1, 1)) if lower_first == str.lower(str.sub(pagename, 1, 1)) then text = lower_first .. str.sub(text, 2) end return text end local function canonPagename(text) text = str.lower(text) text = str.gsub(text, "[¡¿!?']", "") text = str.gsub(text, ", ", "") text = str.gsub(text, "^%-", "") text = str.gsub(text, "%-$", "") return text end local function parseRespelling(respelling, term, input_param) term = canonRespelling(term) local hint if respelling == "-" then return {omitted = true} elseif respelling:match("^/(.+)/$") then return {raw = respelling} elseif respelling == "+" then return {term = term} elseif not str.find(respelling, ":") then local mid_vowel_hint = str.match(respelling, "^[éèêëóòô]$") if mid_vowel_hint then respelling = "<stress>:" .. mid_vowel_hint hint = mid_vowel_hint elseif respelling == "ks" then respelling = "x:ks" elseif respelling == "xx" then -- xeix <x> /ʃ/ not /t͡ʃ/ term = str.gsub(term, "x(.)", "xx%1") -- initial or interior term = str.gsub(term, "ixx", "ix") -- not needed term = str.gsub(term, "([^-])xx", "%1-xx") -- force to onset return {term = term} elseif respelling == "rr" then respelling = "r(s?)$:rr%1" elseif respelling == "-r" then if input_param == "val-all" or input_param == "val2-all" then -- do not apply general hint to Valencian return {term = term} else respelling = "r(s?)$:%1" end elseif respelling:find("^[bg]+l$") or respelling:find("%+[bg]l") then respelling = str.sub(respelling, -2) .. ":" .. respelling elseif respelling == "yll" then if input_param:sub(-3) == "all" then -- GIEC 4.2.5, traditional in Balearic but not formal if input_param == "bal2-all" then respelling = "(.)ll:%1y" -- not initial: llenegall else return {term = term} end else respelling = "(.)ll:%1y" end elseif respelling:sub(-1) == "+" then respelling = "<prefix>:" .. respelling elseif respelling:sub(-1) == "-" then respelling = ":" .. respelling elseif str.find(respelling, "[àāéèêëēíóòôōú]") and str.len(respelling) < str.len(term) / 2 then respelling = ":" .. respelling else return {term = canonRespelling(respelling)} end end if str.find(respelling, ":") then term = applySubstitutionSpec(respelling, term) else term = canonRespelling(respelling) end return {term = term, hint = hint} end local function preprocessWord(syllables, lect, midv) -- Fix mid vowel if syllables.stress and midv == nil then -- do not change mid vowel from respelling local stressed_vowel = syllables[syllables.stress].vowel if str.find(stressed_vowel, "[eèo]") then syllables[syllables.stress].vowel = midVowelFixes(syllables) if str.find(syllables[syllables.stress].vowel, "[eo]") then ret_error = "vocal tònica '" .. stressed_vowel .. "' ambigua." end end if ret_error then return {} end end local syllables_IPA = {stress = syllables.stress} for key, val in ipairs(syllables) do syllables_IPA[key] = {onset = val.onset, vowel = val.vowel, coda = val.coda, stressed = val.stressed} end -- Replace letters with IPA equivalents for i, syll in ipairs(syllables_IPA) do -- Voicing of s if syll.onset == "s" and i > 1 and (syllables[i-1].coda == "" or syllables[i-1].coda == "i" or syllables[i-1].coda == "u") then syll.onset = "z" end if str.find(syll.vowel, "^[eèéêëēií]$") then syll.onset = str.gsub(syll.onset, "tg$", "d͡ʒ") syll.onset = str.gsub(syll.onset, "[cg]$", {["c"] = "s", ["g"] = "ʒ"}) syll.onset = str.gsub(syll.onset, "[qg]u$", {["qu"] = "k", ["gu"] = "ɡ"}) end syll.onset = replaceContextFree(syll.onset) syll.coda = replaceContextFree(syll.coda) local IPA_vowels = { ["a"] = "a", ["à"] = "a", ["e"] = "e", ["è"] = "ɛ", ["é"] = "e", ["i"] = "i", ["í"] = "i", ["ï"] = "i", ["o"] = "o", ["ò"] = "ɔ", ["ó"] = "o", ["u"] = "u", ["ú"] = "u", ["ü"] = "u", } local IPA_vowels_eastern = { ["ê"] = "ɛ", ["ë"] = "ɛ", ["ô"] = "ɔ", } local IPA_vowels_mallorcan = { ["ê"] = "ə", ["ë"] = "ɛ", ["ô"] = "ɔ", } local IPA_vowels_western = { ["ê"] = "e", ["ë"] = "e", ["ô"] = "o", } if lect == "bal" then syll.vowel = str.gsub(syll.vowel, ".", IPA_vowels_mallorcan) elseif lects_group[lect] == "ori" then syll.vowel = str.gsub(syll.vowel, ".", IPA_vowels_eastern) elseif lects_group[lect] == "occ" then syll.vowel = str.gsub(syll.vowel, ".", IPA_vowels_western) end syll.vowel = str.gsub(syll.vowel, ".", IPA_vowels) syll.text = syll.onset .. syll.vowel .. syll.coda end return syllables_IPA end local function toIPA(word, lect, pos, midv) word = wordRespellings(word, lect) local syllables = splitSyllables(word, lect) syllables = preprocessWord(syllables, lect, midv) if ret_error then return {} end -- TODO: process with text instead of table -- combine syllables --local combined = {} --for i, syll in ipairs(syllables) do -- -- TODO: add primary and seconday accent -- table.insert(combined, syll.onset .. syll.vowel .. syll.coda) --end --local text = table.concat(combined, "·") -- · syllables delimiter --text = "#" .. text .. "#" -- # word delimiter --return postprocessGeneral(text, lect) return postprocessGeneral(syllables, lect, pos) end local function generatePhonetic(parsed_respellings) for lect, termobj in pairs(parsed_respellings) do if termobj.omitted then -- leave alone, will handle later elseif termobj.raw then termobj.phonetic = termobj.raw else termobj.phonetic = toIPA(termobj.term, lect, termobj.pos, termobj.hint) end end end local function joinSyllables(syllables) for i, syll in ipairs(syllables) do syll.vowel = str.gsub(syll.vowel, "[āēō]", {["ā"] = "a", ["ē"] = "e", ["ō"] = "o"}) syll = syll.onset .. syll.vowel .. syll.coda if i == syllables.stress then -- primary stress syll = "ˈ" .. syll elseif syllables[i].stressed then -- secondary stress syll = "ˌ" .. syll end syllables[i] = syll end return "/" .. str.gsub(table.concat(syllables, "."), "%.([ˈˌ.])", "%1") .. "/" end -- Main entry point -- input: 1 table of arguments with respelling or hint, general or by lect, -- as done by Module:ca-pron from the frame of Template:ca-pron; -- if void then uses parameter "pagename" -- output: table of pairs lect=pronunciation generated and formatted for geolects or variants function p.show(pron, page_name, pos) pagename = canonPagename(page_name or mw.title.getCurrentTitle().subpageText) local inputs = {} -- if 1= specified, do all lects, by default "+" if pron[1] then for _, lect in ipairs(lects) do if str.sub(lect, -1) == "2" and pron[2] then inputs[lect] = {input = pron[2], param = "all"} else inputs[lect] = {input = pron[1], param = "all"} end end end -- then do dialect groups for group, g_lects in pairs(groups_lects) do for _, lect in ipairs(g_lects) do if str.sub(lect, -1) == "2" and pron[group .. "2"] then inputs[lect] = {input = pron[group .. "2"], param = "group"} elseif pron[group] then inputs[lect] = {input = pron[group], param = "group"} end end end -- then do individual lect settings for _, lect in ipairs(input_lects) do if pron[lect] then inputs[lect] = {input = pron[lect], param = "lect"} elseif str.sub(lect, -1) == "2" and pron[str.sub(lect, 1, -2)] then inputs[lect] = {input = pron[str.sub(lect, 1, -2)], param = "lect"} end end -- if no inputs given, set all lects based on current pagename if not next(inputs) then for _, lect in ipairs(lects) do inputs[lect] = {input = pagename, param = "pagename"} end end -- if no hint, add ê to common -è(s), doing it here instead of midVowelFixes() if str.find(pagename, "ès?$") then local pagename_es = str.gsub(pagename, "è(s?)$", "ê%1") for _, lect in ipairs(lects) do if inputs[lect].input == "+" or inputs[lect].input == pagename then inputs[lect] = {input = pagename_es, param = "pagename"} end end end -- Parse the arguments local parsed_respellings = {} for lect, inputspec in pairs(inputs) do local input_split_on_comma = mw.text.split(inputspec.input, " ?, ?") -- do mid_vowel_hint first for _, input_part in ipairs(input_split_on_comma) do if str.match(input_part, "^[éèêëóòô]$") then parsed_respellings[lect] = parseRespelling(input_part, pagename) end end for _, input_part in ipairs(input_split_on_comma) do if str.match(input_part, "^[éèêëóòô]$") == nil then local respelled = pagename if parsed_respellings[lect] then -- previously respelled respelled = parsed_respellings[lect].term or pagename end local input_param = lect .. "-" .. inputspec.param parsed_respellings[lect] = parseRespelling(input_part, respelled, input_param) end end parsed_respellings[lect].pos = pos end if ret_error then return {}, ret_error end -- Convert each canonicalized respelling to IPA generatePhonetic(parsed_respellings) if ret_error then return {}, ret_error end -- Concatenate formatted results local ret = {} for lect, pronun_spec in pairs(parsed_respellings) do if not pronun_spec.omitted then ret[lect] = pronun_spec.raw or joinSyllables(pronun_spec.phonetic) end end return ret end -- on debug console, call p.show with table of arguments and pagename: -- =mw.logObject(p.show({"ó", bal="-"}, "prova")) return p 1sbvszkyzrpg52jav7so9dt7cks20m7 guitza 0 238612 2701799 2080246 2026-08-04T15:33:33Z Vriullop 219 /* {{-ca-}} */ pron auto 2701799 wikitext text/x-wiki == {{-ca-}} == {{ca-pron|tz:dz}} {{etimologia|ca}} === Nom === {{ca-nom|f}} # [[coça]] {{-comp-}} * [[fer la guitza]] === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|diec|gdlc|dnv|dcvb}} 5s1d3wgoyavfgzkem4bih9b6uyyeksc guitzes 0 239888 2701800 2435017 2026-08-04T15:33:54Z Vriullop 219 /* {{-ca-}} */ pron auto 2701800 wikitext text/x-wiki == {{-ca-}} == {{ca-pron|tz:dz}} === Nom === {{ca-nom-forma|fp}} # {{forma-p|ca|guitza}} === Miscel·lània === * {{ca-sil}} 61fk7zg45e09ymfexvtcbv8f447yn1m retreta 0 273864 2701845 2258925 2026-08-05T08:14:32Z Vriullop 219 /* {{-ca-}} */ +adj 2701845 wikitext text/x-wiki == {{-ca-}} == {{ca-pron|é}} {{etim-lang|fr|ca|retraite}}. === Nom === {{ca-nom|f}} # [[retirada|Retirada]] de la tropa per reposar. # {{marca|ca|antic}} [[retir]] {{-trad-}} {{t-inici|Retirada de la tropa}} * {{es}}: {{trad|es|retreta}} * {{fr}}: {{trad|fr|retraite}} {{t-final}} === Adjectiu === {{ca-adj-forma|f}} # {{forma-f|ca|retret}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|diec|gdlc|dcvb}} 802t7tmm5di962ugt1wnk5b8mrauztv retretes 0 273865 2701846 2439023 2026-08-05T08:15:04Z Vriullop 219 /* {{-ca-}} */ +adj 2701846 wikitext text/x-wiki == {{-ca-}} == {{ca-pron|é}} === Adjectiu === {{ca-adj-forma|fp}} # {{forma-p|ca|retreta}} === Nom === {{ca-nom-forma|fp}} # {{forma-p|ca|retreta}} === Miscel·lània === * {{ca-sil}} == {{-es-}} == {{es-pron}} === Nom === {{es-nom-forma|mp}} # {{forma-p|es|retrete}} s40sc4ko8a1oti20lh6e4xov0smiix8 retrete 0 431955 2701848 1892111 2026-08-05T08:17:43Z Vriullop 219 /* {{-es-}} */ 2701848 wikitext text/x-wiki == {{-es-}} == {{es-pron}} {{etim-lang|ca|es|retret}}. === Nom === {{es-nom|m}} # [[vàter]] # {{marca|es|obsolet}} [[retret]] === Miscel·lània === * {{es-sil}} 1ekvteb0r7epv4762hbiieu12v1vaky ressaguer 0 652648 2701803 2026-08-04T15:43:11Z Leptictidium 282 Es crea la pàgina amb «== {{-ca-}} == {{ca-pron}} {{etim-comp|ca|ressaga|-er}}. === Adjectiu === {{ca-adj|m}} # Que [[ressagar-se|es ressaga]]. === Nom === {{ca-nom|m}} # Que [[ressagar-se|es ressaga]]. {{-trad-}} {{t-inici}} * {{de}}: {{trad|de|Nachzügler}} {{t-final}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|diec|gdlc|dcvb}}». 2701803 wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} {{etim-comp|ca|ressaga|-er}}. === Adjectiu === {{ca-adj|m}} # Que [[ressagar-se|es ressaga]]. === Nom === {{ca-nom|m}} # Que [[ressagar-se|es ressaga]]. {{-trad-}} {{t-inici}} * {{de}}: {{trad|de|Nachzügler}} {{t-final}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|diec|gdlc|dcvb}} 3p8bbb7bzi5jhqx5nuygntyqgkleig8 ressaguera 0 652649 2701804 2026-08-04T15:43:19Z Leptictidium 282 Creant formes de -ca- [[ressaguer]] ([[VC:ACC|Accelerat]]) 2701804 wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} === Adjectiu === {{ca-adj-forma|f}} # {{forma-f|ca|ressaguer}} === Miscel·lània === * {{ca-sil}} 3fzi9h2j87wkuy4dgfg1jcwtvmubn1v 2701807 2701804 2026-08-04T15:44:24Z Leptictidium 282 2701807 wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} === Adjectiu === {{ca-adj-forma|f}} # {{forma-f|ca|ressaguer}} === Nom === {{ca-nom-forma|f}} # {{forma-f|ca|ressaguer}} === Miscel·lània === * {{ca-sil}} on761jiq10npveike9osiy5q8zgbkcu ressaguers 0 652650 2701805 2026-08-04T15:43:24Z Leptictidium 282 Creant formes de -ca- [[ressaguer]] ([[VC:ACC|Accelerat]]) 2701805 wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} === Adjectiu === {{ca-adj-forma|mp}} # {{forma-p|ca|ressaguer}} === Nom === {{ca-nom-forma|mp}} # {{forma-p|ca|ressaguer}} === Miscel·lània === * {{ca-sil}} 1cmueedtmy24nyp6lne9rvtepf2y9hb ressagueres 0 652651 2701806 2026-08-04T15:43:28Z Leptictidium 282 Creant formes de -ca- [[ressaguer]] ([[VC:ACC|Accelerat]]) 2701806 wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} === Adjectiu === {{ca-adj-forma|fp}} # {{forma-p|ca|ressaguera}} === Miscel·lània === * {{ca-sil}} 6ieneds2bk3jzwnlcevx0nvw2yqcmht 2701808 2701806 2026-08-04T15:44:32Z Leptictidium 282 2701808 wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} === Adjectiu === {{ca-adj-forma|fp}} # {{forma-p|ca|ressaguera}} === Nom === {{ca-nom-forma|fp}} # {{forma-p|ca|ressaguera}} === Miscel·lània === * {{ca-sil}} 9clxiylhs864jo3gilcuwqmgyz8hwlj abaló 0 652652 2701810 2026-08-04T15:58:41Z Jemily1 16917 creo esta entrada 2701810 wikitext text/x-wiki {{vegeu|abalo}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|3|pass}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|abola|alabo|alabó|aloba|alobá|Laoba|loaba|Olaba}} 5191w8tx5oobw6jimkxuxnjaj0hmgv9 abalas 0 652653 2701811 2026-08-04T16:00:25Z Jemily1 16917 creo esta entrada 2701811 wikitext text/x-wiki {{vegeu|abalás}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|2|pres|voseo=no}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|alabas|alabás|Sabala|salaba}} 7i5lsttvwjbkqp1ffrom4es7ea13ye4 abalás 0 652654 2701812 2026-08-04T16:00:56Z Jemily1 16917 creo esta entrada 2701812 wikitext text/x-wiki {{vegeu|abalas}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|2|pres|voseo=sí}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|alabas|alabás|Sabala|salaba}} 0qenzqhl4zz04er2kd3gk4c42gli7ez abala 0 652655 2701813 2026-08-04T16:04:22Z Jemily1 16917 creo esta entrada 2701813 wikitext text/x-wiki {{vegeu|Abala|abalá}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|3|pres}} # {{es-forma-conj|abalar|2|imp|voseo=no}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|alaba|alabá|Alaba}} 4coda165jv959zxwtg9vwnvlp18jjdq abalá 0 652656 2701814 2026-08-04T16:05:11Z Jemily1 16917 creo esta entrada 2701814 wikitext text/x-wiki {{vegeu|abala|Abala}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|2|imp|voseo=sí}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|alaba|alabá|Alaba}} n6sq62exnrhx77y4028p2ftyzpv1377 abalamos 0 652657 2701815 2026-08-04T16:06:55Z Jemily1 16917 creo esta entrada 2701815 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|4|pres}} # {{es-forma-conj|abalar|4|pass}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|alabamos|alomabas|amolabas|salomaba}} m98b1564on7n02ivze2f98nf016hst0 abaláis 0 652658 2701816 2026-08-04T16:08:16Z Jemily1 16917 creo esta entrada 2701816 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|5|pres}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|aislaba|alabáis|aliabas|alisaba|asilaba}} fdmckciqkn1g91msap5sovnvabuf26g abalan 0 652659 2701817 2026-08-04T16:10:37Z Jemily1 16917 creo esta entrada 2701817 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|6|pres}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|alaban|albana|albaná|lábana}} hlncwps21lev28fmmm234g3hekeagnh abalaba 0 652660 2701818 2026-08-04T16:12:00Z Jemily1 16917 creo esta entrada 2701818 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|1|imperf}} # {{es-forma-conj|abalar|3|imperf}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|alababa}} 9lhb4ryuj8g4t95oiz0z0lj15l13cpt abalabas 0 652661 2701819 2026-08-04T16:13:13Z Jemily1 16917 creo esta entrada 2701819 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|2|imperf}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|alababas}} mwnweoevi5xws1ujtrwtk08gvr3gknw abalaban 0 652662 2701820 2026-08-04T16:14:19Z Jemily1 16917 creo esta entrada 2701820 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|6|imperf}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|alababan|albanaba}} s1f1iwrfox62olq886p7ktuptdm13ns abalábamos 0 652663 2701821 2026-08-04T16:15:22Z Jemily1 16917 creo esta entrada 2701821 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|4|imperf}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|alabábamos}} 0lnnesd9kit354t496sria2re7oxsv6 abalabais 0 652664 2701822 2026-08-04T16:16:07Z Jemily1 16917 creo esta entrada 2701822 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|5|imperf}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|alababais}} 4wbet802fl8b0fmdlvuh67j32qiheov abale 0 652665 2701824 2026-08-04T16:21:51Z Jemily1 16917 creo esta entrada 2701824 wikitext text/x-wiki {{vegeu|abalé}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|1|pres|subj}} # {{es-forma-conj|abalar|3|pres|subj}} # {{es-forma-conj|abalar|3|imp}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|álabe|albea|Albea|albeá|balea|baleá}} 3hlbhhkpk1tfiwepiug9cl11mq4t0yk abalaste 0 652666 2701825 2026-08-04T16:24:10Z Jemily1 16917 creo esta entrada 2701825 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|2|pass}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|alabaste|alteabas|atabales|atablase|lateabas|Sabaleta|Saletaba|salteaba|tabaleas|tabaleás}} ev41uizj19yc0w5cib4sv3i6feit13g abalasteis 0 652667 2701826 2026-08-04T16:27:05Z Jemily1 16917 creo esta entrada 2701826 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|5|pass}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|alabasteis|atablaseis|salteabais}} jds51o1pmbuee01kzkvl8xfmbu71ngz abalaron 0 652668 2701827 2026-08-04T16:28:34Z Jemily1 16917 creo esta entrada 2701827 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|6|pass}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|abarloan|alabaron|alobaran|alobarán}} pwfu9n049htv2zvggl3esx7dzfno515 abalaría 0 652669 2701828 2026-08-04T16:30:12Z Jemily1 16917 creo esta entrada 2701828 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|1|cond}} # {{es-forma-conj|abalar|3|cond}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|alabaría}} 3a75k2igrw6ipb2psfuru182ag0j7wy abalarías 0 652670 2701829 2026-08-04T16:31:19Z Jemily1 16917 creo esta entrada 2701829 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|2|cond}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|abalarais|alabarais|alabarías|salariaba}} jy05s4vonohln9k4ft7t7rrwemmmzn5 abalarían 0 652671 2701830 2026-08-04T16:32:35Z Jemily1 16917 creo esta entrada 2701830 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|6|cond}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|alabarían|albanaría}} ib1ke1zvact2pnsdefj1dk2jampx7fa abalaríamos 0 652672 2701831 2026-08-04T16:33:05Z Jemily1 16917 creo esta entrada 2701831 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|4|cond}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|alabaríamos}} sfu9hpmsmi2apwqk087czorfsljvwl0 abalaríais 0 652673 2701832 2026-08-04T16:33:42Z Jemily1 16917 creo esta entrada 2701832 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|5|cond}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|alabaríais}} i29yzmibobch01co2siqonw4bih8r97 abales 0 652674 2701833 2026-08-04T16:38:02Z Jemily1 16917 creo esta entrada 2701833 wikitext text/x-wiki {{vegeu|abalés}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|2|pres|subj|voseo=no}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|alabes|alabés|álabes|albeas|albeás|balase|baleas|baleás|balsea|balseá|Eslaba|sabela|sablea|sableá}} s46t88h0r7t3c1zbdvaaymzoc7sobfj abalés 0 652675 2701834 2026-08-04T16:38:33Z Jemily1 16917 creo esta entrada 2701834 wikitext text/x-wiki {{vegeu|abales}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|2|pres|subj|voseo=sí}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|alabes|alabés|álabes|albeas|albeás|balase|baleas|baleás|balsea|balseá|Eslaba|sabela|sablea|sableá}} lnrw1yjm2tn5ounyz8soc494xpc20xr abalen 0 652676 2701835 2026-08-04T16:42:04Z Jemily1 16917 creo esta entrada 2701835 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|6|pres|subj}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|alaben|albane|albané|albean|Anabel|aneblá|balean|enalba|enalbá}} 7oxy842c949y10w2guf4dqedibsx35y abalemos 0 652677 2701836 2026-08-04T16:44:39Z Jemily1 16917 creo esta entrada 2701836 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|4|pres|subj}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|abemolas|abemolás|alabemos|albeamos|alombase|amoblase|baleamos|embalaos|lomeabas|Osambela}} 05vmib1lfe1kcecbd1lvnqxkysk2079 abaléis 0 652678 2701837 2026-08-04T16:48:43Z Jemily1 16917 creo esta entrada 2701837 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|5|pres|subj}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|abisela|abiselá|alabéis|albeáis|albesia|bailase|baleáis|basilea|Basilea|isabela|silabea|silabeá}} op8h2jmfknmbzedksboqcx2m23s5ugf abalares 0 652679 2701838 2026-08-04T16:53:14Z Jemily1 16917 creo esta entrada 2701838 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|2|fut|subj}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|alabares|alabarse|alárabes|albearas|albearás|arelabas|balearas|balearás|balseara|balseará|raleabas|sabalera|sableara|sableará}} 52q1o5y6l8qc0jj80tch8w0yfii1xlm abalaren 0 652680 2701839 2026-08-04T16:55:56Z Jemily1 16917 creo esta entrada 2701839 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|abalar|6|pres|subj}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|alabaren|albanare|albanaré|albearan|albearán|aneblara|aneblará|arelaban|balearan|balearán|enalbara|enalbará|raleaban}} e90hgp5c10qalqwpr9p7jch7kzfu4ko brunyol 0 652681 2701842 2026-08-05T07:42:32Z Vriullop 219 Es crea la pàgina amb «== {{-ca-}} == {{ca-pron|ò}} === Nom === {{ca-nom|m}} # {{marca|ca|empordanès}} {{forma-a|ca|bunyol}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|decat=II337a18|dcvb}}». 2701842 wikitext text/x-wiki == {{-ca-}} == {{ca-pron|ò}} === Nom === {{ca-nom|m}} # {{marca|ca|empordanès}} {{forma-a|ca|bunyol}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|decat=II337a18|dcvb}} kdtmg5nspdery5fjwrshy9w3mhe24bv brunyols 0 652682 2701843 2026-08-05T07:42:43Z Vriullop 219 Creant formes de -ca- [[brunyol]] ([[VC:ACC|Accelerat]]) 2701843 wikitext text/x-wiki == {{-ca-}} == {{ca-pron|ò}} === Nom === {{ca-nom-forma|mp}} # {{forma-p|ca|brunyol}} === Miscel·lània === * {{ca-sil}} ghrjv4ugze17v2tetxn9concdif07xw retret 0 652683 2701844 2026-08-05T08:13:48Z Vriullop 219 Es crea la pàgina amb «== {{-ca-}} == {{ca-pron|é}} {{-etim-}} De {{m|ca|retreure}}, {{etim-s|ca|XIV}}. === Nom === {{ca-nom|m}} # Acció de [[retreure]], d’[[esmentar]] amb [[reprovació]] alguna cosa que es considera [[censurable]]. # {{marca|ca|obsolet}} [[recambró|Recambró]] per a retreure’s, retirar-s’hi. {{-desc-}} * Castellà: {{e|es|retrete}} {{-trad-}} {{t-inici|Acció de retreure}} * {{en}}: {{trad|en|reproof}}, {{trad|en|reproach}} * {{es}}: {{trad|es|reproche|m...». 2701844 wikitext text/x-wiki == {{-ca-}} == {{ca-pron|é}} {{-etim-}} De {{m|ca|retreure}}, {{etim-s|ca|XIV}}. === Nom === {{ca-nom|m}} # Acció de [[retreure]], d’[[esmentar]] amb [[reprovació]] alguna cosa que es considera [[censurable]]. # {{marca|ca|obsolet}} [[recambró|Recambró]] per a retreure’s, retirar-s’hi. {{-desc-}} * Castellà: {{e|es|retrete}} {{-trad-}} {{t-inici|Acció de retreure}} * {{en}}: {{trad|en|reproof}}, {{trad|en|reproach}} * {{es}}: {{trad|es|reproche|m}} * {{fr}}: {{trad|fr|reproche|m}} * {{it}}: {{trad|it|rimprovero|m}} {{t-final}} === Adjectiu === {{ca-adj|m}} # Poc [[comunicatiu]]. {{-trad-}} {{t-inici|Poc comunicatiu}} * {{en}}: {{trad|en|retiring}}, {{trad|en|reserved}} * {{es}}: {{trad|es|retraído}} * {{fr}}: {{trad|fr|renfermé}} * {{it}}: {{trad|it|ritirato}} {{t-final}} === Verb === {{ca-verb-forma}} # {{ca-forma-conj|[[retreure]]/[[retraure]]|part|m|s}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|diec|gdlc|dcvb}} 947cn0rwwrxq0r5amop2thh26cqilcr retrets 0 652684 2701847 2026-08-05T08:15:23Z Vriullop 219 Creant formes de -ca- [[retret]] ([[VC:ACC|Accelerat]]) 2701847 wikitext text/x-wiki == {{-ca-}} == {{ca-pron|é}} === Nom === {{ca-nom-forma|mp}} # {{forma-p|ca|retret}} === Adjectiu === {{ca-adj-forma|mp}} # {{forma-p|ca|retret}} === Miscel·lània === * {{ca-sil}} oj1moc3ugzo5z44rtyrsaut8mwsatlx