text:
Module:User:Gyfo/links

local export = {}

--[=[	Unsupported titles, pages with high memory usage, extraction modules and part-of-speech names are listed at Module:links/data.

Other modules used: Module:script utilities Module:scripts Module:languages and its submodules Module:gender and number Module:debug/track ]=]

-- These are prefixed with u to avoid confusion with the default string methods -- of the same name. local concat = table.concat local encode = mw.text.encode local find = mw.ustring.find local get_entities = require("Module:utilities").get_entities local gsub = mw.ustring.gsub local insert = table.insert local lower = mw.ustring.lower local remove = table.remove local shallowcopy = require("Module:table").shallowcopy local split = mw.text.split local toNFC = mw.ustring.toNFC local trim = mw.text.trim local unstrip = mw.text.unstrip local u = mw.ustring.char local TEMP_UNDERSCORE = u(0xFFF0)

local function track(page, code) local tracking_page = "links/" .. page if code then require("Module:debug/track"){tracking_page, tracking_page .. "/" .. code} else require("Module:debug/track")(tracking_page) end return true end

local function escape(text, str) local rep repeat text, rep = text:gsub("\\\\(\\*" .. str .. ")", "\5%1")	until rep == 0 return (text:gsub("\\" .. str, "\6")) end

local function unescape(text, str) return (text		:gsub("\5", "\\")		:gsub("\6", str)) end

--[==[Takes an input and splits on a double slash (taking account of escaping backslashes).]==] function export.split_on_slashes(text) text = escape(text, "//") text = split(text, "//") or {} for i, v in ipairs(text) do		text[i] = unescape(v, "//") if v == "" then text[i] = false end end return text end

-- Trim only if there are non-whitespace characters. local function cond_trim(text) -- Include all conventional whitespace + zero-width space. if find(text, "[^%s]") then text = trim(text, "%s") end return text end

--[==[Takes a link target and outputs the actual target and the fragment (if any).]==] function export.get_fragment(text) -- If there's an embedded link, just return the input. if text:find("%[%[.-%]%]") then return text end text = escape(text, "#") -- Replace numeric character references with the corresponding character ( → '), -- as they contain #, which causes the numeric character reference to be -- misparsed (wa'a → waa → pagename wa&, fragment 29;a). text = get_entities(text) local target, fragment = text:match("^(..-)#(.+)$") target = target or text target = unescape(target, "#") fragment = fragment and unescape(fragment, "#") return target, fragment end

local ignore_cap local pos_tags function export.get_link_page(target, lang, sc, plain) if not target then return nil end

-- Remove bold, italics, soft hyphens, strip markers and HTML tags. target = target :gsub("('*)(.-'*)", "%1%2") :gsub("('*)(.-'*)", "%1%2") :gsub("", "") target = unstrip(target) :gsub("<[^<>]+>", "")

-- Check if the target is an interwiki link. if target:match(":") and target ~= ":" then -- If this is an a link to another namespace or an interwiki link, ensure there's an initial colon and then return what we have (so that it works as a conventional link, and doesn't do anything weird like add the term to a category.) local prefix = target:gsub("^:*(.-):.*", lower) if (			mw.loadData("Module:data/namespaces")[prefix] or			mw.loadData("Module:data/interwikis")[prefix]		) then return ":" .. target:gsub("^:+", ""), nil, {} end -- Convert any escaped colons target = target:gsub("\\:", ":") end

-- Check if the term is reconstructed and remove any asterisk. Otherwise, handle the escapes. local reconstructed, escaped if not plain then target, reconstructed = target:gsub("^%*(.)", "%1") end target, escaped = target:gsub("^(\\-)\\%*", "%1*")

if not require("Module:utilities").check_object("script", true, sc) or sc:getCode == "None" then sc = lang:findBestScript(target) end

-- Remove carets if they are used to capitalize parts of transliterations (unless they have been escaped). if (not sc:hasCapitalization) and sc:isTransliterated and target:match("%^") then target = escape(target, "^") :gsub("%^", "") target = unescape(target, "^") end

-- Get the entry name for the language. target = lang:makeEntryName(target, sc)

-- If the link contains unexpanded template parameters, then don't create a link. if target:find("{{{") then return nil end

if target:sub(1, 1) == "/" then return ":" .. target

elseif target:find("^Reconstruction:") then return target

-- Link to appendix for reconstructed terms and terms in appendix-only languages. Plain links interpret * literally, however. elseif reconstructed == 1 then if lang:getFullCode == "und" then return nil else target = "Reconstruction:" .. lang:getFullName .. "/" .. target end -- Reconstructed languages and substrates require an initial *. elseif lang:hasType("reconstructed") or lang:getFamilyCode == "qfa-sub" then local check = target:match("^:*([^:]*):") check = check and lower(check) if (			mw.loadData("Module:data/namespaces")[check] or			mw.loadData("Module:data/interwikis")[check]		) then return target else error("The specified language " .. lang:getCanonicalName				.. " is unattested, while the given word is not marked with '*' to indicate that it is reconstructed.") end

elseif lang:hasType("appendix-constructed") then target = "Appendix:" .. lang:getFullName .. "/" .. target end

return target, escaped > 0 end

-- Сделать ссылку из частей данной ссылки --{target = text, display = data.alt, fragment = data.fragment}, data.lang local function make_link(link, lang, sc, id, allow_self_link, isolated, plain, cats, no_alt_ast) -- Преобразование процентной кодировки в открытый текст. link.target = mw.uri.decode(link.target, "PATH") link.fragment = link.fragment and mw.uri.decode(link.fragment, "PATH")

