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 .. " &mdash; " .. 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 .. " &mdash; " .. 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