Viccionari cawiktionary https://ca.wiktionary.org/wiki/Viccionari:Portada MediaWiki 1.43.0-wmf.1 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ó fer 0 4538 2301924 2207947 2024-04-17T08:52:44Z Vriullop 219 /* {{-ca-}} */ wikitext text/x-wiki {{vegeu|fèr|fér|FER|-fer}} == {{-ca-}} == {{ca-pron|q=verb|é,-r |f-centr=LL-Q7026 (cat)-Unjoanqualsevol-fer.wav }} {{ca-pron|q=adjectiu|é,rr}} {{homòfons|ca|fe|fé}} {{-etimologia-|la|ca}} Verb: {{del-lang|roa-oca|ca|far}}~{{m|roa-oca|faire}}, del llatí vulgar {{m|la|*faere}}, de {{m|la|facere}}, {{etim-s|ca|XI}}. {{-etimologia-|la|ca}} Adjectiu: del llatí {{m|la|ferum|feru(m)}}, acusatiu de {{m|la|ferus}}, segle XIV. === Verb === {{ca-verb|t-p-i-m}} # [[formar]], [[construir]] #: {{ex-us|ca|Faré un vaixell.}} # Portar a terme una [[acció]]. #: {{ex-us|ca|Feien ganyotes.}} # En una narració de fets, emprat per a expressar el que ha dit algú. #: {{ex-us|ca|—No —féu ell.}} # [[fingir]], [[simular]] #: {{ex-us|ca|Fer-se el mort.}} # {{marca|ca|impersonal}} Expressar la qualitat o les condicions del temps atmosfèric. #: {{ex-us|ca|Fer calor, fer mal dia…}} # {{marca|ca|impersonal}} Expressar el temps transcorregut. #: {{ex-us|ca|Fa tres dies, demà farà dos anys…}} # {{marca|ca|comodí}} Amb un pronom, expressar un altre verb [[implícit]] o que hom no el vol [[repetir]]. #: {{ex-us|ca|Quan menjava xocolata, ho feia d’amagat.}} ==== Conjugació ==== En els sentits impersonals és defectiu en tercera persona. {{ca-conj}} {{-sin-}} * Verbs comodí col·loquials: [[fotre]], [[fúmer]], [[cardar]], [[barrufar]] {{-der-}} * [[contrafer]], [[contrafet]], [[desfer]], [[desfet]], [[estrafer]], [[estrafet]], [[fet]], [[perfer]], [[preufet]], [[quefer]], [[refer]], [[refet]] {{-comp-}} * [[fer bitlles]] * [[fer d'alguna cosa]] = tenir una [[professió]] determinada * [[fer el beneit]] * [[fer el fet]] * [[fer el llit]] * [[fer el savi]] * [[fer-ho]] * [[fer i desfer]] * [[fer la barba]] = afaitar, raure, la barba * [[fer la bassa]] = netejar la bassa. * [[fer les cartes]] * [[fer l'adormit]] * [[fer l'empegueït]] * [[fer l'escandall]] = determinar el cost aproximat de quelcom * [[fer plat]] * [[fer-se amb algú]] = tenir [[relació]] * [[fer-se sa coa]] {{q|balear}} * [[fer-s'ho]] * fer [[sol]], vent... = haver-hi un determinat fenomen atmosfèric * [[fer un capmàs]] * [[ja l'hem feta, com En Parreta]] {{q|mallorquí}} * [[ja l'hem feta, com Na Beta]] {{q|menorquí}} * [[no fer ni deixar fer]] * [[pensat i fet]] * [[què hi farem?]] * [[què s'hi farà?]] * [[no en faràs altra]] * [[no fa ni fot]] * [[no fa ni fila]] * [[no tenir un «fes-te enllà» amb ningú]] * [[saber fer de tot, fora cals d'olla]] {{q|mallorquí}} * [[si fa no fa]] * [[si fa o no fa]] {{-trad-}} {{t-inici|Portar a terme una acció}} * {{de}}: {{trad|de|machen}} * {{en}}: {{trad|en|do}}, {{trad|en|make}} * {{ar}}: {{trad|ar|يصنع}} * {{ast}}: {{trad|ast|facer}} * {{eu}}: {{trad|eu|egin}} * {{es}}: {{trad|es|hacer}}, {{trad|es|dar}} * {{sk}}: {{trad|sk|robiť}} * {{eo}}: {{trad|eo|fari}} * {{fi}}: {{trad|fi|valmistaa}} * {{fr}}: {{trad|fr|faire}} * {{fur}}: {{trad|fur|fâ}} * {{gl}}: {{trad|gl|facer}} * {{el}}: {{trad|el|κάνω}} * {{it}}: {{trad|it|fare}} * {{la}}: {{trad|la|facere}} * {{csc}}: {{trad|csc|FER}} * {{oc}}: {{trad|oc|far}}, {{trad|oc|har}} {{q|gascó}}, {{trad|oc|hèr}} {{q|gascó pirinenc}} * {{pl}}: {{trad|pl|robić}}, {{trad|pl|zrobić}} * {{pt}}: {{trad|pt|fazer}} * {{rm}}: {{trad|rm|far}} * {{ro}}: {{trad|ro|face}} * {{rom}}: {{trad|rom|kerel}} * {{ru}}: {{trad|ru|делать}} * {{sc}}: {{trad|sc|fàchere}} * {{scn}}: {{trad|scn|fari}} * {{sv}}: {{trad|sv|göra}} * {{cs}}: {{trad|cs|dělat}} {{t-final}} {{t-inici|Verb comodí}} * {{en}}: {{trad|en|get}} * {{an}}: {{trad|an|fer}} * {{es}}: {{trad|es|hacer}} * {{fr}}: {{trad|fr|faire}} {{t-final}} === Adjectiu === {{ca-adj}} # [[salvatge|Salvatge]], no domesticat. {{-trad-}} {{t-inici|Salvatge, no domesticat}} * {{en}}: {{trad|en|fierce}}, {{trad|en|wild}} * {{es}}: {{trad|es|fiero}} * {{fr}}: {{trad|fr|féroce}} {{t-final}} === Miscel·lània === * {{ca-sil}} * {{anagrames|ca|fre}} === Vegeu també === * {{ca-dicc|diec|gdlc|optimot}} == {{-roa-oca-}} == {{-etimologia-|la|roa-oca}} Verb: del llatí {{m|la|facere}}. Adjectiu: del llatí {{m|la|feru}}. === Verb === {{entrada|roa-oca|verb}} # {{e|ca|fer}} ==== Conjugació ==== {{roa-oca-conj|fer}} {{-var-}} * {{e|roa-oca|far}}, {{e|roa-oca|faire}} === Adjectiu === {{entrada|roa-oca|adj}} # {{e|ca|fer}} === Vegeu també === * {{roa-oca-dicc|dcvb|faraudo}} == {{-fr-}} == {{-pronafi-}} {{pron|fr|/fɛʁ/}} {{àudio simple|Fr-fer.ogg|titre=du fer|àudio (du fer)}} === Nom === {{fr-nom|m}} # [[ferro]] {{-rel-}} {{taula periòdica/fr}} 4hue58sskxd6vvajyo1x4v7ee7t9wg4 vista 0 4940 2301902 2201206 2024-04-16T14:22:59Z Pablussky 8432 wikitext text/x-wiki == {{-ca-}} == {{ca-pron |f-centr=LL-Q7026 (cat)-Marvives-vista.wav }} {{-etimologia-}} De {{m|ca|veure}}, {{etim-s|ca|XIII}}. === Nom === {{ca-nom|f}} # [[sentit|Sentit]] que permet percebre mitjançant els [[ull]]s # Allò que és percebut des d'un punt concret. #: {{ex-us|ca|la '''vista''' des de la finestra}} # [[part|Part]] d'un [[judici]] {{-der-}} * [[vistós]] * [[entrevista]] {{-comp-}} * ser curt de vista = ser miop i en sentit figurat, no copsar * tenir vista = ser perspicaç * [[amor]] a primera vista = enamorament ràpid i sense conèixer abans a la persona * a simple vista = primerament, pel que sembla {{-sin-}} * [[audiència]] * [[escena]], [[panorama]] * [[paisatge]], [[panorama]], [[perspectiva]] * [[ull]] * [[visió]] {{-trad-}} {{t-inici|Sentit que permet percebre mitjançant els ulls}} * {{af}}: {{trad|af|sig}} * {{de}}: {{trad|de|Sehvermögen|n}} * {{en}}: {{trad|en|sight}} * {{ar}}: {{trad|ar|نَظَر‎|m}} * {{hy}}: {{trad|hy|տեսողություն}} * {{eu}}: {{trad|eu|ikusmen}} * {{bg}}: {{trad|bg|зре́ние|n}} * {{es}}: {{trad|es|vista}} * {{da}}: {{trad|da|syn|n}} * {{sk}}: {{trad|sk|zrak|m}} * {{sl}}: {{trad|sl|vid|m}} * {{eo}}: {{trad|eo|vido}} * {{et}}: {{trad|et|nägemine}} * {{fo}}: {{trad|fo|sjón|f}} * {{fr}}: {{trad|fr|vue}}, {{trad|fr|vision|f}} * {{gl}}: {{trad|gl|vista|f}} * {{ka}}: {{trad|ka|მხედველობა}} * {{el}}: {{trad|el|όραση|f}} * {{grc}}: {{trad|grc|ὄψις|f}}, {{trad|grc|ὅρασις|f}} * {{he}}: {{trad|he|ראייה‎|f}} * {{hi}}: {{trad|hi|नज़र|f}} * {{hu}}: {{trad|hu|látás}} * {{id}}: {{trad|id|tampak}} * {{ga}}: {{trad|ga|amharc|m}} * {{it}}: {{trad|it|vista}} * {{ja}}: {{trad|ja|視覚}} * {{la}}: {{trad|la|visus|m}} * {{csc}}: {{trad|csc|MIRAR}} * {{nl}}: {{trad|nl|zicht|n}} * {{no}}: {{trad|no|syn|n}} * {{oc}}: {{trad|oc|vista|f}}, {{trad|oc|vision|f}} * {{pl}}: {{trad|pl|wzrok|m}}, {{trad|pl|widzenie|n}} * {{pt}}: {{trad|pt|vista|f}}, {{trad|pt|visão|f}} * {{ro}}: {{trad|ro|vedere|f}}, {{trad|ro|văz|n}} * {{ru}}: {{trad|ru|зре́ние|n}} * {{sa}}: {{trad|sa|दृष्टि|f}} * {{sh}}: {{trad|sh|вид}}, {{trad|sh|vid|m}} * {{sw}}: {{trad|sw|taswira}} * {{sv}}: {{trad|sv|syn|c}} * {{th}}: {{trad|th|สายตา}} * {{tr}}: {{trad|tr|görüş}} * {{cs}}: {{trad|cs|zrak|m}}, {{trad|cs|vidění|n}} * {{uk}}: {{trad|uk|зір|m}} * {{ur}}: {{trad|ur|نظر‎|f}} * {{uz}}: {{trad|uz|koʻrish}} * {{vi}}: {{trad|vi|thị lực}} * {{vo}}: {{trad|vo|logasien}} * {{zh}}: {{trad|zh|視力}} {{t-final}} {{t-inici|Allò que és percebut des d'un punt concret}} * {{af}}: {{trad|af|gesig}} * {{de}}: {{trad|de|Sicht|f}} * {{en}}: {{trad|en|view}} * {{ar}}: {{trad|ar|مَشْهَد‎|m}} * {{es}}: {{trad|es|vista}} * {{fi}}: {{trad|fi|näköala}} * {{fr}}: {{trad|fr|vue}} * {{gl}}: {{trad|gl|vista|f}} * {{el}}: {{trad|el|θέαμα|n}} * {{grc}}: {{trad|grc|ὅραμα|n}}, {{trad|grc|θέαμα|n}} * {{he}}: {{trad|he|מראה‎|m}} * {{hi}}: {{trad|hi|दर्शन|m}} * {{hu}}: {{trad|hu|látvány}} * {{id}}: {{trad|id|nampak}} * {{it}}: {{trad|it|vista}} * {{la}}: {{trad|la|visus|m}} * {{nl}}: {{trad|nl|aanblik}} * {{pl}}: {{trad|pl|widok|m}} * {{pt}}: {{trad|pt|vista|f}} * {{ro}}: {{trad|ro|vedere|f}} * {{ru}}: {{trad|ru|вид|m}} * {{sh}}: {{trad|sh|vidik|m}}, {{trad|sh|prizor|m}} * {{sv}}: {{trad|sv|anblick|c}}, {{trad|sv|syn|c}} * {{cs}}: {{trad|cs|pohled|m}} * {{uk}}: {{trad|uk|вид|m}} * {{vi}}: {{trad|vi|tầm nhìn}} * {{zh}}: {{trad|zh|視野}} {{t-final}} === Verb === {{ca-verb-forma|veure}} # {{ca-forma-conj|veure|part|f|s}} === Verb === {{ca-verb-forma|vestir}} # {{marca-nocat|ca|valencià}} {{ca-forma-conj|vestir|1|pres|subj}} # {{marca-nocat|ca|valencià}} {{ca-forma-conj|vestir|3|pres|subj}} # {{marca-nocat|ca|valencià}} {{ca-forma-conj|vestir|3|imp}} === Miscel·lània === * {{ca-sil}} * {{anagrames|ca|avist|viats|visat|vista}} == {{-es-}} == {{es-pron}} {{-etimologia-|la|es}} Del llatí tardà {{m|la|*vista}}, de {{m|la|vidēre|trad=veure}}. === Nom === {{es-nom|f}} # [[#ca|vista]] {{-sin-}} * {{q|sentit}} {{e|es|visión}} * {{q|allò que es veu des d'un punt concret}} {{e|es|paisaje}} {{-comp-}} * {{e|es|vista cansada}}: [[presbícia]] === Verb === {{es-verb-forma|ver}} # {{es-forma-conj|ver|part|f|s}} === Verb === {{es-verb-forma|vestir}} # {{es-forma-conj|vestir|1|pres|subj}} # {{es-forma-conj|vestir|3|pres|subj}} # {{es-forma-conj|vestir|3|imp}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|vitas|vitás}} === Vegeu també === * {{DRAE}} {{catllengua|es|dret}} == {{-it-}} == {{it-pron}} === Verb === {{entrada|it|verb-forma}} # {{forma-conj|it|vedere|part|passat|f|s}} === Miscel·lània === * {{it-sil}} m3rekjptfz4dda1hztwsmxyj1rnph5y ser 0 6639 2301934 2285974 2024-04-17T10:50:35Z Vriullop 219 /* {{-ca-}} */ +nom wikitext text/x-wiki {{vegeu|Ser}} == {{-ca-}} == {{ca-pron|q=verb|ê,-r|centr=é,-r|gir=è,-r |f-centr=LL-Q7026 (cat)-Unjoanqualsevol-ser.wav }} {{ca-pron|q=nom|ê|centr=é|gir=è|bal=ê,-r}} {{homòfons|ca|ce|sé|se}} {{-etimologia-}} Reducció de {{m|ca|ésser}} per analogia amb les formes conjugades en present, futur i condicional, {{etim-s|ca|XIII}}. === Verb === {{ca-verb|i-a|i=ser-hi}} # [[ésser]], [[existir]] ==== Conjugació ==== {{ca-conj}} {{-var-}} * [[ésser]] {{q|culte}}, [[esser]] {{q|gironí|mallorquí|menorquí}}, [[sere]] {{q|septentrional}} {{-sin-}} * [[constituir]], [[representar]] {{-notes-}} * Històricament ha predominat la forma {{m|ca||ésser}}, tot i que alguns autors clàssics també usaven {{m|ca||ser}}. * En la primera meitat del segle XX, {{m|ca||ésser}} era la forma literària i {{m|ca||ser}} la forma oral. * Actualment predomina {{m|ca||ser}}, mentre que {{m|ca||ésser}} s’usa en registres cultes. * Com a substantiu es manté {{m|ca||ésser}}. {{ésser-estar}} {{-trad-}} {{t-inici|Ésser, existir}} * {{de}}: {{trad|de|sein}} * {{en}}: {{trad|en|be}} * {{eu}}: {{trad|eu|egon}} * {{br}}: {{trad|br|bezañ}} * {{es}}: {{trad|es|ser}} * {{eo}}: {{trad|eo|esti}} * {{fr}}: {{trad|fr|être}} * {{el}}: {{trad|el|είμαι}} * {{hi}}: {{trad|hi|होना}} * {{it}}: {{trad|it|essere}} * {{nl}}: {{trad|nl|zijn}} * {{oc}}: {{trad|oc|èsser}}, {{trad|oc|èstre}}, {{trad|oc|estar}} {{q|gascó}}, {{trad|oc|èster}} {{q|gascó}} * {{pl}}: {{trad|pl|być}} * {{pt}}: {{trad|pt|ser}} * {{ro}}: {{trad|ro|fi}} * {{rom}}: {{trad|rom|si}} * {{ru}}: {{trad|ru|бьіть}} * {{sw}}: {{trad|sw|kuwa}} * {{tr}}: {{trad|tr|bulunmak}} * {{cs}}: {{trad|cs|být}} * {{zh}}: {{trad|zh|是}} {{t-final}} === Nom === {{ca-nom|m}} # [[ésser]] === Miscel·lània === * {{ca-sil}} * {{anagrames|ca|res|rés|ers}} === Vegeu també === * {{ca-dicc|diec|gdlc|optimot|decat}} * {{tesaure}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb|a-i|present=soy|passat=fui}} # [[#ca|ser]] === Nom === {{es-nom|m}} # [[ésser]] === Miscel·lània === * {{es-sil}} * {{anagrames|es|res}} === Vegeu també === * {{DRAE}} == {{-oc-}} == {{pronafi|oc|/seɾ/}} === Nom === {{oc-nom|m}} # [[tarda]] # [[vespre]] {{-var-}} * [[sera#oc|sera]] {{-sin-}} * {{e|oc|serada}} * {{e|oc|vèspre}} * {{e|oc|vesprada}} == {{-pl-}} == {{pronafi|pl|/sεr/}} === Nom === {{entrada|pl|nom|g=m-in}} # [[formatge]] ==== Declinació ==== {{pl-decl-nom |ser|sery |sera|serów |serowi|serom |ser|sery |serem|serami |serze|serach |serze|sery}} {{catllengua|pl|Aliments}} b2lfr6h20o1u9wl7b4o3yzpo6sbr1gn ésser 0 8230 2301944 2275976 2024-04-17T11:07:15Z Vriullop 219 /* {{-ca-}} */ wikitext text/x-wiki {{vegeu|esser|èsser}} == {{-ca-}} == {{ca-pron|q=verb|é,-r|sept=/ˈɛ.sə/|alg=/ˈe.sar/}} {{ca-pron|q=nom |f-centr=LL-Q7026 (cat)-Unjoanqualsevol-ésser.wav }} {{homòfons|ca|essa}} {{-etimologia-|la|ca}} Del llatí vulgar {{m|la|*essere}}, del clàssic {{m|la|esse}}, {{etim-s|ca|XII}}. === Verb === {{ca-verb|i-a|i=ésser-hi}} # [[ser|Ser]], [[existir]]. ==== Conjugació ==== {{ca-conj}} {{-var-}} * [[ser]] * [[esser]] {{q|gironí|mallorquí|menorquí}} ==== Notes ==== {{ésser-estar}} {{-trad-}} {{t-vegeu|ser}} === Nom === {{ca-nom|m}} # [[existència]] # Allò que [[existeix]]. # [[individu|Individu]] viu. {{-sin-}} * {{q|que existeix}}: [[ens]], [[entitat]], [[organisme]] * {{q|individu}}: [[ànima]], [[cap]], [[habitant]], [[individu]], [[persona]], [[subjecte]], [[tipus]] === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|diec|gdlc|optimot}} * {{tesaure}} hgs6hwnw5weol96ptvzd425vk75710u fúmer 0 10669 2301927 2274455 2024-04-17T09:00:28Z Vriullop 219 /* {{-ca-}} */ wikitext text/x-wiki == {{-ca-}} == {{ca-pron|-r}} {{-etimologia-}} Formació analògica de {{m|ca|fumut}} com a suposat participi, eufemisme de {{m|ca|fotut}}, de {{m|ca|fotre}}, === Verb === {{ca-verb|t}} # {{marca|ca|català central|septentrional}} {{def-meta|Eufemisme de [[fotre]].}} ==== Conjugació ==== {{ca-conj|occ=no|bal=no|alg=no|alt=no}} {{-var-}} * [[fumbre]] {{-sin-}} * [[clavar]], [[etzibar]], [[pegar]], [[plantar]], [[propinar]], [[fotre]], [[cardar]] {{-trad-}} {{t-vegeu|Eufemisme|fotre}} === Miscel·lània === * {{ca-sil}} * {{anagrames|ca|fèmur|ferum|furem}} === Vegeu també === * {{ca-dicc|diec|gdlc|dcvb|optimot}} * {{tesaure}} fguntscmla36i5y85y28dfb0jxik0lq júnyer 0 10670 2301929 2199201 2024-04-17T09:02:50Z Vriullop 219 /* {{-ca-}} */ wikitext text/x-wiki == {{-ca-}} == {{ca-pron|-r}} {{-etimologia-}} {{Del-lang|la|ca|iungere}}. === Verb === {{ca-verb|t-i}} # {{marca|ca|antic}} {{forma-a|ca|junyir}} ==== Conjugació ==== Pràcticament usat només en infinitiu, l’ús de les formes conjugades és rar. {{ca-conj|alg=no|nocc=no|alt=no}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|diec|gdlc|optimot}} 6psrcpmxgzez5if9794wvqv1jth5vxx desconèixer 0 11435 2301920 2208684 2024-04-17T08:41:52Z Vriullop 219 /* {{-ca-}} */ pron auto wikitext text/x-wiki {{vegeu|desconéixer}} == {{-ca-}} == {{ca-pron|ê}} {{etim-comp|ca|des-|conèixer}}. === Verb === {{ca-verb|t}} # No [[conèixer]], [[ignorar]]. ==== Conjugació ==== {{ca-conj}} {{-sin-}} * [[ignorar]]. {{-var-}} * [[desconéixer]] (''valencià'') {{-trad-}} {{t-inici}} * {{gl}}: {{trad|gl|descoñecer}} {{t-final}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|diec|gdlc|optimot}} hh7dp48wanefq2zi1gm1trhhfae14ol acórrer 0 11977 2301917 2209107 2024-04-17T08:33:19Z Vriullop 219 /* {{-ca-}} */ pron auto wikitext text/x-wiki {{vegeu|acorrer}} == {{-ca-}} == {{ca-pron}} {{-etimologia-}} {{Del-lang|la|ca|accurrere}}, {{etim-s|ca|XIV}}. === Verb === {{ca-verb|i}} # {{marca|ca|arcaic}} [[avergonyir|Avergonyir]] i [[confondre]]. # Acudir per a [[socórrer]]. ==== Conjugació ==== {{ca-conj|alg=no|alt=no}} {{-trad-}} {{t-inici|Avergonyir}} * {{es}}: {{trad|es|correr}}, {{trad|es|acorrer}} * {{fr}}: {{trad|fr|confondre}}, couvrir de {{trad|fr|honte}}, {{trad|fr|decontenancer}} * {{it}}: {{trad|it|confondere}}, {{trad|it|convincere}}, far rimaner {{trad|it|confuso}} * {{la}}: {{trad|la|rubore}} suffundere {{t-final}} {{t-inici|Acudir per a socórrer}} * {{es}}: {{trad|es|socorrer}}, {{trad|es|acorrer}} * {{fr}}: {{trad|fr|accourir}} * {{it}}: {{trad|it|accorrere}} {{t-final}} === Miscel·lània === * {{ca-sil}} * {{anagrames|ca|carreró|correra}} === Vegeu també === * {{R:CCLFI 1839}} * {{ca-dicc|diec|gdlc|optimot}} ti5wensgyytt5w3ybigj06teltt0z1r transcórrer 0 11988 2301939 2209118 2024-04-17T10:56:06Z Vriullop 219 /* {{-ca-}} */ pron auto wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} {{etim-lang|la|ca|transcorrere}}. === Verb === {{ca-verb|i}} # Passar el [[temps]], seguir el seu curs una acció. ==== Conjugació ==== {{ca-conj|alg=no}} {{-trad-}} {{t-inici}} * {{en}}: {{trad|en|pass}}, {{trad|en|go by}} * {{es}}: {{trad|es|transcurrir}}, {{trad|es|trascurrir}} * {{fr}}: {{trad|fr|passer}}, s’{{trad|fr|écouler}} * {{it}}: {{trad|it|trascorrere}} {{t-final}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|diec|gdlc|optimot}} 1sah4of3d1bw2p0evcm44l2hnms868b acréixer 0 12033 2301916 2209123 2024-04-17T08:32:51Z Vriullop 219 /* {{-ca-}} */ pron auto wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} {{-etimologia-}} {{Del-lang|la|ca|acrēscěre}}. === Verb === {{ca-verb|t-p}} # Fer que augmenti o s'intensifiqui alguna cosa. ==== Conjugació ==== {{ca-conj|alg=no}} {{-sin-}} * [[augmentar]] * [[incrementar]] {{-trad-}} {{t-inici}} * {{en}}: {{trad|en|increase}} * {{es}}: {{trad|es|acrecer}} * {{fr}}: {{trad|fr|accroître}} * {{it}}: {{trad|it|accrescere}} {{t-final}} === Miscel·lània === * {{ca-sil}} * {{anagrames|ca|exercira|creixerà|exercirà|xericaré}} === Vegeu també === * {{ca-dicc|diec|gdlc|optimot}} 52eu0emu32dlp8jw779sd3rh1f3p36j destrènyer 0 19199 2301921 2226948 2024-04-17T08:43:11Z Vriullop 219 /* {{-ca-}} */ pron auto wikitext text/x-wiki {{vegeu|destrényer}} == {{-ca-}} == {{ca-pron|ê}} {{etimologia|ca}} === Verb === {{ca-verb|t}} # {{sense accepcions}} ==== Conjugació ==== {{ca.v.conj.para39|destr}} {{-der-}} * [[destrényer]] {{-trad-}} {{t-inici}} {{t-final}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|diec|gdlc|optimot}} g805p8nzrazhbmw2gozkczi12wiabm9 restrènyer 0 19201 2301932 2226950 2024-04-17T10:37:57Z Vriullop 219 /* {{-ca-}} */ corr. pron wikitext text/x-wiki {{vegeu|restrényer}} == {{-ca-}} == {{ca-pron|ê}} {{etim-comp|ca|re-|estrènyer}}. === Verb === {{ca-verb|t}} # {{sense accepcions}} ==== Conjugació ==== {{ca.v.conj.para39|restr}} {{-der-}} * [[restrényer]] {{-trad-}} {{t-inici}} {{t-final}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|diec|gdlc|optimot}} pu71l4not3msaj44wgikybztc5dxkwz sobrenàixer 0 19219 2301936 1811951 2024-04-17T10:52:58Z Vriullop 219 /* {{-ca-}} */ corr. pron wikitext text/x-wiki == {{-ca-}} == {{ca-pron|só}} {{etim-comp|ca|sobre-|nàixer}}. === Verb === {{ca-verb|i}} # {{marca|ca|català occidental}} {{forma-a|ca|sobrenéixer}} ==== Conjugació ==== {{ca.v.conj.para57|sobren}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|diec|gdlc|optimot}} n96vdrnm926ti5cvbro7yf1i4oytj4a sobrenéixer 0 19220 2301937 2226962 2024-04-17T10:53:35Z Vriullop 219 /* {{-ca-}} */ pron auto wikitext text/x-wiki == {{-ca-}} == {{ca-pron|só}} {{etim-comp|ca|sobre-|néixer}}. === Verb === {{ca-verb|i}} # {{sense accepcions}} ==== Conjugació ==== {{ca.v.conj.para57|sobren}} {{-sin-}} * [[sobrenàixer]], en occidental {{-trad-}} {{t-inici}} {{t-final}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|diec|gdlc|optimot}} tnw462s6bsjwq3aoq47f7l72y4r4a4n pertànyer 0 19223 2301930 2226964 2024-04-17T09:04:51Z Vriullop 219 /* {{-ca-}} */ pron auto wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} {{-etimologia-|roa-oca|ca}} De l'antic {{m|roa-oca|tànyer}}, {{del-lang|la|ca|tangere|t=tocar}}, amb influència de {{m|la|pertinere|t=pertànyer}}, {{etim-s|ca|XIII}}. === Verb === {{ca-verb|i}} # Ésser alguna cosa [[propietat]] d'algú. # Ésser part [[integrant]] d'una cosa. # [[correspondre|Correspondre]] al càrrec o l'obligació d'algú. ==== Conjugació ==== {{ca-conj|alg=no}} {{-sin-}} * [[apartendre]] (''alguerès'') {{-trad-}} {{t-inici|Ésser propietat}} * {{de}}: {{trad|de|gehören zu}} * {{en}}: {{trad|en|belong}} * {{hy}}: {{trad|hy|պատկանել}} * {{be}}: {{trad|be|нале́жаць}} * {{es}}: {{trad|es|pertenecer}} * {{da}}: {{trad|da|tilhøre}} * {{sk}}: {{trad|sk|patriť}} * {{eo}}: {{trad|eo|aparteni al}} * {{fi}}: {{trad|fi|kuulua}} * {{fr}}: {{trad|fr|appartenir}} * {{gl}}: {{trad|gl|pertencer}} * {{el}}: {{trad|el|ανήκω}} * {{he}}: {{trad|he|שייך‎}} * {{hu}}: {{trad|hu|tartozik}} * {{it}}: {{trad|it|appartenere}} * {{lv}}: {{trad|lv|piederēt}} * {{nl}}: {{trad|nl|toebehoren}}, {{trad|nl|aan}}, {{trad|nl|van}} * {{no}}: {{trad|no|tilhøre}} * {{pl}}: {{trad|pl|należeć do}} * {{pt}}: {{trad|pt|pertencer}} * {{ru}}: {{trad|ru|принадлежа́ть}} * {{sh}}: {{trad|sh|pripadati}} * {{sv}}: {{trad|sv|tillhöra}} * {{cs}}: {{trad|cs|patřit}} * {{uk}}: {{trad|uk|нале́жати}} * {{zh}}: {{trad|zh|屬於}} {{t-final}} {{t-inici|Correspondre a algú}} * {{en}}: {{trad|en|concern}}, {{trad|en|pertain}} * {{es}}: {{trad|es|pertenecer}} * {{fr}}: {{trad|fr|appartenir}} * {{it}}: {{trad|it|spettare}} {{t-final}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{R:DLCSalvat|2}} * {{ca-dicc|diec|gdlc|optimot}} kdab2y9el04vwb5a2e1jxfsjui78ei7 poder 0 19226 2301931 2227728 2024-04-17T10:08:59Z Vriullop 219 /* {{-ca-}} */ corr. pron wikitext text/x-wiki {{vegeu|PODER}} == {{-ca-}} == {{ca-pron|q=verb|ê |f-centr=LL-Q7026 (cat)-Unjoanqualsevol-poder.wav }} {{ca-pron|q=nom|podêrr|bal=ê}} {{ca-pron|q=adverbi|é|bal=-|val=-}} {{-etimologia-|la|ca}} Del llatí vulgar {{m|la|*pŏtēre}}, del clàssic {{m|la|posse}}, {{etim-s|ca|XII}}. Com a adverbi, des del segle XIII, és un canvi sintàctic del verb usat com a auxiliar expressant un futur de possibilitat ({{m|ca||en podrà prendre}} > {{m|ca||en prendrà poder}}).<ref>Xavier Rull Muruzàbal, «[https://revistes.iec.cat/index.php/ER/article/view/67491.001 ''Poder ara neva tornar''. Els infinitius-adverbis, un tipus de coverbs en català]», ''Estudis Romànics'', vol. 33 (2011)</ref> === Verb === {{ca-verb|a-t}} # Tenir la [[facultat]] o [[potència]] per fer alguna cosa, ser capaç de fer-la. # Tenir [[domini]], [[autoritat]]. # Tenir [[força]] i activitat per a [[obrar]], [[resistir]] o [[sofrir]]. # [[excitar|Excitar]] a algú a que faci o deixi de fer alguna cosa. # Ser possible o contingent que [[succeir|succeeixi]] alguna cosa. ==== Conjugació ==== {{ca-conj|rizo=ò}} {{-der-}} * [[poderejar]] * [[poguer]], col·loquial {{-trad-}} {{t-inici|Tenir la facultat o potència per fer alguna cosa}} * {{sq}}: {{trad|sq|mund}} * {{en}}: {{trad|en|can}} * {{ar}}: {{trad|ar|قَدَرَ‎}} * {{an}}: {{trad|an|poder}} * {{hy}}: {{trad|hy|կարողանալ}} * {{ast}}: {{trad|ast|poder}} * {{eu}}: {{trad|eu|ahal izan}} * {{be}}: {{trad|be|магчы́}} * {{br}}: {{trad|br|gallout}} * {{bg}}: {{trad|bg|мо́га}} * {{es}}: {{trad|es|poder}} * {{kw}}: {{trad|kw|gallos}} * {{da}}: {{trad|da|kunne}} * {{sk}}: {{trad|sk|môcť}} * {{sl}}: {{trad|sl|moči}} * {{eo}}: {{trad|eo|povi}} * {{et}}: {{trad|et|osata}} * {{fo}}: {{trad|fo|kunna}} * {{fi}}: {{trad|fi|osata}} * {{fr}}: {{trad|fr|pouvoir}} * {{fur}}: {{trad|fur|podê}} * {{gl}}: {{trad|gl|poder}} * {{cy}}: {{trad|cy|gallu}} * {{ka}}: {{trad|ka|შეუძლია}} * {{el}}: {{trad|el|μπορώ}}, {{trad|el|δύναμαι}} * {{grc}}: {{trad|grc|δύναμαι}} * {{hi}}: {{trad|hi|सकना}} * {{hu}}: {{trad|hu|tud}} * {{yi}}: {{trad|yi|קענען‎}} * {{id}}: {{trad|id|boleh}} * {{is}}: {{trad|is|geta}} * {{it}}: {{trad|it|potere}} * {{ja}}: {{trad|ja|できる}} * {{lv}}: {{trad|lv|prast}} * {{lt}}: {{trad|lt|galėti}} * {{la}}: {{trad|la|valere}}, {{trad|la|possum}} * {{csc}}: {{trad|csc|PODER}} * {{lb}}: {{trad|lb|kënnen}} * {{mk}}: {{trad|mk|може}} * {{ms}}: {{trad|ms|dapat}} * {{mt}}: {{trad|mt|seta}} * {{nl}}: {{trad|nl|kunnen}} * {{no}}: {{trad|no|kunne}} * {{oc}}: {{trad|oc|pòder}}, {{trad|oc|podre}} * {{pl}}: {{trad|pl|móc}} * {{pt}}: {{trad|pt|poder}} * {{rm}}: {{trad|rm|pudair}}, {{trad|rm|puder}}, {{trad|rm|pudeir}} * {{ro}}: {{trad|ro|putea}} * {{ru}}: {{trad|ru|мочь}} * {{sc}}: {{trad|sc|podere}}, {{trad|sc|podi}} * {{sh}}: {{trad|sh|моћи}}, {{trad|sh|moći}} * {{scn}}: {{trad|scn|putiri}} * {{sv}}: {{trad|sv|kunna}} * {{cs}}: {{trad|cs|moci}} * {{uk}}: {{trad|uk|могти́}} * {{vec}}: {{trad|vec|poder}} * {{zh}}: {{trad|zh|會}} {{t-final}} {{t-inici|Tenir domini, autoritat}} * {{en}}: {{trad|en|may}} * {{es}}: {{trad|es|poder}} * {{eo}}: {{trad|eo|rajti}} * {{fr}}: {{trad|fr|pouvoir}} * {{it}}: {{trad|it|potere}} * {{csc}}: {{trad|csc|PODER}} {{t-final}} {{t-inici|Tenir força i activitat}} * {{es}}: {{trad|es|poder}} * {{fr}}: {{trad|fr|pouvoir}} * {{it}}: {{trad|it|potere}} * {{la}}: {{trad|la|valere}} * {{csc}}: {{trad|csc|PODER}} {{t-final}} {{t-inici|Excitar a algú a que faci o deixi de fer}} * {{es}}: {{trad|es|poder}} * {{fr}}: {{trad|fr|pouvoir}} * {{it}}: {{trad|it|potere}} * {{la}}: {{trad|la|posse}} {{t-final}} {{t-inici|Ser possible}} * {{en}}: {{trad|en|may}} * {{es}}: {{trad|es|poder}} * {{fr}}: {{trad|fr|pouvoir}} * {{csc}}: {{trad|csc|PODER}} {{t-final}} === Nom === {{ca-nom|m}} # Capacitat per fer alguna cosa. # Domini o influència sobre algú o alguna cosa. {{-sin-}} * [[atribució]], [[competència]], [[funció]], [[jurisdicció]], [[responsabilitat]] * [[autoritat]], [[llibertat]], [[llicència]], [[permís]], [[potestat]] * [[càrrec]] * [[capacitat]], [[enginy]], [[habilitat]] * [[causa]], [[causant]], [[força]], [[motor]], [[mòbil]], [[ànima]] * [[dret]], [[facultat]], [[llibertat]], lliure [[albir]], lliure [[arbitri]] * [[imperi]], [[mandat]] * [[potència]] {{-trad-}} {{t-inici|Capacitat per fer alguna cosa}} * {{en}}: {{trad|en|power}} * {{es}}: {{trad|es|poder}} * {{fr}}: {{trad|fr|pouvoir}} * {{it}}: {{trad|it|potere}} * {{ty}}: {{trad|ty|mana}} {{t-final}} === Adverbi === {{entrada|ca|adv}} # {{marca|ca|col·loquial|central|nord-occidental}} [[potser]] {{-notes-}} * La pronúncia tradicional era com el verb, amb grafia arcaica {{m|ca||pudè}}. Ha canviat a vocal tancada per influència del literari {{m|ca||potser}}.<ref>Joan Coromines, citat per Xavier Pàmies, «[https://pamiesxavier.wixsite.com/notes/single-post/2016/08/28/potser-pod%C3%A9 Apunts de llengua (del Diccionari Etimològic)]», ''Notes de traducció''</ref> === Miscel·lània === * {{ca-sil}} * {{anagrames|ca|pedró|perdo|perdó|poder|podré}} === Vegeu també === * {{ca-dicc|diec|gdlc|optimot}} * {{R:CCLFI 1839}} * {{tesaure}} {{referències}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb|t-i|present=puedo}} # {{e|ca|poder}} === Nom === {{es-nom|m}} # {{e|ca|poder}} === Miscel·lània === * {{es-sil}} jmft933ktiw1o8sh6pn5ik2mnm4fhaj tòrcer 0 19262 2301940 2155797 2024-04-17T10:57:33Z Vriullop 219 /* {{-ca-}} */ pron auto wikitext text/x-wiki {{vegeu|torcer}} == {{-ca-}} == {{ca-pron}} {{-etimologia-|la|ca}} Del llatí vulgar {{m|la|torcere}}, del clàssic {{m|la|torquēre}}, {{etim-s|ca|XIV}}. === Verb === {{ca-verb|t-i-p}} # {{forma-a|ca|torçar}} ==== Conjugació ==== {{ca-conj|alg=no}} {{-der-}} * [[torcejar]]m [[destòrcer]] {{-var-}} * [[torçar]] * [[torcir]], en alguerès i septentrional === Miscel·lània === * {{ca-sil}} * {{anagrames|ca|rector}} === Vegeu també === * {{ca-dicc|diec|gdlc|optimot}} jjcujqoxwdwcs2lb8rbdfary4w9ez0g estòrcer 0 19269 2301923 2226973 2024-04-17T08:47:16Z Vriullop 219 /* {{-ca-}} */ pron auto wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} {{etimologia|ca}} === Verb === {{ca-verb|i}} # {{sense accepcions}} ==== Conjugació ==== {{ca.v.conj.para74|est}} {{-sin-}} * [[escapar]], [[fugir]], [[marxar]], [[volar]] {{-trad-}} {{t-inici}} {{t-final}} === Miscel·lània === * {{ca-sil}} * {{anagrames|ca|erectors|rectores|retrocés|secretor|torceres|tòrcer-se|retorces|retorcés}} === Vegeu també === * {{ca-dicc|diec|gdlc|optimot}} iq6xxdz5ciwavwll7dyyf4ede2k8px3 volguer 0 23193 2301942 2276094 2024-04-17T11:01:12Z Vriullop 219 /* {{-ca-}} */ corr. pron wikitext text/x-wiki == {{-ca-}} == {{ca-pron|ë|bal=-|val=-|alg=/vulˈɣe/|rima=-}} {{-etimologia-}} Velarització de {{m|ca|voler}}, {{etim-s|ca|XX}}. === Verb === {{ca-verb|t}} # {{marca|ca|col·loquial|especialment|alguerès}} [[voler]] === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|dcvb=voler|optimot|dalg}} * [https://publicacions.iec.cat/repository/pdf/00000040/00000028.pdf El català de l'Alguer: un model d'àmbit restringit], de l'IEC. 6z8thohobt72u04p5u784s4z5vkspni calguer 0 23194 2301918 2196907 2024-04-17T08:37:44Z Vriullop 219 /* {{-ca-}} */ pron auto wikitext text/x-wiki == {{-ca-}} == {{ca-pron|ê|bal=-|val=-}} {{-etimologia-}} De {{m|ca|caler}} per extensió de l'arrel velaritzada. === Verb === {{ca-verb|i}} # {{marca|ca|col·loquial}} [[caldre]], [[caler]] === Miscel·lània === * {{ca-sil}} == {{-oc-}} == {{pronafi|oc|/kalˈɣe/}} === Verb === {{entrada|oc|verb}} # [[caldre]] {{-sin-}} * [[caler]], [[calre]] ni3cevmaxvy4h4bjs7pmxrjaouaegz8 capiguer 0 23195 2301919 2196908 2024-04-17T08:39:11Z Vriullop 219 /* {{-ca-}} */ pron auto wikitext text/x-wiki == {{-ca-}} == {{ca-pron|ê|bal=-|val=-}} {{-etimologia-}} De {{m|ca|caber}} per extensió de l'arrel velaritzada. === Verb === {{ca-verb|i}} # {{marca|ca|col·loquial}} [[cabre]] o [[caber]] === Miscel·lània === * {{ca-sil}} * {{anagrames|ca|capgireu}} tw0r6j4cv0ztdcqs9rw2gxq7m9yz2g0 Equador 0 37487 2301958 2237030 2024-04-17T11:55:28Z Vriullop 219 /* {{-ca-}} */ wikitext text/x-wiki {{vegeu|equador}} == {{-ca-}} == {{map shape|ids=Q736|zoom=3}} {{ca-pron|ó,rr|bal=ó |f-val=LL-Q7026 (cat)-Millars-Equador.wav }} {{-etimologia-|la|ca}} De la línia de l'[[equador]]. === Nom propi === {{entrada|ca|nom propi|g=m|lema=l'Equador}} # [[estat|Estat]] de [[Sud-amèrica]] situat a la costa del [[Pacífic]] i fronterer amb [[Colòmbia]] i el [[Perú]]. El nom oficial és República de l'Equador. ==== Gentilicis ==== * [[equatorià]] ==== Notes ==== * Dintre d'un context sempre va precedit de l'article apostrofat: ''l'Equador''. {{-trad-}} {{t-inici|República de l'Equador}} * {{en}}: {{trad|en|Ecuador}} * {{eu}}: {{trad|eu|Ekuador}} * {{es}}: {{trad|es|Ecuador|m}} * {{fr}}: {{trad|fr|Équateur}} * {{gl}}: {{trad|gl|Ecuador}} * {{oc}}: {{trad|oc|Eqüator}} * {{pt}}: {{trad|pt|Equador}} {{t-final}} === Miscel·lània === * {{ca-sil}} * {{anagrames|ca|orqueda}} === Vegeu també === * {{Viquipèdia}} * {{ca-dicc|esadir|gec=Equador-1|dcvb}} [[Categoria:Estats americans en català]] miaenm8esovan8wti43hkvun52oe31g Albocàsser 0 37822 2301945 2237077 2024-04-17T11:16:45Z Vriullop 219 /* {{-ca-}} */ pron auto wikitext text/x-wiki == {{-ca-}} == {{map shape|ids=Q1606574|zoom=10}} {{ca-pron}} {{-etimologia-}} D’un nom de persona àrab incert, a partir de {{m|ar|أَبُو|trans=ʾabū|trad=pare}}. === Nom propi === {{entrada|ca|nom propi}} # [[municipi|Municipi]] de l'[[Alt Maestrat]]. ==== Gentilicis ==== * [[albocassí]], [[albocassina]], [[albocassins]], [[albocassines]] * [[bocassí]], [[bocassina]], [[bocassins]], [[bocassines]] {{-trad-}} {{t-inici|Municipi de l'Alt Maestrat}} * {{es}}: {{trad|es|Albocácer}} {{t-final}} === Miscel·lània === * {{ca-sil}} * {{anagrames|ca|Albocàsser|cabasserol|calabresos|escalabrós}} === Vegeu també === * {{Viquipèdia}} * {{ca-dicc|dcvb|esadir|oncat}} * [https://web.archive.org/web/20170823022605/https://www.avl.gva.es/documents/35882/40728/Gentilici.pdf ''Els Gentilicis Valencians''], AVL {{categoritza|ca|Poblacions valencianes en català}} n2ku52pllcfv5q8seb6appoq0upr8kv sers 0 39763 2301935 1071530 2024-04-17T10:51:40Z Vriullop 219 +ca wikitext text/x-wiki == {{-ca-}} == {{ca-pron|ê|centr=é|gir=è|bal=ê,-r}} === Nom === {{ca-nom-forma|mp}} # {{forma-p|ca|ser}} == {{-oc-}} == {{pronafi|oc|/seɾs/}} === Nom === {{oc-nom-forma|mp}} # {{forma-p|oc|ser}} e8pi8ov5uljxqegnefugp3bgqm499av atracción 0 43290 2301909 2207939 2024-04-16T16:14:43Z Pablussky 8432 wikitext text/x-wiki == {{-es-}} == {{es-pron}} {{etim-lang|la|es|attractio}}. === Nom === {{es-nom|f}} # [[atracció]] {{-rel-}} * {{e|es|atractivo}} * {{e|es|atraer}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|atracción|concitara|concitará|narcótica|tracciona|traccioná}} === Vegeu també === * {{DRAE}} n7kj302i9w29ldjma4g2los8tk3uvp5 fers 0 47323 2301925 2220689 2024-04-17T08:53:13Z Vriullop 219 /* {{-ca-}} */ pron auto wikitext text/x-wiki {{vegeu|férs|fèrs}} == {{-ca-}} == {{ca-pron|é}} === Adjectiu === {{ca-adj-forma|mp}} # {{forma-p|ca|fer}} === Miscel·lània === * {{anagrames|ca|serf}} == {{-fr-}} == {{-pronafi-}} {{pron|fr|/fɛʁ/}} === Nom === {{fr-nom-forma|mp}} # {{forma-p|fr|fer}} == {{-la-}} == {{la-pron}} === Verb === {{la-verb-forma}} # {{forma-conj|la|ferō|2|pres|ind|act}} spmgo586w6t2r41prwv7z0j23w37wxo equador 0 65674 2301959 2239348 2024-04-17T11:56:06Z Vriullop 219 /* {{-ca-}} */ corr. pron wikitext text/x-wiki {{vegeu|Equador}} == {{-ca-}} == {{ca-pron|ó,rr|bal=ó |f-val=LL-Q7026 (cat)-Millars-Equador.wav }} {{-etimologia-}} {{Del-lang|la|ca|aequator|trad=que iguala}}, {{etim-s|ca|XIX}}. === Nom === {{ca-nom|m}} # Línia imaginària que divideix la Terra perpendicularment al seu eix de rotació, resultant dues meitats. # (geometria) Cercle que talla perpendicularment per la meitat els meridians de la seva revolució. {{-trad-}} {{t-inici|Línia imaginària que divideix la Terra}} * {{en}}: {{trad|en|equator}} * {{es}}: {{trad|es|ecuador|m}} * {{fr}}: {{trad|fr|équateur}} * {{it}}: {{trad|it|equatore}} {{t-final}} === Miscel·lània === * {{ca-sil}} * {{anagrames|ca|orqueda}} === Vegeu també === * {{Viquipèdia|Equador (desambiguació)|equador}} * {{ca-dicc|diec|gdlc|optimot}} 1tbs9c9o4wljw2q6ajyue4bkklnnx4p taxón 0 69927 2301955 2175070 2024-04-17T11:50:06Z Leptictidium 282 /* Nom */ Incorrecte wikitext text/x-wiki {{vegeu|taxon}} == {{-es-}} == {{es-pron}} {{-etim-}} De {{m|es|taxonomía}}. === Nom === {{es-nom|m}} # [[tàxon]] {{-var-}} * {{q|rarament}} {{e|es|taxon}} === Miscel·lània === * {{es-sil}} === Vegeu també === * {{termcat|dicc=18|lang=es|consulta=15 juny 2014}} * {{DRAE}} {{catllengua|es|biologia}} 9908c5g8143qtp53ngskrdu9am5usmy taxon 0 69928 2301941 2015817 2024-04-17T10:59:53Z Leptictidium 282 /* Nom */ Incorrecte wikitext text/x-wiki {{vegeu|taxón}} == {{-en-}} == {{-pronafi-}} {{pron|en|/ˈtæksɒn/}} === Nom === {{en-nom|taxa}} # [[tàxon]] === Vegeu també === * {{termcat|dicc=18|lang=en|consulta=15 juny 2014}} == {{-es-}} == {{es-pron}} === Nom === {{es-nom|m|táxones}} # {{marca|es|rar}} {{forma-a|es|taxón}} === Miscel·lània === * {{es-sil}} === Vegeu també === * {{DRAE}} == {{-sv-}} == {{-etimologia-}} Retroformació de [[taxonomi]]. === Nom === {{entrada|sv|nom|g=n}} (plural etimològic [[taxa]]) # (''biologia'') [[tàxon]], [[taxó]] #: {{ex-us|sv|Klassen kräldjur är ett parafyletiskt '''taxon'''|La classe dels rèptils és un '''tàxon''' parafilètic|inline=1}} 6bqtwdz0tbl023pkc75ij8tw7bu1vge compliment 0 81374 2301899 2239813 2024-04-16T14:07:47Z Pablussky 8432 wikitext text/x-wiki == {{-ca-}} == {{ca-pron |f-centr=LL-Q7026 (cat)-Marvives-compliment.wav }} {{-etimologia-}} De {{comp|ca|complir|-ment}}, {{etim-s|ca|XIV}}. === Nom === {{ca-nom|m}} # Realització d'una obligació. # Afalagaments que es fan perquè una persona se senti ben acollida o per cortesia. {{-trad-}} {{t-inici|Realització d'una obligació}} * {{en}}: {{trad|en|accomplishment}} * {{es}}: {{trad|es|cumplimiento}} * {{fr}}: {{trad|fr|accomplissement}} * {{it}}: {{trad|it|compimento}}, {{trad|it|adempimento}} {{t-final}} {{t-inici|Afalagaments}} * {{en}}: {{trad|en|compliment}} * {{es}}: {{trad|es|cumplido|m}} * {{fr}}: {{trad|fr|compliment}} * {{it}}: {{trad|it|complimento}} {{t-final}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|diec|gdlc|optimot}} == {{-en-}} == {{-pronafi-}} {{pron|en|/kɒmplɪmənt/}} {{q|nom}}, {{pron|en|/kɒmplɪment/}} {{q|verb}} {{etim-lang|la|en|complementum}}. Doblet de {{doblet|en|complement}}. === Nom === {{en-nom}} # [[#ca|compliment]] {{q|afalagament}} === Verb === {{en-verb}} # [[complimentar]] === Miscel·lània === * {{síl|en|com·pli·ment}} === Vegeu també === * {{collins}} * {{cambridge}} fjie6kftlb3x6m1djd7i2d9zl8kh3ly compliments 0 81375 2301900 1005156 2024-04-16T14:09:15Z Pablussky 8432 wikitext text/x-wiki == {{-ca-}} == {{ca-pron|or=/kum.pɫiˈmens/|occ=/kom.pɫiˈmens/}} === Nom === {{ca-nom-forma|mp}} # {{forma-p|ca|compliment}} === Miscel·lània === * {{ca-sil}} == {{-en-}} == === Nom === {{entrada|en|nom-forma}} # {{forma-p|en|compliment}} === Verb === {{entrada|en|verb-forma}} # {{en-forma-conj|compliment|3}} === Miscel·lània === * {{síl|en|com·pli·ments}} ruvkotrk1pmoj8a8l5ncdud2lgqovl2 equadors 0 109020 2301960 2223203 2024-04-17T11:56:40Z Vriullop 219 /* {{-ca-}} */ corr. pron wikitext text/x-wiki == {{-ca-}} == {{ca-pron|ó,rr|bal=ó}} === Nom === {{ca-nom-forma|mp}} # {{forma-p|ca|equador}} === Miscel·lània === * {{ca-sil}} * {{anagrames|ca|esquadró}} hoixu5h0d8378byvv44bwqgo0dsrbb4 Betayer 0 216667 2301950 2211603 2024-04-17T11:39:53Z Vriullop 219 /* {{-ca-}} */ pron auto wikitext text/x-wiki == {{-ca-}} == {{ca-pron|betaier}} {{-etimologia-}} Variant de {{m|ca|Bataller}}. === Nom propi === {{entrada|ca|nom propi}} # {{cognom|ca|motejador}} === Miscel·lània === * {{ca-sil}} 13l5lhcxkkz42rsbkw9xsjiuqo9c41l Batayer 0 216670 2301949 2211606 2024-04-17T11:36:06Z Vriullop 219 /* {{-ca-}} */ pron auto wikitext text/x-wiki == {{-ca-}} == {{ca-pron|bataier}} {{-etimologia-}} Variant de {{m|ca|Bataller}}. === Nom propi === {{entrada|ca|nom propi}} # {{cognom|ca|motejador}} === Miscel·lània === * {{ca-sil}} g01a88ghmrwx9f4b0zwekxau87lzb9q Bor 0 219355 2301953 2211885 2024-04-17T11:42:28Z Vriullop 219 /* {{-ca-}} */ pron auto wikitext text/x-wiki {{vegeu|bor|bòr|boŕ}} == {{-ca-}} == {{ca-pron|ó,rr}} {{-etimologia-|xib|ca}} Documentat ''Borr'' i ''Borre'' al segle IX i ''Borro'' al segle XI, probablement de l’ibèric {{m|xib|boŕ}}, nom de persona. === Nom propi === {{entrada|ca|nom propi}} # Poble del municipi de [[Bellver]] a la [[Cerdanya]]. # {{cognom|ca}} # Ciutat del [[Sudan del Sud]]. # Diverses ciutats de [[Rússia]]. # {{marca|ca|mitologia escandinava}} Fill de [[Buri]] i pare d’[[Odín]]. === Miscel·lània === * {{anagrames|ca|obr|orb|rob}} === Vegeu també === * {{Viquipèdia|Bor (desambiguació)}} * {{ca-dicc|dcvb|gec|esadir}} * [http://www.idescat.cat/cognoms/?q=bor Cognoms de la població], Idescat == {{-de-}} == {{-pronafi-}} {{pron|de|/boːɐ̯/}} {{àudio simple|De-at-Bor.ogg|àudio}} === Nom === {{de-nom|n|Bors|-}} # [[bor]] ==== Declinació ==== {{de-nom-decl|n|Bors|-}} {{-rel-}} {{taula periòdica/de}} 5k2jhzn3h1ym383o5aqxfid87dcnn1u Boher 0 228159 2301952 2196930 2024-04-17T11:40:56Z Vriullop 219 /* {{-ca-}} */ pron auto wikitext text/x-wiki == {{-ca-}} == {{ca-pron|é}} {{-etimologia-}} Variant de {{m|ca|Bover}}. === Nom propi === {{entrada|ca|nom propi}} # {{cognom|ca|d’ofici}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{Viquipèdia}} * {{ca-dicc|dcvb}} * [http://www.idescat.cat/cognoms/?id=82206 Cognoms de la població], Idescat 8g7ppfjjeyqe6vct21g9tbmjep7lpkh Bober 0 228160 2301951 2196931 2024-04-17T11:40:30Z Vriullop 219 /* {{-ca-}} */ pron auto wikitext text/x-wiki == {{-ca-}} == {{ca-pron|é}} {{-etimologia-}} Variant fonètica de {{m|ca|Bover}} per betacisme. === Nom propi === {{entrada|ca|nom propi}} # {{cognom|ca|d’ofici}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|optimot}} * [http://www.idescat.cat/cognoms/?id=294106 Cognoms de la població], Idescat a3q160xquqroera6jl5upkgdzlgvrdt Càncer 0 234522 2301956 2233419 2024-04-17T11:52:33Z Vriullop 219 /* {{-ca-}} */ pron auto wikitext text/x-wiki {{vegeu|cancer|Cancer|càncer|cáncer|Cáncer}} == {{-ca-}} == {{ca-pron}} {{-etimologia-}} Del llatí {{m|la|cancer}}. === Nom propi === {{entrada|ca|nom propi|g=m}} # [[Cranc]] === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{Viquipèdia|Càncer (desambiguació)}} * {{ca-dicc|gec|gdlc}} == {{-oc-}} == === Nom propi === {{entrada|oc|nom propi}} # el [[Cranc]] {{-rel-}} {{constel·lacions/oc}} 9ej555tttqrixqfbagfrq6w7zcu9xl2 Mòdul:ca-pron/AFI 828 238328 2301915 2300945 2024-04-17T08:29:45Z Vriullop 219 revisió r final muda o sonora 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[eé]ro", "ànte", "[aà]nti", "[aà]uto", -- a- is ambiguous as prefix "bi", "b[ií]li", "bio", "c[oô]ntra", -- ambiguous co- "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[oó]bre", "s[uú]pra", "t[eë]rmo", "tetra", "tri", -- ambiguous tele-(r) "[uú]ltra", "[uu]n[ií]", "v[ií]ce" } local prefix_r = {"[eë]xtra", "pr[eé]"} local prefix_s = {"[aà]ntropo", "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 = {"autoic", "autori", "biret", "biri", "bisa", "bisell", "bisó", "biur", "contrari", "contrau", "diari", "equise", "heterosi", "monoi", "parasa", "parasit", "preix", "psicosi", "sobrera", "sobreri" } -- 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 -- 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, "([iu])um(s?)$", "%1üm%2") -- Latinisms (-ius is ambiguous but rare) 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 Balearic iodització -- TODO: move to parseRespelling word = str.gsub(word, "yll", "L") -- 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", "%1") -- anhel, adherir... -- 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(vowels) local syllables = {{onset = "", vowel = str.sub(vowels, 1, 1), coda = ""}} vowels = str.sub(vowels, 2) while vowels ~= "" do local syll = {onset = "", vowel = "", coda = ""} syll.onset, syll.vowel, vowels = str.match(vowels, "^([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", "L", -- hint for iodització "m", "n", "ny", "ñ", "p", "pl", "pr", "qu", "qü", "r", "rr", "s", "ss", "t", "tg", "tj", "tr", "tx", "tz", "u", "v", "vl", "w", "x", "z", }) local syllables = {} while remainder ~= "" do local consonants, vowels consonants, remainder = str.match(remainder, "^([^aàāeèéêëēiíïoòóôōuúü]*)(.-)$") vowels, remainder = str.match(remainder, "^([aàāeèéêëēiíïoòóôōuúü]*)(.-)$") if vowels == "" then syllables[#syllables].coda = syllables[#syllables].coda .. consonants else local onset = consonants local first_vowel = str.sub(vowels, 1, 1) if (str.find(onset, "[gq]$") and (first_vowel == "ü" or (first_vowel == "u" and vowels ~= "u"))) or ((onset == "" or onset == "h") and #syllables == 0 and first_vowel == "i" and vowels ~= "i" ) then onset = onset .. str.sub(vowels, 1, 1) vowels = str.sub(vowels, 2) end local vsyllables = splitVowels(vowels) 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 == "è" then if syllables.stress == #syllables and (post_letters == "s" or post_letters == "") then -- -ès, -è track("ca-pron/è-final") return "ê" else 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 replaceContextFree(cons) cons = str.gsub(cons, "r", "ɾ") cons = str.gsub(cons, "ɾɾ", "r") cons = str.gsub(cons, "ss", "s") cons = str.gsub(cons, "ll", "ʎ") -- pending L by lect 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 contigous 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 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> /ə/ -- TODO: review GIEC 3.3.1.2.b for i = 1, #syllables do local current = syllables[i] 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 current.stressed then reduction = false --TODO: review, i.e. anorrêa, anorêes, arrêen elseif pre_vowel_pair == "əe" and not previous.stressed then --elseif pre_vowel_pair == "əe" then reduction = false elseif str.find(post_vowel_pair, "e[aòôɔ]") then reduction = false elseif i < syllables.stress -1 and post_vowel_pair == "ee" then posterior.vowel = "ə" -- avoid əe in next loop elseif i > syllables.stress and post_vowel_pair == "ee" then reduction = false --elseif pre_vowel_pair == "ɔe" then -- ? bòer, côedició > /ɔə/ -- reduction = false elseif lect == "bal" and i == #syllables and previous.stressed and current.vowel == "e" and str.find(current.coda, "^k") then reduction = false -- no reduction final poststressed -ec in Majorcan, i.e. ànec end if reduction then current.vowel = str.gsub(current.vowel, "[ae]", "ə") 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) -- 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) for i = 1, #syllables do local current = syllables[i] local posterior = syllables[i + 1] or {onset = "", vowel = "", coda = ""} if current.vowel == "o" and not current.stressed then if lect == "bal" then -- do nothing, vowel harmony don't use to happen in Palma -- it will be as "bal2" for Menorca and Eivissa elseif lects_group[lect] == "ori" and current.coda ~= "w" then current.vowel = "u" elseif lect == "val2" then -- do nothing, not systematic, neither Northwestern -- it seems from Old Catalan in first stage of unstressed reduction -- DONE by respelling according with the DCVB end end end return syllables end -- Do context-sensitive phonological changes local function postprocessGeneral(syllables, lect) local lect_12 = str.sub(lect, 1, 3) for i = 1, #syllables do local current = syllables[i] local previous = syllables[i - 1] or {onset = "", vowel = "", coda = ""} -- Final -ig, stressed or in compound not adverb: mig, roig, puig, migdiada if (str.find(current.vowel, "[^i]") and str.find(current.coda, "^jɡs?$") or current.vowel == "i" and str.find(current.coda, "^ɡs?$")) and current.stressed and str.sub(pagename, -4) ~= "ment" 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") -- 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 current.coda = str.gsub(current.coda, "ʃʃ", "ʃ") -- 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: poststressed in Central, any in Balearic -- doing it before spirant lenition if str.find(current.onset, "^[bɡ]ɫ") and previous.coda == "" and ((previous.stressed and lect_12 == "cen") or lect_12 == "bal") then previous.coda = str.sub(current.onset, 1, 1) end -- remove respelling bbl/ggl in Western if lects_group[lect] == "occ" then local gemin = previous.coda .. current.onset if gemin == "bbɫ" or gemin == "ɡɡɫ" then previous.coda = "" end end -- No gemination dd -- doing it before spirant lenition if lect_12 == "val" and current.onset == "d" and previous.coda == "d" 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ó ll balear -- TODO: move hint to "bal2" as informal if lect_12 == "bal" then current.onset = str.gsub(current.onset, "L", "j") current.coda = str.gsub(current.coda, "L", "j") else current.onset = str.gsub(current.onset, "L", "ʎ") current.coda = str.gsub(current.coda, "L", "ʎ") 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(current.onset, "^[ʃʒ]") or str.find(current.onset, "^t͡ʃ") 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; adj or nouns -er, -or stressed -- coverts most cases, but plenty of exceptions to be fixed if #syllables > 1 and lect ~= "val" then if syllables.stress == #syllables then final_coda = str.gsub(final_coda, "^ɾ(s?)$", "%1") -- no loss with hint rr elseif str.find(pagename, "àixer$") or str.find(pagename, "ànyer$") or str.find(pagename, "[éè]ixer$") or str.find(pagename, "[éè]mer$") or str.find(pagename, "[éè]ncer$") or str.find(pagename, "[éè]nyer$") or str.find(pagename, "òrcer$") or str.find(pagename, "órrer$") then final_coda = str.gsub(final_coda, "^ɾ$", "") -- most unstressed -er verbs end 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 local term_syl = {} for i, syl in ipairs(syllables) do term_syl[i] = syl.onset .. syl.vowel .. syl.coda end term = table.concat(term_syl) if str.find(pagename, "l·l") then term = str.gsub(term, "ll", "l·l") -- restore geminated lost in splitSyllables() end if str.find(pagename, "-") then local first = str.match(pagename, "(.+)-") term = str.gsub(term, first, first .. "-") end 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) term = canonRespelling(term) 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 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 respelling = "r(s?)$:%1" 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} end local function preprocessWord(syllables, lect) -- Fix mid vowel if syllables.stress then 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) local pronuns = {} word = wordRespellings(word, lect) local syllables = splitSyllables(word, lect) syllables = preprocessWord(syllables, lect) 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) 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) 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) pagename = canonPagename(page_name or mw.title.getCurrentTitle().subpageText) local inputs = {} -- if 1= specified, do all lects local input_all = {} if pron[1] then input_all = listToSet(mw.text.split(pron[1], " ?, ?")) for _, lect in ipairs(lects) do inputs[lect] = pron[1] end end -- then do dialect groups for group, lects in pairs(groups_lects) do if pron[group] then for _, lect in ipairs(lects) do inputs[lect] = pron[group] end end if pron[group .. "2"] then for _, lect in ipairs(lects) do inputs[lect.. "2"] = pron[group .. "2"] end end end -- then do individual lect settings for _, lect in ipairs(input_lects) do if pron[lect] then inputs[lect] = pron[lect] elseif str.sub(lect, -1) == "2" and pron[str.sub(lect, 1, -2)] then inputs[lect] = pron[str.sub(lect, 1, -2)] 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] = pagename end end -- Parse the arguments local parsed_respellings = {} for lect, inputspec in pairs(inputs) do local input_split_on_comma = mw.text.split(inputspec, " ?, ?") -- do mid_vowel_hint first local mid_vowel_hint for _, input_part in ipairs(input_split_on_comma) do mid_vowel_hint = str.match(input_part, "^[éèêëóòô]$") if mid_vowel_hint then parsed_respellings[lect] = parseRespelling(input_part, pagename) end end for _, input_part in ipairs(input_split_on_comma) do if lect == "val" and input_part:find("[r-]r$") and input_all[input_part] then input_part = "+" -- do not apply general r hints to Valencian end if input_part ~= mid_vowel_hint then local respelled = pagename if parsed_respellings[lect] then -- previously respelled respelled = parsed_respellings[lect].term or pagename end parsed_respellings[lect] = parseRespelling(input_part, respelled) end end 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: -- =p.show({"ó", bal="-"}, "prova") return p 3o5m2texzzqe3rizqvgvtcyvn9bqkco 2301933 2301915 2024-04-17T10:45:20Z Vriullop 219 corr. 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[eé]ro", "ànte", "[aà]nti", "[aà]uto", -- a- is ambiguous as prefix "bi", "b[ií]li", "bio", "c[oô]ntra", -- ambiguous co- "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[oó]bre", "s[uú]pra", "t[eë]rmo", "tetra", "tri", -- ambiguous tele-(r) "[uú]ltra", "[uu]n[ií]", "v[ií]ce" } local prefix_r = {"[eë]xtra", "pr[eé]"} local prefix_s = {"[aà]ntropo", "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 = {"autoic", "autori", "biret", "biri", "bisa", "bisell", "bisó", "biur", "contrari", "contrau", "diari", "equise", "heterosi", "monoi", "parasa", "parasit", "preix", "psicosi", "sobrera", "sobreri" } -- 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 -- 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, "([iu])um(s?)$", "%1üm%2") -- Latinisms (-ius is ambiguous but rare) 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 Balearic iodització -- TODO: move to parseRespelling word = str.gsub(word, "yll", "L") -- 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", "%1") -- anhel, adherir... -- 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(vowels) local syllables = {{onset = "", vowel = str.sub(vowels, 1, 1), coda = ""}} vowels = str.sub(vowels, 2) while vowels ~= "" do local syll = {onset = "", vowel = "", coda = ""} syll.onset, syll.vowel, vowels = str.match(vowels, "^([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", "L", -- hint for iodització "m", "n", "ny", "ñ", "p", "pl", "pr", "qu", "qü", "r", "rr", "s", "ss", "t", "tg", "tj", "tr", "tx", "tz", "u", "v", "vl", "w", "x", "z", }) local syllables = {} while remainder ~= "" do local consonants, vowels consonants, remainder = str.match(remainder, "^([^aàāeèéêëēiíïoòóôōuúü]*)(.-)$") vowels, remainder = str.match(remainder, "^([aàāeèéêëēiíïoòóôōuúü]*)(.-)$") if vowels == "" then syllables[#syllables].coda = syllables[#syllables].coda .. consonants else local onset = consonants local first_vowel = str.sub(vowels, 1, 1) if (str.find(onset, "[gq]$") and (first_vowel == "ü" or (first_vowel == "u" and vowels ~= "u"))) or ((onset == "" or onset == "h") and #syllables == 0 and first_vowel == "i" and vowels ~= "i" ) then onset = onset .. str.sub(vowels, 1, 1) vowels = str.sub(vowels, 2) end local vsyllables = splitVowels(vowels) 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 == "è" then if syllables.stress == #syllables and (post_letters == "s" or post_letters == "") then -- -ès, -è track("ca-pron/è-final") return "ê" else 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 replaceContextFree(cons) cons = str.gsub(cons, "r", "ɾ") cons = str.gsub(cons, "ɾɾ", "r") cons = str.gsub(cons, "ss", "s") cons = str.gsub(cons, "ll", "ʎ") -- pending L by lect 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 contigous 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 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> /ə/ -- TODO: review GIEC 3.3.1.2.b for i = 1, #syllables do local current = syllables[i] 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 current.stressed then reduction = false --TODO: review, i.e. anorrêa, anorêes, arrêen elseif pre_vowel_pair == "əe" and not previous.stressed then --elseif pre_vowel_pair == "əe" then reduction = false elseif str.find(post_vowel_pair, "e[aòôɔ]") then reduction = false elseif i < syllables.stress -1 and post_vowel_pair == "ee" then posterior.vowel = "ə" -- avoid əe in next loop elseif i > syllables.stress and post_vowel_pair == "ee" then reduction = false --elseif pre_vowel_pair == "ɔe" then -- ? bòer, côedició > /ɔə/ -- reduction = false elseif lect == "bal" and i == #syllables and previous.stressed and current.vowel == "e" and str.find(current.coda, "^k") then reduction = false -- no reduction final poststressed -ec in Majorcan, i.e. ànec end if reduction then current.vowel = str.gsub(current.vowel, "[ae]", "ə") 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) -- 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) for i = 1, #syllables do local current = syllables[i] local posterior = syllables[i + 1] or {onset = "", vowel = "", coda = ""} if current.vowel == "o" and not current.stressed then if lect == "bal" then -- do nothing, vowel harmony don't use to happen in Palma -- it will be as "bal2" for Menorca and Eivissa elseif lects_group[lect] == "ori" and current.coda ~= "w" then current.vowel = "u" elseif lect == "val2" then -- do nothing, not systematic, neither Northwestern -- it seems from Old Catalan in first stage of unstressed reduction -- DONE by respelling according with the DCVB end end end return syllables end -- Do context-sensitive phonological changes local function postprocessGeneral(syllables, lect) local lect_12 = str.sub(lect, 1, 3) for i = 1, #syllables do local current = syllables[i] local previous = syllables[i - 1] or {onset = "", vowel = "", coda = ""} -- Final -ig, stressed or in compound not adverb: mig, roig, puig, migdiada if (str.find(current.vowel, "[^i]") and str.find(current.coda, "^jɡs?$") or current.vowel == "i" and str.find(current.coda, "^ɡs?$")) and current.stressed and str.sub(pagename, -4) ~= "ment" 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") -- 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 current.coda = str.gsub(current.coda, "ʃʃ", "ʃ") -- 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: poststressed in Central, any in Balearic -- doing it before spirant lenition if str.find(current.onset, "^[bɡ]ɫ") and previous.coda == "" and ((previous.stressed and lect_12 == "cen") or lect_12 == "bal") then previous.coda = str.sub(current.onset, 1, 1) end -- remove respelling bbl/ggl in Western if lects_group[lect] == "occ" then local gemin = previous.coda .. current.onset if gemin == "bbɫ" or gemin == "ɡɡɫ" then previous.coda = "" end end -- No gemination dd -- doing it before spirant lenition if lect_12 == "val" and current.onset == "d" and previous.coda == "d" 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ó ll balear -- TODO: move hint to "bal2" as informal if lect_12 == "bal" then current.onset = str.gsub(current.onset, "L", "j") current.coda = str.gsub(current.coda, "L", "j") else current.onset = str.gsub(current.onset, "L", "ʎ") current.coda = str.gsub(current.coda, "L", "ʎ") 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(current.onset, "^[ʃʒ]") or str.find(current.onset, "^t͡ʃ") 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; adj or nouns -er, -or stressed -- coverts most cases, but plenty of exceptions to be fixed if #syllables > 1 and lect ~= "val" then if syllables.stress == #syllables then final_coda = str.gsub(final_coda, "^ɾ(s?)$", "%1") -- no loss with hint rr elseif str.find(pagename, "àixer$") or str.find(pagename, "ànyer$") or str.find(pagename, "[éè]ixer$") or str.find(pagename, "[éè]mer$") or str.find(pagename, "[éè]ncer$") or str.find(pagename, "[éè]nyer$") or str.find(pagename, "òrcer$") or str.find(pagename, "órrer$") then final_coda = str.gsub(final_coda, "^ɾ$", "") -- most unstressed -er verbs end 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 local term_syl = {} for i, syl in ipairs(syllables) do term_syl[i] = syl.onset .. syl.vowel .. syl.coda end term = table.concat(term_syl) if str.find(pagename, "l·l") then term = str.gsub(term, "ll", "l·l") -- restore geminated lost in splitSyllables() end if str.find(pagename, "-") then local first = str.match(pagename, "(.+)-") term = str.gsub(term, first, first .. "-") end 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) term = canonRespelling(term) 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 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 respelling = "r(s?)$:%1" 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} end local function preprocessWord(syllables, lect) -- Fix mid vowel if syllables.stress then 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) local pronuns = {} word = wordRespellings(word, lect) local syllables = splitSyllables(word, lect) syllables = preprocessWord(syllables, lect) 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) 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) 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) pagename = canonPagename(page_name or mw.title.getCurrentTitle().subpageText) local inputs = {} -- if 1= specified, do all lects local input_all = {} if pron[1] then input_all = listToSet(mw.text.split(pron[1], " ?, ?")) for _, lect in ipairs(lects) do inputs[lect] = pron[1] end end -- then do dialect groups for group, lects in pairs(groups_lects) do if pron[group] then for _, lect in ipairs(lects) do inputs[lect] = pron[group] end end if pron[group .. "2"] then for _, lect in ipairs(lects) do inputs[lect.. "2"] = pron[group .. "2"] end end end -- then do individual lect settings for _, lect in ipairs(input_lects) do if pron[lect] then inputs[lect] = pron[lect] elseif str.sub(lect, -1) == "2" and pron[str.sub(lect, 1, -2)] then inputs[lect] = pron[str.sub(lect, 1, -2)] 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] = pagename end end -- Parse the arguments local parsed_respellings = {} for lect, inputspec in pairs(inputs) do local input_split_on_comma = mw.text.split(inputspec, " ?, ?") -- 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 lect == "val" and input_part:find("^[r-]r$") and input_all[input_part] then input_part = "+" -- do not apply general r hints to Valencian end 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 parsed_respellings[lect] = parseRespelling(input_part, respelled) end end 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: -- =p.show({"ó", bal="-"}, "prova") return p o199hl1vehzhbwhvgedn0z30bp3gb72 sàller 0 364211 2301938 2275787 2024-04-17T10:54:56Z Vriullop 219 /* {{-ca-}} */ pron auto wikitext text/x-wiki == {{-ca-}} == {{ca-pron|or=-r|occ=-|rima=}} {{-etimologia-}} De {{m|ca|sallir}} amb canvi de conjugació. === Verb === {{ca-verb|i}} # {{marca|ca|septentrional}} [[sortir]] ==== Conjugació ==== {{ca-conj|centr=no|bal=no|alg=no|occ=no}} === Miscel·lània === * {{ca-sil}} * {{anagrames|ca|ralles|rallés}} === Vegeu també === * {{ca-dicc|diec|gdlc|dcvb}} q59gu18ecahfv8ci7tcht94iil98syo desésser 0 384434 2301922 2277237 2024-04-17T08:45:09Z Vriullop 219 /* {{-ca-}} */ wikitext text/x-wiki == {{-ca-}} == {{ca-pron|-r}} {{etim-comp|ca|des-|ésser}}. === Verb === {{ca-verb|i}} # {{marca|ca|només en infinitiu}} Deixar d’[[ésser]]. {{-trad-}} {{t-inici}} * {{eu}}: {{trad|eu|zendu}} * {{es}}: {{trad|es|[[dejar]] [[de]] [[ser]]}} * {{fr}}: {{trad|fr|}} * {{it}}: {{trad|it|}} {{t-final}} === Nom === {{ca-nom|m}} # [[inexistència]], [[no-res]] {{-trad-}} {{t-inici}} * {{es}}: {{trad|es|[[no]] [[ser]]}} {{t-final}} === Miscel·lània === * {{ca-sil|des·és·ser}} === Vegeu també === * {{ca-dicc|diec|gdlc|optimot}} 63ks733j2jp9bau4dh676xev2w86agt Basturs 0 396997 2301948 2253226 2024-04-17T11:35:21Z Vriullop 219 /* {{-ca-}} */ corr. pron wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} {{-etimologia-|xib|ca}} D’origen ibèric. Vegeu {{m|xib|baś}} i {{m|xib|tuŕś}}. === Nom propi === {{entrada|ca|nom propi}} # Poble de l'antic terme d'[[Orcau]], municipi d’{{w|Isona i Conca Dellà}}, al [[Pallars Jussà]]. {{-var-}} * [[Bastús]] === Miscel·lània === * {{ca-sil}} * {{anagrames|ca|arbusts|abstrús}} === Vegeu també === * {{Viquipèdia}} * {{ca-dicc|dcvb=bastús|optimot}} b7x8350853bojqk56ppdvg416gcbljy Clar 0 457167 2301954 2188710 2024-04-17T11:49:35Z Vriullop 219 /* {{-ca-}} */ wikitext text/x-wiki {{vegeu|clar|CLAR}} == {{-ca-}} == {{ca-pron|-r |f-centr=LL-Q7026 (cat)-Unjoanqualsevol-clar.wav }} {{-etimologia-}} De {{m|ca|clar}}. === Nom propi === {{entrada|ca|nom propi}} # {{cognom|ca}} {{-der-}} * [[Claret]], [[Clarís]], [[Clarassó]] === Miscel·lània === * {{anagrames|ca|lacr}} === Vegeu també === * {{Wikidata}} * {{ca-dicc|optimot}} * [http://www.idescat.cat/cognoms/?q=Clar Cognoms de la població], Idescat b5oo6iwy8jqa4bkp4byv3rokwvdqnsf iluso 0 457572 2301904 1883449 2024-04-16T15:24:04Z Pablussky 8432 wikitext text/x-wiki == {{-es-}} == {{es-pron}} {{etim-lang|la|es|illūsus}}, de {{m|la|illudĕre}}. === Adjectiu === {{es-adj|m}} # [[il·lús]] {{-sin-}} * {{e|es|ingenuo}} === Miscel·lània === * {{es-sil}} === Vegeu també === * {{DRAE}} ge3q4jep6sfjj0xik7l6yjq4am0q9rp Far 0 496777 2301946 2284402 2024-04-17T11:23:23Z Vriullop 219 /* {{-ca-}} */ corr. pron wikitext text/x-wiki {{vegeu|far}} == {{-ca-}} == {{ca-pron|or=-r}} {{-etimologia-}} De {{m|ca|far}}, com a cognom per l’ofici de [[faroner]]. === Nom propi === {{entrada|ca|nom propi}} # {{marca|ca|amb article|el Far}} {{def-meta|Diversos topònims catalans.}} ## Municipi de l’[[Alt Empordà]] situat al sud-est de [[Figueres]], amb determinant {{w|el Far d'Empordà}}. # {{cognom|ca}} {{-var-}} * {{q|topònim}} [[Alfar]] * {{q|cognom}} [[Fa]] {{-der-}} * {{q|el Far d’Empordà}} [[elfarenc]] === Miscel·lània === * {{anagrames|ca|fra|arf}} === Vegeu també === * {{ca-dicc|dcvb}} * [http://www.idescat.cat/cognoms/?q=Far Cognoms de la població], Idescat k9ktb1mv2ru316b5zkkb1l7f3yote8o florèixer 0 535283 2301926 2285148 2024-04-17T08:55:14Z Vriullop 219 /* {{-ca-}} */ corr. pron wikitext text/x-wiki == {{-ca-}} == {{ca-pron|ê}} {{etim-comp|ca|flor|+èixer}}, calc del castellà {{calc|es|ca|florecer}}, de l'antic {{m|es|florescer}}, {{del-lang|la|es|florescĕre}}, {{etim-s|ca|XIX}}. === Verb === {{ca-verb|i}} # {{marca|ca|castellanisme no normatiu}} [[florir]] #: {{ex-cit|ca|'''Floréixer''' veig aquesta desfulladisa rosa / en les joyoses festes de la paterna llar / en la uberta finestra de la fadrina hermosa / en los ciris encesos del lluminós altar.|ref=Teodor Llorente, ''A ma filla Maria'', 1879}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|dcvb}} 3ssj3mz7mbn57vkpr65heq2pppi6h2j vúlguer 0 542794 2301943 2273546 2024-04-17T11:02:32Z Vriullop 219 /* {{-ca-}} */ wikitext text/x-wiki == {{-ca-}} == {{ca-pron|or=-|nocc=-r|val=-|rima=-}} {{-etim-}} Per analogia amb formes com {{m|ca|vulguis}}. === Verb === {{ca-verb|t}} # {{marca|ca|nord-occidental}} [[voler]] === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ref-llibre |cognom=Masip i Vallès, Robert; Montardit i Asènsio, Ferran; Prenafeta i Agelet, David |títol=Lo diccionari lleidatà (Edició ampliada) |pàgines=227 |lloc=Juneda |editorial=Fonoll |any=2017 |isbn=978-84-946447-1-9 |capítol=V}} ok6pt6chl21eju6q98tun7qn8zx04y1 fumut 0 579477 2301928 2285711 2024-04-17T09:02:00Z Vriullop 219 /* {{-ca-}} */ etim wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} {{-etimologia-}} Eufemisme de {{m|ca|fotut}} a partir de la pronúncia oriental {{m|ca|*futut}}, de {{m|ca|fotre}}, {{etim-s|ca|XIX}}. === Adjectiu === {{ca-adj|m}} # [[fotut]] {{q|eufemisme}} {{-der-}} * [[fúmer]] === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|diec|dcvb}} huhltm2pem9inqxc2axzdf4di3xzvwt Arànser 0 600630 2301947 2176990 2024-04-17T11:30:08Z Vriullop 219 /* {{-ca-}} */ corr. pron wikitext text/x-wiki == {{-ca-}} == {{ca-pron|-r}} {{-etimologia-}} De {{m|roa-oca|*Arantzari}}, {{del-lang|eu|ca|arantzadi}}, col·lectiu de {{m|eu|arantza|t=espina, arç}}. Doblet de {{doblet|ca|Arinsal}}. === Nom propi === {{entrada|ca|nom propi}} # Poble del municipi de {{w|Lles de Cerdanya}}. {{-var-}} * [[Aransa]] {{q|arcaic}} === Miscel·lània === * {{ca-sil}} * {{anagrames|ca|serrana|arnar-se|arrasen|enrasar|arranes|arranés|arnares}} === Vegeu també === * {{Viquipèdia}} * {{ca-dicc|dcvb|gec|oncat}} ogbdx3ud76xlms3vh6wg1pfvvdi0a6n Dniéper 0 613981 2301957 2227628 2024-04-17T11:53:45Z Vriullop 219 /* {{-ca-}} */ wikitext text/x-wiki == {{-ca-}} == {{ca-pron|niépērr}} {{-etimologia-}} {{Del-lang|fr|ca|Dniéper}}, {{del-lang|pl|ca|Dniepr}}, {{del-lang|ru|ca|Днепр}}. === Nom propi === {{entrada|ca|nom propi|g=m}} # Riu de [[Rússia]], [[Belarús]] i [[Ucraïna]] fins a la mar Negra. {{-trad-}} {{t-inici}} * {{en}}: {{trad|en|Dnieper}} * {{be}}: {{trad|be|Дняпро́}} * {{fr}}: {{trad|fr|Dniepr|m}} * {{ru}}: {{trad|ru|Днепр}} * {{uk}}: {{trad|uk|Дніпро́}} {{t-final}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{Viquipèdia}} * {{ca-dicc|esadir|gec}} {{catllengua|ca|rius}} prmwoiwn8hs5yltxiwtmiy0wo72rq0k duondio 0 622344 2301896 2300691 2024-04-16T12:56:50Z Balamax 2550 wikitext text/x-wiki == {{-eo-}} == {{eo-pron}} {{àudio|LL-Q143 (epo)-Robin van der Vliet-duondio.wav}} === Nom === {{eo-entrada}} # [[semidéu]] === Miscel·lània === * {{síl|eo|du·on·di·o}} 2hj5n0nsa12jofxzkelpp16hj3ejtm7 mamilinció 0 622382 2301897 2024-04-16T14:06:35Z Aniol 4830 Es crea la pàgina amb «== {{-ca-}} == {{ca-pron}} {{etimologia|ca}} === Nom === {{ca-nom|f}} # {{marca|ca|sexualitat}} Estimulació dels mugrons i mamelles de forma eròtica. [[Categoria:Sexualitat en català]] {{-trad-}} {{t-inici}} {{t-final}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{Viquipèdia}} * {{ca-dicc|diec}}». wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} {{etimologia|ca}} === Nom === {{ca-nom|f}} # {{marca|ca|sexualitat}} Estimulació dels mugrons i mamelles de forma eròtica. [[Categoria:Sexualitat en català]] {{-trad-}} {{t-inici}} {{t-final}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{Viquipèdia}} * {{ca-dicc|diec}} 4d78zkc7jvxj6xrblkazk56tvd6ggwn 2301898 2301897 2024-04-16T14:06:51Z Aniol 4830 /* Vegeu també */ wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} {{etimologia|ca}} === Nom === {{ca-nom|f}} # {{marca|ca|sexualitat}} Estimulació dels mugrons i mamelles de forma eròtica. [[Categoria:Sexualitat en català]] {{-trad-}} {{t-inici}} {{t-final}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|diec}} 958x80hbdt4bkfsqexsjnix27cmo8hx 2301911 2301898 2024-04-17T06:11:26Z Vriullop 219 /* {{-ca-}} */ etim, trad wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} {{-etimologia-}} Del {{comp|ca|mami-|linctio|lang2=la}}, de {{m|la|lingō|t=llepar}}, per analogia amb {{m|ca|cunnilinció}}. === Nom === {{ca-nom|f}} # {{marca|ca|sexualitat}} Estimulació dels mugrons i mamelles de forma eròtica. {{-trad-}} {{t-inici}} * {{en}}: {{trad|en|mammalingus}} * {{es}}: {{trad|es|mamilingus|m}} {{t-final}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|diec|dnv|gdlc|termcat}} jlmkns2e9wp279zc1d6mf5ybzpfysf0 vistas 0 622383 2301901 2024-04-16T14:17:32Z Pablussky 8432 Es crea la pàgina amb «== {{-es-}} == {{es-pron}} === Nom === {{es-nom-forma|fp}} # {{forma-p|es|vista}} === Verb === {{es-verb-forma|ver}} # {{es-forma-conj|ver|part|f|p}} === Verb === {{es-verb-forma|vestir}} # {{es-forma-conj|vestir|2|pres|subj}} === Miscel·lània === * {{es-sil}}». wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Nom === {{es-nom-forma|fp}} # {{forma-p|es|vista}} === Verb === {{es-verb-forma|ver}} # {{es-forma-conj|ver|part|f|p}} === Verb === {{es-verb-forma|vestir}} # {{es-forma-conj|vestir|2|pres|subj}} === Miscel·lània === * {{es-sil}} dc4lrdww6jgn6v63cno16hrrxasai9l 0 622384 2301903 2024-04-16T15:14:11Z Pablussky 8432 Es crea la pàgina amb «== {{-ja-}} == === Nom === {{ja-lema|nom|はな}} # [[flor]] {{catllengua|ja|biologia}}». wikitext text/x-wiki == {{-ja-}} == === Nom === {{ja-lema|nom|はな}} # [[flor]] {{catllengua|ja|biologia}} du8iimj6cvgmk3aw1fjok5ai40p28lw fístula 0 622385 2301905 2024-04-16T15:39:46Z Pablussky 8432 Es crea la pàgina amb «{{vegeu|fistula}} == {{-ca-}} == {{ca-pron|rima=}} {{etim-lang|la|ca|fistula}}. === Nom === {{ca-nom|f}} # {{marca|ca|medicina}} Comunicació [[patològic]]a entre una estructura corporal i l'exterior o bé entre dos estructures diferents. #: {{ex-us|ca|una fístula anal, una fístula arteriovenosa}} {{-trad-}} {{t-inici}} * {{en}}: {{trad|en|fistula}} * {{es}}: {{trad|es|fístula}} {{t-final}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{Vi...». wikitext text/x-wiki {{vegeu|fistula}} == {{-ca-}} == {{ca-pron|rima=}} {{etim-lang|la|ca|fistula}}. === Nom === {{ca-nom|f}} # {{marca|ca|medicina}} Comunicació [[patològic]]a entre una estructura corporal i l'exterior o bé entre dos estructures diferents. #: {{ex-us|ca|una fístula anal, una fístula arteriovenosa}} {{-trad-}} {{t-inici}} * {{en}}: {{trad|en|fistula}} * {{es}}: {{trad|es|fístula}} {{t-final}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{Viquipèdia}} * {{ca-dicc|gdlc|dcvb|diec}} == {{-es-}} == {{es-pron|rima=}} {{etim-lang|la|es|fistŭla}}, {{etim-s|es|XIII}}. === Nom === {{es-nom|f}} # [[#ca|fístula]] === Miscel·lània === * {{es-sil}} === Vegeu també === * {{Viquipèdia|lang=es}} * {{DRAE}} {{catllengua|es|medicina}} o3mgq6a8g2kgfi6rvri5avt02qbo780 fístules 0 622386 2301906 2024-04-16T15:39:54Z Pablussky 8432 Creant formes de [[fístula]] ([[VC:ACC|Accelerat]]) wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} === Nom === {{ca-nom-forma|fp}} # {{forma-p|ca|fístula}} === Miscel·lània === * {{ca-sil}} oujmm0hu6gb0w86ftsinobpme6ikr4e fístulas 0 622387 2301907 2024-04-16T15:40:09Z Pablussky 8432 Creant formes de [[fístula]] ([[VC:ACC|Accelerat]]) wikitext text/x-wiki {{vegeu|fistulas}} == {{-es-}} == {{es-pron}} === Nom === {{es-nom-forma|fp}} # {{forma-p|es|fístula}} === Miscel·lània === * {{es-sil}} rmzdm24nb2flkwma0dkn06qzis0jl3e 2301908 2301907 2024-04-16T15:40:18Z Pablussky 8432 wikitext text/x-wiki {{vegeu|fistulas}} == {{-es-}} == {{es-pron|rima=}} === Nom === {{es-nom-forma|fp}} # {{forma-p|es|fístula}} === Miscel·lània === * {{es-sil}} 8clpt6m60n1zn4tl7uhetao5hie3blh demokrata 0 622388 2301910 2024-04-16T16:52:54Z Flummont 22344 Es crea la pàgina amb «== {{-eu-}} == === Nom === {{eu-nom|an}} # [[demòcrata]] ==== Declinació ==== {{eu-nom-decl|an}}». wikitext text/x-wiki == {{-eu-}} == === Nom === {{eu-nom|an}} # [[demòcrata]] ==== Declinació ==== {{eu-nom-decl|an}} n38ma5xhadqdm4e9fim28drrwwva7k9 mamilincions 0 622389 2301912 2024-04-17T06:50:54Z Pau Colominas 5090 Creant formes de [[mamilinció]] ([[VC:ACC|Accelerat]]) wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} === Nom === {{ca-nom-forma|fp}} # {{forma-p|ca|mamilinció}} === Miscel·lània === * {{ca-sil}} d3ve8kzapfmor5kgn5f6gar619w0gjf 2301914 2301912 2024-04-17T07:12:03Z Vriullop 219 /* {{-ca-}} */ pron ó wikitext text/x-wiki == {{-ca-}} == {{ca-pron|ó}} === Nom === {{ca-nom-forma|fp}} # {{forma-p|ca|mamilinció}} === Miscel·lània === * {{ca-sil}} 58go56x9acsngs202bq2lw8bil3xbbq Usuari Discussió:Aniol 3 622390 2301913 2024-04-17T06:52:03Z Pau Colominas 5090 Es crea la pàgina amb «{{subst:benvinguda}} Espero que t'animis a continuar col·laborant amb el Viccionari :) --~~~~». wikitext text/x-wiki {{Ajuda}} {{benvinguda-taula}} <big>'''''Hola {{PAGENAME}}!'''''</big>, sigueu benvingut al Viccionari i al coneixement lliure. Us encoratgem especialment, abans que res, a visitar la '''[[Viccionari:Introducció|introducció]]''' per a un començament fàcil en tres senzills passos [[Fitxer:Smile3 no-blur.svg|15px|somriure|enllaç=]] Aquesta és la [[w:Ajuda:Pàgines de discussió|pàgina de discussió]] del vostre compte d'usuari, que us servirà per a rebre missatges d'altres col·laboradors. A més, teniu la vostra '''[[Usuari:{{PAGENAME}}|pàgina d'usuari]]''', on podeu posar les vostres dades, interessos, etc. Podeu visitar '''[[Viccionari:Babel]]''' per a indicar quines llengües coneixeu. Si voleu trobar idees per a contribuir al projecte, visiteu el [[Viccionari:Portal|Portal del Viccionari]], on podreu coordinar-vos amb la resta dels usuaris. Així mateix, disposeu també de [[Viccionari:La taverna|la taverna]], per plantejar-hi els vostres dubtes, suggeriments o comentaris. Podeu signar en les discussions amb el botó de la barra d'edició [[Fitxer:OOjs UI icon signature-ltr.svg|border|link=|alt=Icona per a signar]], o bé amb el codi <code style="background: transparent;"><nowiki>--~~~~</nowiki></code>. ---- Espero que t'animis a continuar col·laborant amb el Viccionari :) --[[Usuari:Pau Colominas|Pau Colominas]] ([[Usuari Discussió:Pau Colominas|discussió]]) 08:52, 17 abr 2024 (CEST) fyoa8mit2pu0iaqcim48vrbrh4npsoh