-- Находит фрагменты (если они еще не установлены). -- Предотвращает связывание {{l|en|word#Etymology 2|word}} с word. -- # можно экранировать как \#. if link.target and link.fragment == nil then link.target, link.fragment = export.get_fragment(link.target) end

-- Создаёт дефолтную форму отображения. local auto_display = link.target

-- Обработать цель local escaped link.target, escaped = export.get_link_page(link.target, lang, sc, plain)

-- Если целью является отображение и реконструкция * была экранирована, удалите экранирующую обратную косую черту. if escaped then auto_display = auto_display:gsub("\\([^\\]*%*)", "%1", 1) end

-- Обработка формы отображения. if link.display then local orig_display = link.display link.display = lang:makeDisplayText(link.display, sc, true) if cats then auto_display = lang:makeDisplayText(auto_display, sc) -- Если замещающий текст такой же, как тот, который был бы сгенерирован автоматически, то параметр alt является избыточным (например, {{l|en|foo|foo}}, {{l|en|w:foo|foo}}, но а не {{l|en|w:foo|w:foo}}). -- Если они разные, но альтернативный текст можно было ввести в качестве параметра термина, не затрагивая целевую страницу, тогда целевой параметр является избыточным (например, {{l|ru|фу|фу́}}) --. Если `no_alt_ast` имеет значение true, используйте pcall для обнаружения ошибки, которая будет выдана, если это восстановленный язык и в альтернативном тексте нет *. if link.display == auto_display then insert(cats, lang:getFullName .. " ссылки с избыточными параметрами alt") else local ok, check if no_alt_ast then ok, check = pcall(export.get_link_page, orig_display, lang, sc, plain) else ok = true check = export.get_link_page(orig_display, lang, sc, plain) end if ok and link.target == check then insert(cats, lang:getFullName .. " ссылки с избыточными целевыми параметрами") end end end else link.display = lang:makeDisplayText(auto_display, sc) end

if not link.target then return link.display end

-- Если цель та же, что и текущая страница, а смысловой идентификатор отсутствует -- и ссылка на ту же страницу не включена, возвращает «собственную ссылку», -- как это делает программное обеспечение. if (not (allow_self_link or id)) and link.target == mw.title.getCurrentTitle.prefixedText then return tostring(mw.html.create("strong")			:addClass("selflink")			:wikitext(link.display)) end

-- Добавить фрагмент. Не добавляйте ссылку на раздел «Неопределенный», так как таких разделов не существует -- и они недействительны. TabbedLanguages обрабатывает ссылки без раздела, ссылаясь на раздел «последнее посещение», -- но добавление «Неопределенный» нарушит эту функцию. Для локализованных префиксов, допускающих синтаксические ошибки, -- используйте формат: ["xyz"] = true. local prefix = link.target:match("^:*([^:]+):") if not (prefix and mw.loadData("Module:data/interwikis")[lower(prefix)]) then if (link.fragment or link.target:find("#$")) and not plain then track("fragment", lang:getFullCode) if cats then insert(cats, lang:getFullName .. " ссылки с фрагментами живых языков") end end

if (not link.fragment) and lang:getFullCode ~= "und" then if id then link.fragment = require("Module:senseid").anchor(lang, id) elseif not (link.target:find("^Appendix:") or link.target:find("^Reconstruction:") or plain) then link.fragment = lang:getFullName end elseif plain and id then link.fragment = id		end end

if isolated then link.display = mw.loadData("Module:links/data").display_change[link.display] or link.display end

link.target = link.target:gsub("^(:?)(.*)", function(m1, m2)		return m1 .. encode(m2, "#%%&+/:<=>@[\\%]_{|}")	end) link.fragment = link.fragment and encode(link.fragment, "#%%&+/:<=>@[\\%]_{|}")

return "" .. link.display .. "" end

-- Split a link into its parts local function parse_link(linktext) local link = {target = linktext}

local target = link.target link.target, link.display = target:match("^(..-)|(.+)$") if not link.target then link.target = target link.display = target end

-- There's no point in processing these, as they aren't real links. local target_lower = link.target:lower for _, false_positive in ipairs({"category", "cat", "file", "image"}) do if target_lower:match("^" .. false_positive .. ":") then return nil end end

link.display = get_entities(link.display) link.target, link.fragment = export.get_fragment(link.target)

-- So that make_link does not look for a fragment again. if not link.fragment then link.fragment = false end

return link end

-- Find embedded links and ensure they link to the correct section. local function process_embedded_links(text, data, allow_self_link, plain) -- Process the non-linked text. text = data.lang:makeDisplayText(text, data.sc[1], true)

-- If the text begins with * and another character, then act as if each link begins with *. However, don't do this if the * is contained within a link at the start. E.g. `|*foo` would set all_reconstructed to true, while `|*foo` would not. local all_reconstructed = false if not plain then if require("Module:utilities").get_plaintext(text:gsub("%[%[.-%]%]", ".")):match("^*.") then all_reconstructed = true end -- Otherwise, handle any escapes. text = text:gsub("^(\\-)\\%*", "%1*") end

if data.alt then track("alt-ignored") mw.log("(from Module:links)", "text with embedded wikilinks:", text,			"ignored alt:", data.alt, "lang:", data.lang:getFullCode) if data.cats then insert(data.cats, data.lang:getFullName .. " links with ignored alt parameters") end end if data.id then track("id-ignored") mw.log("(from Module:links)", "text with embedded wikilinks:", text,			"ignored id:", data.id, "lang:", data.lang:getFullCode) if data.cats then insert(data.cats, data.lang:getFullName .. " links with ignored id parameters") end end

local function process_link(space1, linktext, space2) local capture = "" .. linktext .. ""

local link = parse_link(linktext)

--Return unprocessed false positives untouched (e.g. categories). if not link then return capture end

if all_reconstructed and not link.target:find("^%*") then link.target = "*" .. link.target end

linktext = make_link(link, data.lang, data.sc, data.id, allow_self_link, false, plain) :gsub("^%[%[", "\3") :gsub("%]%]$", "\4")

return space1 .. linktext .. space2 end

-- Use chars 1 and 2 as temporary substitutions, so that we can use charsets. These are converted to chars 3 and 4 by process_link, which means we can convert any remaining chars 1 and 2 back to square brackets (i.e. those not part of a link). text = text :gsub("%[%[", "\1") :gsub("%]%]", "\2") -- If the script uses ^ to capitalize transliterations, make sure that any carets preceding links are on the inside, so that they get processed with the following text. if text:match("%^") and not data.sc:hasCapitalization and data.sc:isTransliterated then text = escape(text, "^") :gsub("%^\1", "\1%^") text = unescape(text, "^") end text = text:gsub("\1(%s*)([^\1\2]-)(%s*)\2", process_link)

-- Remove the extra * at the beginning of a language link if it's immediately followed by a link whose display begins with * too. if all_reconstructed then text = text:gsub("^%*\3([^|\1-\4]+)|%*", "\3%1|*") end

return (text		:gsub("[\1\3]", "")		:gsub("[\2\4]", "")) end

local function handle_redundant_wikilink(text, data) local temp, alt = text:match("^%[%[(.-)%]%]$"), data.alt if not temp then return text, alt end local temp_lower = temp:lower for _, false_positive in ipairs({"category", "cat", "file", "image"}) do if temp_lower:match("^" .. false_positive .. ":") then return text, alt end end -- Note: it's possible for "" or "" to be uninvolved in links, so we need to check for both individually (e.g. "aaa bb]]" would not have a redundant wikilink). if temp and not (temp:find("%[%[") or temp:find("%]%]")) then text, alt = temp:match("^([^|]+)|?(.-)$") track("redundant wikilink") if data and data.cats then insert(data.cats, data.lang:getFullName .. " links with redundant wikilinks") end if alt == "" then alt = nil end end return text, alt end

--[==[Creates a basic link to the given term. It links to the language section (such as ), but it does not add language and script wrappers, so any code that uses this function should call the   from Module:script utilities to add such wrappers itself at some point. The first argument,, may contain the following items, a subset of the items used in the   argument of. If any other items are included, they are ignored. { {	term = entry_to_link_to, alt = link_text_or_displayed_text, lang = language_object, id = sense_id, } }
 * Text to turn into a link. This is generally the name of a page. The text can contain wikilinks already embedded in it. These are processed individually just like a single link would be. The  argument is ignored in this case.
 * Text to turn into a link. This is generally the name of a page. The text can contain wikilinks already embedded in it. These are processed individually just like a single link would be. The  argument is ignored in this case.

 * (optional)
 * The alternative display for the link, if different from the linked page. If this is {{code|lua|nil}}, the  argument is used instead (much like regular wikilinks). If   contains wikilinks in it, this argument is ignored and has no effect. (Links in which the alt is ignored are tracked with the tracking template {{whatlinkshere|tracking=links/alt-ignored}}.)

 * The language object for the term being linked. If this argument is defined, the function will determine the language's canonical name (see Template:language data documentation), and point the link or links in the  to the language's section of an entry, or to a language-specific senseid if the   argument is defined.
 * The language object for the term being linked. If this argument is defined, the function will determine the language's canonical name (see Template:language data documentation), and point the link or links in the  to the language's section of an entry, or to a language-specific senseid if the   argument is defined.

 * (optional)
 * Sense id string. If this argument is defined, the link will point to a language-specific sense id ({{ll|en|identifier|id=HTML}}) created by the template {{temp|senseid}}. A sense id consists of the language's canonical name, a hyphen, and the string that was supplied as the  argument. This is useful when a term has more than one sense in a language. If the   argument contains wikilinks, this argument is ignored. (Links in which the sense id is ignored are tracked with the tracking template {{whatlinkshere|tracking=links/id-ignored}}.)

The second argument is as follows:
 * If {{code|lua|true}}, the function will also generate links to the current page. The default ({{code|lua|false}}) will not generate a link but generate a bolded "self link" instead.
 * If {{code|lua|true}}, the function will also generate links to the current page. The default ({{code|lua|false}}) will not generate a link but generate a bolded "self link" instead.

The following special options are processed for each link (both simple text and with embedded wikilinks): function export.language_link(data, allow_self_link) if type(data) ~= "table" then error("Первым аргументом функции Language_link должна быть таблица. См. Module:links/doc для подробной информации.") -- Если нечего обрабатывать, вернуть ноль. elseif not (data.term or data.alt) then return nil end
 * The target page name will be processed to generate the correct entry name. This is done by the makeEntryName function in Module:languages, using the  replacements in the language's data file (see Template:language data documentation for more information). This function is generally used to automatically strip dictionary-only diacritics that are not part of the normal written form of a language.
 * If the text starts with, then the term is considered a reconstructed term, and a link to the Reconstruction: namespace will be created. If the text contains embedded wikilinks, then   is automatically applied to each one individually, while preserving the displayed form of each link as it was given. This allows linking to phrases containing multiple reconstructed terms, while only showing the * once at the beginning.
 * If the text starts with, then the link is treated as "raw" and the above steps are skipped. This can be used in rare cases where the page name begins with   or if diacritics should not be stripped. For example:
 * {{temp|l|en|*nix}} links to the nonexistent page Reconstruction:English/nix ( is interpreted as a reconstruction), but {{temp|l|en|:*nix}} links to *nix.
 * {{temp|l|sl|Franche-Comté}} links to the nonexistent page Franche-Comte ( is converted to   by  ), but {{temp|l|sl|:Franche-Comté}} links to Franche-Comté.]==]

local text = data.term

data.sc = data.sc or data.lang:findBestScript(text)

ignore_cap = ignore_cap or mw.loadData("Module:links/data").ignore_cap if (ignore_cap[data.lang:getCode] or ignore_cap[data.lang:getFullCode]) and text then text = text:gsub("%^", "") end

-- Есть ли у нас лишняя вики-ссылка? Если да, удаляем её. if text then text, data.alt = handle_redundant_wikilink(text, data) end

-- Есть ли у нас встроенные вики-ссылки? if text and text:find("%[%[.-%]%]") then text = process_embedded_links(text, data, allow_self_link) -- Если нет, собираем ссылку с параметрами. else text = text and cond_trim(text) data.alt = data.alt and cond_trim(data.alt) text = make_link({target = text, display = data.alt, fragment = data.fragment}, data.lang, data.sc, data.id, allow_self_link, true, nil, data.cats, data.no_alt_ast) end

return text--word --в p.descendant{args={"en", "word"}} end

function export.plain_link(data, allow_self_link) if type(data) ~= "table" then error("The first argument to the function language_link must be a table. See Module:links/documentation for more information.") -- Nothing to process, return nil. elseif not (data.term or data.alt) then return nil -- Only have alt, just return it. elseif not data.term then return data.alt end

local text = data.term if (not data.lang) or data.lang:getFullCode ~= "und" then data.lang = require("Module:languages").getByCode("und") end data.sc = data.sc or require("Module:scripts").findBestScriptWithoutLang(text)

-- Do we have a redundant wikilink? If so, remove it. if text then text, data.alt = handle_redundant_wikilink(text, data) end

-- Do we have embedded wikilinks? if text:find("%[%[.-%]%]") then text = process_embedded_links(text, data, allow_self_link, true) -- If not, make a link using the parameters. else text = cond_trim(text) data.alt = data.alt and cond_trim(data.alt) text = make_link({target = text, display = data.alt, fragment = data.fragment}, data.lang, data.sc, data.id, allow_self_link, true, true) end

return text end

--[==[Replace any links with links to the correct section, but don't link the whole text if no embedded links are found. Returns the display text form.]==] function export.embedded_language_links(data, allow_self_link) if type(data) ~= "table" then error("The first argument to the function language_link must be a table. See Module:links/documentation for more information.") end

local text = data.term data.sc = data.sc or data.lang:findBestScript(text)

-- Do we have embedded wikilinks? if text:find("%[%[.-%]%]") then text = process_embedded_links(text, data, allow_self_link) else -- If there are no embedded wikilinks, return the display text. text = cond_trim(text) -- FIXME: Double-escape any percent-signs, because we don't want to treat non-linked text as having percent-encoded characters. text = text:gsub("%%", "%%25") text = (data.lang:makeDisplayText(text, data.sc, true)) end

return text end

function export.mark(text, item_type, face, lang) local tag = { "", "" }

if item_type == "gloss" then tag = { ' “ ', ' ” ' }	elseif item_type == "tr" then if face == "term" then tag = { '', ' ' }		else tag = { '', ' ' } end elseif item_type == "ts" then -- \226\129\160 = word joiner (zero-width non-breaking space) U+2060 tag = { ' /\226\129\160', '\226\129\160/ ' } elseif item_type == "pos" then tag = { ' ', ' ' } elseif item_type == "annotations" then tag = { ' ( ',			' ) ' } end

if type(text) == "string" then return tag[1] .. text .. tag[2] else return "" end end

--[==[Formats the annotations that are displayed with a link created by {{code|lua|full_link}}. Annotations are the extra bits of information that are displayed following the linked term, and include things such as gender, transliteration, gloss and so on. function export.format_link_annotations(data, face) local output = {}
 * The first argument is a table possessing some or all of the following keys:
 * Table containing a list of gender specifications in the style of Module:gender and number.
 * Transliteration.
 * Gloss that translates the term in the link, or gives some other descriptive information.
 * Part of speech of the linked term. If the given argument matches one of the templates in Category:Part of speech tags, then call that to show a part-of-speech tag. Otherwise, just show the given text as it is.
 * Literal meaning of the term, if the usual meaning is figurative or idiomatic.
 * Any of the above values can be omitted from the  argument. If a completely empty table is given (with no annotations at all), then an empty string is returned.
 * The second argument is a string. Valid values are listed in Module:script utilities/data "data.translit" table.]==]
 * Part of speech of the linked term. If the given argument matches one of the templates in Category:Part of speech tags, then call that to show a part-of-speech tag. Otherwise, just show the given text as it is.
 * Literal meaning of the term, if the usual meaning is figurative or idiomatic.
 * Any of the above values can be omitted from the  argument. If a completely empty table is given (with no annotations at all), then an empty string is returned.
 * The second argument is a string. Valid values are listed in Module:script utilities/data "data.translit" table.]==]
 * The second argument is a string. Valid values are listed in Module:script utilities/data "data.translit" table.]==]

-- Interwiki link if data.interwiki then insert(output, data.interwiki) end

-- Genders if type(data.genders) ~= "table" then data.genders = { data.genders } end

if data.genders and #data.genders > 0 then local m_gen = require("Module:gender and number") insert(output, " " .. m_gen.format_list(data.genders, data.lang)) end

local annotations = {}

-- Transliteration and transcription if data.tr and data.tr[1] or data.ts and data.ts[1] then local kind if face == "term" then kind = face else kind = "default" end

if data.tr[1] and data.ts[1] then insert(annotations,				require("Module:User:Gyfo/script_utilities").tag_translit(data.tr[1], data.lang, kind)				.. " " .. export.mark(data.ts[1], "ts")) elseif data.ts[1] then insert(annotations, export.mark(data.ts[1], "ts")) else insert(annotations,				require("Module:User:Gyfo/script_utilities").tag_translit(data.tr[1], data.lang, kind)) end end

-- Gloss/translation if data.gloss then insert(annotations, export.mark(data.gloss, "gloss")) end

-- Part of speech if data.pos then -- debug category for pos= containing transcriptions if data.pos:find("/[^><]*/") then data.pos = data.pos .. ""		end

pos_tags = pos_tags or mw.loadData("Module:links/data").pos_tags insert(annotations, export.mark(pos_tags[data.pos] or data.pos, "pos")) end

-- Literal/sum-of-parts meaning if data.lit then insert(annotations, "literally " .. export.mark(data.lit, "gloss")) end

if #annotations > 0 then insert(output, " " .. export.mark(concat(annotations, ", "), "annotations")) end

return concat(output) end

-- Add any left or right qualifiers or references to a formatted term. `data` is the object specifying the term, which -- should optionally contain: -- * left qualifiers in `q` (an array of strings or a single string); an empty array or blank string will be ignored; -- * right qualifiers in `qq` (an array of strings or a single string); an empty array or blank string will be ignored; -- * references in `refs`, an array either of strings (formatted reference text) or objects containing fields `text` --  (formatted reference text) and optionally `name` and/or `group`. -- `formatted` is the formatted version of the term itself. function export.add_qualifiers_and_refs_to_term(data, formatted) local left_qualifiers, right_qualifiers local reftext

left_qualifiers = data.q and #data.q > 0 and data.q	if left_qualifiers then left_qualifiers = require("Module:qualifier").format_qualifier(left_qualifiers) .. " "	end

right_qualifiers = data.qq and #data.qq > 0 and data.qq	if right_qualifiers then right_qualifiers = " " .. require("Module:qualifier").format_qualifier(right_qualifiers) end if data.refs and #data.refs > 0 then local refs = {} for _, ref in ipairs(data.refs) do			if type(ref) ~= "table" then ref = {text = ref} end local refargs if ref.name or ref.group then refargs = {name = ref.name, group = ref.group} end insert(refs, mw.getCurrentFrame:extensionTag("ref", ref.text, refargs)) end reftext = concat(refs) end

if left_qualifiers then formatted = left_qualifiers .. formatted end if reftext then formatted = formatted .. reftext end if right_qualifiers then formatted = formatted .. right_qualifiers end

return formatted end

