Viccionari cawiktionary https://ca.wiktionary.org/wiki/Viccionari:Portada MediaWiki 1.47.0-wmf.6 case-sensitive Media Especial Discussió Usuari Usuari Discussió Viccionari Viccionari Discussió Fitxer Fitxer Discussió MediaWiki MediaWiki Discussió Plantilla Plantilla Discussió Ajuda Ajuda Discussió Categoria Categoria Discussió TimedText TimedText talk Mòdul Mòdul Discussió Event Event talk persa 0 2476 2696441 2554734 2026-06-10T21:21:21Z Auteuil-Passy 25399 /* {{-ca-}} */ Πέρσης (Pérsēs) 2696441 wikitext text/x-wiki == {{-ca-}} == {{ca-pron|è}} {{-etimologia-}} {{Del-lang|roa-oca|ca|persà}}, {{del-lang|la|ca|Persa}}, {{del-lang|grc|ca|Πέρσης|trans=Pérsēs}}, {{del-lang|peo|ca|𐎱𐎠𐎼𐎿|trad=Persia, persa|trans=Pārsa}}, d’origen incert potser relacionat amb {{m|ca||frontera}}. === Adjectiu === {{ca-adj|i}} # Originari, pertanyent o relatiu a [[Pèrsia]]. {{-trad-}} {{t-inici|Relatiu a Pèrsia}} * {{sq}}: {{trad|sq|persian}} * {{en}}: {{trad|en|Persian}} * {{ar}}: {{trad|ar|فَارِسِيّ‎}} * {{hy}}: {{trad|hy|պարսկական}} * {{ast}}: {{trad|ast|persa}} * {{be}}: {{trad|be|персі́дскі}} * {{bg}}: {{trad|bg|перси́йски}} * {{es}}: {{trad|es|persa}} * {{ko}}: {{trad|ko|페르시아의}} * {{da}}: {{trad|da|persisk}} * {{sk}}: {{trad|sk|perzský}} * {{sl}}: {{trad|sl|perzijski}} * {{et}}: {{trad|et|pärsia}} * {{fo}}: {{trad|fo|persiskur}} * {{fi}}: {{trad|fi|persialainen}} * {{fr}}: {{trad|fr|persan}} * {{fur}}: {{trad|fur|persian}} * {{ka}}: {{trad|ka|სპარსული}} * {{el}}: {{trad|el|περσικός}} * {{grc}}: {{trad|grc|Περσικός}} * {{he}}: {{trad|he|פַּרְסִי‎}} * {{hi}}: {{trad|hi|फ़ारसी}} * {{hu}}: {{trad|hu|perzsa}} * {{it}}: {{trad|it|persiano}} * {{kk}}: {{trad|kk|фарс}} * {{ky}}: {{trad|ky|фарс}} * {{ku}}: {{trad|ku|farisî}} * {{lv}}: {{trad|lv|persiešu}} * {{lt}}: {{trad|lt|persų}} * {{la}}: {{trad|la|persicus}} * {{mk}}: {{trad|mk|персиски}} * {{ms}}: {{trad|ms|Parsi}} * {{mn}}: {{trad|mn|перс}} * {{nl}}: {{trad|nl|Perzisch}} * {{no}}: {{trad|no|persisk}} * {{pl}}: {{trad|pl|perski}} * {{pt}}: {{trad|pt|persa}} * {{ro}}: {{trad|ro|persan}} * {{ru}}: {{trad|ru|перси́дский}} * {{sh}}: {{trad|sh|пeрзӣјскӣ}}, {{trad|sh|perzijski}} * {{tg}}: {{trad|tg|форсӣ}} * {{th}}: {{trad|th|เปอร์เซีย}} * {{tt}}: {{trad|tt|фарсы}} * {{tr}}: {{trad|tr|Fars}} * {{cs}}: {{trad|cs|perský}} * {{uk}}: {{trad|uk|пе́рський}} * {{ur}}: {{trad|ur|فارسی‎}} * {{zh}}: {{trad|zh|波斯的}} {{t-final}} === Nom === {{ca-nom|mf}} # Natural de [[Pèrsia]]. # {{marca|ca|només singular}} Idioma de [[Pèrsia]]. {{-trad-}} {{t-inici|Persona natural de Pèrsia}} * {{de}}: {{trad|de|Perser|m}}, {{trad|de|Perserin|f}} * {{en}}: {{trad|en|Persian}} * {{ar}}: {{trad|ar|فَارِسِيّ‎|m}} * {{hy}}: {{trad|hy|պարսիկ}} * {{ast}}: {{trad|ast|persa}} * {{eu}}: {{trad|eu|persiar}} * {{bg}}: {{trad|bg|персиец|m}}, {{trad|bg|персийка|f}} * {{es}}: {{trad|es|persa|m-f}} * {{da}}: {{trad|da|perser|c}} * {{sk}}: {{trad|sk|Peržan|m}}, {{trad|sk|Peržanka|f}} * {{sl}}: {{trad|sl|Perzijec|m}}, {{trad|sl|Perzijka|f}} * {{eo}}: {{trad|eo|persiano}} * {{fo}}: {{trad|fo|persi|m}} * {{fr}}: {{trad|fr|Perse|m-f}} * {{fur}}: {{trad|fur|persian|m}} * {{gl}}: {{trad|gl|persa|m-f}} * {{ka}}: {{trad|ka|სპარსელი}} * {{el}}: {{trad|el|Πέρσης|m}}, {{trad|el|Περσίδα|f}} * {{grc}}: {{trad|grc|Πέρσης|m}}, {{trad|grc|Περσίς|f}} * {{he}}: {{trad|he|פָּרְסִי‎|m}} * {{hi}}: {{trad|hi|पारसी|m}} * {{hu}}: {{trad|hu|perzsa}} * {{it}}: {{trad|it|persiano|m}} * {{lv}}: {{trad|lv|persietis|m}}, {{trad|lv|persiete|f}} * {{lt}}: {{trad|lt|persas|m}}, {{trad|lt|persė|f}} * {{la}}: {{trad|la|perses|m-f}} * {{ms}}: {{trad|ms|Parsi}} * {{nl}}: {{trad|nl|Pers|m}}, {{trad|nl|Perzische|f}} * {{no}}: {{trad|no|perser|m}} * {{oc}}: {{trad|oc|persan|m}} * {{pl}}: {{trad|pl|Pers|m}} * {{pt}}: {{trad|pt|persa|m-f}} * {{ro}}: {{trad|ro|persan|m}}, {{trad|ro|persană|f}} * {{sw}}: {{trad|sw|Mwajemi}} * {{sv}}: {{trad|sv|perser}} * {{tg}}: {{trad|tg|форсӣ}} * {{tr}}: {{trad|tr|Fars}} * {{cs}}: {{trad|cs|Peršan|m}}, {{trad|cs|Peršanka|f}} * {{zh}}: {{trad|zh|波斯人}} {{t-final}} {{t-inici|Idioma}} * {{sq}}: {{trad|sq|gjuha perse}} * {{de}}: {{trad|de|Persisch|n}} * {{en}}: {{trad|en|Persian}} * {{ar}}: {{trad|ar|فَارِسِيّ‎|m}} * {{hy}}: {{trad|hy|պարսկերեն}} * {{ast}}: {{trad|ast|persa}} * {{eu}}: {{trad|eu|persiera}} * {{be}}: {{trad|be|персі́дская мо́ва|f}} * {{br}}: {{trad|br|perseg|m}} * {{bg}}: {{trad|bg|перси́йски|m}} * {{es}}: {{trad|es|persa}} * {{da}}: {{trad|da|persisk}} * {{sk}}: {{trad|sk|perzština|f}} * {{sl}}: {{trad|sl|perzijščina|f}} * {{eo}}: {{trad|eo|persa lingvo}} * {{et}}: {{trad|et|pärsia}} * {{fo}}: {{trad|fo|persiskt|n}} * {{fi}}: {{trad|fi|persia}} * {{fr}}: {{trad|fr|persan|m}} * {{gl}}: {{trad|gl|persa|m}} * {{ka}}: {{trad|ka|სპარსული}} * {{el}}: {{trad|el|περσικά|n-p}} * {{grc}}: {{trad|grc|περσιστί}} * {{he}}: {{trad|he|פרסית‎|f}} * {{hi}}: {{trad|hi|फ़ारसी|f}} * {{hu}}: {{trad|hu|perzsa}} * {{ga}}: {{trad|ga|Peirsis|f}} * {{is}}: {{trad|is|persneska|f}} * {{it}}: {{trad|it|persiano}} * {{ku}}: {{trad|ku|farisî}} * {{lv}}: {{trad|lv|persiešu}} * {{lt}}: {{trad|lt|persų}} * {{mk}}: {{trad|mk|пе́рсиски|m}} * {{ms}}: {{trad|ms|bahasa Parsi}} * {{mt}}: {{trad|mt|Il-Persjan|m}} * {{mn}}: {{trad|mn|перс хэл}} * {{nl}}: {{trad|nl|Perzisch|n}} * {{no}}: {{trad|no|persisk|m}} * {{pl}}: {{trad|pl|perski|m}} * {{pt}}: {{trad|pt|persa|m}} * {{ro}}: {{trad|ro|persană|f}} * {{ru}}: {{trad|ru|фарси́|m}} * {{sh}}: {{trad|sh|перзијски}} * {{sw}}: {{trad|sw|Kiajemi}} * {{sv}}: {{trad|sv|persiska}} * {{tg}}: {{trad|tg|забони форсӣ}} * {{tl}}: {{trad|tl|Persa}} * {{th}}: {{trad|th|ภาษาเปอร์เซีย}} * {{tt}}: {{trad|tt|фарси теле}} * {{tr}}: {{trad|tr|Farsça}} * {{cs}}: {{trad|cs|perština|f}} * {{uk}}: {{trad|uk|перси́дська мо́ва|f}} * {{ur}}: {{trad|ur|فارسی‎|f}} * {{vi}}: {{trad|vi|tiếng Ba Tư}} * {{zh}}: {{trad|zh|波斯語}} {{t-final}} === Miscel·lània === * {{ca-sil}} * {{anagrames|ca|Parés|après|aprés|arpes|arpés|aserp|aspre|paers|pares|pesar|presa|rapes|rapès|rapés|repàs|separ|preàs|parés}} === Vegeu també === * {{Viccionari|fa}} * {{Categoria de llengua}} * {{Viquipèdia}} * {{ca-dicc|diec|gdlc|optimot}} {{catllengua|ca|Gentilicis|Llengües}} == {{-es-}} == {{es-pron}} {{etimologia|es}} === Nom === {{es-nom|mf}} # {{marca|es|invariable}} {{e|ca|persa}} {{q|llengua}} # {{e|ca|persa}} {{q|natural de Pèrsia}} === Adjectiu === {{es-adj|i}} # {{e|ca|persa}} {{q|gentilici}} === Miscel·lània === * {{es-sil}} bpup5jdrfp8x6phctnwhvng22eoo5gc arrencar 0 18604 2696442 2696282 2026-06-11T04:32:22Z Tmagc 22451 ya hay un equivalente en latín, no es necesario ir a buscar tan lejos 2696442 wikitext text/x-wiki == {{-ca-}} == {{ca-pron|tipus=inf}} {{homòfons|ca|arrancà|arrancar|arrencà}} {{-etimologia-|la|ca}} Probablement del llatí {{m|la|erunco|eruncāre}}, {{etim-s|ca|XI}}. Cognat de l’occità, castellà i portuguès {{m|es|arrancar}}. === Verb === {{ca-verb|t-i}} # Treure d'[[arrel]] allò que està plantat o fortament adherit. # {{marca|ca|medicina}} [[expectorar]] # Començar bruscament amb esforç. # [[partir|Partir]], començar a moure's. ==== Conjugació ==== {{ca-conj|alg=-|alt=-|rizo=ê}} {{-var-}} * [[arrancar]] *: Les formes més antigues documentades són ''arrencar'', però des d’antic es constata l’alternança de ''arrencar'' i ''arrancar''. Actualment ''arrancar'' és més usat en català occidental, tot i que no exclusivament. {{-sin-}} * [[pelar]], [[treure]] * [[aparèixer]], [[començar]], [[debutar]], [[formar-se]], [[néixer]], [[originar-se]], [[sorgir]] {{-der-}} * [[arrencada]] * [[arrencadissa]] * [[arrencador]] * [[arrencament]] * [[arrencat]] {{-trad-}} {{t-inici|Treure d'arrel}} * {{de}}: {{trad|de|wegreißen}}, {{trad|de|ausreißen}}, {{trad|de|abreißen}} * {{es}}: {{trad|es|arrancar}} * {{fr}}: {{trad|fr|arracher}}, {{trad|fr|déraciner}}, {{trad|fr|extorquer}} * {{it}}: {{trad|it|sradicare}}, {{trad|it|svellere}} {{t-final}} {{t-inici|Començar bruscament amb esforç}} * {{en}}: {{trad|en|start}} * {{es}}: {{trad|es|arrancar}} * {{fr}}: {{trad|fr|élancer}} * {{it}}: {{trad|it|lanciarsi}} {{t-final}} {{t-inici|Partir, començar a moure's}} * {{es}}: {{trad|es|arrancar}} * {{fr}}: {{trad|fr|démarrer}} * {{it}}: {{trad|it|partire}} {{t-final}} === Miscel·lània === * {{ca-sil}} * {{anagrames|ca|carraren}} === Vegeu també === * {{ca-dicc|diec|gdlc|optimot|decat}} * {{R:CCLFI 1839}} * {{sin-Softcatalà}} a5cazi0eo2vrbgswjb27lbynna8bgvp 2696455 2696442 2026-06-11T08:54:22Z Vriullop 219 /* {{-ca-}} */ d'origen incert, deixo les dues possibilitats 2696455 wikitext text/x-wiki == {{-ca-}} == {{ca-pron|tipus=inf}} {{homòfons|ca|arrancà|arrancar|arrencà}} {{-etimologia-}} D’origen incert, {{etim-s|ca|XI}}.<ref>[https://www.diccionari.cat/cerca/gran-diccionari-de-la-llengua-catalana?search_api_fulltext_cust=arrencar Arrencar] ''Gran Diccionari de la Llengua Catalana'', Grup Enciclopèdia Catalana. Original de J. Bruguera i A. Fluvià, ''Diccionari etimològic'', 1996</ref> Cognat de l’occità, castellà i portuguès {{m|es|arrancar}}. Potser {{del-lang|la|ca|erunco|ēruncāre|t=birbar, arrencar herbes}} (d’on els romànics gal·loitàlics i balcànics ''arro/u-'') o {{m|la|eradico|ērādīcāre|t=desarrelar, arrencar de soca-rel}} (d’on els gal·loromànics ''arrach-/arrig-''), però hi ha dificultats morfològiques i semàntiques.<ref>{{DECH|arrancar}}</ref> Coromines, seguint a Meyer-Lübke, proposa un origen paracèltic{{del-lang|qsb-his-sxo|ca}} afí al lituà {{m|lt|riñkti|t=collir}} i alemany {{m|de|renken|t=retòrcer}}.<ref>{{DECat|I|421}}</ref> === Verb === {{ca-verb|t-i}} # Treure d'[[arrel]] allò que està plantat o fortament adherit. # {{marca|ca|medicina}} [[expectorar]] # Començar bruscament amb esforç. # [[partir|Partir]], començar a moure's. ==== Conjugació ==== {{ca-conj|alg=-|alt=-|rizo=ê}} {{-var-}} * [[arrancar]] *: Les formes més antigues documentades són ''arrencar'', però des d’antic es constata l’alternança de ''arrencar'' i ''arrancar''. Actualment ''arrancar'' és més usat en català occidental, tot i que no exclusivament. {{-sin-}} * [[pelar]], [[treure]] * [[aparèixer]], [[començar]], [[debutar]], [[formar-se]], [[néixer]], [[originar-se]], [[sorgir]] {{-der-}} * [[arrencada]] * [[arrencadissa]] * [[arrencador]] * [[arrencament]] * [[arrencat]] {{-trad-}} {{t-inici|Treure d'arrel}} * {{de}}: {{trad|de|wegreißen}}, {{trad|de|ausreißen}}, {{trad|de|abreißen}} * {{es}}: {{trad|es|arrancar}} * {{fr}}: {{trad|fr|arracher}}, {{trad|fr|déraciner}}, {{trad|fr|extorquer}} * {{it}}: {{trad|it|sradicare}}, {{trad|it|svellere}} {{t-final}} {{t-inici|Començar bruscament amb esforç}} * {{en}}: {{trad|en|start}} * {{es}}: {{trad|es|arrancar}} * {{fr}}: {{trad|fr|élancer}} * {{it}}: {{trad|it|lanciarsi}} {{t-final}} {{t-inici|Partir, començar a moure's}} * {{es}}: {{trad|es|arrancar}} * {{fr}}: {{trad|fr|démarrer}} * {{it}}: {{trad|it|partire}} {{t-final}} === Miscel·lània === * {{ca-sil}} * {{anagrames|ca|carraren}} === Vegeu també === * {{ca-dicc|diec|gdlc|optimot|decat}} * {{sin-Softcatalà}} {{referències}} qwjf69ilksw55ui3whwur87mx9u515p selectivitat 0 159221 2696399 2257152 2026-06-10T14:08:37Z ~2026-34098-05 25998 /* Nom */ 2696399 wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} {{etim-comp|ca|selectiu|-itat}}. === Nom === {{ca-nom|f}} # Qualitat de [[selectiu]]. # [[prova d'accés a la universitat]] {{-trad-}} {{t-inici}} * {{en}}: {{trad|en|selectivity}} * {{es}}: {{trad|es|selectividad|f}} * {{fr}}: {{trad|fr|sélectivité|f}} * {{gl}}: {{trad|gl|selectividade|f}} * {{it}}: {{trad|it|selectività|f}} * {{pt}}: {{trad|pt|seletividade|f}} * {{sv}}: {{trad|sv|selektivitet|c}} {{t-final}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{Viquipèdia}} * {{ca-dicc|gdlc}} * {{Amical-Termcat|educació}} itwkymtnlsq7c14gopabj7dplv36rq8 còrrec 0 186396 2696438 2321639 2026-06-10T17:51:37Z Vriullop 219 /* {{-ca-}} */ amplio etim 2696438 wikitext text/x-wiki == {{-ca-}} == {{ca-pron|ò}}<!-- ó DCVB incorrecte--> {{-etim-}} Del llatí hispànic {{del-lang|la|ca}}{{m|la|corrugus|t=barranc de rentatge en mineria, llit de torrent pendent}}, d’origen preromà{{del-lang|qsb-his-ine|ca}}, {{del-lang|ine-pro|ca|*(s)ker-|t=tallar, rompre}}, {{etim-s|ca|XII}}. Cognat del portuguès {{m|pt|córrego}}, castellà dialectal {{m|es|cuérrago}}, asturià {{m|ast|cuérrabu}}. === Nom === {{ca-nom|m}} # {{marca|ca|central|septentrional|nord-occidental}} [[torrentera|Torrentera]] estreta i pendent. # {{marca|ca|tortosí}} {{sinònim|ca|xaragall}} {{-der-}} * [[corregada]] * [[corregall]] * [[escòrrec]] === Miscel·lània === * {{ca-sil}} * {{anagrames|ca|corcer}} === Vegeu també === * {{ca-dicc|diec|gdlc|optimot|decat}} f3t5kasjovrmr6iqeevfep03c44mtzm 2696439 2696438 2026-06-10T17:55:26Z Vriullop 219 /* {{-ca-}} */ trad 2696439 wikitext text/x-wiki == {{-ca-}} == {{ca-pron|ò}}<!-- ó DCVB incorrecte--> {{-etim-}} Del llatí hispànic {{del-lang|la|ca}}{{m|la|corrugus|t=barranc de rentatge en mineria, llit de torrent pendent}}, d’origen preromà{{del-lang|qsb-his-ine|ca}}, {{del-lang|ine-pro|ca|*(s)ker-|t=tallar, rompre}}, {{etim-s|ca|XII}}. Cognat del portuguès {{m|pt|córrego}}, castellà dialectal {{m|es|cuérrago}}, asturià {{m|ast|cuérrabu}}. === Nom === {{ca-nom|m}} # {{marca|ca|central|septentrional|nord-occidental}} [[torrentera|Torrentera]] estreta i pendent. # {{marca|ca|tortosí}} {{sinònim|ca|xaragall}} {{-der-}} * [[corregada]] * [[corregall]] * [[escòrrec]] {{-trad-}} {{t-inici}} * {{en}}: {{trad|en|gully}} * {{es}}: {{trad|es|arroyada|f}} * {{fr}}: {{trad|fr|ravine|f}} {{t-final}} === Miscel·lània === * {{ca-sil}} * {{anagrames|ca|corcer}} === Vegeu també === * {{ca-dicc|diec|gdlc|optimot|decat}} lfistfn3kvc2br058ae0sfy0mgliio8 Mòdul:diccionaris 828 186501 2696440 2673348 2026-06-10T18:08:20Z Vriullop 219 l'enllaç decat ha canviat 2696440 Scribunto text/plain local p = {} local encode = require("Module:urlencode").encode -- ca-dicc local function dalg_link(id) return "[http://www.algueres.net/busca.aspx?busca=" .. id .. ' <span title="Diccionari d\'Alguerés">DAlg</span>]' end local function dcvb_link(id) return "[https://dcvb.iec.cat/results.asp?word=" .. id .. '&re=true <span title="Diccionari català-valencià-balear, Alcover-Moll">DCVB</span>]' end local function decat_link(id) if string.match(id, "^%d+$") then return "[https://decat.iec.cat/veuredoc.asp?id=" .. id .. ' <span title="Diccionari etimològic i complementari de la llengua catalana">DECat</span>]' else return "[https://decat.iec.cat/cerca-inici/?wdt_var1=" .. id .. ' <span title="Diccionari etimològic i complementari de la llengua catalana">DECat</span>]' end end local function dem_link(id) return "[https://www.demcat.cat/ca/diccionaris-portal/183/search/" .. id .. '?type=basic&condition=match <span title="Diccionari enciclopèdic de medicina">DEM</span>]' end local function diec_link(id) return "[https://dlc.iec.cat/Results?DecEntradaText=" .. id .. '&AccentSen=True <span title="Diccionari de l\'Institut d\'Estudis Catalans">DIEC</span>]' end local function diec1_link(id) return "[https://bdlex.iec.cat/scripts/Qorth1.asp?diccFixat=@DIEC1&orthorig=" .. id .. ' <span title="Diccionari de l\'Institut d\'Estudis Catalans 1995">DIEC1</span>]' end local function dnv_link(id) return "[http://www.avl.gva.es/lexicval/xhtml/dnv.xhtml?paraula=" .. id .. ' <span title="Diccionari normatiu valencià">DNV</span>]' end local function dsff_link(id) return "[https://dsff.uab.cat/cerca?mode=Cont%C3%A9&frase=" .. id .. ' <span title="Diccionari de sinònims de frases fetes">DSFF</span>]' end local function eeif_link(id) return "[http://www.eeif.cat/veus/" .. id .. '/ <span title="Enciclopèdia d\'Eivissa i Formetera">EEiF</span>]' end local function esadir_link(id) return "[http://esadir.cat/Cerca?cerca=" .. id .. '&criteri=General <span title="Portal lingüístic de la Corporació Catalana de Mitjans Audiovisuals">ésAdir</span>]' end local function gdlc_link(id) return "[https://www.diccionari.cat/cerca/gran-diccionari-de-la-llengua-catalana?search_api_fulltext_cust=" .. id .. ' <span title="Gran Diccionari de la llengua catalana">GDLC</span>]' end local function gec_link(id) return '[https://www.enciclopedia.cat/cerca/gec?search_api_fulltext=' .. id .. '&field_faceta_cerca_1=938 <span title="Gran Enciclopèdia Catalana">GEC</span>]' end local function oncat_link(id) if string.match(id, "^%d+$") then return "[https://oncat.iec.cat/veuredoc.asp?id=" .. id .. ' <span title="Onomasticon Cataloniae">OnCat</span>]' else return "[https://oncat.iec.cat/llista_termes.asp?limit=1&terme=" .. id .. '&button=Cercar <span title="Onomasticon Cataloniae">OnCat</span>]' end end local function optimot_link(id) return "[https://aplicacions.llengua.gencat.cat/llc/AppJava/index.html?action=Principal&method=cerca_generica&tipusCerca=cerca.queSignifica&input_cercar=" .. id .. " <span title=\"Optimot, consultes lingüístiques\">Optimot</span>]" end local function ptv_link(id) return "[http://www.avl.gva.es/lexicval/ptv?paraula=" .. id .. ' <span title="Portal Terminològic Valencià">PTV</span>]' end local function termcat_link(id) return "[http://www.termcat.cat/ca/cercaterm/" .. id .. '?type=advanced&language=ca&condition=match&fields=denominacio <span title="Termcat, centre de terminologia">Termcat</span>]' end -- csc-dicc local function sematos_link(id) return "[http://www.sematos.eu/lsc-r-" .. id .. "-ca.html Sematos]" end local function wikisign_link(id) return "[http://lsc.wikisign.org/wiki/" .. id .. ' Wikisign]' end -- en-dicc local function cambridge_link(id) return "[https://dictionary.cambridge.org/dictionary/english/" .. id .. ' <span title="Cambridge English Dictionary">Cambridge</span>]' end local function collins_link(id) return "[https://www.collinsdictionary.com/dictionary/english/" .. id .. ' <span title="Collins English Dictionary">Collins</span>]' end local function dict_link(id) return "[https://www.dictionary.com/browse/" .. id .. ' <span title="Dictionary.com">Dict</span>]' end local function merriam_link(id) return "[https://www.merriam-webster.com/dictionary/" .. id .. ' <span title="Merriam-Webster Dictionary">Merriam</span>]' end local function urban_link(id) return "[https://www.urbandictionary.com/define.php?term=" .. id .. ' <span title="Urban Dictionary">Urban</span>]' end -- roa-oca-dicc local function cival_link(id) return "[http://cival.avl.gva.es/cival/buscador.jsp?paraula=" .. id .. ' <span title="Corpus Informatitzat del Valencià">CIVAL</span>]' end local function dtca_link(id) return "[http://www.ub.edu/diccionari-dtca/?txt=" .. id .. ' <span title="Diccionari de Textos Catalans Antics">DTCA</span>]' end local function faraudo_link(id) return "[http://www.iec.cat/faraudo/results.asp?search=" .. id .. '&optCriteria=0&optSearchType=1 <span title="Vocabulari de la llengua catalana medieval, Lluís Faraudo">Faraudo</span>]' end -- funcions xx_diccionaris local function process(frame, args, dicos) local pagename = mw.title.getCurrentTitle().subpageText local params = {} local valid_dict = {} for _, dic in ipairs(dicos) do valid_dict[dic[1]] = true end for name, val in pairs(args) do if type(name) == "number" then if valid_dict[val] and not params[val] then params[val] = pagename elseif valid_dict[val] and params[val] then error("El paràmetre \"" .. val .. "\" està duplicat.") else error("El paràmetre \"" .. val .. "\" no és usat per aquesta plantilla.") end else if valid_dict[name] and not params[name] then params[name] = val elseif valid_dict[name] and params[name] then error("El paràmetre \"" .. name .. "\" està duplicat.") else error("El paràmetre \"" .. name .. "\" no és usat per aquesta plantilla.") end end end local links = {} for _, dic in ipairs(dicos) do if params[dic[1]] then if dic[3] == 'hyphens' then table.insert(links, dic[2](encode({["args"] = {params[dic[1]], "hyphens"}}))) elseif dic[3] == 'latin1' then table.insert(links, dic[2](encode({["args"] = {params[dic[1]], "ISO 8859-1"}}))) else table.insert(links, dic[2](frame:callParserFunction('urlencode', params[dic[1]]))) end end end return table.concat(links, ", ") end function p.ca_diccionaris(frame) local args = frame:getParent().args local dicos = { {'diec', diec_link, ''}, {'diec1', diec1_link, ''}, {'dnv', dnv_link, ''}, {'gdlc', gdlc_link, ''}, {'dcvb', dcvb_link, 'latin1'}, {'decat', decat_link, ''}, {'oncat', oncat_link, 'latin1'}, {'termcat', termcat_link, ''}, {'ptv', ptv_link, ''}, {'gec', gec_link, ''}, {'dem', dem_link, ''}, {'dsff', dsff_link, ''}, {'optimot', optimot_link, ''}, {'esadir', esadir_link, ''}, {'eeif', eeif_link, ''}, {'dalg', dalg_link, ''}, } return "''Obres de referència'': " .. process(frame, args, dicos) end function p.csc_diccionaris(frame) local args = frame:getParent().args local dicos = { {'wikisign', wikisign_link, 'hyphens'}, {'sematos', sematos_link, 'hyphens'}, } return "''Altres llocs'': " .. process(frame, args, dicos) end function p.en_diccionaris(frame) local args = frame:getParent().args local dicos = { {'merriam', merriam_link, ''}, {'collins', collins_link, ''}, {'cambridge', cambridge_link, ''}, {'dict', dict_link, ''}, {'urban', urban_link, ''}, } return "''Obres de referència'': " .. process(frame, args, dicos) end function p.roaoca_diccionaris(frame) local args = frame:getParent().args local dicos = { {'dcvb', dcvb_link, 'latin1'}, {'faraudo', faraudo_link, 'latin1'}, {'decat', decat_link, ''}, {'oncat', oncat_link, 'latin1'}, {'dtca', dtca_link, ''}, {'cival', cival_link, ''}, {'gec', gec_link, ''}, } return "''Obres de referència'': " .. process(frame, args, dicos) end return p 8q04s1fnbfcndiss5bfyeguws69n0uq -arro 0 279316 2696458 2163713 2026-06-11T11:24:58Z Vriullop 219 /* {{-ca-}} */ 2696458 wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} {{-etimologia-|qsb-his-aie|ca}} D’origen preromà. Aparentment basc per l’analogia amb certs manlleus (cf. {{m|ca|samarra}}, {{m|ca|caparra}}) però productiu en romànic amb una extensió més àmplia que la pirinenca. === Sufix === {{entrada|ca|sufix|femení|-arra}} # [[augmentatiu|Augmentatiu]] amb connotació pejorativa. #: ''[[cotxe]] → cotxarro, [[home]] → homenarro'' {{-rel-}} * [[-às]], [[-ot]], [[-astre]] {{-der-}} {{vegeu-der-afix|ca}} === Vegeu també === * {{ca-dicc|gdlc|dnv}} 23siss1q5lk6vj5m4mkb8blpxd90jam Argentona 0 317055 2696459 2662513 2026-06-11T11:29:29Z Vriullop 219 /* {{-ca-}} */ 2696459 wikitext text/x-wiki == {{-ca-}} == {{map shape|ids=Q11539|zoom=11}} {{ca-pron|ó}} {{-etimologia-|qsb-his-cel|ca}} {{Del-lang|la|ca|*Argentone(m)}}, d’origen preromà, probablement {{del-lang|cel-pro|ca|*argantom|t=argent}}. Compareu amb el bretó {{m|br|argant}}, llatí {{m|la|argentum}} i els topònims {{m|fr|{{w|Argenton}}}} a França. Documentat des del segle IX. === Nom propi === {{entrada|ca|nom propi|g=f}} # Municipi del [[Maresme]] prop de [[Mataró]] {{-der-}} * {{q|gentilici}} [[argentoní]] === Miscel·lània === * {{ca-sil}} * {{anagrames|ca|gatonaren}} === Vegeu també === * {{Viquipèdia}} * {{ca-dicc|dcvb|oncat}} {{catllengua|ca|poblacions catalanes}} 40vs495oaqmjaviz170hd3ohhvo5fem Usuari:Arnaugir 2 449860 2696449 2695949 2026-06-11T06:48:36Z Arnaugir 1855 2696449 wikitext text/x-wiki {{Caixa d'usuari|Sobre mi}} {{Administrador}} {{#babel:ca|es-4|en-3|fr-3|eo-2|it-1|ru-1}} {{fi Caixa d'usuari}} Sóc l'Arnaugir! Vegeu [[:w:Usuari:Arnaugir|la meva pàgina d'usuari a la Viquipèdia]]. == Interessant! == * '''Etimologia:''' [[a la babalà]] · [[alvocat]] · [[cantimplora]] · [[serendipitat]] · [[Déu n'hi do]] · [[grotesc]] · [[serjant]] · [[canícula]] · [[a cappella]] · [[a tres quarts de quinze]] · [[tocar el dos]] · [[bisbe]] · [[estanquera]] · [[galimaties]] · [[cotxe]] · [[vatua]] · [[googol]] · [[canícula]] · [[taràntula]] · [[calfred]] · [[fatxenda]] · [[porcellana]] · [[pallasso]] · [[vaccí]]/[[vacuna]] · [[antologia]] · [[bisbe]] · [[xauxa]] · [[enflairar]] · [[tiberi]] · [[neró]] · [[grotesc]] · [[caníbal]] · [[estraperlo]] · [[miquel]] · [[tortuga]] · [[sibarita]] · [[xandall]] · [[kamikaze]] · [[dàtil]] · [[problema]] · [[company]] · [[esquirol]] · [[horitzó]] · [[hecatombe]] · [[pantagruèlic]] · [[galàxia]] · ''[[chiringuito]]'' · [[sereno]] · [[biquini]] · [[esparverar]] · [[astorar]] · [[galindó]] · [[vatua]] · [[brindis]] · [[fama]] · [[candidat]] · [[subhasta]] · [[alt com un sant Pau]] · [[espelma]] · [[aldarull]] · [[pírric]] · [[bebè]] · [[desastre]] · [[brètol]] · [[magdalena]] · [[malenconia]] · [[sàdic]] · [[escrúpol]] · [[senglar]] · [[martingala]] · [[coet]] · [[idiota]] · [[de cal Déu]] · [[múscul]] · [[rumb]] · [[glamur]] · [[cesària]] · [[sidral]] · [[xiruca]] · [[marcolfa]] · [[rampoina]] · [[bimbo]] · [[cadàver]] · [[entusiasme]] · [[estentori]] · [[can seixanta]] * '''Paraules boniques:''' [[atzavara]] · [[acaramullar]] · [[entotsolat]] · [[joliu]] · [[carícia]] · [[atzucac]] · [[estona]] · [[capvespre]]/[[capaltard]] · [[abraçada]] · [[enraonar]] · [[xiuxiuejar]] · [[esmaperdut]] · [[carantoina]] · [[reviscolar]] · [[badabadoc]] · [[galzeran]] · [[suara]] · [[encisar]] · [[becaina]] · [[afofolar]] · [[avanar]] · [[esgarip]] · [[rebombori]] · [[atzur]] · [[malenconia]] · [[passerell]] · [[safrà]] · [[lletraferit]] · [[xino-xano]] · [[enrenou]] · [[disbauxa]] · [[barbamec]] · [[saltamartí]] · [[xafarranxo]] · [[cabòria]] · [[bonhomia]] · [[eixorc]] · [[xafarderia]] · [[xibòlet]] · [[menfotisme]] · [[ser un do-me’n do-me’n|do-me'n do-me'n]] · [[lapislàtzuli]] · [[sorneguer]] · [[agombolat]] · [[trescar]] · [[murmuri]] · [[rònec]] · [[tarannà]] · [[aixopluc]] · [[encaterinar]] · [[barrabassada]] · [[amainar]] · [[etzibar]] · [[barrufar]] · [[embalum]] · [[xoroi]] · [[curull]] · [[atzagaiada]] · [[patapam]] · [[sucamulla]] · [[giragonsa]] · [[camàndula]] · [[llufa]] · [[traguinyol]] · [[barrufet]] · [[pitof]] · [[desgavell]] · [[embranzida]] · [[cascavell]] · [[camarlenc]] · [[capcot]] · [[entremaliadura]] · [[marfondre]] · [[galindaina]] · [[esquellerinc]] · [[calipàndria]] · [[caganiu]] · [[vaitot]] · [[escarafall]] · [[mainada]] · [[zitzània]] · [[tirallonga]] · [[d'amagatotis]] · [[esgargamellar]] · [[guirigall]] · [[parsimònia]] · [[gatzara]] · [[llepafils]] · [[adesiara]] · [[aqueferar]] · [[can penja-i-despenja]] * '''Paraules estranyes:''' [[mefistofèlic]] · [[bustrofèdon]] · [[sicofanta]] · [[barrundanya]] · [[quòdlibet]] · [[corifeu]] · [[hinterland]] · [[tuàutem]] · [[xibòlet]] · [[mel·liflu]] · [[florilegi]] · [[abraxas]] · [[oriünd]] · [[palimpsest]] · [[cafarnaüm]] · [[sòsia]] * '''Paraules lletges:''' [[aglutinar]] · [[verborrea]] · [[hirsut]] * '''Insults:''' [[filibuster]] · [[bergant]] · [[closcamoll]] · [[gamarús]] · [[saltimbanqui]] · [[tanoca]] · [[caragirat]] · [[pocapena]] · [[tarambana]] · [[baliga-balaga]] · [[taral·lirot]] · [[espantaocells]] · [[brètol]] · [[tocacampanes]] · [[poca-solta]] · [[talòs]] · [[tros de quòniam]] · [[pàmfil]] · [[toca-son]] · [[curt de gambals]] · [[enze]] · [[sòmines]] · [[mesell]] · [[cràpula]] · [[farsant]] · [[panxacontent]] · [[palatreco]] · [[llunàtic]] · [[miranius]] · [[malànima]] · [[pixatinters]] · [[malgirbat]] · [[bufanúvols]] · [[nap-buf]] · [[mamarratxo]] · [[corcó]] · [[estaquirot]] · [[beneit]] · [[esquenadret]] · [[bandarra]] · [[carcant]] · [[fleuma]] · [[mameluc]] · [[camàndula]] · [[maimó]] · [[manaia]] · [[xarmaller]] · [[pipioli]] · [[passerell]] · [[estaferm]] · [[mitjacerilla]] · [[merdufai]] · [[peix bullit]] · [[figaflor]] · [[malxinat]] · [[ganàpia]] · [[harpia]] · [[mestretites]] · [[energumen]] · [[tòtil]] · [[capsigrany]] · [[babau]] · [[capsot]] · [[grofollut]] · [[fariseu]] · [[vestrús]] · [[sapastre]] * '''Intraduïbles:''' [[tu rai]] · [[sobretaula]] · [[déu-n'hi-do]] · [[daltabaix]] * '''Aquestes ens falten:''' ''[[Schadenfreude]]'' · ''[[hygge]]'' · ''[[jayus]]'' · ''[[つんどく]]'' (''tsundoku'') · ''[[Wanderlust]]'' · ''[[hanyauku]]'' · ''[[Waldeinsamkeit]]'' · ''[[バックシャン]]'' (''bakkushan'') · ''[[mamihlapinatapai]]'' · ''[[schlimazel]]'' · ''[[iktsuarpok]]'' · ''[[culaccino]]'' · ''[[dépaysement]]'' · ''[[saudade]]'' · ''[[creepy]]'' · ''[[Vorfreude]]'' * [[:en:Category:English terms borrowed from Catalan]] ([[:Categoria:Derivats del català a l'anglès]]) * [[:Categoria:Derivats del caló al català]] * [[:Categoria:Pronúncia en català excepcional]] * [[Viccionari:Curiositats lingüístiques]] * [[Viccionari:Vocals mitjanes tòniques]] == Recursos edició == *[[:Categoria:Entrades sense etimologia]] *[[:Categoria:Paraules sense accepcions]] * [[Viccionari:Llista de freqüències]] * [https://decat.iec.cat ''Diccionari etimològic i complementari de la llengua catalana'' en línia] === Entrades de referència === {{columnes}} * doble nom amb diverses etim [[brisa]], [[set]], [[estepa]] * marques d'accepció: [[trabucaire]] * forma alternativa dialectal: [[escarxofera]] * homòfon: [[colom]] * doble etim: [[bufet]], [[crac]] * doble pron [[molts]] * etim-comp amb lang1+sufix [https://ca.wiktionary.org/w/index.php?title=val%C2%B7lisolet%C3%A0&curid=455229&diff=1519135&oldid=1519103 val·lisoletà] * sufix amb derivats: [[-arquia]] * remissió: [[blan]], [[bla]] *loc nominal: [[tros de carn batejada]] *loc verbal: [[estar com un llum]] * frase feta: [[la venjança és un plat que se serveix fred]] *manlleu: [[a cappella]] *nota: [[baume]] * forma alternativa [[anou]] * només usat en locució [[malbé]] * doblet [[duplicar]] {{columna nova}} * llengues etim ** català antic roa-oca ** francès antic fro ** germànic desconegut gem [[escarp]] *** fràncic frk [[esquena]] *** gòtic got [[brot]] *** alt alemany antic goh [[banc]] ** preromà qfa-sub-roa [[caparra]] ** àrab andalusí xaa [[festuc]] * castellanisme [[felicitats]] * fals amic [[garsa]] * e de girona [[tema]] * adj+nom [[engalipador]] <nowiki>{{marca|ca|adj+nom}}</nowiki> * def-meta [[quòniam]] <nowiki>{{def-meta|xx}}</nowiki> * doble pronúncia + anglicisme [[rave]] * del-lang [[pandemia]] * ex-us (exemple d'ús) [[afecció]] * ex-cit (citació literal) [[ciclitzar]], [[pujolejar]] * prefix i sufix [[prosopo-]] [[-dèmia]] <nowiki>{{etim-fpref}} {{etim-fsuf}}</nowiki> * prefix-sufix i equivalent etim grec [[epònim]] * doble pronúncia lexicalitzat/formal per mot compost [[malànima]] * etim-comp + epònim [[darwinisme]] {{final columnes}} === codi === Les plantilles: * -rel- Relacionats * -der- Derivats * -sin- i -ant- <nowiki> === Vegeu també === * {{Viquipèdia}} * {{ca-dicc|diec|gdlc|dcvb}} </nowiki> * [[plantilla:ampliar]] * [[plantilla:Cal revisar]] * [[plantilla:sense accepcions]] == Inclusió == [[Discussió:Tanzania]] Com a referència es pot veure [[Viccionari:Criteris d'inclusió]] especialment l’apartat "Atestació". En català ja ho donem per bo si hi és en alguns dels grans diccionaris. En cas contrari, no passa res si no és normatiu, però cal que tingui un ús real i estable, altrament pot tenir un interès acadèmic però no un interès descriptiu de l’ús de la llengua. Només ho he trobat en Carme Junyent i el seu article. Una flor no fa estiu, tot i que el seu argument és sòlid i interessant. Caldrien 3 citacions de 3 autors i separades en el temps. Brunnaiz, bona feina i gràcies per fer-nos veure aquest cas. --[[Usuari:Vriullop|Vriullop]] ([[Usuari Discussió:Vriullop|discussió]]) 09:14, 10 set 2021 (CEST) == Per fer == * [https://www.termcat.cat/ca/actualitat/apunts/quin-plural-ninja-i-lobby-i-play] * [[abadejo]] [[adust]] [[afondar]] [[aldà]] [[ancut]] [[andador]] [[andarec]] [[atonyinar]] [[bagassa]] [[barjaula]] [[beverri]] [[cacofonia]] [[cacografia]] [[cacostomia]] [[caguerri]] [[caixabanc]] [[calabruix]] [[caliquenya]] [[calqui]] [[carcamal]] [[catsoto]] [[cellut]] [[cinqueta]] [[clípol]] [[collut]] [[comsediu]] [[corrigenda]] [[crinut]] [[damijana]] [[despenjafigues]] [[despús-anit]] [[dido]] [[dienda]] [[dipsomania]] [[dulciaqüícola]] [[entrellat]] [[esgarro]] [[esgüell]] [[espertina]] [[estanyerri]] [[estracar]] [[feréstec]] [[gallaret]] [[gallgallaret]] [[galtut]] [[inflaconys]] [[leitmotiv]] [[lleteresa]] [[lletuga]] [[mamerri]] [[manc]] [[marcolfa]] [[marenda]] [[marfanta]] [[maturranga]] [[merdufai]] [[nyam]] [[nyclis]] [[nyicris]] [[nyona]] [[nyonya]] [[oldà]] [[opsomania]] [[palatreca]] [[panoli]] [[pantomim]] [[papabenet]] [[papadiners]] [[papamosques]] [[papanovia]] [[paparota]] [[papaterra]] [[papú]] [[papus]] [[passatú]] [[passavant]] [[pataf]] [[patapaf]] [[patatim]] [[patatim-patatum]] [[pauperisme]] [[peixopalo]] [[ploracossos]] [[potejar]] [[regnícola]] [[sobreany]] [[talaiot]] [[tarçó]] [[torcaboques]] [[torca-raor]] [[traüll]] [[urbícola]] [[xanxa]] [[xistu]] bw3nwqdzliyd3rcnzs6wysq8cwvh6ho Aran 0 496272 2696460 2588444 2026-06-11T11:46:32Z Vriullop 219 /* {{-ca-}} */ prenom 2696460 wikitext text/x-wiki {{vegeu|aran|arán|aŕan|-aran}} == {{-ca-}} == {{ca-pron}} {{-etim-}} {{Del-lang|oc|ca|Aran}}, d’un preromà bascònic{{del-lang|qsb-euq|ca}}, relacionat amb el basc modern {{m|eu|haran|t=vall}}. === Nom propi === {{entrada|ca|nom propi|g=m}} # Comarca [[occità|occitana]] de l'extrem sud-oriental de [[Gascunya]], a la capçalera del riu [[Garona]], històricament adscrita al Principat de [[Catalunya]]. # {{prenom|ca|mf}} {{-sin-}} * {{w|Vall d'Aran}} {{-der-}} * [[aranès]] {{-trad-}} {{t-inici}} * {{an}}: {{trad|an|Aran}} * {{es}}: {{trad|es|Arán}} * {{fr}}: {{trad|fr|Aran}} * {{oc}}: {{trad|oc|Aran}} {{t-final}} === Miscel·lània === * {{ca-sil}} * {{anagrames|ca|arna|arnà|anar|rana}} === Vegeu també === * {{Viquipèdia}} * {{ca-dicc|dcvb|optimot|gec}} * {{idescat-prenoms}} == {{-oc-}} == {{pronafi|oc|/aˈɾan/}} {{etimologia|oc}} === Nom propi === {{entrada|oc|nom propi}} # {{e|ca|Aran}} {{-sin-}} * {{e|oc|Val d'Aran}} 07hb5i0fder6i5n9lwpt7fka2kk8opb Mòdul:ja-trans 828 499909 2696456 1914574 2026-06-11T10:04:59Z Vriullop 219 function p.moraify 2696456 Scribunto text/plain local m_str_utils = require("Module:string utilities") local p = {} local str_gsub = string.gsub local concat = table.concat local find = mw.ustring.find local length = mw.ustring.len local trim = mw.text.trim local sub, gsub = mw.ustring.sub, mw.ustring.gsub local to_cp, to_char = mw.ustring.codepoint, mw.ustring.char local ulen = m_str_utils.len local umatch = mw.ustring.match local insert = table.insert local usub = m_str_utils.sub local load_data = mw.loadData local range = load_data("Module:ja/data/range") local r_kana_combining_characters = range.kana_combining_characters -- note that arrays loaded by mw.loadData cannot be directly used by gsub local data = mw.loadData("Module:ja-trans/data") -- Unicode normalization often converts these to the corresponding CJK Unified Ideographs characters local compat_ideo = mw.ustring.char(0xF900) .. "-" .. mw.ustring.char(0xFAD9) p.data = { joyo_kanji = data.joyo_kanji, jinmeiyo_kanji = data.jinmeiyo_kanji, grade1 = data.grade1, grade2 = data.grade2, grade3 = data.grade3, grade4 = data.grade4, grade5 = data.grade5, grade6 = data.grade6 } local function track(code) if type(code) ~= "string" then error("The track function requires a string as argument.") end require("Module:utilitats").track("ja/" .. code) end local function change_codepoint(added_value) return function(char) return to_char(to_cp(char) + added_value) end end function p.hira_to_kata(text) if type(text) == "table" then text = text.args[1] end return (gsub(gsub(text, '[ぁ-ゖ]', change_codepoint(96)), '[𛅐-𛅒]', change_codepoint(20))) end function p.kata_to_hira(text) if type(text) == "table" then text = text.args[1] end return (gsub(gsub(text, '[ァ-ヶ]', change_codepoint(-96)), '[𛅤-𛅦]', change_codepoint(-20))) end function p.fullwidth_to_halfwidth(text) if type(text) == "table" then text = text.args[1] end text = gsub(text, ' ', ' ') return (gsub(text, '[!-~]', change_codepoint(-65248))) end function p.kana_to_romaji(text, options) -- options: no_diacritics, keep_period, hist, phonetic local str_find = string.find if type(text) == "table" then text = text.args[1] end if not options then options = {} end -- conversions if not options.phonetic then text = gsub(text, '(%-)([はハ])$', '%1㊟㈛㊟%2') -- は as suffix (派 "-ha", etc.) and appearing at the end of string text = gsub(text, '(%-)([はハ]) ', '%1㊟㈛㊟%2 ') -- は as suffix and appearing mid-sentence end text = str_gsub(text, '%', '㊟㌫㊟') -- at [[見込む]], for example; avoid collision with % used in our ruby syntax text = str_gsub(text, '\'\'\'', '㊟⒝㊟') text = str_gsub(text, '<u>', '㊟㋑⒰㊟') text = str_gsub(text, '</u>', '㊟㋺⒰㊟') local text_styling = "㊟[㋑㋺⒝⒰]+㊟" -- avoid tampering with existing latin text: store it away local escape = {} local id = 0 for latin in string.gmatch(text, "[a-z]+") do escape[id] = latin text = str_gsub(text, latin, "㊟㊕㊕㊟" .. id .. "㊟㊕㊕㊟") id = id + 1 end -- special preformatting text = str_gsub(text, 'ヶげつ', 'かげつ') text = gsub(text, 'ヶ(' .. text_styling .. ')げつ', 'か%1げつ') -- 「'''ヶ'''げつ」 text = str_gsub(text, 'ヶ', 'が') text = str_gsub(text, 'ヵ', 'か') text = gsub(text, '(.)[ゝヽ]', '%1%1') text = gsub(text, '(.)[ゞヾ]', function(char) return mw.ustring.toNFC(char .. char .. '゙') end) -- unicode hax -- [[Wiktionary:Grease_pit/2017/May#Formatting_for_individual_Japanese_readings]] if options.hist then text = gsub(text, '[やゆよわゐゑを]', '㊟⒳㊟%0') text = gsub(text, '.', { ['し'] = 'si', ['じ'] = 'zi', ['ち'] = 'ti', ['ぢ'] = 'di', ['つ'] = 'tu', ['づ'] = 'du', ['𛀁'] = 'ye', ['𛀆'] = 'yi', ['ゐ'] = 'wi', ['を'] = 'wo' } ) end text = p.hira_to_kata(text) text = gsub(text, '.', data.kr) text = p.fullwidth_to_halfwidth(text) if options.hist then text = str_gsub(text, 'oo', 'o.o') text = str_gsub(text, 'ou', 'o.u') text = str_gsub(text, 'h', 'f') local old = text text = str_gsub(text, 'i㊟⒳㊟y', 'y') -- くゐやう kwyau text = str_gsub(text, '([kg])u㊟⒳㊟w', '%1w') if old ~= text then --[=[ There may be cases in which i or u is deleted incorrectly, and a period should be inserted. "Syncope" isn't quite accurate, as there wasn't a sound change. It's just an orthographic convention. [[Special:WhatLinksHere/Template:tracking/ja/mora syncope]] ]=] --mw.log(str_gsub(old, '㊟⒳㊟', '') .. ' → ' .. str_gsub(text, '㊟⒳㊟', '') ) track('mora syncope') end text = str_gsub(text, '㊟⒳㊟', '') -- ゑつ wetsu end -- markup text = str_gsub(text, '%%', '.') -- ruby "percent sign" syntax text = gsub(text, '([ッ¤])%.', '%1') -- 「し を ぼっ.す」; 「るい%じん%えん」→「rui.jin¤.en¤」 -- 「テェェェ」→「テェーー」 (avoid funky romaji effected by the "(テュ→)teユ→tyu" line below) local kogaki_vowels = {'ァ','ィ','ゥ','ェ','ォ'} for _, char in ipairs(kogaki_vowels) do text = gsub(text, '('..char..')('..char..'+)', function(a,b) return a .. mw.ustring.rep('ー', length(b)) end) end -- (ゲェ→)geェ→gee (note that this causes things like ウゥ→ū and ギィ→gī) text = gsub(text, '[aiueo][ァィゥェォ]', {['aァ']='aa',['iィ']='ii',['uゥ']='uu',['eェ']='ee',['oォ']='oo',}) -- (クヮ→)kuヮ→kwa, (ク𛅤→)ku𛅤→kwi, (ク𛅥→)ku𛅥→kwe, (ク𛅦→)ku𛅦→kwo text = gsub(text, '[uo]([ヮ𛅤𛅥𛅦])', {['ヮ']='wa',['𛅤']='wi',['𛅥']='we',['𛅦']='wo',}) -- (クァ→)kuァ→kwa, (トァ→)toァ→twa, (ウィ→)uィ→wi text = gsub(text, '[uo]([ァィェォ])', {['ァ']='wa',['ィ']='wi',['ェ']='we',['ォ']='wo',}) if not options.hist then -- (ツァ→)cwa→ca text = str_gsub(text, '([fvcsz])w', '%1') end -- (テュ→)teユ→tyu, (ギェ→)giェ→gye text = gsub(text, '[aiueo]([ャュェョ])', {['ャ']='ya',['ュ']='yu',['ェ']='ye',['ョ']='yo',}) -- (ジュ→)jyu→ju text = gsub(text, '([xjq])y', '%1') -- (ティ→)teィ→ti (essentially forget about the vowel in between) text = gsub(text, '[aiueo]([ァィゥェォ])', {['ァ']='a',['ィ']='i',['ゥ']='u',['ェ']='e',['ォ']='o',}) -- chouonpu and sokuon while str_find(text, '[aiueo]ー') or str_find(text, 'ッ *[bcdfghjklmnpqrstvwxyz]') or find(text, 'ッ' .. text_styling .. '[bcdfghjklmnpqrstvwxyz]') do text = str_gsub(text, '([aiueo])ー', '%1%1') text = str_gsub(text, 'ッ( *)([bcdfghjklmnpqrstvwxyz])', '%2%1%2') text = gsub(text, 'ッ(' .. text_styling .. ')([bcdfghjklmnpqrstvwxyz])', '%2%1%2') end -- deal with leftover sokuon not used as geminate text = str_gsub(text, 'ッ', '&#39;') -- Apostrophe -- (ん→)n¤ text = str_gsub(text, '¤([aiueoy])', "'%1") text = str_gsub(text, '¤', '') -- は, へ if not options.phonetic and str_find(text, "h[ae]") then for i, v in ipairs{ { "ha", "wa" }, { "he", "e" } } do local thingy = '[^a-z.㊟-]' -- not sure what this should be named text = gsub(text, "(" .. thingy .. ")" .. v[1] .. "(" .. thingy .. ")", "%1" .. v[2] .. "%2") text = gsub(text, "(" .. thingy .. ")" .. v[1] .. "$", "%1" .. v[2]) text = gsub(text, "^" .. v[1] .. "(" .. thingy .. ")", v[2] .. "%1") if find(text, text_styling) then text = gsub(text, "(" .. thingy .. ")" .. v[1] .. "(" .. text_styling .. thingy ..")", "%1" .. v[2] .. "%2") text = gsub(text, "(" .. thingy .. ")" .. v[1] .. "(" .. text_styling .. ")$", "%1" .. v[2] .. "%2") text = gsub(text, "(" .. thingy .. text_styling .. ")" .. v[1] .. "(" .. text_styling .. thingy ..")", "%1" .. v[2] .. "%2") text = gsub(text, "(" .. thingy .. text_styling .. ")" .. v[1] .. "(" .. text_styling .. ")$", "%1" .. v[2] .. "%2") end end end -- change only when -- ① not flanked by a-z or a period ("^sore wa nani$", "^hyappou no .he hitotsu$") -- ② at the end of the string and not preceded by a-z or a period ("^are wa$") -- ③ at the beginning of the string and not followed by a-z or a period ("^he ikou$") [not sure this is actually necessary, but I suppose it is consistent with ②] -- this also means that "^ha$" becomes "ha" -- period can be used next to the kana (either side) to force the "dumb" romanization (i.e. "ha", "he") -- fix sh, ch, ts local function handle_digraphs(geminate, intervening, main, following) --「めちゃ」→「mecha」 --「めっちゃ」→「metcha」 --「めっっちゃ」→「mettcha」 local corresp_geminate_form = {['x']='s',['q']='t',['c']='t'} local corresp_main = {['x']='sh',['q']='ch',['c']='ts'} local geminate_repl, main_repl -- So as not to convert ch to tsh. if not following or main .. following ~= "ch" then main_repl = corresp_main[main] end if geminate ~= "" then geminate_repl = string.rep(corresp_geminate_form[main], #geminate) end return (geminate_repl or geminate) .. (intervening or "") .. (main_repl or main) .. (following or "") end local function handle_digraphs2(geminate, main, following) return handle_digraphs(geminate, nil, main, following) end text = gsub(text, '([xqc]+)(' .. text_styling .. ')([xqc])', handle_digraphs) text = gsub(text, '([xqc]*)([xqc])(.?)', handle_digraphs2) -- macrons -- Will cause problems if combined vowel-macron characters are used below. if not options.no_diacritics then if not options.phonetic then text = str_gsub(text, 'ou', 'ō') end local macron = to_char(0x304) text = str_gsub( text, '([oaeui])%1', '%1' .. macron ) end -- remove markup and convert real periods if not options.keep_period then text = str_gsub(text, '%.', '') text = str_gsub(text, '。', '◆.◇') end -- text = str_gsub(text, '◇◆', '') text = str_gsub(text, '◆◇', '') text = str_gsub(text, ' *◆ *', '') text = str_gsub(text, ' *◇ *', ' ') -- restore latin text text = str_gsub(text, "㊟㊕㊕㊟(%d+)㊟㊕㊕㊟", function(id) return escape[tonumber(id)] end) -- clean up spaces text = trim(text) text = str_gsub(text, ' +', ' ') -- remove double ampersands used in ruby text = str_gsub(text, '&&(.-)&&', '%1') -- uppercase markup text = str_gsub(text, "(%^)(㊟⒝㊟)", "%2%1") -- move ^ to an effective position if placed before bold markup text = str_gsub(text, "(%^)( )", "%2%1") -- same but with spaces text = gsub(text, '%^(.)', mw.ustring.upper) -- uppercase conversion -- clean up spaces again text = str_gsub(text, ' +', ' ') -- conversions text = str_gsub(text, '㊟⒝㊟', '\'\'\'') text = str_gsub(text, '㊟㋑⒰㊟', '<u>') text = str_gsub(text, '㊟㋺⒰㊟', '</u>') text = str_gsub(text, '㊟㈛㊟', '') text = str_gsub(text, '㊟㌫㊟', '%%') -- unicode NFC text = mw.ustring.toNFC(text) if find(text, '[ぁ-ー]') then track('k2r failure') end return text end function p.tr(text) if type(text) == "table" then text = text.args[1] end local script = p.script(text) if script == 'Hira' or script == 'Kana' or script == 'Hira+Kana' then return p.kana_to_romaji(text) end return end -- removes spaces and hyphens from input -- intended to be used when checking manual romaji to allow the -- insertion of spaces or hyphens in manual romaji without appearing "wrong" function p.rm_spaces_hyphens(f) local text = type(f) == 'table' and f.args[1] or f text = str_gsub(text, '.', { [' '] = '', ['-'] = '', ['.'] = '', ['\''] = '' }) text = str_gsub(text, '&nbsp;', '') return text end function p.romaji_to_kata(f) local text = type(f) == 'table' and f.args[1] or f text = gsub(text, '.', data.rd) text = str_gsub(text, '(.)%1', { k = 'ッk', s = 'ッs', t = 'ッt', p = 'ッp', b = 'ッb', d = 'ッd', g = 'ッg', j = 'ッj' }) text = str_gsub(text, 'tc', 'ッc') text = str_gsub(text, 'tsyu', 'ツュ') text = str_gsub(text, 'ts[uoiea]', {['tsu']='ツ',['tso']='ツォ',['tsi']='ツィ',['tse']='ツェ',['tsa']='ツァ'}) text = str_gsub(text, 'sh[uoiea]', {['shu']='シュ',['sho']='ショ',['shi']='シ',['she']='シェ',['sha']='シャ'}) text = str_gsub(text, 'ch[uoiea]', {['chu']='チュ',['cho']='チョ',['chi']='チ',['che']='チェ',['cha']='チャ'}) text = str_gsub(text, "n[uoiea']?", {['nu']='ヌ',['no']='ノ',['ni']='ニ',['ne']='ネ',['na']='ナ'}) text = str_gsub(text, '[wvtrpsnmlkjhgfdbzy][yw]?[uoiea]', data.rk) text = str_gsub(text, "n'?", 'ン') text = str_gsub(text, '[aeiou]', { u = 'ウ', o = 'オ', i = 'イ', e = 'エ', a = 'ア' }) return text end -- expects: any mix of kanji and kana -- determines the script types used -- e.g. given イギリス人, it returns Kana+Hani function p.script(f) local text, script = type(f) == 'table' and f.args[1] or f, {} if find(text, '[ぁ-ゖ]') or find(text, '[𛅐-𛅒]') then table.insert(script, 'Hira') end -- TODO: there are two kanas. This should insert Kata. if find(text, '[ァ-ヺー]') or find(text, '[𛅤-𛅦]') then table.insert(script, 'Kana') end -- 一 is unicode 4e00, previously used 丁 is 4e01 if find(text, '[㐀-䶵一-鿌' .. compat_ideo .. '𠀀-𯨟]') then table.insert(script, 'Hani') end -- matching %a should have worked but matched the end of every string if find(text, '[a-zA-ZāēīōūĀĒĪŌŪa-zA-Z]') then table.insert(script, 'Romaji') end if find(text, '[0-90-9]') then table.insert(script, 'Number') end if find(text, '[〆々]') then table.insert(script, 'Abbreviation') end return table.concat(script, '+') end -- when counting morae, most small hiragana belong to the previous mora, -- so for purposes of counting them, they can be removed and the characters -- can be counted to get the number of morae. The exception is small tsu, -- so data.nonmora_to_empty maps all small hiragana except small tsu. function p.count_morae(text) if type(text) == "table" then text = text.args[1] end -- convert kata to hira (hira is untouched) text = p.kata_to_hira(text) -- remove all of the small hiragana such as ょ except small tsu text = gsub(text,'.',data.nonmora_to_empty) -- remove zero-width spaces text = gsub(text, '‎', '') -- return number of characters, which should be the number of morae return length(text) end -- accepts: any mix of kana -- returns: a hiragana sort key designed for WMF software -- this is like sort() but doesn't return |sort=sortkey, -- just the sort key itself, but unlike sort(), this -- replaces the long vowel mark with its vowel function p.ordena(text) -- nom genèric usat a [[Mòdul:llengua/ordre]] if type(text) == "table" then text = text.args[1] end local textsub local convertedten local len -- remove western spaces, hyphens, and periods -- diff=41967612: also remove caret text = gsub(text, '[ %-%.%^]', '') text = p.kata_to_hira(text) -- if the first character has dakuten, replace it with the corresponding -- character without dakuten and add an apostrophe to the end, e.g. -- がす > かす' if gsub(sub(text,1,1),'.',data.dakuten) == '' then len = length(text) textsub = sub(text,2,len) convertedten = gsub(sub(text,1,1),'.',data.tenconv) text = (convertedten .. textsub .. "'") else -- similar thing but with handuken and two apostrophes, e.g. ぱす -> はす'' if gsub(sub(text,1,1),'.',data.handakuten) == '' then len = length(text) textsub = sub(text,2,len) convertedten = gsub(sub(text,1,1),'.',data.tenconv) text = (convertedten .. textsub .. "''") end end -- replace the long vowel mark with the vowel that it stands for for key,value in pairs(data.longvowels) do text = gsub(text,key,value) end return text end -- returns a sort key with |sort= in front, e.g. -- |sort=はつぐん' if given ばつぐん function p.sort(f) local text = type(f) == 'table' and f.args[1] or f local textsub local convertedten local result = '' local len local kyreplace kyreplace = gsub(text,'[ァ-ヺ]', '') if kyreplace == '' then result = ('|' .. 'sort' .. '=') end text = p.kata_to_hira(text) if gsub(sub(text,1,1),'.',data.dakuten) == '' then if kyreplace == '' then else result = ('|' .. 'sort' .. '=') end len = length(text) textsub = sub(text,2,len) convertedten = gsub(sub(text,1,1),'.',data.tenconv) result = (result .. convertedten .. textsub .. "'") else if gsub(sub(text,1,1),'.',data.handakuten) == '' then if kyreplace == '' then else result = ('|' .. 'sort' .. '=') end len = length(text) textsub = sub(text,2,len) convertedten = gsub(sub(text,1,1),'.',data.tenconv) result = (result .. convertedten .. textsub .. "''") else if kyreplace == '' then result = (result .. text) end end end return result end -- returns the "stem" of a verb or -i adjective, that is the term minus the final character function p.definal(f) return sub(f.args[1],1,(length(f.args[1])-1)) end function p.remove_ruby_markup(text) return (string.gsub(text, "[%^%-%. %%]", "")) end -- do the work of Template:ja-kanji function p.kanji(frame) local titleObj = mw.title.getCurrentTitle() local pagename = titleObj.text local namespace = titleObj.nsText -- only do this if this entry is a kanji page and not some user's page if namespace == "" then local args = frame:getParent().args local rs = args["rs"] --or require("Module:zh-sortkey").makeSortKey(pagename, "ja") local shin = args["shin"] local kyu = args["kyu"] local head = args["head"] local grade_replacements = { ['c'] = 7, ['n'] = 8, ['uc'] = 9, ['r'] = 0, } local grade = tonumber(args['grade']) or args['grade'] grade = grade_replacements[grade] or grade local wikitext = {} local categories = {} local catsort = rs or pagename -- display the kanji itself at the top at 275% size table.insert(wikitext, '<span lang="ja" class="Jpan" style="font-size:275%; line-height:1;">' .. (head or pagename) .. '</span>') -- display information for the grade -- if grade was not specified, determine it now if not grade then grade = p.kanji_grade(pagename) end local in_parenthesis = {} local grade_links = { [1] = "[[Viccionari:Glossari de japonès#kyōiku kanji|“Kyōiku” kanji 1r curs]]", [2] = "[[Viccionari:Glossari de japonès#kyōiku kanji|“Kyōiku” kanji 2n curs]]", [3] = "[[Viccionari:Glossari de japonès#kyōiku kanji|“Kyōiku” kanji 3r curs]]", [4] = "[[Viccionari:Glossari de japonès#kyōiku kanji|“Kyōiku” kanji 4t curs]]", [5] = "[[Viccionari:Glossari de japonès#kyōiku kanji|“Kyōiku” kanji 5è curs]]", [6] = "[[Viccionari:Glossari de japonès#kyōiku kanji|“Kyōiku” kanji 6è curs]]", [7] = "[[Viccionari:Glossari de japonès#jōyō kanji|“Jōyō” kanji d'ús comú]]", [8] = "[[Viccionari:Glossari de japonès#jinmeiyō kanji|“Jinmeiyō” kanji per a noms propis]]", [9] = "[[Viccionari:Glossari de japonès#hyōgai kanji|“Hyōgai” kanji poc comuns]]", [0] = "[[w:en:Radical (Chinese_character)|Arrel]]", } if grade_links[grade] then table.insert(in_parenthesis, grade_links[grade]) else table.insert(categories, "[[Categoria:Kanji japonesos sense curs|" .. catsort .. "]]") end -- link to shinjitai if shinjitai was specified, and link to kyujitai if kyujitai was specified if kyu then table.insert(in_parenthesis, '[[shinjitai]] kanji, forma [[kyūjitai]] <span lang="ja" class="Jpan">[[' .. kyu .. '#ja|' .. kyu .. ']]</span>') elseif shin then table.insert(in_parenthesis, '[[kyūjitai]] kanji, forma [[shinjitai]] <span lang="ja" class="Jpan">[[' .. shin .. '#ja|' .. shin .. ']]</span>') end table.insert(wikitext, " ''(" .. table.concat(in_parenthesis, ",&nbsp;") .. "'')") -- add categories table.insert(categories, "[[Categoria:Kanji|" .. catsort .. "]]") local grade_categories = { [1] = "Kanji de 1r curs", [2] = "Kanji de 2n curs", [3] = "Kanji de 3r curs", [4] = "Kanji de 4t curs", [5] = "Kanji de 5è curs", [6] = "Kanji de 6è curs", [7] = "Kanji comuns", [8] = "Kanji per a noms", [9] = "Kanji poc comuns", [0] = "Arrels de sinogrames", } table.insert(categories, "[[Categoria:" .. (grade_categories[grade] or error("El curs " .. grade .. " no és vàlid.")) .. "|" .. (grade == "0" and " " or catsort) .. "]]") -- error category if not rs then table.insert(categories, "[[Categoria:Kanji sense arrel i traços]]") end return table.concat(wikitext, "") .. table.concat(categories, "\n") end end local grade1_pattern = ('[' .. data.grade1 .. ']') local grade2_pattern = ('[' .. data.grade2 .. ']') local grade3_pattern = ('[' .. data.grade3 .. ']') local grade4_pattern = ('[' .. data.grade4 .. ']') local grade5_pattern = ('[' .. data.grade5 .. ']') local grade6_pattern = ('[' .. data.grade6 .. ']') local secondary_pattern = ('[' .. data.secondary .. ']') local jinmeiyo_kanji_pattern = ('[' .. data.jinmeiyo_kanji .. ']') local hyogaiji_pattern = ('[^' .. data.joyo_kanji .. data.jinmeiyo_kanji .. ']') function p.kanji_grade(kanji) if type(kanji) == "table" then kanji = kanji.args[1] end if find(kanji, hyogaiji_pattern) then return 9 elseif find(kanji, jinmeiyo_kanji_pattern) then return 8 elseif find(kanji, secondary_pattern) then return 7 elseif find(kanji, grade6_pattern) then return 6 elseif find(kanji, grade5_pattern) then return 5 elseif find(kanji, grade4_pattern) then return 4 elseif find(kanji, grade3_pattern) then return 3 elseif find(kanji, grade2_pattern) then return 2 elseif find(kanji, grade1_pattern) then return 1 end return false end local submoraic = range.submoraic_kana .. r_kana_combining_characters local spacing_punc = "%s%p%$%+=>%^`|~" local function handle_spacing_punc(ch, mora) insert(mora, ch) if ch:match("[^%^%%']") then mora.sp = true end return ch, mora end local function iterate_mora(text, start, morae, mora) mora = mora or {} local ch = umatch(text, "^[" .. spacing_punc .. "]+", start) if ch then return handle_spacing_punc(ch, mora) end ch = usub(text, start, start) if ch == "<" then ch = umatch(text, "^<.->", start) or umatch(text, "^[<" .. spacing_punc .. "]+", start) return handle_spacing_punc(ch, mora) elseif ( mora.sp or mora.kana and umatch(ch, "[^" .. submoraic .. "]") ) then insert(morae, concat(mora)) mora = {} end mora.kana = true insert(mora, ch) return ch, mora end -- Returns an array of morae. -- Small vowel kana (and any combining dakuten/handakuten) are grouped with any prior word characters, which should be kana. Non-word characters (spaces, punctuation etc.) are accounted for, and grouped with surrounding morae wherever possible. function p.moraify(text) local morae, start, text_len, mora = {}, 1, ulen(text) while start <= text_len do local ch ch, mora = iterate_mora(text, start, morae, mora) start = start + ulen(ch) end if mora then insert(morae, concat(mora)) end return morae end return p 611vfca6zu08w5ad2rm09lqc4dn29o5 vel·leïtat 0 598599 2696454 2669797 2026-06-11T08:40:51Z Too Classy for This World 23062 2696454 wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} {{etim-lang|la|ca|velleitās}}, derivat de {{m|la|velle|trad=voler}}. === Nom === {{ca-nom|f}} # [[voluntat|Voluntat]] [[inconstant]]. #: {{ex-cit|ca|Cal pensar que es tractava d'una '''vel·leïtat''' decorativa de l'arquitecte...|ref=<ref>Laura García Sánchez, Anna Vallugera Fuster, ''Cicles pictòrics i arquitectura obliqua al set-cents. Barcelona i la Mediterrània'', Edicions Universitat Barcelona, pàgina 166</ref>}} {{-sin-}} * [[caprici]], [[gosadia]] {{-trad-}} {{t-inici}} * {{en}}: {{trad|en|fickleness}} * {{an}}: {{trad|an|veleidat|f}} * {{es}}: {{trad|es|veleidad|f}} * {{fr}}: {{trad|fr|velléité|f}} * {{it}}: {{trad|it|velleità|f}} * {{nl}}: {{trad|nl|grilligheid}} {{t-final}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|diec|gdlc|dcvb}} hiahjqc9tdrw0rnbhn1b7nbfg3snjfg contribuyera 0 649886 2696400 2026-06-10T16:07:47Z Jemily1 16917 creo esta entrada 2696400 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|cantar|1|imperf|subj}} # {{es-forma-conj|cantar|3|imperf|subj}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|tancamos}} nfjvv9dshdr1ai4cte36u0bhbbur3i8 contribuyese 0 649887 2696401 2026-06-10T16:08:37Z Jemily1 16917 creo esta entrada 2696401 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|cantar|1|imperf|subj}} # {{es-forma-conj|cantar|3|imperf|subj}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|tancamos}} nfjvv9dshdr1ai4cte36u0bhbbur3i8 contribuyeses 0 649888 2696402 2026-06-10T16:09:10Z Jemily1 16917 creo esta entrada 2696402 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|cantar|2|imperf|subj}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|tancamos}} lxz40mwpoji1u3okfaqai6jmt7gb154 contribuyeras 0 649889 2696403 2026-06-10T16:09:33Z Jemily1 16917 creo esta entrada 2696403 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|cantar|2|imperf|subj}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|tancamos}} lxz40mwpoji1u3okfaqai6jmt7gb154 contribuyésemos 0 649890 2696404 2026-06-10T16:10:41Z Jemily1 16917 creo esta entrada 2696404 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|contribuir|4|imperf|subj}} === Miscel·lània === * {{es-sil}} q4koqthtomepof7cq0v39ct7q8iu0h5 contribuyerais 0 649891 2696405 2026-06-10T16:11:29Z Jemily1 16917 creo esta entrada 2696405 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|contribuir|5|imperf|subj}} === Miscel·lània === * {{es-sil}} a5m6o64brgqr1ex4b10nucku1khwtzx contribuyeran 0 649892 2696406 2026-06-10T16:12:00Z Jemily1 16917 creo esta entrada 2696406 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|contribuir|6|imperf|subj}} === Miscel·lània === * {{es-sil}} de65y7yygmhhmm3qnmhiy68v6ky81uv contribuyesen 0 649893 2696407 2026-06-10T16:12:23Z Jemily1 16917 creo esta entrada 2696407 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|contribuir|6|imperf|subj}} === Miscel·lània === * {{es-sil}} de65y7yygmhhmm3qnmhiy68v6ky81uv contribuyere 0 649894 2696408 2026-06-10T16:14:10Z Jemily1 16917 creo esta entrada 2696408 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|contribuir|1|fut|subj}} # {{es-forma-conj|contribuir|3|fut|subj}} === Miscel·lània === * {{es-sil}} bk95ri7lx6t9sxle7hkmewckpbss0lb contribuyeres 0 649895 2696409 2026-06-10T16:15:39Z Jemily1 16917 creo esta entrada 2696409 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|contribuir|2|fut|subj}} === Miscel·lània === * {{es-sil}} 1n46f8k8iiiw3l0xd53xqkve8aipnd0 contribuyéremos 0 649896 2696410 2026-06-10T16:16:20Z Jemily1 16917 creo esta entrada 2696410 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|contribuir|4|fut|subj}} === Miscel·lània === * {{es-sil}} n606fxbp57bc44xpd2i10k23n045mfl contribuyereis 0 649897 2696411 2026-06-10T16:17:37Z Jemily1 16917 creo esta entrada 2696411 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|contribuir|5|fut|subj}} === Miscel·lània === * {{es-sil}} bizddkr26d3c8qcgslj3nxpzhy025ih contribuyeren 0 649898 2696412 2026-06-10T16:18:40Z Jemily1 16917 creo esta entrada 2696412 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|contribuir|6|fut|subj}} === Miscel·lània === * {{es-sil}} qots7znhgz9d2354m8pfyjjdg89s9vm complico 0 649899 2696413 2026-06-10T16:22:27Z Jemily1 16917 creo esta entrada 2696413 wikitext text/x-wiki {{vegeu|complicó}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|contribuir|1|pres}} === Miscel·lània === * {{es-sil}} cobyf691c2sic4ainrz3z7efga7pjtg 2696419 2696413 2026-06-10T16:28:49Z Jemily1 16917 corrijo esta entrada 2696419 wikitext text/x-wiki {{vegeu|complicó}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|complicar|1|pres}} === Miscel·lània === * {{es-sil}} ahe2393odb89ek6zdvhn2vekaa6ukzw complicó 0 649900 2696414 2026-06-10T16:23:15Z Jemily1 16917 creo esta entrada 2696414 wikitext text/x-wiki {{vegeu|complico}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|contribuir|3|pass}} === Miscel·lània === * {{es-sil}} cz893o011nsbonn6yp2s7rprgz7a7go 2696420 2696414 2026-06-10T16:29:09Z Jemily1 16917 corrijo esta entrada 2696420 wikitext text/x-wiki {{vegeu|complico}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|complicar|3|pass}} === Miscel·lània === * {{es-sil}} 2ik2w40w8wpa8tjtulvxag0ypsajdu8 complicas 0 649901 2696415 2026-06-10T16:24:57Z Jemily1 16917 creo esta entrada 2696415 wikitext text/x-wiki {{vegeu|complicás}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|contribuir|2|pres|voseo=no}} === Miscel·lània === * {{es-sil}} 7vtgxn6ft5tjjug6vqnqodigezwahbp 2696421 2696415 2026-06-10T16:29:29Z Jemily1 16917 corrijo esta entrada 2696421 wikitext text/x-wiki {{vegeu|complicás}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|complicar|2|pres|voseo=no}} === Miscel·lània === * {{es-sil}} ndjq3hw5cr2tcpltg046tcpdik1a5at complicás 0 649902 2696416 2026-06-10T16:25:29Z Jemily1 16917 creo esta entrada 2696416 wikitext text/x-wiki {{vegeu|complicas}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|contribuir|2|pres|voseo=sí}} === Miscel·lània === * {{es-sil}} hryl5w89ecgvn06tnkiahthanm6wogk 2696422 2696416 2026-06-10T16:29:47Z Jemily1 16917 corrijo esta entrada 2696422 wikitext text/x-wiki {{vegeu|complicas}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|complicar|2|pres|voseo=sí}} === Miscel·lània === * {{es-sil}} 13b89r8nthxj0wn21viz9s1gvzgt6h9 complica 0 649903 2696417 2026-06-10T16:27:48Z Jemily1 16917 creo esta entrada 2696417 wikitext text/x-wiki {{vegeu|complicá}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|complicar|3|pres}} # {{es-forma-conj|complicar|2|imp|voseo=no}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|complací}} mbi5eabmisc4ycce3at4kfaqklhlxa2 complicá 0 649904 2696418 2026-06-10T16:28:27Z Jemily1 16917 creo esta entrada 2696418 wikitext text/x-wiki {{vegeu|complica}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|complicar|2|imp|voseo=sí}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|complací}} 2ii1s6zumu3hjj80h84swtah6cht960 complicamos 0 649905 2696423 2026-06-10T16:31:29Z Jemily1 16917 creo esta entrada 2696423 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|complicar|4|pres}} # {{es-forma-conj|complicar|4|pass}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|complacimos}} oelj735e6d08k29mdxzrjr58f1ddel6 complicáis 0 649906 2696424 2026-06-10T16:32:44Z Jemily1 16917 creo esta entrada 2696424 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|complicar|5|pres}} === Miscel·lània === * {{es-sil}} 92llgwdhogz4uyirk2gs68d91i2x822 complican 0 649907 2696425 2026-06-10T16:34:27Z Jemily1 16917 creo esta entrada 2696425 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|complicar|6|pres}} === Miscel·lània === * {{es-sil}} feqm2t54obg2bu55ngnwtaw1kbuq6co complicaba 0 649908 2696426 2026-06-10T16:35:33Z Jemily1 16917 creo esta entrada 2696426 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|complicar|1|imperf}} # {{es-forma-conj|complicar|3|imperf}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|complacimos}} gneixc0tg5w49kv1o5ef13cn077e3jr complicabas 0 649909 2696427 2026-06-10T16:36:06Z Jemily1 16917 creo esta entrada 2696427 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|complicar|2|imperf}} === Miscel·lània === * {{es-sil}} tdpve2ve84smexu7c8rfnon2zasoe81 complicábamos 0 649910 2696428 2026-06-10T16:37:03Z Jemily1 16917 creo esta entrada 2696428 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|complicar|4|imperf}} === Miscel·lània === * {{es-sil}} me91w1phfbx4h7xximom7rivsroaitf complicabais 0 649911 2696429 2026-06-10T16:37:47Z Jemily1 16917 creo esta entrada 2696429 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|complicar|5|imperf}} === Miscel·lània === * {{es-sil}} 2hatr65vj8x0jvuxdgg7zidwk80rcik complicaban 0 649912 2696430 2026-06-10T16:38:26Z Jemily1 16917 creo esta entrada 2696430 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|complicar|6|imperf}} === Miscel·lània === * {{es-sil}} i2o344f25nenupnkdl0cgvjtbtrh6k5 compliqué 0 649913 2696431 2026-06-10T16:39:55Z Jemily1 16917 creo esta entrada 2696431 wikitext text/x-wiki {{vegeu|complique}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|complicar|1|pass}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|complacimos}} hxxd8wd77e0jhgspakih3hmuw46ms3g complicaste 0 649914 2696432 2026-06-10T16:41:06Z Jemily1 16917 creo esta entrada 2696432 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|complicar|2|pass}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|complaciste}} j9mmy57x30zghamfqgz7r03w3hfdhoy complicaron 0 649915 2696433 2026-06-10T16:42:01Z Jemily1 16917 creo esta entrada 2696433 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|complicar|6|pass}} === Miscel·lània === * {{es-sil}} mv13q91wgeho5nvm46wa7ebvcqg2658 complicasteis 0 649916 2696434 2026-06-10T16:43:29Z Jemily1 16917 creo esta entrada 2696434 wikitext text/x-wiki == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|complicar|5|pass}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|complacisteis}} p80i8foulxfiqz88fd9q1f0gd3r4typ complicaré 0 649917 2696435 2026-06-10T16:44:27Z Jemily1 16917 creo esta entrada 2696435 wikitext text/x-wiki {{vegeu|complicare}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|complicar|1|fut}} === Miscel·lània === * {{es-sil}} * {{anagrames|es|complacimos}} fmkby51unoneqjgc1aadwa8m0e3spl0 2696437 2696435 2026-06-10T16:46:10Z Jemily1 16917 corrijo esta entrada 2696437 wikitext text/x-wiki {{vegeu|complicare}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|complicar|1|fut}} === Miscel·lània === * {{es-sil}} 5y6v9ko68a8rmwkdr0vuendvffutag7 complicare 0 649918 2696436 2026-06-10T16:45:45Z Jemily1 16917 creo esta entrada 2696436 wikitext text/x-wiki {{vegeu|complicaré}} == {{-es-}} == {{es-pron}} === Verb === {{es-verb-forma}} # {{es-forma-conj|complicar|1|fut|subj}} # {{es-forma-conj|complicar|3|fut|subj}} === Miscel·lània === * {{es-sil}} 6sjx1qq22uan1m4qds7zkcq6o8ex6jt fàustic 0 649919 2696443 2026-06-11T06:44:50Z Arnaugir 1855 Es crea la pàgina amb «== {{-ca-}} == {{ca-pron}} {{etim-comp|ca|Faust|-ic}}. === Adjectiu === {{ca-adj|m}} # Relatiu al ''{{w|Faust}}'' de ''{{w|Goethe}}'' o que recorda la seva actitud i comportament, especialment en el sentit d'abandonar els [[principi]]s i [[valor]]s personals per tal d'aconseguir [[coneixement]], [[riquesa]] o altres beneficis. {{-trad-}} {{t-inici}} {{t-final}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|diec|gdlc|dcvb}}». 2696443 wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} {{etim-comp|ca|Faust|-ic}}. === Adjectiu === {{ca-adj|m}} # Relatiu al ''{{w|Faust}}'' de ''{{w|Goethe}}'' o que recorda la seva actitud i comportament, especialment en el sentit d'abandonar els [[principi]]s i [[valor]]s personals per tal d'aconseguir [[coneixement]], [[riquesa]] o altres beneficis. {{-trad-}} {{t-inici}} {{t-final}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|diec|gdlc|dcvb}} sh3l4zdqs8xg8s4w6n4yb0keoct5ins 2696453 2696443 2026-06-11T06:52:29Z Arnaugir 1855 epònim 2696453 wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} {{etim-comp|ca|{{epònim|ca|Faust}}|-ic}}. === Adjectiu === {{ca-adj|m}} # Relatiu al ''{{w|Faust}}'' de ''{{w|Goethe}}'' o que recorda la seva actitud i comportament, especialment en el sentit d'abandonar els [[principi]]s i [[valor]]s personals per tal d'aconseguir [[coneixement]], [[riquesa]] o altres beneficis. {{-trad-}} {{t-inici}} {{t-final}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{ca-dicc|diec|gdlc|dcvb}} tw0573fwzh2tb3urcx401a8az7gaeid fàustica 0 649920 2696444 2026-06-11T06:44:56Z Arnaugir 1855 Creant formes de -ca- [[fàustic]] ([[VC:ACC|Accelerat]]) 2696444 wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} === Adjectiu === {{ca-adj-forma|f}} # {{forma-f|ca|fàustic}} === Miscel·lània === * {{ca-sil}} 2q5ji79ml0dwyhjykcdl4zn4wdyv832 fàustics 0 649921 2696445 2026-06-11T06:44:58Z Arnaugir 1855 Creant formes de -ca- [[fàustic]] ([[VC:ACC|Accelerat]]) 2696445 wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} === Adjectiu === {{ca-adj-forma|mp}} # {{forma-p|ca|fàustic}} === Miscel·lània === * {{ca-sil}} jpoi0sx2o5w6mb4nvme8fctrnqv5bjt fàustiques 0 649922 2696446 2026-06-11T06:45:00Z Arnaugir 1855 Creant formes de -ca- [[fàustic]] ([[VC:ACC|Accelerat]]) 2696446 wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} === Adjectiu === {{ca-adj-forma|fp}} # {{forma-p|ca|fàustica}} === Miscel·lània === * {{ca-sil}} mdxw48i05n0kdesrfesqb5fo9lecv3h sòsia 0 649923 2696447 2026-06-11T06:48:14Z Arnaugir 1855 Es crea la pàgina amb «== {{-ca-}} == {{ca-pron}} {{etim-lang|fr|ca|sosie}}, de ''Sosie'', nom d'un criat de l'obra ''Amfitrió'' de {{w|Molière}} (1668). === Nom === {{ca-nom|m}} # [[persona|Persona]] que s'assembla moltíssim a una altra. #: {{ex-cit|ca|No va ser fins en aquell moment que el comissari es va recordar on havia vist el vell; no era ell exactament sinó un seu '''sòsia''' perfecte, retratat en una fotografia a la coberta d’un llibre.|ref=Andrea Camilleri, ''El gos...». 2696447 wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} {{etim-lang|fr|ca|sosie}}, de ''Sosie'', nom d'un criat de l'obra ''Amfitrió'' de {{w|Molière}} (1668). === Nom === {{ca-nom|m}} # [[persona|Persona]] que s'assembla moltíssim a una altra. #: {{ex-cit|ca|No va ser fins en aquell moment que el comissari es va recordar on havia vist el vell; no era ell exactament sinó un seu '''sòsia''' perfecte, retratat en una fotografia a la coberta d’un llibre.|ref=Andrea Camilleri, ''El gos de terracota'', 1999, traducció de Pau Vidal}} {{-trad-}} {{t-inici}} {{t-final}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{Viquipèdia}} * {{ca-dicc|diec|gdlc|dcvb}} 8napam8jz19uccqzvzfdtgwo053x4yq 2696452 2696447 2026-06-11T06:52:07Z Arnaugir 1855 eponim 2696452 wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} {{etim-lang|fr|ca|sosie}}, de ''{{epònim|ca|Sosie}}'', nom d'un criat de l'obra ''Amfitrió'' de {{w|Molière}} (1668). === Nom === {{ca-nom|m}} # [[persona|Persona]] que s'assembla moltíssim a una altra. #: {{ex-cit|ca|No va ser fins en aquell moment que el comissari es va recordar on havia vist el vell; no era ell exactament sinó un seu '''sòsia''' perfecte, retratat en una fotografia a la coberta d’un llibre.|ref=Andrea Camilleri, ''El gos de terracota'', 1999, traducció de Pau Vidal}} {{-trad-}} {{t-inici}} {{t-final}} === Miscel·lània === * {{ca-sil}} === Vegeu també === * {{Viquipèdia}} * {{ca-dicc|diec|gdlc|dcvb}} 8dqaprty24ujstcefnuolb8vn5814br sòsies 0 649924 2696448 2026-06-11T06:48:18Z Arnaugir 1855 Creant formes de -ca- [[sòsia]] ([[VC:ACC|Accelerat]]) 2696448 wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} === Nom === {{ca-nom-forma|mp}} # {{forma-p|ca|sòsia}} === Miscel·lània === * {{ca-sil}} dv0q8racniskeifz10hpaogx5i5dtm8 lolita 0 649925 2696450 2026-06-11T06:51:40Z Arnaugir 1855 Es crea la pàgina amb «== {{-ca-}} == {{ca-pron}} {{-etim-}} Del personatge de la novel·la ''{{epònim|ca|w=Lolita}}'' de {{w|Vladímir Nabókov}} (1955). === Nom === {{ca-nom|f}} # [[nena|Nena]] o [[adolescent]] [[provocativa]] i [[precoç]] en matèria [[sexual]]. {{-trad-}} {{t-inici}} {{t-final}} === Miscel·lània === * {{ca-sil}}». 2696450 wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} {{-etim-}} Del personatge de la novel·la ''{{epònim|ca|w=Lolita}}'' de {{w|Vladímir Nabókov}} (1955). === Nom === {{ca-nom|f}} # [[nena|Nena]] o [[adolescent]] [[provocativa]] i [[precoç]] en matèria [[sexual]]. {{-trad-}} {{t-inici}} {{t-final}} === Miscel·lània === * {{ca-sil}} onkfhy5areeya8kzcsnmxhvu8zn8qe0 lolites 0 649926 2696451 2026-06-11T06:51:45Z Arnaugir 1855 Creant formes de -ca- [[lolita]] ([[VC:ACC|Accelerat]]) 2696451 wikitext text/x-wiki == {{-ca-}} == {{ca-pron}} === Nom === {{ca-nom-forma|fp}} # {{forma-p|ca|lolita}} === Miscel·lània === * {{ca-sil}} 8mym3t6vvp32hf6g2zbblhhu5lq8lsu Mòdul:Jpan-headword 828 649927 2696457 2026-06-11T11:10:23Z Vriullop 219 còpia inicial de l'anglès, pendent d'adaptacions 2696457 Scribunto text/plain local m_ja = require("Module:ja-trans") local m_ja_ruby = require("Module:ja-ruby") local m_str_utils = require("Module:string utilities") local byteoffset = mw.ustring.byteoffset local concat = table.concat local gsplit = m_str_utils.gsplit local insert = table.insert local kana_to_romaji = m_ja.kana_to_romaji local max_index = require("Module:table").maxIndex local moraify = m_ja.moraify local remove = table.remove local ugmatch = mw.ustring.gmatch local ugsub = m_str_utils.gsub local ulen = m_str_utils.len local ulower = m_str_utils.lower local umatch = mw.ustring.match local usub = m_str_utils.sub local p = {} local pos_functions = {} local range = mw.loadData('Module:ja/data/range') local Jpan = require("Module:scripts").getByCode("Jpan") local function remove_links(text) return (text:gsub("%[%[[^|%]]-|", "") :gsub("%[%[", "") :gsub("%]%]", "")) end local function assign_kana_to_kanji(head, kana, pagename, template_name) require('Mòdul:utilitats').track("ja/kangitab") -- TODO: uses deprecated module local m_tu = require'Module:template utilities' local kanji_pos = {[0] = {nil, 0}} local head_nolink = {} local link_border = 0 local function insert_kanji_pos(substr) insert(head_nolink, substr) for p1, w1 in ugmatch(substr, '()([々' .. range.kanji .. '])') do p1 = byteoffset(substr, p1) + link_border insert(kanji_pos, {p1, p1 + w1:len() - 1}) end end for p1, p2, w1 in m_tu.gfind_bracket(head, {['%[%['] = ']]'}) do insert_kanji_pos(head:sub(link_border + 1, p1 - 1)) local p_pipe = w1:find'|' or 2 link_border = p1 + p_pipe - 1 insert_kanji_pos(w1:sub(p_pipe + 1, -3)) link_border = p2 end insert_kanji_pos(head:sub(link_border + 1)) head_nolink = concat(head_nolink) local pagetext = mw.title.new(pagename):getContent() if not pagetext then return head, kana end local non_kanji = {} local last_kanji = 1 for p1 in ugmatch(head_nolink, '[々' .. range.kanji .. ']()') do insert(non_kanji, usub(head_nolink, last_kanji, p1 - 2)) last_kanji = p1 end insert(non_kanji, usub(head_nolink, last_kanji)) for kanjitab in pagetext:gmatch('(){{%s*' .. template_name) do kanjitab = select(3, m_tu.find_bracket(pagetext, m_tu.brackets_temp, kanjitab)) if not kanjitab then error('ill-formed [[t:' .. template_name:gsub('%%', '') .. ']] syntax') end kanjitab = m_tu.parse_temp(kanjitab) local readings = {} local readings_len = {} for i = 1, max_index(kanjitab.args) do local r_i = kanjitab.args[i] or '' local r_o = kanjitab.args['o' .. i] or '' if kanjitab.args['k' .. i] then readings[i] = kanjitab.args['k' .. i] .. r_o readings_len[i] = tonumber(r_i:match'^%s*%D*(%d*)%s*$') or 1 else local r_kana, r_len = r_i:match'^%s*(%D*)(%d*)%s*$' readings[i] = r_kana .. r_o readings_len[i] = tonumber(r_len) or 1 end end local kana_decom = {} local reading_id = 1 local reading_len = 1 for i = 1, #non_kanji - 1 do if reading_len <= 1 then reading_len = readings_len[reading_id] or 1 insert(kana_decom, non_kanji[i]) insert(kana_decom, readings[reading_id]) reading_id = reading_id + 1 else reading_len = reading_len - 1 end end insert(kana_decom, non_kanji[#non_kanji]) local function strip_nonkana(str, repl) return ugsub(str, '[^' .. range.kana .. ']+', repl) or nil end local xeno_reading = {strip_nonkana(kana, ''):match('^' .. strip_nonkana(concat(kana_decom), '(.-)') .. '$')} if #xeno_reading > 0 then local head_decom = {} reading_id = 1 reading_len = 1 for i = 1, #non_kanji - 1 do if reading_len <= 1 then reading_len = readings_len[reading_id] or 1 insert(head_decom, head:sub(kanji_pos[i - 1][2] + 1, kanji_pos[i][1] - 1)) insert(head_decom, head:sub(kanji_pos[i][1], kanji_pos[i + reading_len - 1][2])) reading_id = reading_id + 1 else reading_len = reading_len - 1 end end insert(head_decom, head:sub(kanji_pos[#non_kanji - 1][2] + 1)) if #head_decom ~= #kana_decom then error('number of parameters in [[t:' .. template_name:gsub('%%', '') .. ']] is incorrect') end local n_xeno_reading = 0 for i = 1, #kana_decom, 2 do kana_decom[i] = ugsub(kana_decom[i], '[^' .. range.kana .. ']+', function() n_xeno_reading = n_xeno_reading + 1 if xeno_reading[n_xeno_reading] == '' then return nil else return xeno_reading[n_xeno_reading] end end) end return concat(head_decom, '%'), concat(kana_decom, '%') end end return head, kana end local adverbs_optional_tag = 'optionally ' local adverbs_optional_aliases = { ['to']='と', ['と']='と', ['ト']='と', ['ni']='に', ['に']='に', ['ニ']='に', } local adverbs_optional_links = { ['と']='[[と]]', ['に']='[[に]]', } local function formatting_adjustments(rom, kana, pos_category) -- hyphens for prefixes, suffixes, and counters (classifiers) if pos_category == "prefixes" then rom = rom:gsub('%-?$', '-') elseif pos_category == "suffixes" or pos_category == "suffix forms" or pos_category == "counters" or pos_category == "classifiers" then rom = rom:gsub('^%-?', '-') elseif pos_category == "proper nouns" and not kana:match'%^' then -- automatic caps for proper nouns, if not already specified rom = ugsub(ugsub(rom, '%f[^%s%c%p]%l', string.uupper), "%w'%u", ulower) -- no caps after medial apostrophes end return rom end local function kana_to_romaji_with_pos_format(kana, data, args) if data.headword.pos_category == "combining forms" or data.headword.pos_category == "punctuation marks" or data.headword.pos_category == "iteration marks" then return "-" end local rom = remove_links(kana_to_romaji(kana, data.lang_code)) -- make adjustments for -u verbs and -i adjectives if args['infl'] == '1' or args['infl'] == '1s' or args['infl'] == 'godan' then rom = rom:gsub('ō$', 'ou'):gsub('ū$', 'uu') elseif args['infl'] == 'i' or args['infl'] == 'is' or args['infl'] == 'い' then rom = rom:gsub('ī$', 'ii') end return formatting_adjustments(rom, kana, data.headword.pos_category) end local function iterate_rare_chars(text) local ch, i return function() repeat ch, i = umatch(text, "([" .. range.kana .. range.kana_graph .. "!-/:-@%[\\-`×△○◎。-〠〶〷〻-〽・·゠=~][゙゚]*)()", i) until not (ch and umatch(ch, "^[ぁ-ちっつて-ろんァ-チッツテ-ロンヲ-゚]$")) return ch end end local function historical_kana(data, hist_kana) -- Disallow historical kana for kana and morae, as there's no one-to-one correspondence. local pos = data.headword.pos_category if pos == "syllables" or pos == "kana" or pos == "morae" then error(("Cannot specify historical kana for %s."):format(pos)) end insert(data.info_hist, require("Module:ja-link").link({ lang = data.headword.lang, lemma = hist_kana, tr = formatting_adjustments( remove_links(kana_to_romaji(hist_kana, data.lang_code, nil, {hist = true})), hist_kana, pos ), }, { face = "head", disableSelfLink = true, })) end local function detect_pagename_kana(data, digraphs) local pagename = data.pagename -- Exclude "&" and "@", which are part of %p (e.g. リズム&ブルース). local function remove_kana(m) return m:match("[&@]") or "" end if ugsub(pagename, '[%p%s%c' .. range.hiragana .. (digraphs and "ゟ" or "") .. ']', remove_kana) == "" then return 'hira' elseif ugsub(pagename, '[%p%s%c' .. range.katakana .. (digraphs and "ヿ" or "") .. ']', remove_kana) == "" then return 'kata' elseif ugsub(pagename, '[%p%s%c' .. range.kana .. (digraphs and "ゟヿ" or "") .. ']', remove_kana) == "" then return 'both' end end -- go through args and build inflections by finding whatever kanas were given to us local function format_headword(args, data) local pagename, kanas, lang_name = data.pagename, data.kanas, data.lang_name data.pagename_kana = detect_pagename_kana(data) if args[1][1] and not args[1][1]:match'[\128-\255]' then -- filter out POS designations remove(args[1], 1) end local linked_translit = data.headword.lang:link_tr(Jpan) local suru_ending, rom_suru_ending if data.headword.pos_category == "suru verbs" then suru_ending = "[[する]]" rom_suru_ending = linked_translit and " [[suru]]" or " suru" else suru_ending, rom_suru_ending = "", "" end if data.pagename_kana then -- pure-kana-title entry if #args.head > 0 or args.head.default then insert(data.headword.categories, lang_name .. " terms with redundant head parameter") end -- {{ja-xxx}} vs {{ja-xxx|こ.うし}} vs {{ja-xxx|コウシ}} in [[こうし]] if not args[1][1] then args[1][1] = pagename elseif remove_links(args[1][1]:gsub("[%^%-%. %%]+", "")) ~= pagename then insert(args[1], 1, pagename) end for i, k in ipairs(args[1]) do insert(data.headword.heads, { term = k:gsub("[%^%-%. %%]+", "") .. suru_ending, tr = '-', l = args.label[i] and {args.label[i]} or nil, }) end for i = 1, math.max(args.rom.maxindex, 1) do local rom = args.rom[i] or args.rom.default or kana_to_romaji_with_pos_format(args[1][1], data, args) if not data.headword.heads[i] then data.headword.heads[i] = {term = data.headword.heads[i-1].term} end if rom == "-" then data.headword.heads[i].tr = "-" elseif linked_translit then data.headword.heads[i].tr = "[[" .. rom .. "]]" .. rom_suru_ending else data.headword.heads[i].tr = rom .. rom_suru_ending end if not data.inflection_base.form then data.inflection_base.form = remove_links(args[i][1]:gsub("[%^%-%. %%]+", "")) .. suru_ending data.inflection_base.romaji = rom .. rom_suru_ending end end kanas[1] = pagename if args.hist[1] then historical_kana(data, args.hist[1], args[1][1]) end else -- non-pure-kana-title entry if #args[1] == 0 and not (data.headword.pos_category == "punctuation marks" or data.headword.pos_category == "iteration marks" or data.headword.pos_category == "symbols") then error("Kana form is required.") end if args.head.default == pagename then insert(data.headword.categories, lang_name .. " terms with redundant head parameter") end local rom_repetition_final = {} for i, k in ipairs(args[1]) do local rom_auto = kana_to_romaji_with_pos_format(k, data, args) local head = args.head[i] or args.head.default or pagename if args.head[i] == pagename then insert(data.headword.categories, lang_name .. " terms with redundant head parameter") end local head_for_ruby, kana_for_ruby if ulen(head) > 1 and head:match'%%' == nil and k:match'%%' == nil then head_for_ruby, kana_for_ruby = assign_kana_to_kanji(head, k, pagename, data.lang_code .. '%-kanjitab') else head_for_ruby, kana_for_ruby = head, k end local format_table = m_ja_ruby.parse_text(head_for_ruby, kana_for_ruby, { try = 'force', try_force_limit = 10000, }) local kana_bare = remove_links(k:gsub("[%^%-%. %%]+", "")) local rom = args.rom[i] or args.rom.default or rom_auto head = { term = m_ja_ruby.to_wiki(format_table, { break_link = true, }):gsub('<rt>(..-)</rt>', "<rt>[[" .. kana_bare .."|%1]]</rt>") .. suru_ending, l = args.label[i] and {args.label[i]} or nil, } if rom == "-" or rom_repetition_final[rom] then head.tr = "-" elseif linked_translit then head.tr = "[[" .. rom .. "]]" .. rom_suru_ending else head.tr = rom .. rom_suru_ending end insert(data.headword.heads, head) rom_repetition_final[rom] = true insert(kanas, kana_bare) if args.hist[i] then historical_kana(data, args.hist[i], k) end if not data.inflection_base.form then data.inflection_base.form = remove_links(m_ja_ruby.to_markup(format_table)) .. suru_ending data.inflection_base.romaji = rom .. rom_suru_ending end end local first_reading, multiple = kanas[1] if not first_reading then return end first_reading = ulower(kana_to_romaji(first_reading, data.lang_code)):gsub("%%", "") for i = 2, #kanas do if ulower(kana_to_romaji(kanas[i], data.lang_code)):gsub("%%", "") ~= first_reading then multiple = true break end end if not multiple then local lang_code = data.lang_code local content = mw.title.getCurrentTitle():getContent() local loc1, loc2 = content:find("%f[^%z%s]==%s*" .. lang_name:gsub("%-", "%%%-") .. "%s*==()") loc2 = content:find("%f[^%z%s]==[^\n=]+==", loc2) if loc1 then content = content:sub(loc1, loc2) for template in require("Module:template parser").find_templates(content) do local name, reading = template:get_name() if ( name == lang_code .. "-head" or name == lang_code .. "-pos" ) then reading = template:get_arguments()[2] if reading ~= nil then reading = remove_links(reading):gsub("%%", "") end elseif ( name == lang_code .. "-noun" or name == lang_code .. "-verb" or name == lang_code .. "-adj" or name == lang_code .. "-phrase" or name == lang_code .. "-verb form" or name == lang_code .. "-verb-suru" ) then reading = template:get_arguments()[1] if reading ~= nil then reading = remove_links(reading):gsub("%%", "") end elseif name == lang_code .. "-see" then reading = template:get_arguments()[1] if reading ~= nil then reading = remove_links(reading):gsub("%%", "") end -- if umatch(reading, "[^" .. range.kana .. "]") then -- TODO: check linked page -- end end if reading and ulower(kana_to_romaji(reading, lang_code)):gsub("%%", "") ~= first_reading then multiple = true end end end end if multiple then insert(data.headword.categories, lang_name .. " terms with multiple readings") end end end local function get_final(lemma, data) return kana_to_romaji(remove(moraify(m_ja_ruby.to_ruby(m_ja_ruby.parse_markup(lemma)))), data.lang_code) end local function add_language_fragment(t, lang_name) for k, v in ipairs(t) do t[k] = v:gsub("%[%[([^]#]*)%]%]", function (s) return "[[" .. s .. "#" .. lang_name .. "|" .. s .. "]]" end) end end local function add_inflections(data, inflection_type, cat_suffix) local lang_name = data.lang_name local lemma = data.inflection_base.form local romaji = data.inflection_base.romaji inflection_type = inflection_type local function replace_suffix(lemma_from, lemma_to, romaji_from, romaji_to) -- e.g. 持って来る, lemma = "[持](も)って来(く)る" -- lemma_from = "くる", lemma_to = {"き","きた"} add_language_fragment(lemma_to, lang_name) add_language_fragment(romaji_to, lang_name) local result = {} local pattern_from, n_from = lemma_from:gsub('.[\128-\191]*', function(c) return '[' .. c .. m_ja.hira_to_kata(c) .. ']([^' .. range.kana .. ']*)' end) pattern_from = pattern_from .. '$' -- "[くク]([^kana range]*)[るル]([^kana range]*)$" for i_lemma_to, s_lemma_to in ipairs(lemma_to) do local n_to = 0 local pattern_to = s_lemma_to:gsub('.[\128-\191]*', function(c) if n_to < n_from then n_to = n_to + 1 return c .. "%" .. n_to else return c end end) for i = n_to + 1, n_from do pattern_to = pattern_to .. "%" .. i end -- "き%1%2", "き%1た%2" local lemma_inflected, success = ugsub(lemma, pattern_from, pattern_to) if success == 0 then return end local romaji_inflected romaji_inflected, success = romaji:gsub(romaji_from .. "$", romaji_to[i_lemma_to]) if success == 0 then romaji_inflected, success = romaji:gsub("%[%[" .. romaji_from .. "%]%]$", "[[" .. romaji_to[i_lemma_to] .. "]]") if success == 0 then return end end insert(result, {lemma = lemma_inflected, romaji = romaji_inflected}) end return result -- {{lemma="[持](も)って来(き)",romaji="motteki"},{lemma="[持](も)って来(き)た",romaji="mottekita"}} end local function insert_form(label, ...) -- label = "stem" or "past" etc. -- ... = {lemma=...,romaji=...},{lemma=...,romaji=...} local labeled_forms = {label = label} for _, v in ipairs{...} do local table_form = m_ja_ruby.parse_markup(v.lemma) local form_term = m_ja_ruby.to_wiki(table_form) if not form_term:find'%[%[.+%]%]' then form_term = '[[' .. m_ja_ruby.to_text(table_form) .. '#' .. lang_name .. '|' .. form_term .. ']]' end insert(labeled_forms, { term = form_term, tr = v.romaji, }) end insert(data.headword.inflections, labeled_forms) end local inflected_forms if data.lang_code == 'ja' then if inflection_type == '1' or inflection_type == '1s' then insert(data.info_mid, '<abbr title="godan (group 1) conjugation">godan</abbr>') if cat_suffix then insert(data.headword.categories, lang_name .. " godan " .. cat_suffix) local romaji = data.inflection_base.romaji if cat_suffix == "verbs" then local final = get_final(lemma, data) insert(data.headword.categories, lang_name .. " godan " .. cat_suffix .. " ending with -" .. final) if final == "ru" then if umatch(romaji, "[iIīĪ]ru$") then insert(data.headword.categories, lang_name .. " godan " .. cat_suffix .. " ending with -iru") elseif umatch(romaji, "[eEēĒ]ru$") then insert(data.headword.categories, lang_name .. " godan " .. cat_suffix .. " ending with -eru") end end end end if inflection_type == '1' then inflected_forms = replace_suffix('く', {'き', 'いた'}, 'ku', {'ki', 'ita'}) or replace_suffix('ぐ', {'ぎ', 'いだ'}, 'gu', {'gi', 'ida'}) or replace_suffix('す', {'し', 'した'}, 'su', {'shi', 'shita'}) or replace_suffix('つ', {'ち', 'った'}, 'tsu', {'chi', 'tta'}) or replace_suffix('ぬ', {'に', 'んだ'}, 'nu', {'ni', 'nda'}) or replace_suffix('ぶ', {'び', 'んだ'}, 'bu', {'bi', 'nda'}) or replace_suffix('む', {'み', 'んだ'}, 'mu', {'mi', 'nda'}) or replace_suffix('る', {'り', 'った'}, 'ru', {'ri', 'tta'}) or replace_suffix('う', {'い', 'った'}, 'u', {'i', 'tta'}) if inflected_forms then insert_form('stem', inflected_forms[1]) insert_form('past', inflected_forms[2]) else require'Module:debug'.track'Jpan-headword/inflection failed/ja' end else inflected_forms = replace_suffix('る', {'り', 'った', 'い'}, 'ru', {'ri', 'tta', 'i'}) or --くださる replace_suffix('いく', {'いき', 'いった'}, 'iku', {'iki', 'itta'}) or --行く replace_suffix('う', {'い', 'うた'}, 'ou', {'oi', 'ōta'}) --問う if inflected_forms then insert_form('stem', inflected_forms[1], inflected_forms[3]) insert_form('past', inflected_forms[2]) else require'Module:debug'.track'Jpan-headword/inflection failed/ja' end end elseif inflection_type == '2' then insert(data.info_mid, '<abbr title="ichidan (group 2) conjugation">ichidan</abbr>') if cat_suffix then insert(data.headword.categories, lang_name .. " ichidan " .. cat_suffix) local romaji = data.inflection_base.romaji if umatch(romaji, "[iIīĪ]ru$") then insert(data.headword.categories, lang_name .. " kami ichidan " .. cat_suffix) elseif umatch(romaji, "[eEēĒ]ru$") then insert(data.headword.categories, lang_name .. " shimo ichidan " .. cat_suffix) else insert(data.headword.categories, lang_name .. " irregular " .. cat_suffix) end end inflected_forms = replace_suffix('る', {'', 'た'}, 'ru', {'', 'ta'}) if inflected_forms then insert_form('stem', inflected_forms[1]) insert_form('past', inflected_forms[2]) else require'Module:debug'.track'Jpan-headword/inflection failed/ja' end elseif inflection_type == 'suru' then insert(data.info_mid, '<abbr title="suru (group 3) conjugation">suru</abbr>') if cat_suffix then insert(data.headword.categories, lang_name .. " suru " .. cat_suffix) end inflected_forms = replace_suffix('する', {'し', 'した'}, 'suru', {'shi', 'shita'}) or replace_suffix('ずる', {'じ', 'じた'}, 'zuru', {'ji', 'jita'}) if inflected_forms then insert_form('stem', inflected_forms[1]) insert_form('past', inflected_forms[2]) else require'Module:debug'.track'Jpan-headword/inflection failed/ja' end elseif inflection_type == 'kuru' then insert(data.info_mid, '<abbr title="kuru (group 3) conjugation">kuru</abbr>') if cat_suffix then insert(data.headword.categories, lang_name .. " kuru " .. cat_suffix) end inflected_forms = replace_suffix('くる', {'き', 'きた'}, 'kuru', {'ki', 'kita'}) if inflected_forms then insert_form('stem', inflected_forms[1]) insert_form('past', inflected_forms[2]) else require'Module:debug'.track'Jpan-headword/inflection failed/ja' end elseif inflection_type == 'i' or inflection_type == 'い' then insert(data.info_mid, '<abbr title="-i (type I) inflection">-i</abbr>') if cat_suffix then insert(data.headword.categories, lang_name .. " い-i " .. cat_suffix) end inflected_forms = replace_suffix('い', {'く'}, 'i', {'ku'}) if inflected_forms then insert_form('adverbial', inflected_forms[1]) else require'Module:debug'.track'Jpan-headword/inflection failed/ja' end elseif inflection_type == 'is' then insert(data.info_mid, '<abbr title="-i (type I) inflection">-i</abbr>') if cat_suffix then insert(data.headword.categories, lang_name .. " い-i " .. cat_suffix) end inflected_forms = replace_suffix('いい', {'よく'}, 'ii', {'yoku'}) if inflected_forms then insert_form('adverbial', inflected_forms[1]) else require'Module:debug'.track'Jpan-headword/inflection failed/ja' end elseif inflection_type == 'na' or inflection_type == 'な' then insert(data.info_mid, '<abbr title="-na (type II) inflection">-na</abbr>') if cat_suffix then insert(data.headword.categories, lang_name .. " な-na " .. cat_suffix) end inflected_forms = replace_suffix('', {'[[な]]', '[[に]]'}, '', {' [[na]]', ' [[ni]]'}) insert_form('adnominal', inflected_forms[1]) insert_form('adverbial', inflected_forms[2]) elseif inflection_type == "yo" then insert(data.info_mid, '<abbr title="yodan conjugation (classical)"><sup><small>†</small></sup>yodan</abbr>') if cat_suffix then insert(data.headword.categories, lang_name .. " yodan " .. cat_suffix) insert(data.headword.categories, lang_name .. " yodan " .. cat_suffix .. " ending with -" .. get_final(lemma, data)) end elseif inflection_type == "kami ni" then insert(data.info_mid, '<abbr title="kami nidan conjugation (classical)"><sup><small>†</small></sup>nidan</abbr>') if cat_suffix then insert(data.headword.categories, lang_name .. " nidan " .. cat_suffix) insert(data.headword.categories, lang_name .. " kami nidan " .. cat_suffix) end elseif inflection_type == "shimo ni" then insert(data.info_mid, '<abbr title="shimo nidan conjugation (classical)"><sup><small>†</small></sup>nidan</abbr>') if cat_suffix then insert(data.headword.categories, lang_name .. " nidan " .. cat_suffix) insert(data.headword.categories, lang_name .. " shimo nidan " .. cat_suffix) end elseif inflection_type == "rahen" then insert(data.info_mid, '<abbr title="r-special conjugation (classical)"><sup><small>†</small></sup>-ri</abbr>') elseif inflection_type == "sahen" then insert(data.info_mid, '<abbr title="s-special conjugation (classical)"><sup><small>†</small></sup>-se</abbr>') elseif inflection_type == "kahen" then insert(data.info_mid, '<abbr title="k-special conjugation (classical)"><sup><small>†</small></sup>-ko</abbr>') elseif inflection_type == "nahen" then insert(data.info_mid, '<abbr title="n-special conjugation (classical)"><sup><small>†</small></sup>-n</abbr>') elseif inflection_type == "nari" or inflection_type == "なり" then insert(data.info_mid, '<abbr title="-nari inflection (classical)"><sup><small>†</small></sup>-nari</abbr>') if cat_suffix then insert(data.headword.categories, lang_name .. " なり-nari " .. cat_suffix) end elseif inflection_type == 'tari' or inflection_type == 'たり' then insert(data.info_mid, '<abbr title="-tari inflection (classical)"><sup><small>†</small></sup>-tari</abbr>') if cat_suffix then insert(data.headword.categories, lang_name .. " たり-tari " .. cat_suffix) end inflected_forms = replace_suffix('', {'[[とした]]', '[[たる]]', '[[と]]', '[[として]]'}, '', {' [[to shita]]', ' [[taru]]', ' [[to]]', ' [[to shite]]'}) insert_form('adnominal', inflected_forms[1], inflected_forms[2]) insert_form('adverbial', inflected_forms[3], inflected_forms[4]) elseif inflection_type == "ku" or inflection_type == "く" then insert(data.info_mid, '<abbr title="-ku inflection (classical)"><sup><small>†</small></sup>-ku</abbr>') if cat_suffix then insert(data.headword.categories, lang_name .. " く-ku " .. cat_suffix) end elseif inflection_type == "shiku" or inflection_type == "しく" then insert(data.info_mid, '<abbr title="-shiku inflection (classical)"><sup><small>†</small></sup>-shiku</abbr>') if cat_suffix then insert(data.headword.categories, lang_name .. " しく-shiku " .. cat_suffix) end elseif inflection_type == "ka" or inflection_type == "か" then insert(data.info_mid, '<abbr title="-ka inflection (dialectal)"><sup><small>†</small></sup>-ka</abbr>') if cat_suffix then insert(data.headword.categories, lang_name .. " か-ka " .. cat_suffix) end elseif inflection_type and inflection_type:len() > adverbs_optional_tag:len() and inflection_type:sub(1, adverbs_optional_tag:len()) == adverbs_optional_tag then local adverbs_optional_list = inflection_type:sub(adverbs_optional_tag:len() + 1) for option in gsplit(adverbs_optional_list, ':') do local normalized_option = adverbs_optional_aliases[option] if not normalized_option then error('unrecognized adverb opt= argument: "' .. option .. '"') end local normalized_option_romaji = kana_to_romaji(normalized_option, data.lang_code) local normalized_option_link = adverbs_optional_links[normalized_option] inflected_forms = replace_suffix('', {normalized_option_link}, '', {' [[' .. normalized_option_romaji .. ']]'}) insert_form('optionally as', inflected_forms[1]) if cat_suffix then insert(data.headword.categories, lang_name .. " " .. cat_suffix .. " optionally taking " .. normalized_option .. "-" .. normalized_option_romaji) end end elseif inflection_type == 'irr' then insert(data.info_mid, 'irregular') if cat_suffix then insert(data.headword.categories, lang_name .. " irregular " .. cat_suffix) end elseif inflection_type == '-' or inflection_type == 'un' then insert(data.info_mid, 'uninflectable') end --elseif data.lang_code == 'ryu' then ... end end local function add_categories(data) local lang_name = data.lang_name local pagename = data.pagename local tc = data.headword.categories -- adds category [langname] terms spelled with jōyō kanji or [langname] terms spelled with non-jōyō kanji -- (if it contains any kanji) local number_of_kanji = 0 for c in ugmatch(pagename, "[" .. range.kanji .. "々〻]") do number_of_kanji = number_of_kanji + 1 --if c ~= "々" and c ~= "〻" then -- Not a kanji for the purposes of categorisation. -- insert(tc, ("%s terms spelled with %s kanji"):format(lang_name, en_grades[m_ja.kanji_grade(c)])) --end end -- categorize by number of kanji if number_of_kanji ~= 0 then insert(tc, ("%s terms with %s kanji"):format(lang_name, number_of_kanji)) -- single-kanji terms if ulen(pagename) == 1 then insert(tc, lang_name .. " terms spelled with " .. pagename) insert(tc, lang_name .. " single-kanji terms") end end -- categorize by the script of the pagename or specific characters contained in it -- if pagename is hiragana or katakana if detect_pagename_kana(data, true) == 'hira' then insert(tc, lang_name .. " hiragana") end if detect_pagename_kana(data, true) == 'kata' then insert(data.katakana_category, lang_name .. " katakana") end local p, n = ugsub(pagename, '[' .. range.kana .. range.kanji .. range.ideograph .. range.kana_graph .. range.punctuation .. ']+', '') if p ~= '' and n > 0 then insert(tc, lang_name .. " terms written in multiple scripts") end local pos = data.headword.pos_category local rare_chars = {} for ch in iterate_rare_chars(pagename) do rare_chars[ch] = true end -- Categorise yōon, but exclude kana and mora entries, since they can't be spelled with themselves. -- FIXME: allow kana categories for morae. if not (pos == "syllables" or pos == "kana" or pos == "morae") then for _, mora in ipairs(moraify((ugsub(pagename, "[^" .. range.kana .. "]+", " ")))) do if not mora:gsub(" +", ""):match("^.?[\128-\191]*$") then rare_chars[mora] = true end end end for ch in pairs(rare_chars) do insert(tc, lang_name .. " terms spelled with " .. ch) end if ( pos ~= "proverbs" and pos ~= "phrases" and umatch(ugsub(pagename, "[" .. range.katakana .. "]+", ""), "[" .. range.hiragana .. "]") and umatch(ugsub(pagename, "[" .. range.hiragana .. "]+", ""), "[" .. range.katakana .. "]") ) then insert(tc, lang_name .. " terms spelled with mixed kana") end end pos_functions["verbs"] = function(args, data) add_inflections(data, args["infl"], 'verbs') end pos_functions["suffixes"] = function(args, data) add_inflections(data, args["infl"]) end pos_functions["auxiliary verbs"] = function(args, data) insert(data.headword.categories, data.lang_name .. " auxiliary verbs") add_inflections(data, args["infl"]) data.headword.pos_category = "verbs" end pos_functions["suru verbs"] = function(data) add_inflections(data, 'suru', 'verbs') data.headword.pos_category = "verbs" end pos_functions["adjectives"] = function(args, data) add_inflections(data, args["infl"], 'adjectives') end pos_functions["nouns"] = function(args, data) -- the counter (classifier) parameter, only relevant for nouns local counter = args["count"] or "" if counter == "-" then insert(data.headword.inflections, {label = "uncountable"}) elseif counter ~= "" then insert(data.headword.inflections, {label = "counter", counter}) end end pos_functions["adverbs"] = function(args, data) local opt = args["opt"] if opt then opt = adverbs_optional_tag .. opt end add_inflections(data, opt, 'adverbs') end --[==[ Generate categories by pagename, also optionally by POS Also for use in soft redirect pages ([[Module:ja-see]]). Sortkey is not provided. data = { pagename = ..., -- (required) lang = ..., -- (required) language object categories = {}, -- (required) receive categories katakana_category = {}, -- (required) receive katakana-sorted categories pos = ..., "noun", "verb", etc. no POS categories if not given } ]==] function p.cat(data) data.lang_name = data.lang:getCanonicalName() data.pagename_kana = detect_pagename_kana(data) if data.pos then local pos = data.pos:gsub('x$', 'xe') .. 's' insert(data.categories, data.lang_name .. ' ' .. pos) insert(data.categories, data.lang_name .. ' ' .. require'Module:headword'.pos_lemma_or_nonlemma(pos, true) .. 's') end data.headword = {categories = data.categories} add_categories(data) end --[==[ The main entry point. This is the only function that can be invoked from a template. ]==] function p.show(frame) local poscat = frame.args[2] or frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.") local args = frame:getParent().args local data = { headword = { pos_category = poscat, categories = {}, heads = {}, no_redundant_head_cat = true, inflections = {}, genders = {'m'}, -- placeholder nogendercat = true, }, --custom info pagename = args.pagename or mw.title.getCurrentTitle().subpageText, pagename_kana = nil, -- "hira" "kata" "both", nil lang_code = frame.args[1], lang_name = nil, -- "Japanese", "Okinawan" ... katakana_category = {}, info_mid = {}, -- "godan", "intransitive" ... info_hist = {}, -- historical kana inflection_base = {}, -- base of inflections kanas = {}, -- kana id } data.headword.lang = require("Module:llengua").getMTByCode(data.lang_code) data.lang_name = data.headword.lang:getCanonicalName() -- sort out all the kanas and do the romanization business format_headword(args, data) -- add certain inflections and categories for adjectives, verbs, nouns, or adverbs if pos_functions[poscat] then pos_functions[poscat](args, data) end -- categories add_categories(data) local sort_base = args.sort or data.kanas[1] or data.pagename data.headword.sort_key = data.headword.lang:makeSortKey(sort_base) local katakana_category = #data.katakana_category > 0 and require("Module:utilities").format_categories( data.katakana_category, data.headword.lang, nil, sort_base, nil, require("Module:scripts").getByCode("Kana") ) or "" -- output local i_kanas = 0 return katakana_category .. require('Module:lema').full_headword(data.headword):gsub('<span class="gender">.-</span>', function() return (#data.info_hist > 0 and '<sup>←' .. concat(data.info_hist, ' or ') .. '<sup>[[w:Historical kana orthography|?]]</sup></sup>' or '') .. ('<i>' .. concat(data.info_mid, '&nbsp;') .. '</i>') end):gsub('<strong .->.-</strong>', function(m0) i_kanas = i_kanas + 1 if data.kanas[i_kanas] then return m0 end end) end return p 6akw9avpw8v2ktgj17egkald514661c