Wiktionary
gdwiktionary
https://gd.wiktionary.org/wiki/Pr%C3%AComh-Dhuilleag
MediaWiki 1.47.0-wmf.12
case-sensitive
Meadhan
Sònraichte
Deasbaireachd
Cleachdaiche
Deasbaireachd a' chleachdaiche
Wiktionary
An deasbaireachd aig Wiktionary
Faidhle
Deasbaireachd an fhaidhle
MediaWiki
Deasbaireachd MediaWiki
Teamplaid
Deasbaireachd na teamplaid
Cobhair
Deasbaireachd na cobharach
Roinn-seòrsa
Deasbaireachd na roinn-seòrsa
TimedText
TimedText talk
Mòideal
Deasbaireachd mòideil
Event
Event talk
Teamplaid:synonyms
10
17762
88469
2019-07-26T03:04:31Z
en>Chuck Entz
0
Protected "[[Template:synonyms]]": Highly visible template/module ([Edit=Allow only template editors and administrators] (indefinite) [Move=Allow only template editors and administrators] (indefinite))
88469
wikitext
text/x-wiki
{{#invoke:nyms|nyms|synonym}}<noinclude>{{documentation}}</noinclude>
l15i2r5kdr585mkqched5m0y55udx9m
88470
88469
2026-07-27T12:59:33Z
Altronic
4137
Chaidh 1 mhùthadh ion-phortachadh o [[:en:Template:synonyms]]
88469
wikitext
text/x-wiki
{{#invoke:nyms|nyms|synonym}}<noinclude>{{documentation}}</noinclude>
l15i2r5kdr585mkqched5m0y55udx9m
Mòideal:nyms
828
17763
88471
2025-09-03T16:07:06Z
en>Ioaxxere
0
`defdate` class seems inappropriate here. replace with equivalent inline CSS
88471
Scribunto
text/plain
local export = {}
local debug_track_module = "Module:debug/track"
local labels_module = "Module:labels"
local links_module = "Module:links"
local parameter_utilities_module = "Module:parameter utilities"
local parse_utilities_module = "Module:parse utilities"
local pron_qualifier_module = "Module:pron qualifier"
local function track(page)
return require(debug_track_module)("nyms/" .. page)
end
local function wrap_span(text, lang, sc)
return '<span class="' .. sc .. '" lang="' .. lang .. '">' .. text .. '</span>'
end
local function term_already_linked(term)
-- optimization to avoid unnecessarily loading [[Module:parse utilities]]
return term:find("[<{]") and require(parse_utilities_module).term_already_linked(term)
end
function export.nyms(frame)
local parent_args = frame:getParent().args
-- FIXME: Temporary error message and tracking.
for arg, _ in pairs(parent_args) do
if type(arg) == "string" and arg:find("^lb[0-9]*$") then
local llarg = arg:gsub("^lb", "ll")
error(("%s= is deprecated; use %s= instead, per the documentation"):format(arg, llarg))
end
if arg == "q" or arg == "qq" then
track(arg)
end
if type(arg) == "string" and arg:find("^tag[0-9]*$") then
local larg = arg:gsub("^tag", "l")
local llarg = arg:gsub("^tag", "ll")
error(("Use %s= (on the left) or %s= (on the right) instead of %s="):format(larg, llarg, arg))
end
end
local params = {
[1] = {required = true, type = "language", default = "und"},
[2] = {list = true, allow_holes = true, required = true},
}
local m_param_utils = require(parameter_utilities_module)
local param_mods = m_param_utils.construct_param_mods {
{group = {"link", "ref", "l"}},
-- For compatibility, we don't distinguish q= from q1= and qq= from q1=. FIXME: Maybe we should change this.
{group = "q", separate_no_index = false},
{param = "lb", deprecated = true},
}
local special_separators = mw.clone(m_param_utils.default_special_separators)
special_separators["<"] = " < "
local items, args = m_param_utils.parse_list_with_inline_modifiers_and_separate_params {
params = params,
param_mods = param_mods,
raw_args = parent_args,
termarg = 2,
parse_lang_prefix = true,
track_module = "nyms",
lang = 1,
special_separators = special_separators,
sc = "sc.default",
}
local nym_type = frame.args[1]
local nym_type_class = string.gsub(nym_type, "%s", "-")
local lang = args[1]
local langcode = lang:getCode()
local data = {
lang = lang,
items = items,
sc = args.sc.default,
l = args.l.default,
ll = args.ll.default,
q = args.q.default,
qq = args.qq.default,
}
local parts = {}
local thesaurus_parts = {}
for i, item in ipairs(data.items) do
if item.lb then
error("Inline modifier <lb:...> is deprecated; use <ll:...> per the documentation")
end
local explicit_item_lang = item.lang
item.lang = item.lang or data.lang
item.sc = item.sc or data.sc
local text
local is_thesaurus
if item.term and item.term:find("^Thesaurus:") then
is_thesaurus = true
for k, _ in pairs(item) do
if m_param_utils.item_key_is_property(k) and k ~= "lang" and k ~= "sc" and k ~= "q" and k ~= "qq" and
k ~= "l" and k ~= "ll" and k ~= "refs" then
error(("You cannot use most named parameters and inline modifiers with Thesaurus links, but saw %s%s= or its equivalent inline modifier <%s:...>"):format(
k, item.itemno, k))
end
end
local term = item.term:match("^Thesaurus:(.*)$")
-- Chop off fragment
term = term:match("^(.-)#.*$") or term
local lang = item.lang
local sccode = (item.sc or lang:findBestScript(term)):getCode()
-- FIXME: I assume it's better to include full-language codes in the CSS rather than etym-language codes,
-- which are generally specific to Wiktionary. However, we should probably instead be using the functions
-- from [[Module:script utilities]] in preference to rolling our own.
text = "[[" .. item.term .. "#" .. lang:getFullName() .. "|Thesaurus:" .. wrap_span(term, lang:getFullCode(), sccode) .. "]]"
else
if thesaurus_parts[1] then
error("Links to the Thesaurus must follow all non-Thesaurus links")
end
local raw_term = item.alt or item.term
if raw_term and term_already_linked(raw_term) then
text = raw_term
else
text = require(links_module).full_link(item)
end
end
local qq = item.qq
-- If a separate language code was given for the term, display the language name as a right qualifier.
-- Otherwise it may not be obvious that the term is in a separate language (e.g. if the main language is 'zh'
-- and the term language is a Chinese lect such as Min Nan). But don't do this for Translingual terms, which
-- are often added to the list of English and other-language terms.
if explicit_item_lang then
local explicit_code = explicit_item_lang:getCode()
if explicit_code ~= langcode and explicit_code ~= "mul" then
qq = mw.clone(qq) or {}
table.insert(qq, 1, explicit_item_lang:getCanonicalName())
end
end
if item.q and item.q[1] or qq and qq[1] or item.l and item.l[1] or item.ll and item.ll[1] or
item.refs and item.refs[1] then
text = require(pron_qualifier_module).format_qualifiers {
lang = item.lang,
text = text,
q = item.q,
qq = qq,
l = item.l,
ll = item.ll,
refs = item.refs,
}
end
local insert_place = is_thesaurus and thesaurus_parts or parts
-- Don't include the separator if this is the first item of this class that we're inserting.
table.insert(insert_place, insert_place[1] and item.separator or "")
table.insert(insert_place, text)
end
local text = table.concat(parts)
local thesaurus_text = table.concat(thesaurus_parts)
local caption = "<span style=\"font-size: smaller\">" .. mw.getContentLanguage():ucfirst(nym_type) ..
((#items > 1 or thesaurus_text ~= "") and "s" or "") .. ":</span> "
text = caption .. text
local function qualifier_error_if_no_terms()
if not parts[1] then
error("Cannot specify overall qualifiers if no non-Thesaurus terms given")
end
end
if data.q and data.q[1] or data.qq and data.qq[1] or data.l and data.l[1] then
qualifier_error_if_no_terms()
text = require(pron_qualifier_module).format_qualifiers {
lang = data.lang,
text = text,
q = data.q,
qq = data.qq,
l = data.l,
-- ll handled specially for compatibility's sake
}
end
if data.ll and data.ll[1] then
qualifier_error_if_no_terms()
text = text .. " — " .. require(labels_module).show_labels {
lang = data.lang,
labels = data.ll,
nocat = true,
open = false,
close = false,
no_track_already_seen = true,
}
end
if thesaurus_text ~= "" then
local thesaurus_intro = parts[1] and "; ''see also'' " or "''see'' "
text = text .. thesaurus_intro .. thesaurus_text
end
return "<span class=\"nyms " .. nym_type_class .. "\">" .. text .. "</span>"
end
return export
iwq0xxc2jzp83kmep8c02wjzom54pr1
88472
88471
2026-07-27T12:59:42Z
Altronic
4137
Chaidh 1 mhùthadh ion-phortachadh o [[:en:Module:nyms]]
88471
Scribunto
text/plain
local export = {}
local debug_track_module = "Module:debug/track"
local labels_module = "Module:labels"
local links_module = "Module:links"
local parameter_utilities_module = "Module:parameter utilities"
local parse_utilities_module = "Module:parse utilities"
local pron_qualifier_module = "Module:pron qualifier"
local function track(page)
return require(debug_track_module)("nyms/" .. page)
end
local function wrap_span(text, lang, sc)
return '<span class="' .. sc .. '" lang="' .. lang .. '">' .. text .. '</span>'
end
local function term_already_linked(term)
-- optimization to avoid unnecessarily loading [[Module:parse utilities]]
return term:find("[<{]") and require(parse_utilities_module).term_already_linked(term)
end
function export.nyms(frame)
local parent_args = frame:getParent().args
-- FIXME: Temporary error message and tracking.
for arg, _ in pairs(parent_args) do
if type(arg) == "string" and arg:find("^lb[0-9]*$") then
local llarg = arg:gsub("^lb", "ll")
error(("%s= is deprecated; use %s= instead, per the documentation"):format(arg, llarg))
end
if arg == "q" or arg == "qq" then
track(arg)
end
if type(arg) == "string" and arg:find("^tag[0-9]*$") then
local larg = arg:gsub("^tag", "l")
local llarg = arg:gsub("^tag", "ll")
error(("Use %s= (on the left) or %s= (on the right) instead of %s="):format(larg, llarg, arg))
end
end
local params = {
[1] = {required = true, type = "language", default = "und"},
[2] = {list = true, allow_holes = true, required = true},
}
local m_param_utils = require(parameter_utilities_module)
local param_mods = m_param_utils.construct_param_mods {
{group = {"link", "ref", "l"}},
-- For compatibility, we don't distinguish q= from q1= and qq= from q1=. FIXME: Maybe we should change this.
{group = "q", separate_no_index = false},
{param = "lb", deprecated = true},
}
local special_separators = mw.clone(m_param_utils.default_special_separators)
special_separators["<"] = " < "
local items, args = m_param_utils.parse_list_with_inline_modifiers_and_separate_params {
params = params,
param_mods = param_mods,
raw_args = parent_args,
termarg = 2,
parse_lang_prefix = true,
track_module = "nyms",
lang = 1,
special_separators = special_separators,
sc = "sc.default",
}
local nym_type = frame.args[1]
local nym_type_class = string.gsub(nym_type, "%s", "-")
local lang = args[1]
local langcode = lang:getCode()
local data = {
lang = lang,
items = items,
sc = args.sc.default,
l = args.l.default,
ll = args.ll.default,
q = args.q.default,
qq = args.qq.default,
}
local parts = {}
local thesaurus_parts = {}
for i, item in ipairs(data.items) do
if item.lb then
error("Inline modifier <lb:...> is deprecated; use <ll:...> per the documentation")
end
local explicit_item_lang = item.lang
item.lang = item.lang or data.lang
item.sc = item.sc or data.sc
local text
local is_thesaurus
if item.term and item.term:find("^Thesaurus:") then
is_thesaurus = true
for k, _ in pairs(item) do
if m_param_utils.item_key_is_property(k) and k ~= "lang" and k ~= "sc" and k ~= "q" and k ~= "qq" and
k ~= "l" and k ~= "ll" and k ~= "refs" then
error(("You cannot use most named parameters and inline modifiers with Thesaurus links, but saw %s%s= or its equivalent inline modifier <%s:...>"):format(
k, item.itemno, k))
end
end
local term = item.term:match("^Thesaurus:(.*)$")
-- Chop off fragment
term = term:match("^(.-)#.*$") or term
local lang = item.lang
local sccode = (item.sc or lang:findBestScript(term)):getCode()
-- FIXME: I assume it's better to include full-language codes in the CSS rather than etym-language codes,
-- which are generally specific to Wiktionary. However, we should probably instead be using the functions
-- from [[Module:script utilities]] in preference to rolling our own.
text = "[[" .. item.term .. "#" .. lang:getFullName() .. "|Thesaurus:" .. wrap_span(term, lang:getFullCode(), sccode) .. "]]"
else
if thesaurus_parts[1] then
error("Links to the Thesaurus must follow all non-Thesaurus links")
end
local raw_term = item.alt or item.term
if raw_term and term_already_linked(raw_term) then
text = raw_term
else
text = require(links_module).full_link(item)
end
end
local qq = item.qq
-- If a separate language code was given for the term, display the language name as a right qualifier.
-- Otherwise it may not be obvious that the term is in a separate language (e.g. if the main language is 'zh'
-- and the term language is a Chinese lect such as Min Nan). But don't do this for Translingual terms, which
-- are often added to the list of English and other-language terms.
if explicit_item_lang then
local explicit_code = explicit_item_lang:getCode()
if explicit_code ~= langcode and explicit_code ~= "mul" then
qq = mw.clone(qq) or {}
table.insert(qq, 1, explicit_item_lang:getCanonicalName())
end
end
if item.q and item.q[1] or qq and qq[1] or item.l and item.l[1] or item.ll and item.ll[1] or
item.refs and item.refs[1] then
text = require(pron_qualifier_module).format_qualifiers {
lang = item.lang,
text = text,
q = item.q,
qq = qq,
l = item.l,
ll = item.ll,
refs = item.refs,
}
end
local insert_place = is_thesaurus and thesaurus_parts or parts
-- Don't include the separator if this is the first item of this class that we're inserting.
table.insert(insert_place, insert_place[1] and item.separator or "")
table.insert(insert_place, text)
end
local text = table.concat(parts)
local thesaurus_text = table.concat(thesaurus_parts)
local caption = "<span style=\"font-size: smaller\">" .. mw.getContentLanguage():ucfirst(nym_type) ..
((#items > 1 or thesaurus_text ~= "") and "s" or "") .. ":</span> "
text = caption .. text
local function qualifier_error_if_no_terms()
if not parts[1] then
error("Cannot specify overall qualifiers if no non-Thesaurus terms given")
end
end
if data.q and data.q[1] or data.qq and data.qq[1] or data.l and data.l[1] then
qualifier_error_if_no_terms()
text = require(pron_qualifier_module).format_qualifiers {
lang = data.lang,
text = text,
q = data.q,
qq = data.qq,
l = data.l,
-- ll handled specially for compatibility's sake
}
end
if data.ll and data.ll[1] then
qualifier_error_if_no_terms()
text = text .. " — " .. require(labels_module).show_labels {
lang = data.lang,
labels = data.ll,
nocat = true,
open = false,
close = false,
no_track_already_seen = true,
}
end
if thesaurus_text ~= "" then
local thesaurus_intro = parts[1] and "; ''see also'' " or "''see'' "
text = text .. thesaurus_intro .. thesaurus_text
end
return "<span class=\"nyms " .. nym_type_class .. "\">" .. text .. "</span>"
end
return export
iwq0xxc2jzp83kmep8c02wjzom54pr1
Teamplaid:R:cy:GPC
10
17764
88473
2026-04-15T09:11:43Z
en>Surjection
0
Changed protection settings for "[[Template:R:cy:GPC]]": Highly visible template/module ([Edit=Allow only autopatrollers] (indefinite) [Move=Allow only autopatrollers] (indefinite))
88473
wikitext
text/x-wiki
{{#invoke:quote|call_template
|template=cite-web
|cy
|title={{{head|{{{1|{{pagename}}}}}}}}
|titleurl=http://welsh-dictionary.ac.uk/gpc/gpc.html?{{urlencode:{{{head|{{{1|{{pagename}}}}}}}}}}
|work=Geiriadur Prifysgol Cymru Online
|editors=R. J. Thomas; G. A. Bevan; P. J. Donovan; A. Hawke; et al.
|publisher=University of Wales Centre for Advanced Welsh & Celtic Studies
|year=1950–present
|textparam=2
|allowparams=head,1
}}<noinclude>
[[Category:Welsh reference templates|GPC]]</noinclude>
efi7k5urb4gpezy0ma0grybp0qpeijv
88474
88473
2026-07-27T14:29:15Z
Altronic
4137
Chaidh 1 mhùthadh ion-phortachadh o [[:en:Template:R:cy:GPC]]
88473
wikitext
text/x-wiki
{{#invoke:quote|call_template
|template=cite-web
|cy
|title={{{head|{{{1|{{pagename}}}}}}}}
|titleurl=http://welsh-dictionary.ac.uk/gpc/gpc.html?{{urlencode:{{{head|{{{1|{{pagename}}}}}}}}}}
|work=Geiriadur Prifysgol Cymru Online
|editors=R. J. Thomas; G. A. Bevan; P. J. Donovan; A. Hawke; et al.
|publisher=University of Wales Centre for Advanced Welsh & Celtic Studies
|year=1950–present
|textparam=2
|allowparams=head,1
}}<noinclude>
[[Category:Welsh reference templates|GPC]]</noinclude>
efi7k5urb4gpezy0ma0grybp0qpeijv
Teamplaid:gv-mut
10
17765
88475
2026-07-27T16:19:39Z
Altronic
4137
Chaidh duilleag le "{{#invoke:gv-mutate|show}}" a chruthachadh
88475
wikitext
text/x-wiki
{{#invoke:gv-mutate|show}}
cpyilkfw8hrmnjykchtrenv3grigaaf
Mòideal:gv-common
828
17766
88476
2026-07-27T17:29:30Z
Altronic
4137
Chaidh duilleag le "local export = {} function export.mutate(term) local ret = { normal = term, yn = term, lenition = term, alten = term, eclipsis = term, hpro = term } local lower = mw.ustring.lower(term) -- lenition if lower:find("^[cp][^h]") then ret.lenition = lower:gsub("^(.)", "%1h") elseif lower:find("^[bm][^w]") then ret.lenition = lower:gsub("^(.)", "v") elseif lower:find("^[bm]w") then ret.lenition = lower:gsub("^(.)", "") elseif lower:find("^[cç]h"..." a chruthachadh
88476
Scribunto
text/plain
local export = {}
function export.mutate(term)
local ret = { normal = term, yn = term, lenition = term, alten = term, eclipsis = term, hpro = term }
local lower = mw.ustring.lower(term)
-- lenition
if lower:find("^[cp][^h]") then
ret.lenition = lower:gsub("^(.)", "%1h")
elseif lower:find("^[bm][^w]") then
ret.lenition = lower:gsub("^(.)", "v")
elseif lower:find("^[bm]w") then
ret.lenition = lower:gsub("^(.)", "")
elseif lower:find("^[cç]h") then
ret.lenition = lower:gsub("^(.)", "")
elseif lower:find("^dh") then
ret.lenition = lower:gsub("^(.)", "g")
elseif lower:find("^ph") then
ret.lenition = lower:gsub("^(..)", "")
elseif lower:find("^f[^w]") then
ret.lenition = lower:gsub("^(.)", "")
elseif lower:find("^t[^h]") then
ret.lenition = lower:gsub("^(.)", "h")
elseif lower:find("^th") then
ret.lenition = lower:gsub("^(.)", "")
elseif lower:find("^fw") or lower:find("^qu") then
ret.lenition = lower:gsub("^(..)", "wh")
elseif lower:find("^gi") or lower:find("^j") then
ret.lenition = lower:gsub("^(.)", "y")
elseif lower:find("^g[^i]") then
ret.lenition = lower:gsub("^(.)", "%1h")
if term:find("^gu") then ret.altlen = lower:gsub("^(.)", "y")
elseif term:find("^Gu") then ret.altlen = lower:gsub("^(.)", "ya") end
elseif lower:find("^k") then
ret.lenition = lower:gsub("^(.)", "ch")
elseif lower:find("^s[aeiouy]") then
ret.lenition = lower:gsub("^(.)", "h")
ret.yn = lower:gsub("^(.)", "t")
elseif lower:find("^s[ln]") then
ret.lenition = lower:gsub("^(.)", "")
ret.yn = lower:gsub("^(.)", "t")
elseif lower:find("^sh[lnr]") then
ret.lenition = lower:gsub("^(..)", "")
ret.yn = lower:gsub("^(.)", "ç")
end
-- eclipsis
if lower:find("^b") then ret.eclipsis = lower:gsub("^(.)", "m")
elseif lower:find("^c[^h]") or lower:find("^k") then
ret.eclipsis = lower:gsub("^(.)", "ch")
elseif lower:find("^[cç]h") then
ret.eclipsis = lower:gsub("^(..)", "j")
elseif lower:find("^d[^h]") then ret.eclipsis = lower:gsub("^(.)", "n")
elseif lower:find("^dh") then
ret.eclipsis = lower:gsub("^(..)", "n")
elseif lower:find("^f[^w]") then
ret.eclipsis = lower:gsub("^(.)", "")
elseif lower:find("^ph") then
ret.eclipsis = lower:gsub("^(..)", "")
elseif lower:find("^fw") then
ret.eclipsis = lower:gsub("^(.)", "")
elseif lower:find("^g") then ret.eclipsis = lower:gsub("^(.)", "n")
elseif lower:find("^j") then ret.eclipsis = lower:gsub("^(.)", "n'y")
elseif lower:find("^p") then ret.eclipsis = lower:gsub("^(.)", "b")
elseif lower:find("^qu") then
ret.eclipsis = lower:gsub("^(.)", "g")
elseif lower:find("^t") then ret.eclipsis = lower:gsub("^(.)", "d")
end
if lower:find("^[aeiou]") or lower:find("^y[^aeiouh]") then
ret.hpro = "h" .. term
ret.eclipsis = "n" .. term
end
return ret
end
return export
300yhllkbr830dfdoz0hy756kjpiglj