--[==[Creates a full link, with annotations (see ), in the style of {{temp|l}} or {{temp|m}}. The first argument,, must be a table. It contains the various elements that can be supplied as parameters to {{temp|l}} or {{temp|m}}: { {	term = entry_to_link_to, alt = link_text_or_displayed_text, lang = language_object, sc = script_object, track_sc = boolean, fragment = link_fragment id = sense_id, genders = { "gender1", "gender2", ... },	tr = transliteration, ts = transcription, gloss = gloss, pos = part_of_speech_tag, lit = literal_translation, no_alt_ast = boolean, accel = {accelerated_creation_tags}, interwiki = interwiki, q = { "left_qualifier1", "left_qualifier2", ...} or "left_qualifier", qq = { "right_qualifier1", "right_qualifier2", ...} or "right_qualifier", refs = { "formatted_ref1", "formatted_ref2", ...} or { {text = "text", name = "name", group = "group"}, ... }, } } Any one of the items in the  table may be {{code|lua|nil}}, but an error will be shown if neither   nor   nor   is present. Thus, calling {{code|lua|2=full_link{ term = term, lang = lang, sc = sc } }}, where  is an entry name,    is a language object from Module:languages, and   is a script object from Module:scripts, will give a plain link similar to the one produced by the template {{temp|l}}, and calling {{code|lua|2=full_link( { term = term, lang = lang, sc = sc }, "term" )}} will give a link similar to the one produced by the template {{temp|m}}. The function will: function export.full_link(data, face, allow_self_link, show_qualifiers) -- Предотвращает деструктивное изменение данных local data = shallowcopy(data)
 * Try to determine the script, based on the characters found in the term or alt argument, if the script was not given. If a script is given and  is {{code|lua|true}}, it will check whether the input script is the same as the one which would have been automatically generated and add the category Category:Terms with redundant script codes if yes, or Category:Terms with non-redundant manual script codes if no. This should be used when the input script object is directly determined by a template's   parameter.
 * Call  on the term or alt forms, to remove diacritics in the page name, process any embedded wikilinks and create links to Reconstruction or Appendix pages when necessary.
 * Call  to add the appropriate language and script tags to the term, and to italicize terms written in the Latin script if necessary. Accelerated creation tags, as used by WT:ACCEL, are included.
 * Generate a transliteration, based on the alt or term arguments, if the script is not Latin and no transliteration was provided.
 * Add the annotations (transliteration, gender, gloss etc.) after the link.
 * If  is specified, then the alt text does not need to contain an asterisk if the language is reconstructed. This should only be used by modules which really need to allow links to reconstructions that don't display asterisks (e.g. number boxes).
 * If  is specified, left and right qualifiers and references will be displayed. (This is for compatibility reasons, since a fair amount of code stores qualifiers and/or references in these fields and displays them itself, expecting {{code|lua|full_link}} to ignore them.]==]

if type(data) ~= "table" then error("Первым аргументом функции full_link должна быть таблица. "			.. "Смотрите Module:links/documentation чтобы получить больше информации.") end

local terms = {true}

-- Создайте несколько форм, если это подходит. for _, param in ipairs{"term", "alt"} do		if type(data[param]) == "string" and data[param]:find("//") then data[param] = export.split_on_slashes(data[param]) elseif type(data[param]) == "string" and not (type(data.term) == "string" and data.term:find("//")) then data[param] = data.lang:generateForms(data[param]) else data[param] = {} end end

for _, param in ipairs{"sc", "tr", "ts"} do		data[param] = {data[param]} end

for _, param in ipairs{"term", "alt", "sc", "tr", "ts"} do		for i in pairs(data[param]) do			terms[i] = true end end -- Создать ссылку local output = {} data.cats = {} local link = "" local annotations

for i in ipairs(terms) do -- Есть ли текст для отображения? if (data.term[i] or data.alt[i]) then -- Пробуем обнаружить систему письма, если она не была предоставлена local best = data.lang:findBestScript(data.alt[i] or data.term[i]) if not data.sc[i] then data.sc[i] = best -- Отслеживаем использование параметра sc ("скрипт"). elseif data.track_sc then if data.sc[i]:getCode == best:getCode then insert(data.cats, data.lang:getFullName .. " термины с избыточным кодом письма") else insert(data.cats, data.lang:getFullName .. " термины с неизбыточным кодом живых систем письма") end end

-- Если вы используете нежелательную последовательность символов, добавьте ее в категорию обслуживания if data.sc[i]:hasNormalizationFixes == true then if (data.term[i] and data.sc[i]:fixDiscouragedSequences(toNFC(data.term[i])) ~= toNFC(data.term[i])) or (data.alt[i] and data.sc[i]:fixDiscouragedSequences(toNFC(data.alt[i])) ~= toNFC(data.alt[i])) then insert(data.cats, "Pages using discouraged character sequences") end end

local class = ""

-- Кодируйте определенные символы, чтобы избежать различных проблем, связанных с разделителями на разных этапах. Нам нужно закодировать < и > -- потому что они в конечном итоге образуют часть имен классов CSS внутри и мешают найти конец -- HTML-тега. Сначала я попытался преобразовать их в кодировку URL, т. е. %3C и %3E; затем они появляются в URL-адресе как -- %253C и %253E, которые при передаче в Module:accel преобразуются обратно в %3C и %3E. Но сопоставьте их с < -- и > каким-то волшебным образом работает без каких-либо дальнейших действий; они появляются в URL как < и > и передаются -- Модуль:accel как < и >. Я понятия не имею, кто в цепочке вызовов выполняет кодирование и декодирование. Если -- кто-то знает, пожалуйста, измените этот комментарий соответствующим образом! local encode_accel_char_map = { ["%"] = ".",				[" "] = "_",				["_"] = TEMP_UNDERSCORE, ["<"] = "<", [">"] = ">", }			local function encode_accel_param_chars(param) local retval = param:gsub("[% <>_]", encode_accel_char_map) -- отбросить второе возвращаемое значение return retval end

local function encode_accel_param(prefix, param) if not param then return "" end if type(param) == "table" then local filled_params = {} -- В последовательности могут быть пробелы, особенно для параметров транслита. local maxindex = 0 for k, v in pairs(param) do						if type(k) == "number" and k > maxindex then maxindex = k						end end for i=1,maxindex do						filled_params[i] = param[i] or "" end -- Module:accel снова разделяет их. param = concat(filled_params, "*~!") end -- Это снова декодируется с помощью WT:ACCEL. return prefix .. encode_accel_param_chars(param) end

if data.accel then local form = data.accel.form and encode_accel_param_chars(data.accel.form) .. "-form-of" or "" local gender = encode_accel_param("gender-", data.accel.gender) local pos = encode_accel_param("pos-", data.accel.pos) local translit = encode_accel_param("transliteration-",					data.accel.translit or (data.tr[i] ~= "-" and data.tr[i] or nil)) local target = encode_accel_param("target-", data.accel.target) local lemma = encode_accel_param("origin-", data.accel.lemma) local lemma_translit = encode_accel_param("origin_transliteration-", data.accel.lemma_translit) local no_store = data.accel.no_store and "form-of-nostore" or ""

local accel = form .. " " ..					gender .. " " ..					pos .. " " ..					translit .. " " ..					target .. " " ..					lemma .. " " ..					lemma_translit .. " " ..					no_store .. " "

class = "form-of lang-" .. data.lang:getFullCode .. " " .. accel end

-- Делайте ссылку только в том случае, если указан термин, в противном случае просто покажите альтернативный текст без ссылки. local term_data = { term = data.term[i],--word в p.descendant{args={"en", "word"}} alt = data.alt[i], lang = data.lang --sc = data.sc[i], --fragment = data.fragment, --id = data.id, --genders = data.genders, --tr = data.tr[i], --ts = data.ts[i], --gloss = data.gloss, --pos = data.pos, --lit = data.lit, --accel = data.accel, --interwiki = data.interwiki, --cats = data.cats, --no_alt_ast = data.no_alt_ast }			link = --require("Module:script utilities").tag_text(				--data.term[i] and export.language_link(term_data--, allow_self_link)				--or data.alt[i], data.lang, data.sc[i], face, class) else --	Нет термина для отображения.					Есть ли хотя бы транслитерация, с которой мы можем работать? link = require("Module:User:Gyfo/script_utilities").request_script(data.lang, data.sc[i]) -- Нет ссылки для отображения и нет транслитерации. Покажите запрос на термин (если только это не субстрат, так как термины берут редко). if (link == "" or (not data.tr[i]) or data.tr[i] == "-") and data.lang:getFamilyCode ~= "qfa-sub" then -- Если имеется несколько терминов, разорвите цикл. if i > 1 then remove(output) break elseif mw.title.getCurrentTitle.nsText ~= "Template" then insert(data.cats, data.lang:getFullName .. " term requests") end link = " [Term?] " end end insert(output, link)

if i < #terms then insert(output, "／ ") end end

-- TODO: В настоящее время обрабатывается только первая транслитерация, ожидается достижение консенсуса о том, как обрабатывать несколько транслитов для нескольких форм, поскольку это не всегда желательно (например, традиционный/упрощенный китайский язык). if data.tr[1] == "" or data.tr[1] == "-" then data.tr[1] = nil

else local phonetic_extraction = mw.loadData("Module:links/data").phonetic_extraction phonetic_extraction = phonetic_extraction[data.lang:getCode] or phonetic_extraction[data.lang:getFullCode]

if phonetic_extraction then data.tr[1] = data.tr[1] or require(phonetic_extraction).getTranslit(export.remove_links(data.alt[1] or data.term[1]))

elseif (data.term[1] or data.alt[1]) and data.sc[1]:isTransliterated then -- Отслеживайте всякий раз, когда есть ручной транслит. Категории ниже, такие как «термины с избыточной транслитерацией». -- недостаточны, поскольку они работают только в отношении автоматического транслита и вообще не работают в -- языки без автоматического транслита, такие как персидский и иврит. if data.tr[1] then track("manual-tr", data.lang:getFullCode) end

-- Попробуйте сгенерировать транслитерацию, если только транслитерация не указана и не задан data.no_check_redundant_translit. -- (Проверка избыточной транслитерации может занимать значительные объемы памяти, поэтому мы не хотим делать это, если памяти недостаточно.		-- `no_check_redundant_translit` в настоящее время устанавливается при вызове в конечном итоге из {{multitrans|...|no-check-redundant- транслит=1}}.) if not (data.tr[1] and data.no_check_redundant_translit) then local text = data.alt[1] or data.term[1] if not data.lang:link_tr then text = export.remove_links(text, true) end

local automated_tr, tr_categories automated_tr, data.tr_fail, tr_categories = data.lang:transliterate(text, data.sc[1])

if automated_tr or data.tr_fail then local manual_tr = data.tr[1]

if manual_tr then if (export.remove_links(manual_tr) == export.remove_links(automated_tr)) and (not data.tr_fail) then insert(data.cats, data.lang:getFullName .. " terms with redundant transliterations") elseif not data.tr_fail then -- Предотвращает заполнение категорий отслеживания арабскими корневыми категориями. if mw.title.getCurrentTitle.nsText ~= "Category" then insert(data.cats, data.lang:getFullName .. " термины с неизбыточной ручной транслитерацией") end end end

if (not manual_tr) or data.lang:overrideManualTranslit then data.tr[1] = automated_tr for _, category in ipairs(tr_categories) do							insert(data.cats, category) end end end end end end

-- Ссылка на запись о транслитерации для языков, требующих этого if data.tr[1] and data.lang:link_tr and not (data.tr[1]:match("%[%[(.-)%]%]") or data.tr_fail) then data.tr[1] = export.language_link{ lang = data.lang, term = data.tr[1], sc = require("Module:scripts").getByCode("Latn") }	elseif data.tr[1] and not (data.lang:link_tr or data.tr_fail) then -- Удалите псевдо-HTML-теги, добавленные с помощью команды remove_links. data.tr[1] = data.tr[1]:gsub("", "") end if data.tr[1] and gsub(data.tr[1], "[%s%p]", ""):len == 0 then data.tr[1] = nil end

insert(output, export.format_link_annotations(data, face))

local categories = #data.cats > 0 and require("Module:utilities").format_categories(data.cats, data.lang, "-", nil, nil, data.sc) or ""

output = concat(output) if show_qualifiers then output = export.add_qualifiers_and_refs_to_term(data, output) end return output-- .. categories end

--[==[Replaces all wikilinks with their displayed text, and removes any categories. This function can be invoked either from a template or from another module. -- Strips links: deletes category links, the targets of piped links, and any double square brackets involved in links (other than file links, which are untouched). If `tag` is set, then any links removed will be given pseudo-HTML tags, which allow the substitution functions in Module:languages to properly subdivide the text in order to reduce the chance of substitution failures in modules which scrape pages like Module:zh-translit. -- FIXME: This is quite hacky. We probably want this to be integrated into Module:languages, but we can't do that until we know that nothing is pushing pipe linked transliterations through it for languages which don't have link_tr set. function export.remove_links(text, tag) if type(text) == "table" then text = text.args[1] end
 * →
 * →
 * → (nothing)]==]

if not text or text == "" then return "" end

text = text :gsub("%[%[", "\1") :gsub("%]%]", "\2")

-- Parse internal links for the display text. text = text:gsub("(\1)([^\1\2]-)(\2)",		function(c1, c2, c3)			-- Don't remove files.			for _, false_positive in ipairs({"file", "image"}) do				if c2:lower:match("^" .. false_positive .. ":") then return c1 .. c2 .. c3 end			end			-- Remove categories completely.			for _, false_positive in ipairs({"category", "cat"}) do				if c2:lower:match("^" .. false_positive .. ":") then return "" end			end			-- In piped links, remove all text before the pipe, unless it's the final character (i.e. the pipe trick), in which case just remove the pipe.			c2 = c2:match("^[^|]*|(.+)") or c2:match("([^|]+)|$") or c2			if tag then				return " " .. c2 .. " "			else				return c2			end		end)

text = text :gsub("\1", "")		:gsub("\2", "")

return text end

--[=[ This decodes old section encodings. For example, Norwegian_Bokm.C3.A5l → Norwegian_Bokmål. It isn't picky about whether the section encodings represent the UTF-8 encoding of a real Unicode character, so it will mangle section names that contain a period followed by two uppercase hex characters. At least such section names are probably pretty rare.

Wiktionary adds an additional id="" attribute for sections using a legacy encoding, if it is different from the modern minimally modified attribute. It is like percent encoding (URI or URL encoding) except with "." instead of "%". See mw:Manual:$wgFragmentMode and the code that does the encoding at https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+/7bf779524ab1fd8e1d74f79ea4840564d48eea4d/includes/parser/Sanitizer.php#893 ]=]

-- The character class %x should not be used, as it includes the characters a-f, -- which do not occur in these anchor encodings. local capital_hex = "[0-9A-F]"

local function decode_anchor(anchor) return (anchor:gsub("%.(" .. capital_hex .. capital_hex .. ")", function(hex_byte) return string.char(tonumber(hex_byte, 16)) end)) end

function export.section_link(link) if type(link) ~= "string" then error("The first argument to section_link was a " .. type(link) .. ", but it should be a string.") end

link = link:gsub("_", " ")

local number_signs = select(2, link:gsub("#", ""))

if number_signs > 1 then error("The section link should only contain one number sign (#).") end

link = mw.uri.decode(link, "WIKI") local page, section = link:match("^([^#]*)#(.+)$") if page == "" then page = nil end

if section then section = decode_anchor(section)

-- URI-encode (percent-encode) section to allow square brackets and -- other dodgy characters in section name. -- If not percent-encoded, they prevent the parser from creating a link. -- Decode percent-encoding in the displayed text if page then return "" .. page .. " § " .. section .. "" else return "§ " .. section .. "" end else error("The function “section_link” could not find a number sign marking a section name.") end end

return export

title: Module:User:Gyfo/links


text:
異稟

Noun

 * 1) extraordinary talent; exceptional aptitude

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: 異稟


text: hîç nə

title: hîç nə


text: snedden

title: snedden


text: هئچ نه

title: هئچ نه


text:
på snedden

Prepositional phrase

 * 1) diagonally, at an angle

title: på snedden


text:
gierkowiec

Etymology
From.

Noun

 * 1)  supporter of 's politics

