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, 'ッ', ''') -- 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, ' ', '')
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, ", ") .. "'')")
-- 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, ' ') .. '</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