Noun

 * 1)  apartment building built during the administration (1970-1980) of

title: gierkowiec


text:
Kilgus

Etymology
.

Statistics

 * According to the 2010 United States Census, Kilgus is the 41959th most common surname in the United States, belonging to 518 individuals. Kilgus is most common among White (98.07%) individuals.

title: Kilgus


text:
Vishakha

Etymology
From

Noun

 * 1)  the 14th (later 16th) lunar asterism (figured by a decorated arch and containing four or originally two stars under the regency of a dual divinity, इन्द्र and अग्नि ; it is probably to be connected with the quadrangle of stars ι, α, β, γ Librae.

title: Vishakha


text: Keelins

title: Keelins


text: Kilguses

title: Kilguses


text:
Talk:equipage

Etymology
Can someone provide a source for the statement that the "carriage" sense of "equipage" may have been due to the influence of equus? Billfalls (talk) 17:03, 5 January 2024 (UTC)

title: Talk:equipage


text: Category:Hungarian adverbs, determiners, and pronouns by prefix


text:
Kirschn

Etymology
From, from , from , from , derived from , , from , from , and ultimately possibly of origin (the intervocalic σ suggests a pre-Greek origin for the word).

Noun

 * 1) cherry

title: Kirschn


text: Category:Hungarian adjectives and nouns by prefix


text:
Riddiford

Etymology
Probably a habitational surname from a lost place in Gloucestershire, from +.

Statistics

 * According to data collected by Forebears in 2014, Riddiford is the 17257th most common surname in England, belonging to 284 individuals.

title: Riddiford


text:
агънце

Noun

 * : lambkin

title: агънце


text:
सांत्वना

Etymology
.

Noun

 * 1) consolation, solace

title: सांत्वना


text:
açugë

Etymology
..

Noun

 * 1) anchovy

title: açugë


text: सान्त्वना

title: सान्त्वना


text:
Alveston

Etymology
From the personal name  +.

Statistics

 * According to data collected by Forebears in 2014, Alveston is the 91802nd most common surname in England, belonging to 22 individuals.

title: Alveston


text: Alvestons

title: Alvestons


text: Riddifords

title: Riddifords


text: 寡ない

title: 寡ない


text: Category:Japanese terms spelled with 寡 read as すく


text: Geikies

title: Geikies


text:
ançua

Etymology
, from. .

Noun

 * 1) anchovy

title: ançua


text: Chilham

title: Chilham


text:
Geekie

Statistics

 * According to data collected by Forebears in 2014, Geekie is the 109999th most common surname in the United States, belonging to 220 individuals.

title: Geekie


text:
Kaschn

Etymology
From, from , from , from , derived from , , from , from , and ultimately possibly of origin (the intervocalic σ suggests a pre-Greek origin for the word).

Noun

 * 1) cherry

title: Kaschn


text: ançue

title: ançue


text: Geekies

title: Geekies


text: latsidan

title: latsidan


text:
Template:Khaisan letters

in 《蒙漢合璧五方元音》 ("Mongolian-Han Bilingual Original Sounds of the Five Regions"), an edition of the Mandarin 《五方元音》 ("Original Sounds of the Five Regions") which included Mongolian transliterations of Mandarin readings.

title: Template:Khaisan letters


text:
Kersch

Etymology
From, from , from , from , derived from , , from , from , and ultimately possibly of origin (the intervocalic σ suggests a pre-Greek origin for the word).

Noun

 * 1) cherry

title: Kersch


text:
inçun

Etymology
..

Noun

 * 1) anchovy

title: inçun


text:
cò aig a tha fios

Phrase

 * 1)  who knows?

title: cò aig a tha fios


text: Category:Mongolian coinages

title: Category:Mongolian coinages


text: Category:Mongolian terms coined by Khaisan


text: Category:Mongolian terms attributed to a specific source


text:
Kerschn

Etymology
From, from , from , from , derived from , , from , from , and ultimately possibly of origin (the intervocalic σ suggests a pre-Greek origin for the word).

Noun

 * 1) cherry

title: Kerschn


text:
babblemouth

Etymology
From.

Noun

 * 1) One who babbles.
 * 2)  One who reveals or gives away information.
 * 1)  One who reveals or gives away information.
 * 1)  One who reveals or gives away information.
 * 1)  One who reveals or gives away information.
 * 1)  One who reveals or gives away information.
 * 1)  One who reveals or gives away information.
 * 1)  One who reveals or gives away information.
 * 1)  One who reveals or gives away information.
 * 1)  One who reveals or gives away information.
 * 1)  One who reveals or gives away information.
 * 1)  One who reveals or gives away information.

title: babblemouth


text: babblemouths

title: babblemouths


text:
ягнё

Etymology
,, from , from , the stem of. Cognates include 🇨🇬.

title: ягнё


text:
celebraid

Etymology
From.

Verb

 * 1) to take one's leave, say goodbye
 * "sga"
 * "sga"

- lase celebirsimme

title: celebraid


text: ягнём

title: ягнём


text: ягнятамі

title: ягнятамі


text: ягняты

title: ягняты


text: ягняці

title: ягняці


text: Mountain Street

title: Mountain Street


text:
ligga på latsidan

Etymology
Literally, "lie on the lazy-side."

Verb

 * 1)  to be (idly) lazy (as opposed to productive)

title: ligga på latsidan


text: ягняти

title: ягняти


text: ягняті

title: ягняті


text: ягням

title: ягням


text: ligger på latsidan

title: ligger på latsidan


text: låg på latsidan

title: låg på latsidan


text: legat på latsidan

title: legat på latsidan


text: ligg på latsidan

title: ligg på latsidan


text: celebirsimme

title: celebirsimme


text: benranglet

title: benranglet


text: benranglen

title: benranglen


text:
jeumala

Etymology
Compare with 🇨🇬

Noun

 * 1)  top of head

title: jeumala


text: benrangels

title: benrangels


text: benranglets

title: benranglets


text: benranglens

title: benranglens


text:
Pracker

Noun

 * 1) hit, strike
 * 2) carpetbeater

title: Pracker


text:
cochgam

Etymology
From.

Noun

 * 1)  robin

title: cochgam


text:
puckelrygg

Etymology
..

Noun

 * 1) humpback

title: puckelrygg


text: puckelryggen

title: puckelryggen


text: puckelryggar

title: puckelryggar


text: puckelryggarna

title: puckelryggarna


text: puckelryggs

title: puckelryggs


text: puckelryggens

title: puckelryggens


text: puckelryggars

title: puckelryggars


text: puckelryggarnas

title: puckelryggarnas


text:
لمحاتی

Etymology
From from the root

Adjective

 * 1) momentary, short-lived, transient

title: لمحاتی


text:
prackn

Etymology
. Probably related to, thus ultimatively from.

Verb

 * 1)  to beat, to hit, to strike, to smack

title: prackn


text: височин

title: височин


text: височині

title: височині


text: latsida

title: latsida


text: височину

title: височину


text: височиною

title: височиною


text:
Module talk:zh/data/dial-syn/水費

Recognizing
I notice that your criterion for asking you dad is if he recognizes the word. Not necessarily this particular word, but I just want to point out that that's not necessarily a good thing, because theoretically I could put two characters together and our elders could recognize what it means (or what it's intended to mean), even if no one says it. The best criterion is always natural usage. Basically, you get to hear an elder use it in normal speech, without prodding or asking them. That's why linguists try to use picture illustrations when asking native speakers what word they would use to describe something, in order to not let the linguist's bias influence the speaker's response. Mar vin kaiser (talk) 18:24, 5 January 2024 (UTC)

 * @Mar vin kaiser It's not just recognizing. It's the first thing to notice and the bare minimum at least if my dad couldn't be asked to say more or the environment was too noisy. The 2nd thing I would ask him if he thinks it is what is used in lán-nâng-ōe tǐ Hui-li̍p-pin or I would ask him if this term or which term is used more often he would think tǐ Hui-li̍p-pin, which he answered last time chúi-hùi and chúi-chîⁿ is supposed to be kî-koài ê ōe. I could not fish out natural speech from him if it's a term he didn't recently use and normally doesn't use on average anyways, because in our house that we've lived so far more than a decade now, we live in a building that my guama technically owns, but each floor has been rented out separately for years and the first floor and the floor we live on used to be both managed by my auntie before so she paid the bills on both of them, but that was years ago she has since moved to different houses and the last decade, we've lived in the floor she used to live at but the first floor is now run by another distant uncle we don't talk too much with. Now for the past decade or so, we always paid a huge tiān-chîⁿ for some reason that my family used to struggle paying off in the first few years, but for some reason, we never received any chúi-chîⁿ to pay for, which we've always suspected is cuz the other floor is paying it, so my parents, chúi-chîⁿ or chúi-hùi is something that's normally not in their vocabulary at least for the past decade, but I think I always remember my atsi also using tiān-chîⁿ usually for the past years and she mostly gets her vocabs from my parents or grandparents before that raised her, so chúi-chîⁿ should make sense and most everyone in chat thumbs up on it last time.
 * My dad's reaction usually is tho on words he doesn't quite remember or recognize or haven't heard of is to tell me I'm telling him kî-koài ê ōe or questioning if it's cuz I am getting the tones wrong or sometimes he feels bad if he can't think up the term and tries to avoid me or tells me he's going to think about it some more and asks me to go do something for him or asking me to go live in tāi-dio̍k or if I am Malaysia ê lâng or if I am tâi-oân-á, which is what he wonders I am getting the words from or he thinks I managed to meet someone from there and got those words from them. I ask him more frequently than my mom too is because of that behavior of his to stick with what he thinks is lán-nâng-ōe, cuz my mom sometimes defers to go with the term I told her with her thinking it probably exists in another dialect in other countries or she thinks it's ē-mn̂g-ōe, which she expects me to think it should be more proper, or she gives me the Mandarin term or gives me the hokkien reading of the Mandarin term cuz she thinks that's supposed to be the formal term. So usually, I finesse my dad on the natural lán-nâng-ōe term, especially if I happened to hear it from his speech recently and decided to look into it, but if it's a random question in chat, I think some question for him first to make him guess the answer he'd say in lán-nâng-ōe, but once he's given me the word or multiple words, I have no other choice but to ask him which one is used more, which one is ta̍k-pái lé-ēng, or which one he thinks is used more in the Philippines if he himself normally doesn't use it. I can't ask him too much as well these days cuz some weeks cuz of his job in tarlac or laguna or batangas or cavite, he's not at home for like 1 or 2 days, so I have to save up what to ask him when he gets back or defer with what others respond with in chat to prepare for if he would likely recognize it or not at least. The chúi-hùi last time was something that spontaneously came up from him first, after I was expecting him to recognize chúi-chîⁿ. I tested him after with tiān-chîⁿ, kang-chîⁿ, and ha̍k-hùi and he reacted as expected just like ahiya Dixon to what those mean and existing forms. Mlgc1998 (talk) 04:43, 6 January 2024 (UTC)
 * Instead of asking your dad, for example, if he recognizes "chúi-chîⁿ" or "chúi-hùi", have you tried just asking him how to say "bayad sa tubig" in Hokkien, without saying any Hokkien words? Because with that kind of questioning, you'll be sure that the word came from his mind and not possibly suggested by you. --Mar vin kaiser (talk) 05:58, 6 January 2024 (UTC)
 * @Mar vin kaiser I do do that with other words I've asked him before, but in this case, I was making the 水錢 page and wanted to confirm what it meant to him too specifically to see if it matched the idea of others in the chat, and he did say at first "water bill" on first ask. In terms of what vocab he would use primarily for "water bill" tho, I'd thought it wouldn't be a big thing anyways cuz in our family, we don't talk about the water bill that much cuz of the above situation, besides when I ask them wondering why we didn't have it. "chúi-hùi" was just another additional thing he tried to correct it with then I asked him, so what was more frequent in the Philippines, which he said "chúi-hùi" and then went on about how chúi-chîⁿ was like kî-koài in a sense, which to be fair, he doesn't think highly of Hokkien words that he thinks are only chiâ ê ōe, besides of course the words he doesn't know aren't said in other countries. When he knows it's only used in ph, he went on last time about some hokkien loanwords in tagalog, that chiâ ê lâng lé-phiàn lâng, so now we don't know why the ampaw puffed rice confection was named the way it is. Mlgc1998 (talk) 06:21, 6 January 2024 (UTC)
 * Yeah, I guess that's your dad's bias against local words. Another possibility though is that he interprets the Mandarin term 水費 read in Hokkien as the correct Hokkien word and possibly him saying that "chúi-hùi" is more frequent could be colored by that bias. Not necessarily saying that's the case, but it's possible. My dad, on the other hand, always says 水錢, and when I asked him if we say locally the word "chúi-hùi", he said no. That's why I want a big pool of elders that we can ask, so that the bias of each person is cancelled out, and we can see a fuller picture. --Mar vin kaiser (talk) 07:10, 7 January 2024 (UTC)--Mar vin kaiser (talk) 07:10, 7 January 2024 (UTC)
 * @Mar vin kaiser I mean we have some people we can ask in chat as well to confirm, but if it's about expanding the pool to more native speakers we can ask from, I think some weaknesses of a combined chat are things like groupthink. Despite Ken saying that he thinks older people might not be affected by it, I think regardless of age, if someone saw someone offer up a word first already that they recognize even if it's not the primary word they use or first popped into their mind, they might go with what the first thing that came up in a sort of common chat then say no more than that and tell you that's the answer already, like everybody going for a bias that got introduced in first, no matter which direction that bias came from. In an ideal world, it'd be best if many speakers were asked the same questions in separate rooms so they can answer honestly what they thought without influence from anyone, with study of their backgrounds, then combine all that data to produce common patterns of information about it. The obstacles of course as well would be these older native speakers whether silent gen, boomer gen, gen X, 1st gen, 2nd gen, 3rd gen, 4th gen, or so are usually not tech-savvy and most everyone aren't hokkien literate so they have to be taught at least some basics how they can express Hokkien by text, which most are literate in English, Filipino/Tagalog, Mandarin, and Cebuano, Hiligaynon, Central Bicol, etc. Then sometimes there's wildcards to the expected usual people, like suddenly there's a person who is more in line with another historical dialect group or is a part of a generation or wave with their own little peculiarities like some newcomers or some people who came during a certain era and these people are all sprinkled about the populace in a certain manner from some sort of direction. Of course, have to take things progressively, perhaps some of these can be handled better in the future as well. Mlgc1998 (talk) 11:35, 7 January 2024 (UTC)
 * Agree with what you said about a "groupthink". So better if they don't see the answer of other elders. Also, the obstacles you talk about is no problem, as long as we understand the person's background. --Mar vin kaiser (talk) 11:40, 7 January 2024 (UTC)
 * @Mar vin kaiser Also I recently tried this again asking my dad about what is the lán-nâng-ōe of this english or tagalog word, and his reaction was, he was like stumped and couldn't answer or think up anything on the spot, since maybe the topic being asked was a bit too random from what the usual everyday things he thinks about, so if he couldn't think up an answer, sometimes he tries to walk off and go do other things, so before he does that or tries to avoid my questions, I offer up some words instead if he recognizes, which sometimes he looks at me expecting I remind him with a word if he thinks I already know the answer. For my purposes on certain words I ask, it's useful for confirming if those words are used specifically, but if there were some mysterious ??? additional words as well being used that he didn't remember, it wouldn't have come out, but I suppose it's another struggle with the memory of speakers, especially the native speakers are usually getting old or are old already. He's recently received his senior citizen id last year, which I think boomer gens and silent gens these days are now crossing to senior citizen these days, tho maybe there's still some younger boomers in their 50s or knowledgeable older gen X as well. Thinking about my surviving grandparents of silent gen, despite being alive, I think there are some silent gen who it's hard to ask too much anymore since they might be having mental problems these days now that blur their memory or their thinking. I think my last grandparent who hasn't passed yet looks like maybe she might not do too well with what I been asking my parents these past years. These days, maybe it's mostly gonna be boomers as the generations get older. Of course, I guess there's some strong healthy ones as well. Mlgc1998 (talk) 11:58, 7 January 2024 (UTC)

Recognizing
I notice that your criterion for asking you dad is if he recognizes the word. Not necessarily this particular word, but I just want to point out that that's not necessarily a good thing, because theoretically I could put two characters together and our elders could recognize what it means (or what it's intended to mean), even if no one says it. The best criterion is always natural usage. Basically, you get to hear an elder use it in normal speech, without prodding or asking them. That's why linguists try to use picture illustrations when asking native speakers what word they would use to describe something, in order to not let the linguist's bias influence the speaker's response. Mar vin kaiser (talk) 18:24, 5 January 2024 (UTC)

title: Module talk:zh/data/dial-syn/水費


text: височинам

title: височинам


text: височинами

title: височинами


text: височинах

title: височинах


text: καθελεῖν

title: καθελεῖν


text:
piod y dŵr

Etymology
.

Noun

 * 1) kingfishers

title: piod y dŵr


text: Category:Bikol Central terms suffixed with -han


text: Template:R:nds:PWb

title: Template:R:nds:PWb


text:
榫卯

Noun

 * 1) tenon and mortise; carpenter's joint

title: 榫卯


text:
ἐπιδημιουργοί

Etymology
From.

Noun

 * 1) magistrates sent annually by Doric states to their colonies

title: ἐπιδημιουργοί


text:
w koło Macieju

Etymology
lit. 'around Maciej', where Maciej originally referred to storks circling their nests, as it was originally probably a dialectal nickname given to storks. Compare.

Adverb

 * 1)  over and over again

title: w koło Macieju


text: ἐπιδημιουργούς

title: ἐπιδημιουργούς


title: Template:myv-noun-1ps-2


text: énekeljed

title: énekeljed


text: قصايد

title: قصايد


text: énekeld

title: énekeld


text:
Rybolovlev

Etymology
.

title: Rybolovlev


text: Nikoläuse

title: Nikoläuse


text:
Remisc

Etymology
From, equivalent to. Cognate with 🇨🇬,.

Adjective

 * 1) of or pertaining to Rome; Roman

title: Remisc


text: Steinhäuser

title: Steinhäuser


text: 寅吃卯粮

title: 寅吃卯粮


text:
Template:myv-noun-1ps-table

First person singular posessive declension of

title: Template:myv-noun-1ps-table


text:
низовина

Etymology
From.

Noun

 * 1) lowland

title: низовина


text: Steinhauses

title: Steinhauses


text: низовини

title: низовини


text: низовин

title: низовин


text: Nikolauses

title: Nikolauses


text: Nikolause

title: Nikolause


text: Schokoladennikolauses

title: Schokoladennikolauses


text:
Marün

Etymology
, from.

Noun

 * 1) apricot
 * 2) head, noggin

title: Marün


text:
Hügellandschaft

Etymology
From.

Noun

 * 1) hillscape, hilly landscape

title: Hügellandschaft


text: Schokoladenweihnachtsmannes

title: Schokoladenweihnachtsmannes


text: Schokoladenweihnachtsmanns

title: Schokoladenweihnachtsmanns


text: Schokoladenweihnachtsmänner

title: Schokoladenweihnachtsmänner


text:
арнявуй

Etymology
Compound of 🇰🇲.

Noun

 * 1) Monday

title: арнявуй


text:
وارونه

Etymology
From, the first element from.

Adjective

 * 1) upside down, inverted
 * 2) contrary, opposite
 * 3) unfortunate

title: وارونه


text:
寅吃卯糧

Idiom

 * 1)  to prematurely overconsume; unable to make both ends meet

title: 寅吃卯糧


text:
dombvidék

Etymology
From.

Noun

 * 1) hilly upland, hill country, hills

title: dombvidék


text: Category:mhr:Days of the week

title: Category:mhr:Days of the week


text:
mudakoon

Etymology
From, modelled after, or borrowed directly from.

Noun

 * 1)  darkie, dark-skinned person, black person, negro

title: mudakoon


text:
шочмо

Etymology
From.

Adjective

 * 1) native, of one's birth, own, home

title: шочмо


text:
olać to

Etymology
lit. 'piss on this'.

Interjection

 * 1)  screw this; I don't give a rat's ass

title: olać to


text: Template:list:days of the week/mhr

title: Template:list:days of the week/mhr


text: Wiktionary:Word of the day/2024/January 19


text: ἐκπέμπειν

title: ἐκπέμπειν


text:
Norditalien

Etymology
From.

Proper noun

 * 1)  Northern Italy

title: Norditalien


text:
poahl

Verb

 * 1) to steam

title: poahl


text:
sötsyrlig

Etymology
.

Adjective

 * 1) sweet-and-sour

title: sötsyrlig


text: sötsyrligt

title: sötsyrligt


text: sötsyrliga

title: sötsyrliga


text:
frono

Etymology
Inflected form of, from , from. Related to 🇨🇬, 🇨🇬 and 🇨🇬.

Adjective

 * 1) of or belonging to the lord

title: frono


text:
doifiwiwiri

Etymology
Compound of 🇰🇲.

title: doifiwiwiri


text: Norditaliens

title: Norditaliens


text: ἀποστῶσιν

title: ἀποστῶσιν


text: Süditaliens

title: Süditaliens


text:
Süditalien

Etymology
From.

Proper noun

 * 1)  Southern Italy

title: Süditalien


text:
User talk:41.191.104.100

January 2024
Welcome to Wiktionary. Everybody is welcome to contribute to Wiktionary. However, the changes that you have made weren't helpful and have been reverted or removed. Please use the sandbox if you want to try out any changes. Thank you. Philipnelson99 (talk) 20:03, 5 January 2024 (UTC)

title: User talk:41.191.104.100


text: signael

title: signael


text:
dyatawiwiri

Etymology
Possibly from.

title: dyatawiwiri


text: signaelen

title: signaelen


text:
Reconstruction:Old Dutch/fro

Etymology
From, from. Related to 🇨🇬, 🇨🇬 and 🇨🇬.

Noun

 * 1) lord

title: Reconstruction:Old Dutch/fro


text:
User:Wkikibanvis

hello i am Wikikibanvis

title: User:Wkikibanvis


text:
συναφίστημι

Etymology
From.

Verb

 * 1) to draw into revolt together
 * 2)  to fall off or revolt along with others

title: συναφίστημι


text: Category:szy:Anatids

title: Category:szy:Anatids


text: Category:szy:Poultry

title: Category:szy:Poultry


text: Category:szy:Freshwater birds

title: Category:szy:Freshwater birds


text: Category:szy:Birds

title: Category:szy:Birds


text:
ship of state

Noun

 * 1)  The governance of a state or country, viewed through the metaphor of steering a ship at sea.

Translations

 * Finnish: valtiolaiva
 * French: char de l'État
 * Polish: rządy

title: ship of state


text: Category:szy:Livestock

title: Category:szy:Livestock


text: Category:szy:Agriculture

title: Category:szy:Agriculture


text:
char de l'État

Noun

 * 1)  ship of state

title: char de l'État


text:
lluminària

Etymology
, nominative/accusative plural of. .

Noun

 * 1)  illuminations, lighting

title: lluminària


text:
feifi-olowiwiri

Etymology
Compound of 🇰🇲.

title: feifi-olowiwiri


text: ξυναφίστημι

title: ξυναφίστημι


text: armchair travellers

title: armchair travellers


text: ξυναποστήσωσι

title: ξυναποστήσωσι


text:
paçoz

Etymology
From, but the term is uncertain.

Noun

 * 1)  who is dressed inappropriately or carelessly
 * 1)  who is dressed inappropriately or carelessly
 * 1)  who is dressed inappropriately or carelessly

title: paçoz


text: camelrider

title: camelrider


text: camelriders

title: camelriders


text:
signeren

Etymology
From, which was borrowed from (and adapted using the Dutch verbal suffix ), but with its spelling re-borrowed from modern.

Verb

 * 1)  to sign (mark with one's signature)

Usage notes

 * In formal usage, this word can be used for any act of marking with a signature. But in common usage, this word is rarely used to refer to anything other than signing objects, such as books or shirts or photographs; the words or  are used otherwise informally, as e.g. when signing forms, deeds or other documents.

title: signeren


text: Pango Pango

title: Pango Pango


text:
fowrulosowiwiri

Etymology
Compound of 🇰🇲.

title: fowrulosowiwiri


text:
seller's remorse

Noun

 * 1)  A feeling of anxiety or regret after making, or after promising to make, a sale, especially a sale of a highly valuable object or commodity.

title: seller's remorse


text:
van hogerhand

Etymology
From combined with a, a fossilized phrase in the now-obsolete dative case.

Prepositional phrase

 * 1)  From higher up in a hierarchy; from a higher-up; from above.

title: van hogerhand


text: hogerhand

title: hogerhand


text: Dajasha

title: Dajasha


text: döner kanatlı hava aracı

title: döner kanatlı hava aracı


text:
fowruloso

Etymology
Compound of 🇰🇲.

title: fowruloso


text:
Vojska Jugoslavije

Proper noun

 * 1)  Yugoslav Army

title: Vojska Jugoslavije


text: sabit kanatlı hava aracı

title: sabit kanatlı hava aracı


text:
gobogobowiwiri

Etymology
Compound of 🇰🇲.

title: gobogobowiwiri


text: düktilite

title: düktilite


text:
van de pot gepleurd

Etymology
Literally, “thrown off the shitter”.

title: van de pot gepleurd


text:
oppleuren

Etymology
From.

Verb

 * 1)  to sod off

title: oppleuren


text: elastisite modülü

title: elastisite modülü


text:
tri-tone

Etymology
From.

title: tri-tone


text:
القصيم

Etymology
From.

title: القصيم


text: elastisite

title: elastisite


text:
gomawiwiri

Etymology
Compound of 🇰🇲.

title: gomawiwiri


text: gepleurd

title: gepleurd


text: Category:gu:Breads

title: Category:gu:Breads


text:
nonacculturated

Adjective

 * 1) Unacculturated; not having fully acquired all aspects of the dominant culture.

title: nonacculturated


text:
ede-atiwiwiri

Etymology
Compound of 🇰🇲.

title: ede-atiwiwiri


text: chickeneaters

title: chickeneaters


text:
dúti

Etymology
.

Verb

 * 1) to blow, to gust

title: dúti


text:
in de hens

Usage notes
Often used with the verbs, and.

title: in de hens


text:
ede-ati

Etymology
Compound of 🇰🇲.

title: ede-ati


text: helikopter pisti

title: helikopter pisti


text:
espatllut

Etymology
From.

Adjective

 * 1) broad-shouldered

title: espatllut


text:
face swap

Noun

 * 1) An instance of swapping faces in an image or video.

title: face swap


text: face swaps

title: face swaps


text: faceswap

title: faceswap


text: faceswaps

title: faceswaps


text:
gavro

Etymology
.

Noun

 * 1) anchovy

title: gavro


text:
nonacculturative

Adjective

 * 1) Not acculturative; preventing or avoiding acculturation.

title: nonacculturative


text:
havacı

Etymology
From.

Noun

 * 1) ; attendant of an aircraft
 * 2) aerial sports enthusiast
 * 1) aerial sports enthusiast

title: havacı


text: warayoballi

title: warayoballi


text: Category:Ottoman Turkish terms derived from the Arabic root ع ر س


text:
Daniel Island

Proper noun

 * 1) A small island located in the city of Charleston, South Carolina, United States.

title: Daniel Island


text: Wiktionary:Word of the day/2024/January 12


text:
ingiwiwiri

Etymology 1
Compound of 🇰🇲.

Etymology 2
Compound of 🇰🇲.

Noun

 * 1)  very fine strand of hair
 * 2)  a fleeting instant

title: ingiwiwiri


text: Danishes

title: Danishes


text:
sundeaw

Etymology
From 🇰🇲

Noun

 * 1) a plant, possibly rosemary

title: sundeaw


text: sylh

title: sylh


text: sulum

title: sulum


text: sylg

title: sylg


text:
nonaccumulative

Adjective

 * 1) Not accumulative; that does not accumulate.

Adjective

 * 1) Tending to avoid accumulation.

title: nonaccumulative


text: sóhajtottad

title: sóhajtottad


text:
über Gott und die Welt reden

Etymology
lit. 'to talk about God and the world'.

Verb

 * 1)  to chit-chat to engage in small talk, to discuss unimportant matters

title: über Gott und die Welt reden


text: javítottad

title: javítottad


text: nyitottad

title: nyitottad


text: subdiaconi

title: subdiaconi


text: subdiaconum

title: subdiaconum


text:
User talk:L'OrfeoGreco

     λέγετε

title: User talk:L'OrfeoGreco


text: User:TongcyDai/szy-pron

title: User:TongcyDai/szy-pron


text:
hægsugga

Etymology
From 🇰🇲

Noun

 * 1) hedge sparrow

title: hægsugga


text:
face-swap

Verb

 * 1) To swap the face (of someone) in an image or video.

title: face-swap


text: face-swaps

title: face-swaps


text: face-swapping

title: face-swapping


text: face-swapped

title: face-swapped


text:
Milarepa

Proper noun

 * 1) A Tibetan Buddhist siddha.

title: Milarepa


text:
non-split

Etymology
From.

Adjective

 * 1) Not split.

title: non-split


text:
sucga

Noun

 * 1) a kind of bird, potentially the whitethroat

title: sucga


text:
festetted

Etymology 1
From.

Etymology 2
From.

title: festetted


text:
vetítetted

Etymology
From.

title: vetítetted


text:
szerkesztetted

Etymology
From.

title: szerkesztetted


text:
nonaccurate

Adjective

 * 1) Not accurate; imprecise; conducive to inaccuracies.

Usage notes
The terms "nonaccurate" and inaccurate are very similar. "Nonaccurate" is used for conditions and situations that tend to produce or include inaccurate results. "Inaccurate" is used when something is definitely incorrect.

title: nonaccurate


text:
köszöntötted

Etymology
From.

title: köszöntötted


text:
sütötted

Etymology
From.

title: sütötted


text:
distónico

Etymology
From.

Adjective

 * 1) dystonic

title: distónico


text: બકરો

title: બકરો


text:
ete wan ingiwiwiri

Etymology
lit. 'one more Amerindian's hair'.

title: ete wan ingiwiwiri


text:
User:Xenos melophilos/Khalaj word pronunciations

This is a list of the pronunciations of each Khalaj word.

Blood

 * 1)  (7 times)
 * 2)  (2 times)
 * 3)  (40 times)

Head

 * 1)  (8 times)
 * 2)  (15 times)
 * 3)  (25 times)
 * 4)  (3 times)
 * 5)  (8 times)
 * 6)  (22 times)
 * 7)  (2 times)

Horse

 * 1)  (32 times)
 * 2)  (15 times)
 * 3)  (7 times)
 * 4)  (10 times)
 * 5)  (2 times)
 * 6)  (1 time)
 * 7)  (4 times)

To break up

 * Imperative:

To sell

 * Root:
 * 1)  (9 times)
 * 2)  (22 times)
 * 3)  (19 times)
 * 4)  (1 times)
 * Imperative:

To throw

 * Root:
 * 1)  (45 times)
 * 2)  (2 times)
 * 3)  (1 time)
 * 4)  (1 time)
 * 5)  (1 time)
 * Imperative:


text:
બકરી

Noun

 * 1) ewe;

title: બકરી


text:
nonaccursed

Adjective

 * 1) Not accursed.

title: nonaccursed


text: Category:Sranan Tongo idioms

title: Category:Sranan Tongo idioms


text: Category:Sranan Tongo terms derived from Mende


text: Category:Sranan Tongo terms derived from Southwestern Mande languages


text: tales of woe

title: tales of woe


text: tale-book

title: tale-book


text: sintónicos

title: sintónicos


text: tale-books

title: tale-books


text: distónica

title: distónica


text: distónicos

title: distónicos


text: distónicas

title: distónicas


text: Fünfstromlandes

title: Fünfstromlandes


text: Fünfstromlands

title: Fünfstromlands


text:
Module:User:TongcyDai/szy-pron

--[=[ This module implements the templates.

Author: TongcyDai ]=]

local export = {} local m_IPA = require("Module:IPA") local lang = require("Module:languages").getByCode("szy")

local u = mw.ustring.char local ufind = mw.ustring.find local ugsub = mw.ustring.gsub local tsplit = mw.text.split local ulower = mw.ustring.lower local usub = mw.ustring.sub local ulen = mw.ustring.len local ugmatch = mw.ustring.gmatch local ulower = mw.ustring.lower

local vowels = "aiuoeə" local glides = "jw" local consonants = "ptkʡbdshzʦmlŋng"

local phoneme_map = { ['i'] = 'i', ['u'] = 'u', ['e'] = 'ə', ['o'] = 'o', ['a'] = 'a', ['w'] = 'w', ['y'] = 'j', ['p'] = 'p', ['t'] = 't', ['k'] = 'k', ["'"] = 'ʡ', ["’"] = 'ʡ', ['b'] = 'b', ['d'] = 'd', ['s'] = 's', ['h'] = 'h', ['z'] = 'z', ['c'] = 'ʦ', ['m'] = 'm', ['ŋ'] = 'ŋ', ['n'] = 'n', ['g'] = 'g', ['l'] = 'l' }

function export.mapping(word) word = ugsub(word, 'ng', 'ŋ') local ipa_word = ugsub(word, '.', phoneme_map) return ipa_word end

function export.to_broad_ipa(word) local syllables = {} local i = 1 local len = ulen(word)

while i <= len do       local syllable = ''

-- 'Consonant + Glide + Vowel' if i + 2 <= len and consonants:find(usub(word, i, i), 1, true) and glides:find(usub(word, i + 1, i + 1), 1, true) and vowels:find(usub(word, i + 2, i + 2), 1, true) then syllable = usub(word, i, i + 2) i = i + 3

-- 'Consonant + Vowel + Glide' elseif i + 2 <= len and consonants:find(usub(word, i, i), 1, true) and vowels:find(usub(word, i + 1, i + 1), 1, true) and glides:find(usub(word, i + 2, i + 2), 1, true) then syllable = usub(word, i, i + 2) i = i + 3

-- 'Consonant + Vowel + Consonant' elseif i + 2 <= len and consonants:find(usub(word, i, i), 1, true) and vowels:find(usub(word, i + 1, i + 1), 1, true) and consonants:find(usub(word, i + 2, i + 2), 1, true) then syllable = usub(word, i, i + 2) i = i + 3

-- 'Glide + Vowel' elseif i + 1 <= len and glides:find(usub(word, i, i), 1, true) and vowels:find(usub(word, i + 1, i + 1), 1, true) then syllable = usub(word, i, i + 1) i = i + 2

-- 'Consonant + Vowel' elseif i + 1 <= len and consonants:find(usub(word, i, i), 1, true) and vowels:find(usub(word, i + 1, i + 1), 1, true) then syllable = usub(word, i, i + 1) i = i + 2

-- 'Vowel + Glide' elseif i + 1 <= len and vowels:find(usub(word, i, i), 1, true) and glides:find(usub(word, i + 1, i + 1), 1, true) then syllable = usub(word, i, i + 1) i = i + 2

-- 'Vowel + Consonant' elseif i + 1 <= len and vowels:find(usub(word, i, i), 1, true) and (i == len or consonants:find(usub(word, i + 1, i + 1), 1, true)) then syllable = usub(word, i, i + 1) i = i + 2

-- 'Vowel' elseif vowels:find(usub(word, i, i), 1, true) then syllable = usub(word, i, i)           i = i + 1 end

if syllable ~= '' then table.insert(syllables, syllable) else -- If no rule applies, just move to the next character i = i + 1 mw.log('Error: No matching rule for syllable at position ' .. i)       end end

-- Rearrange syllables to accommodate the position of consonants -- for i = 1, #syllables - 1 do   --     if (consonants:find(usub(syllables[i], -1, -1), 1, true) and    --        (vowels:find(usub(syllables[i + 1], 1, 1), 1, true)) or    --         glides:find(usub(syllables[i + 1], 1, 1), 1, true)) then --        syllables[i + 1] = usub(syllables[i], -1, -1) .. syllables[i + 1] --        syllables[i] = usub(syllables[i], 1, -2) --    end -- end for i = 1, #syllables - 1 do   local last_char_of_current_syllable = usub(syllables[i], -1, -1) local first_char_of_next_syllable = usub(syllables[i + 1], 1, 1)

if consonants:find(last_char_of_current_syllable, 1, true) and (vowels:find(first_char_of_next_syllable, 1, true) or glides:find(first_char_of_next_syllable, 1, true)) or      glides:find(last_char_of_current_syllable, 1, true) and vowels:find(first_char_of_next_syllable, 1, true) then syllables[i + 1] = last_char_of_current_syllable .. syllables[i + 1] syllables[i] = usub(syllables[i], 1, -2) end end return syllables end

function export.fix_ipa_symbol(ipa_str) ipa_str = ugsub(ipa_str, 'ʨ', 't͡ɕ') ipa_str = ugsub(ipa_str, 'ʦ', 't͡s') ipa_str = ugsub(ipa_str, 'g', 'ɡ') return ipa_str end

function export.to_narrow_ipa(old_syllables, stress_idx) local syllables = {} for i, v in ipairs(old_syllables) do       syllables[i] = v    end

local stress_idx = stress_idx or 1 local alveolars = 'szʦ' local alveolo_palatal = 'ɕʑʨ' local dorsal_guttural = 'hkʡ' local fronts = 'ij' local glides = 'jw' local combs_al = {} local combs_ap = {} local combs_du = {} local combs_do = {}

for a in ugmatch(alveolars, '.') do	   for f in ugmatch(fronts, '.') do table.insert(combs_al, a .. f)	       if a == 's' then table.insert(combs_ap, 'ɕ' .. f)	       elseif a == 'z' then table.insert(combs_ap, 'ʑ' .. f)	       elseif a == 'ʦ' then table.insert(combs_ap, 'ʨ' .. f)	       end end end for d in ugmatch(dorsal_guttural, ".") do       table.insert(combs_du, 'u' .. d)        table.insert(combs_do, 'o' .. d)    end

for i = 1, #syllables do       -- palatalization for j, c1 in ipairs(combs_al) do	       if ufind(syllables[i], c1) then syllables[i] = ugsub(syllables[i], c1, combs_ap[j]) end end -- /u/ tongue position lowering for j, c1 in ipairs(combs_du) do           if ufind(syllables[i], c1) then syllables[i] = ugsub(syllables[i], c1, combs_do[j]) end end -- /e/ voicelessness, rules should be checked further if ulen(syllables[i]) == 2 and not ufind(glides, usub(syllables[i], 1, 1)) and usub(syllables[i], 2, 2) == 'ə' and i ~= ulen(syllables[i]) - stress_idx + 1 then syllables[i] = usub(syllables[i], 1, 1) .. '(ə)' end -- /i, u/ + V (not /a/) = /j, w/ + V, already shown in orthography -- /i, u/ + /a/ = /ija, uwa/, already shown in orthography end

return syllables end

function export.stress_and_format(broad, narrow, stress_idx) stress_idx = stress_idx or 1 if #broad > 1 then broad[#broad - stress_idx + 1] = "ˈ" .. broad[#broad - stress_idx + 1] end if #narrow > 1 then narrow[#narrow - stress_idx + 1] = "ˈ" .. narrow[#narrow - stress_idx + 1] end local broad_str = export.fix_ipa_symbol(table.concat(broad, '.')) local narrow_str = export.fix_ipa_symbol(table.concat(narrow, '.')) return broad_str, narrow_str end

function export.to_ipa(word, stress) local ipa = export.mapping(word) local broad_ipa = export.to_broad_ipa(ipa) local narrow_ipa = export.to_narrow_ipa(broad_ipa, stress) local broad_str, narrow_str = export.stress_and_format(broad_ipa, narrow_ipa, stress) return broad_str, narrow_str end

function export.show(frame) local params = { [1] = {},       ["stress"] = {type = "number", default = 1}, ["pre"] = {}, ["bullets"] = {type = "number", default = 1}, }

local parargs = frame:getParent.args local args = require("Module:parameters").process(parargs, params) local pre = args.pre and args.pre .. " " or "" local bullet = (args.bullets ~= 0) and "* " or "" local stress = args.stress

local results = {} local ipa_results, n_ipa_results = {}, {}

local text = ulower(args[1] or mw.title.getCurrentTitle.text)

local puncs = '[%.%,%;“”\"%?!%(%)%[%]]'   text = ugsub(text, puncs, ' ')

local words = tsplit(text, ' ')

for _, word in ipairs(words) do       if word ~= "" then local ipa, n_ipa = export.to_ipa(word, stress) table.insert(ipa_results, ipa) table.insert(n_ipa_results, n_ipa) end end

local ipa_str = "/" .. table.concat(ipa_results, ' ') .. "/"   local n_ipa_str = "[" .. table.concat(n_ipa_results, ' ') .. "]"

table.insert(results, { pron = ipa_str }) table.insert(results, { pron = n_ipa_str })

return bullet .. pre .. m_IPA.format_IPA_full { lang = lang, items = results } end

return export

title: Module:User:TongcyDai/szy-pron


text: Zweistromlandes

title: Zweistromlandes


text: cabin compass

title: cabin compass


text: cabin compasses

title: cabin compasses


text:
saunahattu

Noun

 * 1) sauna hat thick piece of headgear used to protect the head from the extreme heat in sauna

title: saunahattu


text: Zweistromlands

title: Zweistromlands


text:
nonaccustomed

Adjective

 * 1) Unaccustomed.

title: nonaccustomed


text:
Polyclitus

Etymology
, from.

Translations

 * Arabic: بُولِيكِلَيْتُوس
 * Basque: Polikletos
 * Belarusian: Палікле́т
 * Catalan: Policlet
 * Czech: Polykleitos
 * Dutch: Polykleitos
 * Esperanto: Polikleto
 * Extremaduran: Policleto
 * Finnish: Polykleitos
 * French:
 * Georgian: პოლიკლიტე
 * German: Polyklet
 * Greek:
 * Ancient Greek: Πολύκλειτος
 * Hebrew: פוליקליטוס
 * Icelandic: Polýkleitos
 * Italian: Policleto
 * Latin: Polyclītus
 * Piedmontese: Policlet
 * Polish: Poliklet
 * Portuguese: Policleto, Policlito
 * Russian:
 * Spanish: Policleto
 * Swedish: Polykleitos
 * Turkish: Polikleitos
 * Ukrainian: Полікле́т

Etymology
.

title: Polyclitus


text:
isriwiwiri

Etymology
Compound of 🇰🇲.

title: isriwiwiri


text: Polycliti

title: Polycliti


text: Polyclito

title: Polyclito


text: Polyclitum

title: Polyclitum


text: Polyclite

title: Polyclite


text:
ёрнемс

Etymology
Frequentative (reflexive) form of.

Verb

 * 1) to be brave

title: ёрнемс


text:
Wiktionary:Requested entries (Northern Mansi)

Possibly in another variety of Mansi

 * : working (?)
 * (corresponding to Russian )
 * (corresponding to Russian )
 * : 'person' or 'somebody'.
 * Some inflected forms: ,
 * Some inflected forms: ,


text:
авака

Noun

 * 1) female

title: авака


text:
ававтомо

Etymology
The abessive case form of.

Noun

 * 1) orphan

title: ававтомо


text:
Carnation Revolution

Etymology
. So named because a woman who had carnations handed them out to soldiers in the early hours of the coup, and they were placed in gun barrels and became a symbol of the peacefulness of the coup.

Proper noun

 * 1)  A revolution and military coup by left-leaning military officers that overthrew the colonialist and authoritarian Estado Novo on 25 April 1974 in Lisbon, Portugal, leading to major cultural and political changes.

title: Carnation Revolution


text:
προξενικός

Noun

 * 1) consular

title: προξενικός


text:
Lepontine

Adjective

 * 1) Of or relating to a mountain range in the northwestern part of the Alps, located in Switzerland and Italy.

title: Lepontine


text:
enzybiotic

Etymology
.

Noun

 * 1)  An experimental enzyme used in antibacterial therapy.

title: enzybiotic


text:
nonacerbic

Adjective

 * 1) Not acerbic; amicable.

title: nonacerbic


text: enzybiotics

title: enzybiotics


text: e-beam

title: e-beam


text: e-beams

title: e-beams


text:
síndrome de Peter Pan

Etymology
.

Proper noun

 * 1)  Peter Pan syndrome

title: síndrome de Peter Pan


text: CANAMEX

title: CANAMEX


text:
Motunrayọ

Etymology
From

title: Motunrayọ


text: Canamex

title: Canamex


text:
a palla

Etymology
lit. 'at ball'.

Prepositional phrase

 * 1) with extraordinary speed or impulse
 * 2) to the max; at full blast
 * 1) with extraordinary speed or impulse
 * 2) to the max; at full blast
 * 1) to the max; at full blast
 * 1) to the max; at full blast

title: a palla


text:
korobace

Noun

 * 1) bleak
 * 2)  anchovy; pilchard
 * 1)  anchovy; pilchard

title: korobace


text: korobacë

title: korobacë


text:
korobackë

Etymology
From.

title: korobackë


text: Iolcos

title: Iolcos


text: Iolchos

title: Iolchos


text:
su un piatto d'argento

Etymology
lit. 'on a plate of silver.' Compare 🇨🇬.

Prepositional phrase

 * 1) on a silver platter

Usage notes

 * Most often preceded by the verbs or.

title: su un piatto d'argento


text: styrium

title: styrium


text:
Adeikẹ

Etymology
From

title: Adeikẹ


text: styriga

title: styriga


text:
கலங்கு

Etymology
From. Cognate to 🇨🇬, 🇨🇬, 🇨🇬, and 🇨🇬.

Verb

 * 1) to be stirred up, agitated, ruffled (as water)
 * 2) to be confused, confounded
 * 3) to be abashed, perplexed, embarrassed
 * 4) to fear; be intimidated; be cowed
 * 5)  to be sad; grieve; experience sorrow
 * 6) to fail
 * 1)  to be sad; grieve; experience sorrow
 * 2) to fail

title: கலங்கு


text: stiriga

title: stiriga


text: styrga

title: styrga


text: jcts.

title: jcts.


text: comunicados de prensa

title: comunicados de prensa


text:
jessant-de-lis

Noun

 * 1)  A fleur-de-lis issuing out of any object.

title: jessant-de-lis


text:
alij

Noun

 * 1) beard

Verb

 * 1)  to aim

title: alij


text: jiblet

title: jiblet


text: jiblets

title: jiblets


text:
دقديق

Noun

 * 1)  blanket

title: دقديق


text:
pwalik

Noun

 * 1) foot

title: pwalik


text: Category:mkj:Foot

title: Category:mkj:Foot


text:
mijik

Noun

 * 1) fear

Verb

 * 1)  to be afraid of

title: mijik


text:
jim-swinger

Noun

 * 1)  A kind of long frock coat.

title: jim-swinger


text: jim-swingers

title: jim-swingers


text: Category:mkj:Emotions

title: Category:mkj:Emotions


text: Category:mkj:Mind

title: Category:mkj:Mind


text: jorrams

title: jorrams


text:
Adenikẹ

Etymology
This is a non-standard spelling of, but by far the most common form used

title: Adenikẹ


text:
Adenikẹẹ

Etymology
From

title: Adenikẹẹ


text:
User talk:KehyieroAE

Welcome Message
-- Apisite (talk) 23:05, 5 January 2024 (UTC)

title: User talk:KehyieroAE


text:
esame di coscienza

Etymology
lit. 'exam of conscience.' Compare 🇨🇬.

Noun

 * 1)  examination of conscience
 * 2)  evaluation of the morality of one's own behaviors; self-reflection, introspection, soul searching

title: esame di coscienza


text: 馬尼拉大都會

title: 馬尼拉大都會


text:
Russophrenia

Etymology
.

Noun

 * 1)  The belief or idea that Russia is simultaneously about to collapse, and also take over the world.

title: Russophrenia


text: k'ang

title: k'ang


text: k'angs

title: k'angs


text: 马尼拉大都会

title: 马尼拉大都会


text: kambalas

title: kambalas


text: hajtotta

title: hajtotta


text: kantuta

title: kantuta


text: kantutas

title: kantutas


text: conferencias de prensa

title: conferencias de prensa


text: Wiktionary:Foreign Word of the Day/2024/January 6


text:
kennelmaid

Etymology
🇰🇲

Noun

 * 1) A woman in charge of a kennel.

title: kennelmaid


text: kennelmaids

title: kennelmaids


text:
gjysamigjysazog

Etymology
. Compare the synonymous and.

Noun

 * 1) wren

title: gjysamigjysazog


text:
Artyomovsk

Etymology
From.

title: Artyomovsk


text:
ла̄тыӈ

Noun

 * 1) language
 * 2) speech
 * 3) word
 * 4) message, piece of news
 * 5) rumour
 * 1) rumour

Declension
Sosva:

Upper Lozva

title: ла̄тыӈ


text:
Novaliches

Etymology
, from. Named after Novaliches, a of Xerica, Valencian Community, Spain.

Translations

 * Chinese:
 * Mandarin: 諾瓦利切斯
 * Spanish: Novaliches
 * Tagalog: Novaliches

Etymology
, from. Named after Novaliches, a of Xerica, Valencian Community, Spain.

title: Novaliches


text: Läns-Siberi

title: Läns-Siberi


text: User:TomCanTech/sandbox

title: User:TomCanTech/sandbox


text:
knee-crooking

Etymology
Compare.

Adjective

 * 1) ; submissive.

title: knee-crooking


text:
تليك

Etymology
Borrowed from.

Noun

 * 1)  slipper
 * 2)  sandal
 * 1)  sandal

title: تليك


text:
knockmeter

Noun

 * 1) A device for measuring the intensity of engine knock.

title: knockmeter


text: knockmeters

title: knockmeters


text: Category:Ingrian terms suffixed with -nko


text:
User:TomCanTech/sandbox/templateSandbox

What is this ?

title: User:TomCanTech/sandbox/templateSandbox


text: ladies' tobacco

title: ladies' tobacco


text: Category:Udmurt terms derived from Proto-Finnic


text: Category:Udmurt terms derived from Proto-Mongolic


text: Category:Udmurt terms derived from Mongolic languages


text: Category:Udmurt terms derived from Serbi-Mongolic languages


text: Category:Udmurt terms derived from Middle Mongol


text:
scendere dal piedistallo

Etymology
lit. 'to descend from the pedestal.'

Verb

 * 1) to get off one's high horse

title: scendere dal piedistallo


text: strudaþ

title: strudaþ


text: strudende

title: strudende


text: strude

title: strude


text:
lampwick

Alternative forms

 * lamp-wick

Etymology
🇰🇲.

Noun

 * 1)  A wick of a lamp.
 * 2)  Material for making wicks for lamps.
 * 3) A plant of species.

title: lampwick


text: lampwicks

title: lampwicks


text: Itä-Europpa

title: Itä-Europpa


text:
landworker

Noun

 * 1) An agricultural worker.

title: landworker


text:
肥膏

Noun

 * 1)  fat; grease

title: 肥膏


text: landworkers

title: landworkers


text:
stricel

Noun

 * 1) strickle
 * 2) breast, teat

title: stricel


text: streccende

title: streccende


text:
вкраїнський

Adjective

 * : Ukrainian

Usage notes

 * The use of and  is dated.

title: вкраїнський


text: streawbergan

title: streawbergan


text: streawbergena

title: streawbergena


text: streawbergum

title: streawbergum


text: streaberige

title: streaberige


text: seneschalsy

title: seneschalsy


text: seneschalsies

title: seneschalsies


text: streowberige

title: streowberige


text: streowberge

title: streowberge


text:
far sapere

Etymology
lit. 'to make know'. Compare 🇨🇬.

Verb

 * 1)  to let someone know; to relay
 * 2) to make famous or known
 * 1) to make famous or known

title: far sapere


text:
вкраїнська

Noun

 * : The Ukrainian language,

Usage notes

 * The use of and  is dated.
 * The feminine adjective form or the short noun form is used to express "to speak a language" in the instrumental case. This construct is specific to Ukrainian and uncommon in other Slavic languages.

title: вкраїнська


text:
streamrad

Etymology
From 🇰🇲

Noun

 * 1) streambed

title: streamrad


text: streamradum

title: streamradum


text: streamrade

title: streamrade


text: streamrada

title: streamrada


text:
strælwyrt

Etymology
From 🇰🇲

Noun

 * 1) a plant, possibly club moss

title: strælwyrt


text: strælwyrte

title: strælwyrte


text: strælwyrta

title: strælwyrta


text: strælwyrtum

title: strælwyrtum


text:
shamedly

Adverb

 * 1) With shame.
 * 2) * 1929, California Almond Growers Exchange, Minute Book (volume 2, issue 2)
 * And so it spreads its buds to show its gossamer of white — / But blushes shamedly the while and tints the blossoms pink.

title: shamedly


text:
пӑх

Etymology 1
.

Cognate with 🇨🇬, 🇨🇬, 🇨🇬, 🇨🇬, etc.

Noun

 * 1) dung, feces
 * 2) manure
 * 3) slag
 * 1) slag

Etymology 2
.

Verb

 * 1) to look
 * 2) to inspect
 * 3) to pay attention
 * 4) to treat (entertain with food or drink)

title: пӑх


text: Shadrachs

title: Shadrachs


text:
stowian

Etymology
From, from. Equivalent to and cognate with 🇨🇬.

Verb

 * 1) to hold back, restrain

title: stowian


text: shelldrake

title: shelldrake


text:
robin goch

Etymology
From.

Noun

 * 1) robin

title: robin goch


text: shelldrakes

title: shelldrakes


text:
hi-spy-hi

Noun

 * 1)  The game of hide and seek.

title: hi-spy-hi


text:
storsæp

Etymology
From 🇰🇲

Noun

 * 1) resin

title: storsæp


text:
shortometer

Noun

 * 1) A device for measuring the effectiveness of fats as shortening.

title: shortometer


text: shortometers

title: shortometers


text:
oarg

Etymology
From, , from , from.

Adjective

 * 1) bad, terrible
 * 2) intense, strong
 * 3)  embarrassing, awkward

Adverb

 * 1) very, intensely

title: oarg


text:
short-termer

Noun

 * 1) A prisoner serving a relatively brief sentence.

title: short-termer


text: short-termers

title: short-termers


text: cristenes

title: cristenes


text: cristenum

title: cristenum


text: cristenra

title: cristenra


text: cristenre

title: cristenre


text: cristenan

title: cristenan


text:
döntöttük

Etymology
From.

title: döntöttük


text:
cristenest

Adjective

 * 1) ; most Christian

title: cristenest


text: cristena

title: cristena


text:
show-through

Noun

 * 1)  The undesirable situation where matter printed on one side of a sheet is visible from the other side.

Translations

 * Finnish: läpinäkyminen

title: show-through


text: show-throughs

title: show-throughs


text: cristnu

title: cristnu


text: cristenu

title: cristenu


text: shpg.

title: shpg.


text:
festettük

Etymology
From.

title: festettük


text:
segítettük

Etymology
From.

title: segítettük


text:
dollarbuck

Etymology
From. Popularised by the 2018 Australian animated children's TV series , but attested earlier (see quotations).

Noun

 * 1)  A unit of currency.

title: dollarbuck


text:
alatasanko

Etymology
From.

Noun

 * 1) flat lowland

title: alatasanko


text: Instamoms

title: Instamoms


text: Instamums

title: Instamums


text: dollarbucks

title: dollarbucks


text: insudations

title: insudations


text:
sinward

Adverb

 * 1) Toward sin or sinning.

title: sinward


text:
glas y dorlan

Etymology
.

Noun

 * 1) kingfisher

title: glas y dorlan


text:
Appendix:Variations of "boer"

The word “boer” appears in many languages with many variations in the use of capitalization, punctuation, and diacritics.

Capitalization and punctuation

 * boer
 * Boer
 * -boer

Diacritics and ligatures

 * Boër
 * bóer
 * bòer
 * bôer
 * Böer
 * bøer
 * bœr

title: Appendix:Variations of "boer"


text: intangible cultural heritages

title: intangible cultural heritages


text: intelligent hauntings

title: intelligent hauntings


text: interactances

title: interactances


text: interclicks

title: interclicks


text: intercisions

title: intercisions


text:
foona

Etymology
Borrowed from.

Noun

 * 1) background

title: foona


text: interleucines

title: interleucines


text: interlopations

title: interlopations


text:
skull-pan

Noun

 * 1) The harnpan; the (top of the) skull.

title: skull-pan


text: interramifications

title: interramifications


text: skull-pans

title: skull-pans


text:
надягати

Verb

 * 1)  to pull on clothing

Usage notes
should be used to describe the process of pulling accessories (and not clothes). The most common examples are hats, watches, gloves, glasses, rings, earrings, masks and crowns. Moreover, should be used to describe the process of pulling clothes on someone or something and not on oneself (одягати).

title: надягати


text: invariancies

title: invariancies


text: invertomers

title: invertomers


text:
Talk:intelligent haunting

Citation for "intelligent haunt"
Moved here since it doesn't evidence the -ing form.

Equinox ◑ 00:12, 6 January 2024 (UTC)

title: Talk:intelligent haunting


text: iodostannates

title: iodostannates


text: Isaaqs

title: Isaaqs


text: Isfahanis

title: Isfahanis


text:
eroittaissa

Etymology
From.

Verb

 * 1)  to stand out

title: eroittaissa


text: ishans

title: ishans


text: geomre

title: geomre


text: geomrum

title: geomrum


text: geomorne

title: geomorne


text: geomran

title: geomran


text: isochars

title: isochars


text: isodistances

title: isodistances


text:
User:Pengo/vector.css

.mw-body a:link, .mw-body a:link:visited, .mw-body a:link:active, .mw-body a:link.new, .mw-body a:link.interwiki, .mw-body a:link.external, .mw-body a:link.stub {  color:rgb(0,0,0) !important; }

title: User:Pengo/vector.css


text: terveysministerin

title: terveysministerin


text: terveysministeriä

title: terveysministeriä


text: terveysministeriin

title: terveysministeriin


text: terveysministereitten

title: terveysministereitten


text: terveysministereiden

title: terveysministereiden


text: terveysministerien

title: terveysministerien


text: terveysministerejä

title: terveysministerejä


text: terveysministereitä

title: terveysministereitä


text: terveysministerit

title: terveysministerit


text: terveysministereihin

title: terveysministereihin


text:
sleepify

Verb

 * 1)  To make sleepy.

title: sleepify


text: opetusministereitten

title: opetusministereitten


text: opetusministereiden

title: opetusministereiden


text: opetusministerien

title: opetusministerien


text: opetusministerit

title: opetusministerit


text: opetusministerin

title: opetusministerin


text: opetusministeriä

title: opetusministeriä