Wiktionary tpiwiktionary https://tpi.wiktionary.org/wiki/Fran_Pes MediaWiki 1.39.0-wmf.23 case-sensitive Media Sipesol Toktok Yusa Toktok bilong yusa Wiktionary Wiktionary toktok Fail Toktok bilong fail MediaWiki Toktok bilong mediawiki Templet Toktok bilong templet Halivim Toktok bilong halivim Grup Toktok bilong grup TimedText TimedText talk Module Module talk Gadget Gadget talk Gadget definition Gadget definition talk Module:parameters 828 3494 13321 10995 2022-08-03T07:52:08Z Asinis632 1829 Scribunto text/plain local export = {} -- A helper function to escape magic characters in a string -- Magic characters: ^$()%.[]*+-? local plain = require("Module:string/pattern_escape") -- A helper function that removes empty numeric indexes in a table, -- so that the values are tightly packed like in a normal Lua table. -- equivalent to require("Module:table").compressSparseArray local function remove_holes(t) local ret = {} local index = 1 local highest = 0 for num, _ in pairs(t) do if type(num) == "number" and num > 0 and num < math.huge and math.floor(num) == num then highest = math.max(highest, num) end end for i = 1, highest do if t[i] then ret[index] = t[i] index = index + 1 end end return ret end function export.process(args, params, return_unknown) local args_new = {} -- Process parameters for specific properties local required = {} local patterns = {} local names_with_equal_sign = {} local list_from_index = nil for name, param in pairs(params) do if param.required then if param.alias_of then require("Module:debug/track")("parameters/required alias") end required[name] = true end if param.list then local key = name if type(name) == "string" then key = string.gsub(name, "=", "") end if param.default ~= nil then args_new[key] = {param.default, maxindex = 1} else args_new[key] = {maxindex = 0} end if type(param.list) == "string" then -- If the list property is a string, then it represents the name -- to be used as the prefix for list items. This is for use with lists -- where the first item is a numbered parameter and the -- subsequent ones are named, such as 1, pl2, pl3. if string.find(param.list, "=") then patterns["^" .. string.gsub(plain(param.list), "=", "(%%d+)") .. "$"] = name else patterns["^" .. plain(param.list) .. "(%d+)$"] = name end elseif type(name) == "number" then -- If the name is a number, then all indexed parameters from -- this number onwards go in the list. list_from_index = name else if string.find(name, "=") then patterns["^" .. string.gsub(plain(name), "=", "(%%d+)") .. "$"] = string.gsub(name, "=", "") else patterns["^" .. plain(name) .. "(%d+)$"] = name end end if string.find(name, "=") then -- DO NOT SIDE-EFFECT A TABLE WHILE ITERATING OVER IT. -- Some elements may be skipped or processed twice if you do. -- Instead, track the changes we want to make to `params`, and -- do them after the iteration over `params` is done. table.insert(names_with_equal_sign, name) end elseif param.default ~= nil then args_new[name] = param.default end end --Process required changes to `params` for _, name in ipairs(names_with_equal_sign) do require("Module:debug/track")("parameters/name with equals") params[string.gsub(name, "=", "")] = params[name] params[name] = nil end -- Process the arguments local args_unknown = {} for name, val in pairs(args) do local index = nil if type(name) == "number" then if list_from_index ~= nil and name >= list_from_index then index = name - list_from_index + 1 name = list_from_index end else -- Does this argument name match a pattern? for pattern, pname in pairs(patterns) do index = mw.ustring.match(name, pattern) -- It matches, so store the parameter name and the -- numeric index extracted from the argument name. if index then index = tonumber(index) name = pname break end end end local param = params[name] -- If a parameter without the trailing index was found, and -- require_index is set on the param, set the param to nil to treat it -- as if it isn't recognized. if not index and param and param.require_index then param = nil end -- If no index was found, use 1 as the default index. -- This makes list parameters like g, g2, g3 put g at index 1. index = index or 1 -- If the argument is not in the list of parameters, trigger an error. -- return_unknown suppresses the error, and stores it in a separate list instead. if not param then if return_unknown then args_unknown[name] = val else error("The parameter \"" .. name .. "\" is not used by this template.", 2) end else -- Remove leading and trailing whitespace unless allow_whitespace is true. if not param.allow_whitespace then val = mw.text.trim(val) end -- Empty string is equivalent to nil unless allow_empty is true. if val == "" and not param.allow_empty then val = nil end -- Convert to proper type if necessary. if param.type == "boolean" then val = not (not val or val == "" or val == "0" or val == "no" or val == "n" or val == "false") elseif param.type == "number" then val = tonumber(val) elseif param.type then require("Module:debug/track") { "parameters/unrecognized type", "parameters/unrecognized type/" .. tostring(param.type) } end -- Can't use "if val" alone, because val may be a boolean false. if val ~= nil then -- Mark it as no longer required, as it is present. required[param.alias_of or name] = nil -- Store the argument value. if param.list then -- If the parameter is an alias of another, store it as the original, -- but avoid overwriting it; the original takes precedence. if not param.alias_of then args_new[name][index] = val -- Store the highest index we find. args_new[name].maxindex = math.max(index, args_new[name].maxindex) elseif args[param.alias_of] == nil then if params[param.alias_of] and params[param.alias_of].list then args_new[param.alias_of][index] = val -- Store the highest index we find. args_new[param.alias_of].maxindex = math.max(index, args_new[param.alias_of].maxindex) else args_new[param.alias_of] = val end end else -- If the parameter is an alias of another, store it as the original, -- but avoid overwriting it; the original takes precedence. if not param.alias_of then args_new[name] = val elseif args[param.alias_of] == nil then if params[param.alias_of] and params[param.alias_of].list then args_new[param.alias_of][1] = val -- Store the highest index we find. args_new[param.alias_of].maxindex = math.max(1, args_new[param.alias_of].maxindex) else args_new[param.alias_of] = val end end end end end end -- The required table should now be empty. -- If any entry remains, trigger an error, unless we're in the template namespace. if mw.title.getCurrentTitle().nsText ~= "Templet" then local list = {} for name, param in pairs(required) do table.insert(list, name) end local count = #list if count == 1 then error('The parameter "' .. list[1] .. '" is required.', 2) elseif count == 2 then error('The parameters "' .. table.concat(list, '" and "') .. '" are required.', 2) elseif count > 2 then error('The parameters "' .. mw.text.listToText(list, '", "', '", and "') .. '" are required.', 2) end end -- Remove holes in any list parameters if needed. for name, val in pairs(args_new) do if type(val) == "table" and not params[name].allow_holes then args_new[name] = remove_holes(val) end end if return_unknown then return args_new, args_unknown else return args_new end end return export gp1u6bw7kp5fowm19tulubiaop02oon Module:links 828 3644 13322 10988 2022-08-03T07:59:49Z Asinis632 1829 Scribunto text/plain 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]] ]=] -- These are prefixed with u to avoid confusion with the default string methods -- of the same name. local usub = mw.ustring.sub local table_insert = table.insert local table_concat = table.concat local ignore_cap local phonetic_extraction local pos_tags local unsupported_titles function export.getLinkPage(target, lang) unsupported_titles = unsupported_titles or mw.loadData("Module:links/data").unsupported_titles if unsupported_titles[target] then return "Unsupported titles/" .. unsupported_titles[target] end -- 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) == ":" or target:sub(1, 2) == "w:" or target:sub(1, 10) == "wikipedia:" then return target end -- Remove diacritics from the page name target = lang:makeEntryName(target) if target:sub(1, 1) == "/" then return ":" .. target -- Link to appendix for reconstructed terms and terms in appendix-only languages elseif target:sub(1, 1) == "*" and #target > 1 then if lang:getCode() == "und" then return nil end target = "Reconstruction:" .. lang:getCanonicalName() .. "/" .. usub(target, 2) elseif lang:getType() == "reconstructed" then error("The specified language " .. lang:getCanonicalName() .. " is unattested, while the given word is not marked with '*' to indicate that it is reconstructed") elseif lang:getType() == "appendix-constructed" then target = "Appendix:" .. lang:getCanonicalName() .. "/" .. target end return target end -- Make a language-specific link from given link's parts local function makeLangLink(link, lang, id, allow_self_link) -- Temporary tracking code local langCode = lang:getCode() if langCode == "se" or langCode == "sia" or langCode:find("^sm[ajns]$") or langCode:find("^sj[dektu]$") then if link.display and link.display:find("'") then require("Module:debug/track")("links/Sami apostrophe display") elseif link.target and link.target:find("'") then require("Module:debug/track")("links/Sami apostrophe target") end end -- Find fragments (when link didn't come from parseLink). -- Prevents {{l|en|word#Etymology 2|word}} from linking to [[word#Etymology 2#English]]. if link.fragment == nil then -- Replace numeric character references with the corresponding character (&#29; → '), -- as they contain #, which causes the numeric character reference to be -- misparsed (wa'a → wa&#29;a → pagename wa&, fragment 29;a). link.target = link.target:gsub("&#(%d+);", function(number) return mw.ustring.char(tonumber(number)) end) local first, second = link.target:match("^([^#]+)#(.+)$") if first then link.target, link.fragment = first, second end end -- If there is no display form, then create a default one if not link.display then link.display = link.target -- Strip the prefix from the displayed form -- TODO: other interwiki links? if link.display:sub(1, 1) == ":" and not mw.loadData("Module:links/data").unsupported_titles[link.display] then link.display = link.display:sub(2) -- remove colon from beginning else local prefix = link.display:match("^([^:]+):") local prefixes = { w = true, wikipedia = true, } if prefixes[prefix] then link.display = link.display:sub(#prefix + 2) -- remove prefix plus colon end end end -- Process the target link.target = export.getLinkPage(link.target, lang) if not link.target then return link.display end -- If the target is the same as the current page and there is no sense id -- and linking to the same page hasn't been turned on, then return a "self-link" -- like the software does. if not (allow_self_link or id) and link.target:gsub("^:", "") == mw.title.getCurrentTitle().prefixedText then return "<strong class=\"selflink\">" .. link.display .. "</strong>" end --[[ Add fragment Do not add a section link to "Undetermined", as such sections do not exist and are invalid. TabbedLanguages handles links without a section by linking to the "last visited" section, but adding "Undetermined" would break that feature. For localized prefixes that make syntax error, please use the format: ["xyz"] = true, ]] local prefix = link.target:match("^:?([^:]+):") local prefixes = { w = true, wikipedia = true, Category = true, } if not prefixes[prefix] then if link.fragment or link.target:find("#$") then require("Module:debug/track") { "links/fragment", "links/fragment/" .. lang:getCode() } end if not link.fragment and lang:getCode() ~= "und" then if id then link.fragment = require("Module:senseid").anchor(lang, id) elseif not mw.ustring.find(link.target, "^Appendix:") and not mw.ustring.find(link.target, "^Reconstruction:") then link.fragment = lang:getCanonicalName() end end -- This allows linking to pages like [[sms:a]] without it being treated weirdly. link.target = link.target:gsub(":", "&#x3a;") end return "[[" .. link.target .. (link.fragment and "#" .. link.fragment or "") .. "|" .. link.display .. "]]" end -- Split a link into its parts local function parseLink(linktext) local link = { target = linktext } local first, second = link.target:match("^([^|]+)|(.+)$") if first then link.target = first link.display = second else link.display = link.target end first, second = link.target:match("^(.+)#(.+)$") if first then link.target = first link.fragment = second else -- So that makeLangLink does not look for a fragment again link.fragment = false end return link end -- Creates a basic wikilink to the given term. If the text already contains -- links, these are replaced with links to the correct section. function export.language_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.") end local text = data.term ignore_cap = ignore_cap or mw.loadData("Module:links/data").ignore_cap if ignore_cap[data.lang:getCode()] and text then text = text:gsub("%^", "") end -- If the text begins with * and another character, -- then act as if each link begins with * local allReconstructed = false if text:find("^*.") then allReconstructed = true end -- Do we have embedded wikilinks? if text:find("[[", nil, true) then --[=[ [[Special:WhatLinksHere/Template:tracking/links/alt-ignored]] [[Special:WhatLinksHere/Template:tracking/links/id-ignored]] ]=] if data.alt then require("Module:debug/track")("links/alt-ignored") mw.log("(from Module:links)", "text with embedded wikilinks:", text, "ignored alt:", data.alt, "lang:", data.lang:getCode()) end if data.id then require("Module:debug/track")("links/id-ignored") mw.log("(from Module:links)", "text with embedded wikilinks:", text, "ignored id:", data.id, "lang:", data.lang:getCode()) end -- Begins and ends with a wikilink tag if text:find("^%[%[(.+)%]%]$") then -- There are no [ ] in between. -- This makes the wikilink tag redundant. if text:find("^%[%[[^%[%]]+%]%]$") then require("Module:debug/track")("links/redundant wikilink") else local temp = text:gsub("^%[%[(.+)%]%]$", "%1") temp = temp:gsub("%]%], %[%[", "|") if not temp:find("[%[%]]") then require("Module:debug/track")("links/list") end end end text = text:gsub("%[%[([^%]]+)%]%]", function(linktext) local link = parseLink(linktext) if allReconstructed then link.target = "*" .. link.target end return makeLangLink(link, data.lang, data.id, allow_self_link) end) -- Remove the extra * at the beginning if it's immediately followed -- by a link whose display begins with * too if allReconstructed then text = text:gsub("^%*%[%[([^|%]]+)|%*", "[[%1|*") end else -- There is no embedded wikilink, make a link using the parameters. text = makeLangLink({ target = text, display = data.alt }, data.lang, data.id, allow_self_link) end return text end function export.mark(text, itemType, face, lang) local tag = { "", "" } if itemType == "gloss" then tag = { '<span class="mention-gloss-double-quote">“</span><span class="mention-gloss">', '</span><span class="mention-gloss-double-quote">”</span>' } elseif itemType == "tr" then if face == "term" then tag = { '<span lang="' .. lang:getCode() .. '" class="tr mention-tr Latn">', '</span>' } else tag = { '<span lang="' .. lang:getCode() .. '" class="tr Latn">', '</span>' } end elseif itemType == "ts" then tag = { '<span class="ts mention-ts Latn">/', '/</span>' } elseif itemType == "pos" then tag = { '<span class="ann-pos">', '</span>' } elseif itemType == "annotations" then tag = { '<span class="mention-gloss-paren annotation-paren">(</span>', '<span class="mention-gloss-paren annotation-paren">)</span>' } end if type(text) == "string" then return tag[1] .. text .. tag[2] else return "" end end -- Format the annotations (things following the linked term) function export.format_link_annotations(data, face) local output = {} -- Interwiki link if data.interwiki then table_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") table_insert(output, "&nbsp;" .. m_gen.format_list(data.genders, data.lang)) end local annotations = {} -- Transliteration and transcription if data.tr or data.ts then local kind if face == "term" then kind = face else kind = "default" end if data.tr and data.ts then table_insert(annotations, require("Module:script utilities").tag_translit(data.tr, data.lang, kind) .. " " .. export.mark(data.ts, "ts")) elseif data.ts then table_insert(annotations, export.mark(data.ts, "ts")) else table_insert(annotations, require("Module:script utilities").tag_translit(data.tr, data.lang, kind)) end end -- Gloss/translation if data.gloss then table_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 .. "[[Category:links likely containing transcriptions in pos]]" end pos_tags = pos_tags or mw.loadData("Module:links/data").pos_tags table_insert(annotations, export.mark(pos_tags[data.pos] or data.pos, "pos")) end -- Literal/sum-of-parts meaning if data.lit then table_insert(annotations, "literally " .. export.mark(data.lit, "gloss")) end if #annotations > 0 then table_insert(output, " " .. export.mark(table_concat(annotations, ", "), "annotations")) end return table_concat(output) end -- A version of {{l}} or {{m}} that can be called from other modules too function export.full_link(data, face, allow_self_link, no_check_redundant_translit) if type(data) ~= "table" then error("The first argument to the function full_link must be a table. " .. "See Module:links/documentation for more information.") end -- Create the link local output = {} local categories = {} local link = "" local annotations phonetic_extraction = phonetic_extraction or mw.loadData("Module:links/data").phonetic_extraction -- Is there any text to show? if (data.term or data.alt) then -- Try to detect the script if it was not provided if not data.sc then data.sc = require("Module:scripts").findBestScript(data.alt or data.term, data.lang) else -- Track uses of sc parameter local best = require("Module:scripts").findBestScript(data.alt or data.term, data.lang) require("Module:debug/track")("links/sc") if data.sc:getCode() == best:getCode() then require("Module:debug/track")("links/sc/redundant") require("Module:debug/track")("links/sc/redundant/" .. data.sc:getCode()) else require("Module:debug/track")("links/sc/needed") require("Module:debug/track")("links/sc/needed/" .. data.sc:getCode()) end end local class = "" -- Encode certain characters to avoid various delimiter-related issues at various stages. We need to encode < and > -- because they end up forming part of CSS class names inside of <span ...> and will interfere with finding the end -- of the HTML tag. I first tried converting them to URL encoding, i.e. %3C and %3E; they then appear in the URL as -- %253C and %253E, which get mapped back to %3C and %3E when passed to [[Module:accel]]. But mapping them to &lt; -- and &gt; somehow works magically without any further work; they appear in the URL as < and >, and get passed to -- [[Module:accel]] as < and >. I have no idea who along the chain of calls is doing the encoding and decoding. If -- someone knows, please modify this comment appropriately! local encode_accel_char_map = { ["%"] = ".", [" "] = "_", ["<"] = "&lt;", [">"] = "&gt;", } local function encode_accel_param_chars(param) local retval = param:gsub("[% <>]", encode_accel_char_map) -- discard second return value return retval end local function encode_accel_param(prefix, param) if not param then return "" end if type(param) == "table" then local filled_params = {} -- There may be gaps in the sequence, especially for translit 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]] splits these up again. param = table.concat(filled_params, "*~!") end -- This is decoded again by [[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 ~= "-" and data.tr 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:getCode() .. " " .. accel end -- Only make a link if the term has been given, otherwise just show the alt text without a link link = require("Module:script utilities").tag_text( data.term and export.language_link(data, allow_self_link) or data.alt, data.lang, data.sc, face, class) else --[[ No term to show. Is there at least a transliteration we can work from? ]] link = require("Module:script utilities").request_script(data.lang, data.sc) if link == "" or not data.tr or data.tr == "-" then -- No link to show, and no transliteration either. Show a term request. local category = "" if mw.title.getCurrentTitle().nsText ~= "Template" then table_insert(categories, "[[Category:" .. data.lang:getCanonicalName() .. " term requests]]") end link = "<small>[Term?]</small>" end end table_insert(output, link) if data.tr == "" or data.tr == "-" then data.tr = nil elseif phonetic_extraction[data.lang:getCode()] then local m_phonetic = require(phonetic_extraction[data.lang:getCode()]) data.tr = data.tr or m_phonetic.getTranslit(export.remove_links(data.term)) elseif (data.term or data.alt) and not data.sc:getCode():find("Lati?n") then -- Try to generate a transliteration, unless transliteration has been supplied and either -- no_check_redundant_translit is given or we are in a high-memory entry. (Checking for redundant -- transliteration can use up significant amounts of memory so we don't want to do it if memory -- is tight. `no_check_redundant_translit` is currently set when called ultimately from -- {{multitrans|...|no-check-redundant-translit=1}}.) if not (data.tr and ( no_check_redundant_translit or mw.loadData("Module:links/data").high_memory_entries[mw.title.getCurrentTitle().text] )) then local automated_tr = data.lang:transliterate(export.remove_links(data.alt or data.term), data.sc) if automated_tr then local manual_tr = data.tr if manual_tr then if manual_tr == automated_tr then table_insert(categories, "[[Category:Terms with redundant transliterations]]" .. "[[Category:Terms with redundant transliterations/" .. data.lang:getCode() .. "]]") else -- Prevents Arabic root categories from flooding the tracking categories. if mw.title.getCurrentTitle().nsText ~= "Category" then table_insert(categories, "[[Category:Terms with manual transliterations different from the automated ones]]" .. "[[Category:Terms with manual transliterations different from the automated ones/" .. data.lang:getCode() .. "]]") end end end if (not manual_tr) or data.lang:overrideManualTranslit() then data.tr = automated_tr end end end end -- Link to the transliteration entry for languages that require this if data.tr and data.lang:link_tr() then data.tr = export.language_link { lang = data.lang, term = data.tr } end table_insert(output, export.format_link_annotations(data, face)) return table_concat(output) .. table_concat(categories) end --[[ Strips links: deletes category links, the targets of piped links, and all double square brackets. ]] function export.remove_links(text) if type(text) == "table" then text = text.args[1] end if not text or text == "" then return "" end text = mw.ustring.gsub(text, "%[%[Category:[^|%]]-|?[^|%]]-%]%]", "") text = text:gsub("%[%[[^|%]]-|", "") text = text:gsub("%[%[", "") text = text:gsub("%]%]", "") return text end function export.english_links(text) local lang = require("Module:languages").getByCode("en") -- Parentheses around function call to remove second return value, the -- number of replacements. return (text:gsub("%[%[([^%]]+)%]%]", function(linktext) local link = parseLink(linktext) return makeLangLink(link, lang, nil, true, false) end)) 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 capitalHex = "[0-9A-F]" local function decodeAnchor(anchor) return (anchor:gsub("%.(" .. capitalHex .. capitalHex .. ")", function(hexByte) return string.char(tonumber(hexByte, 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 numberSigns = select(2, mw.ustring.gsub(link, "#", "")) if numberSigns > 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 = decodeAnchor(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 .. "#" .. mw.uri.encode(section, "WIKI") .. "|" .. page .. " §&nbsp;" .. section .. "]]" else return "[[#" .. mw.uri.encode(section, "WIKI") .. "|§&nbsp;" .. section .. "]]" end else error("The function “section_link” could not find a number sign marking a section name.") end end return export os54grsal9oli8pqebeyim2kpu68njq 13328 13322 2022-08-03T08:39:41Z Asinis632 1829 Scribunto text/plain 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]] ]=] -- These are prefixed with u to avoid confusion with the default string methods -- of the same name. local usub = mw.ustring.sub local table_insert = table.insert local table_concat = table.concat local ignore_cap local phonetic_extraction local pos_tags local unsupported_titles function export.getLinkPage(target, lang) unsupported_titles = unsupported_titles or mw.loadData("Module:links/data").unsupported_titles if unsupported_titles[target] then return "Unsupported titles/" .. unsupported_titles[target] end -- 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) == ":" or target:sub(1, 2) == "w:" or target:sub(1, 10) == "wikipedia:" then return target end -- Remove diacritics from the page name target = lang:makeEntryName(target) if target:sub(1, 1) == "/" then return ":" .. target -- Link to appendix for reconstructed terms and terms in appendix-only languages elseif target:sub(1, 1) == "*" and #target > 1 then if lang:getCode() == "und" then return nil end target = "Reconstruction:" .. lang:getCanonicalName() .. "/" .. usub(target, 2) elseif lang:getType() == "reconstructed" then error("The specified language " .. lang:getCanonicalName() .. " is unattested, while the given word is not marked with '*' to indicate that it is reconstructed") elseif lang:getType() == "appendix-constructed" then target = "Appendix:" .. lang:getCanonicalName() .. "/" .. target end return target end -- Make a language-specific link from given link's parts local function makeLangLink(link, lang, id, allow_self_link) -- Temporary tracking code local langCode = lang:getCode() if langCode == "se" or langCode == "sia" or langCode:find("^sm[ajns]$") or langCode:find("^sj[dektu]$") then if link.display and link.display:find("'") then require("Module:debug/track")("links/Sami apostrophe display") elseif link.target and link.target:find("'") then require("Module:debug/track")("links/Sami apostrophe target") end end -- Find fragments (when link didn't come from parseLink). -- Prevents {{l|en|word#Etymology 2|word}} from linking to [[word#Etymology 2#English]]. if link.fragment == nil then -- Replace numeric character references with the corresponding character (&#29; → '), -- as they contain #, which causes the numeric character reference to be -- misparsed (wa'a → wa&#29;a → pagename wa&, fragment 29;a). link.target = link.target:gsub("&#(%d+);", function(number) return mw.ustring.char(tonumber(number)) end) local first, second = link.target:match("^([^#]+)#(.+)$") if first then link.target, link.fragment = first, second end end -- If there is no display form, then create a default one if not link.display then link.display = link.target -- Strip the prefix from the displayed form -- TODO: other interwiki links? if link.display:sub(1, 1) == ":" and not mw.loadData("Module:links/data").unsupported_titles[link.display] then link.display = link.display:sub(2) -- remove colon from beginning else local prefix = link.display:match("^([^:]+):") local prefixes = { w = true, wikipedia = true, } if prefixes[prefix] then link.display = link.display:sub(#prefix + 2) -- remove prefix plus colon end end end -- Process the target link.target = export.getLinkPage(link.target, lang) if not link.target then return link.display end -- If the target is the same as the current page and there is no sense id -- and linking to the same page hasn't been turned on, then return a "self-link" -- like the software does. if not (allow_self_link or id) and link.target:gsub("^:", "") == mw.title.getCurrentTitle().prefixedText then return "<strong class=\"selflink\">" .. link.display .. "</strong>" end --[[ Add fragment Do not add a section link to "Undetermined", as such sections do not exist and are invalid. TabbedLanguages handles links without a section by linking to the "last visited" section, but adding "Undetermined" would break that feature. For localized prefixes that make syntax error, please use the format: ["xyz"] = true, ]] local prefix = link.target:match("^:?([^:]+):") local prefixes = { w = true, wikipedia = true, Category = true, } if not prefixes[prefix] then if link.fragment or link.target:find("#$") then require("Module:debug/track") { "links/fragment", "links/fragment/" .. lang:getCode() } end if not link.fragment and lang:getCode() ~= "und" then if id then link.fragment = require("Module:senseid").anchor(lang, id) elseif not mw.ustring.find(link.target, "^Appendix:") and not mw.ustring.find(link.target, "^Reconstruction:") then link.fragment = lang:getCanonicalName() end end -- This allows linking to pages like [[sms:a]] without it being treated weirdly. link.target = link.target:gsub(":", "&#x3a;") end return "[[" .. link.target .. (link.fragment and "#" .. link.fragment or "") .. "|" .. link.display .. "]]" end -- Split a link into its parts local function parseLink(linktext) local link = { target = linktext } local first, second = link.target:match("^([^|]+)|(.+)$") if first then link.target = first link.display = second else link.display = link.target end first, second = link.target:match("^(.+)#(.+)$") if first then link.target = first link.fragment = second else -- So that makeLangLink does not look for a fragment again link.fragment = false end return link end -- Creates a basic wikilink to the given term. If the text already contains -- links, these are replaced with links to the correct section. function export.language_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.") end local text = data.term ignore_cap = ignore_cap or mw.loadData("Module:links/data").ignore_cap if ignore_cap[data.lang:getCode()] and text then text = text:gsub("%^", "") end -- If the text begins with * and another character, -- then act as if each link begins with * local allReconstructed = false if text:find("^*.") then allReconstructed = true end -- Do we have embedded wikilinks? if text:find("[[", nil, true) then --[=[ [[Special:WhatLinksHere/Template:tracking/links/alt-ignored]] [[Special:WhatLinksHere/Template:tracking/links/id-ignored]] ]=] if data.alt then require("Module:debug/track")("links/alt-ignored") mw.log("(from Module:links)", "text with embedded wikilinks:", text, "ignored alt:", data.alt, "lang:", data.lang:getCode()) end if data.id then require("Module:debug/track")("links/id-ignored") mw.log("(from Module:links)", "text with embedded wikilinks:", text, "ignored id:", data.id, "lang:", data.lang:getCode()) end -- Begins and ends with a wikilink tag if text:find("^%[%[(.+)%]%]$") then -- There are no [ ] in between. -- This makes the wikilink tag redundant. if text:find("^%[%[[^%[%]]+%]%]$") then require("Module:debug/track")("links/redundant wikilink") else local temp = text:gsub("^%[%[(.+)%]%]$", "%1") temp = temp:gsub("%]%], %[%[", "|") if not temp:find("[%[%]]") then require("Module:debug/track")("links/list") end end end text = text:gsub("%[%[([^%]]+)%]%]", function(linktext) local link = parseLink(linktext) if allReconstructed then link.target = "*" .. link.target end return makeLangLink(link, data.lang, data.id, allow_self_link) end) -- Remove the extra * at the beginning if it's immediately followed -- by a link whose display begins with * too if allReconstructed then text = text:gsub("^%*%[%[([^|%]]+)|%*", "[[%1|*") end else -- There is no embedded wikilink, make a link using the parameters. text = makeLangLink({ target = text, display = data.alt }, data.lang, data.id, allow_self_link) end return text end function export.mark(text, itemType, face, lang) local tag = { "", "" } if itemType == "gloss" then tag = { '<span class="mention-gloss-double-quote">“</span><span class="mention-gloss">', '</span><span class="mention-gloss-double-quote">”</span>' } elseif itemType == "tr" then if face == "term" then tag = { '<span lang="' .. lang:getCode() .. '" class="tr mention-tr Latn">', '</span>' } else tag = { '<span lang="' .. lang:getCode() .. '" class="tr Latn">', '</span>' } end elseif itemType == "ts" then tag = { '<span class="ts mention-ts Latn">/', '/</span>' } elseif itemType == "pos" then tag = { '<span class="ann-pos">', '</span>' } elseif itemType == "annotations" then tag = { '<span class="mention-gloss-paren annotation-paren">(</span>', '<span class="mention-gloss-paren annotation-paren">)</span>' } end if type(text) == "string" then return tag[1] .. text .. tag[2] else return "" end end -- Format the annotations (things following the linked term) function export.format_link_annotations(data, face) local output = {} -- Interwiki link if data.interwiki then table_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") table_insert(output, "&nbsp;" .. m_gen.format_list(data.genders, data.lang)) end local annotations = {} -- Transliteration and transcription if data.tr or data.ts then local kind if face == "term" then kind = face else kind = "default" end if data.tr and data.ts then table_insert(annotations, require("Module:script utilities").tag_translit(data.tr, data.lang, kind) .. " " .. export.mark(data.ts, "ts")) elseif data.ts then table_insert(annotations, export.mark(data.ts, "ts")) else table_insert(annotations, require("Module:script utilities").tag_translit(data.tr, data.lang, kind)) end end -- Gloss/translation if data.gloss then table_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 .. "[[Category:links likely containing transcriptions in pos]]" end pos_tags = pos_tags or mw.loadData("Module:links/data").pos_tags table_insert(annotations, export.mark(pos_tags[data.pos] or data.pos, "pos")) end -- Literal/sum-of-parts meaning if data.lit then table_insert(annotations, "literally " .. export.mark(data.lit, "gloss")) end if #annotations > 0 then table_insert(output, " " .. export.mark(table_concat(annotations, ", "), "annotations")) end return table_concat(output) end -- A version of {{l}} or {{m}} that can be called from other modules too function export.full_link(data, face, allow_self_link, no_check_redundant_translit) if type(data) ~= "table" then error("The first argument to the function full_link must be a table. " .. "See Module:links/documentation for more information.") end -- Create the link local output = {} local categories = {} local link = "" local annotations phonetic_extraction = phonetic_extraction or mw.loadData("Module:links/data").phonetic_extraction -- Is there any text to show? if (data.term or data.alt) then -- Try to detect the script if it was not provided if not data.sc then data.sc = require("Module:scripts").findBestScript(data.alt or data.term, data.lang) else -- Track uses of sc parameter local best = require("Module:scripts").findBestScript(data.alt or data.term, data.lang) require("Module:debug/track")("links/sc") if data.sc:getCode() == best:getCode() then require("Module:debug/track")("links/sc/redundant") require("Module:debug/track")("links/sc/redundant/" .. data.sc:getCode()) else require("Module:debug/track")("links/sc/needed") require("Module:debug/track")("links/sc/needed/" .. data.sc:getCode()) end end local class = "" -- Encode certain characters to avoid various delimiter-related issues at various stages. We need to encode < and > -- because they end up forming part of CSS class names inside of <span ...> and will interfere with finding the end -- of the HTML tag. I first tried converting them to URL encoding, i.e. %3C and %3E; they then appear in the URL as -- %253C and %253E, which get mapped back to %3C and %3E when passed to [[Module:accel]]. But mapping them to &lt; -- and &gt; somehow works magically without any further work; they appear in the URL as < and >, and get passed to -- [[Module:accel]] as < and >. I have no idea who along the chain of calls is doing the encoding and decoding. If -- someone knows, please modify this comment appropriately! local encode_accel_char_map = { ["%"] = ".", [" "] = "_", ["<"] = "&lt;", [">"] = "&gt;", } local function encode_accel_param_chars(param) local retval = param:gsub("[% <>]", encode_accel_char_map) -- discard second return value return retval end local function encode_accel_param(prefix, param) if not param then return "" end if type(param) == "table" then local filled_params = {} -- There may be gaps in the sequence, especially for translit 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]] splits these up again. param = table.concat(filled_params, "*~!") end -- This is decoded again by [[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 ~= "-" and data.tr 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:getCode() .. " " .. accel end -- Only make a link if the term has been given, otherwise just show the alt text without a link link = require("Module:script utilities").tag_text( data.term and export.language_link(data, allow_self_link) or data.alt, data.lang, data.sc, face, class) else --[[ No term to show. Is there at least a transliteration we can work from? ]] link = require("Module:script utilities").request_script(data.lang, data.sc) if link == "" or not data.tr or data.tr == "-" then -- No link to show, and no transliteration either. Show a term request. local category = "" if mw.title.getCurrentTitle().nsText ~= "Templet" then table_insert(categories, "[[Grup:" .. data.lang:getCanonicalName() .. " term requests]]") end link = "<small>[Term?]</small>" end end table_insert(output, link) if data.tr == "" or data.tr == "-" then data.tr = nil elseif phonetic_extraction[data.lang:getCode()] then local m_phonetic = require(phonetic_extraction[data.lang:getCode()]) data.tr = data.tr or m_phonetic.getTranslit(export.remove_links(data.term)) elseif (data.term or data.alt) and not data.sc:getCode():find("Lati?n") then -- Try to generate a transliteration, unless transliteration has been supplied and either -- no_check_redundant_translit is given or we are in a high-memory entry. (Checking for redundant -- transliteration can use up significant amounts of memory so we don't want to do it if memory -- is tight. `no_check_redundant_translit` is currently set when called ultimately from -- {{multitrans|...|no-check-redundant-translit=1}}.) if not (data.tr and ( no_check_redundant_translit or mw.loadData("Module:links/data").high_memory_entries[mw.title.getCurrentTitle().text] )) then local automated_tr = data.lang:transliterate(export.remove_links(data.alt or data.term), data.sc) if automated_tr then local manual_tr = data.tr if manual_tr then if manual_tr == automated_tr then table_insert(categories, "[[Category:Terms with redundant transliterations]]" .. "[[Category:Terms with redundant transliterations/" .. data.lang:getCode() .. "]]") else -- Prevents Arabic root categories from flooding the tracking categories. if mw.title.getCurrentTitle().nsText ~= "Grup" then table_insert(categories, "[[Grup:Terms with manual transliterations different from the automated ones]]" .. "[[Category:Terms with manual transliterations different from the automated ones/" .. data.lang:getCode() .. "]]") end end end if (not manual_tr) or data.lang:overrideManualTranslit() then data.tr = automated_tr end end end end -- Link to the transliteration entry for languages that require this if data.tr and data.lang:link_tr() then data.tr = export.language_link { lang = data.lang, term = data.tr } end table_insert(output, export.format_link_annotations(data, face)) return table_concat(output) .. table_concat(categories) end --[[ Strips links: deletes category links, the targets of piped links, and all double square brackets. ]] function export.remove_links(text) if type(text) == "table" then text = text.args[1] end if not text or text == "" then return "" end text = mw.ustring.gsub(text, "%[%[Grup:[^|%]]-|?[^|%]]-%]%]", "") text = text:gsub("%[%[[^|%]]-|", "") text = text:gsub("%[%[", "") text = text:gsub("%]%]", "") return text end function export.english_links(text) local lang = require("Module:languages").getByCode("en") -- Parentheses around function call to remove second return value, the -- number of replacements. return (text:gsub("%[%[([^%]]+)%]%]", function(linktext) local link = parseLink(linktext) return makeLangLink(link, lang, nil, true, false) end)) 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 capitalHex = "[0-9A-F]" local function decodeAnchor(anchor) return (anchor:gsub("%.(" .. capitalHex .. capitalHex .. ")", function(hexByte) return string.char(tonumber(hexByte, 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 numberSigns = select(2, mw.ustring.gsub(link, "#", "")) if numberSigns > 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 = decodeAnchor(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 .. "#" .. mw.uri.encode(section, "WIKI") .. "|" .. page .. " §&nbsp;" .. section .. "]]" else return "[[#" .. mw.uri.encode(section, "WIKI") .. "|§&nbsp;" .. section .. "]]" end else error("The function “section_link” could not find a number sign marking a section name.") end end return export dcueswq1ho17axmspdv33zh1ngz75gr Module:links/data 828 3652 13323 10998 2022-08-03T08:02:34Z Asinis632 1829 Scribunto text/plain local data = {} data.ignore_cap = { ["ko"] = true, } data.phonetic_extraction = { ["th"] = "Module:th", ["km"] = "Module:km", } data.pos_tags = { ["a"] = "adjective", ["adv"] = "adverb", ["int"] = "interjection", ["n"] = "noun", ["pron"] = "pronoun", ["v"] = "verb", ["vi"] = "intransitive verb", ["vt"] = "transitive verb", ["vti"] = "transitive and intransitive verb", } data.high_memory_entries = { "a", "animal", "book", "coffee", "do", "e", "language", "night", "o", "smoke", "son", "sun", "water", "wind", } local U = mw.ustring.char local soft_hyphen = U(0xAD) --[[ The "actual title" is the page name with the prefix "Unsupported titles/" removed. ["displayed_title"] = "actual title" ]] data.unsupported_titles = { [" "] = "Space", ["{"] = "Left curly bracket", ["}"] = "Right curly bracket", ["["] = "Left square bracket", ["]"] = "Right square bracket", ["<"] = "Less than", [">"] = "Greater than", ["=<"] = "Equal less than", ["=>"] = "Equal greater than", [">="] = "Greater than equal", ["<="] = "Less than equal", ["->"] = "Hyphen greater than", ["<-"] = "Less than hyphen", [">_<"] = "Greater than low line less than", ["::"] = "Double colon", [": :"] = "Enclosing colons", [":/"] = "Colon slash", [":="] = "Colon equals", [":Þ"] = "Colon capital thorn", [":þ"] = "Colon lowercase thorn", [":("] = "Colon left paren", [":)"] = "Colon right paren", [":3"] = "Colon three", ["<>"] = "Less than greater than", ["<3"] = "Less than three", ["</3"] = "Less than slash three", ["< >"] = "Enclosing less than greater than", ["< />"] = "Less than trailing slash greater than", ["< > </ >"] = "HTML start tag end tag", ["<!-- -->"] = "HTML comment", ["<g>"] = "g tag", [":-("] = "Colon hyphen left paren", [":-)"] = "Colon hyphen right paren", ["|"] = "Vertical line", ["||"] = "Vertical line vertical line", ["| |"] = "Enclosing vertical lines", ["C#"] = "C sharp", ["#"] = "Number sign", ["# #"] = "Enclosing number signs", ["&amp;"] = "Amp", [":"] = "Colon", [".."] = "Double period", ["."] = "Full stop", ["_"] = "Low line", ["-_-"] = "Low line interfix", [U(0xFFFD)] = "Replacement character", [U(0x1680)] = "Ogham space", ["[ ]"] = "Square brackets", ["{ }"] = "Curly brackets", ["[…]"] = "Square bracketed ellipsis", ["_ _"] = "Enclosing low lines", ["C|N>K"] = "C through N to K", ["#MeToo"] = "MeToo", ["о/."] = "о slash dot", ["กรุงเทพมหานคร อมรรัตนโกสินทร์ มหินทรายุธยา มหาดิลกภพ นพรัตนราชธานีบูรีรมย์ อุดมราชนิเวศน์มหาสถาน อมรพิมานอวตารสถิต สักกะทัตติยวิษณุกรรมประสิทธิ์"] = "Thai name of Bangkok", ["λοπαδοτεμαχοσελαχογαλεοκρανιολειψανοδριμυποτριμματοσιλφιοκαραβομελιτοκατακεχυμενοκιχλ" .. soft_hyphen .. "επικοσσυφοφαττοπεριστεραλεκτρυονοπτοκεφαλλιοκιγκλοπελειολαγῳοσιραιοβαφητραγανοπτερύγων"] = "Ancient Greek dish", [":≠"] = ":≠", ["S:t"] = "S:t", ["S:ta"] = "S:ta", ["S:t Michel"] = "S:t Michel", ["c:a"] = "c:a", ["eq #"] = "eq number sign", ["hr #"] = "hr number sign", ["n:a"] = "n:a", ["n:o"] = "n:o", ["n:r"] = "n:r", ["s:a"] = "s:a", ["st:a"] = "st:a", ["v:a"] = "v:a", } for i, item in ipairs(data.high_memory_entries) do data.high_memory_entries[i] = nil data.high_memory_entries[item] = true end return data 7zsizb8zglitbtewtcqk13alr4hasb9 Templet:descendant 10 4130 13312 11593 2022-08-03T06:17:48Z Asinis632 1829 wikitext text/x-wiki {{#invoke:etymology/templates/descendant|descendant}}<noinclude> {{documentation}} </noinclude> 5i762qwxh1fn2n8ve51agjddncrfsgo kondom 0 5290 13310 2022-08-03T06:12:31Z Asinis632 1829 Created page with "{{also|Kondom}} ==Afar== ===Etymology=== From {{bor|aa|en|condom}}. ===Pronunciation=== * {{aa-IPA|kóndom}} ===Noun=== {{aa-noun|kóndom|g=m|pl=kondomwá|gpl=f}} # [[condom]] ====References==== * {{R:aa:Hassan Kamil:2015}} {{c|aa|Birth control}} ---- ==Cebuano== ===Etymology=== Borrowed from {{bor|ceb|en|condom}}. ===Pronunciation=== * {{hyphenation|ceb|kon|dom}} ===Noun=== {{ceb-noun}} # [[condom]] ===Verb=== {{ceb-verb}} # to [[put on]] a condom {{topic..." wikitext text/x-wiki {{also|Kondom}} ==Afar== ===Etymology=== From {{bor|aa|en|condom}}. ===Pronunciation=== * {{aa-IPA|kóndom}} ===Noun=== {{aa-noun|kóndom|g=m|pl=kondomwá|gpl=f}} # [[condom]] ====References==== * {{R:aa:Hassan Kamil:2015}} {{c|aa|Birth control}} ---- ==Cebuano== ===Etymology=== Borrowed from {{bor|ceb|en|condom}}. ===Pronunciation=== * {{hyphenation|ceb|kon|dom}} ===Noun=== {{ceb-noun}} # [[condom]] ===Verb=== {{ceb-verb}} # to [[put on]] a condom {{topics|ceb|Birth control}} ---- ==Czech== ===Etymology=== From {{der|cs|en|condom}}. ===Pronunciation=== * {{cs-IPA}} * {{hyphenation|cs|kon|dom}} ===Noun=== {{cs-noun|g=m-in}} # [[condom]] #: {{syn|cs|prezervativ|guma|šprcka|šprcguma}} ====Declension==== {{cs-decl-noun |kondom|kondomu|kondomu|kondom|kondome|kondomu|kondomem |kondomy|kondomů|kondomům|kondomy|kondomy|kondomech|kondomy }} ===Further reading=== * {{R:PSJC}} * {{R:SSJC}} {{c|cs|Birth control}} ---- ==Danish== {{wikipedia|lang=da}} ===Pronunciation=== * {{IPA|da|/kɔndoːm/|[kʰʌnˈd̥oːˀm]}} or {{IPA|da|/kondoːm/|[kʰɔnˈd̥oːˀm]|[kʰonˈd̥oːˀm]}} ===Noun=== {{da-noun|et|er}} # [[condom]] {{gloss|flexible sleeve}} #: {{syn|da|præservativ|gummi}} ====Declension==== {{da-noun-infl|et|er}} ====Descendants==== * {{desc|kl|kondomi}} {{c|da|Birth control}} ---- ==Indonesian== ===Pronunciation=== * {{IPA|id|[ˈkɔndɔm]|qual1=}} * {{hyphenation|id|kon|dom}} * {{rhymes|id|dom|om|m|s=2}} ===Etymology 1=== From {{bor|id|nl|condoom}}, from {{der|id|en|condom}}. * The sense of protective case or cover is comparable to the Dutch synonym {{m|nl|kous|t=condom, mantle|lit=stocking, sock}}. ====Noun==== {{id-noun}} # {{lb|id|literal}} [[condom]]: A flexible sleeve made of latex or other impermeable material such as sheepskin, worn over an erect penis during sexual intercourse as a contraceptive or as a way to prevent the spread of STDs. # {{lb|id|colloquial}} [[protective]] [[case]] or [[cover]]. ====Derived terms==== {{der4|id| | berkondom |}} ===Etymology 2=== {{blend|id|kondisi|domisili}}. ====Noun==== {{id-noun}} # {{lb|id|slang|dated}} [[condition]] and [[situation]] ===Further reading=== * {{R:KBBI Daring}} {{c|id|Birth control}} ---- ==Malay== {{wikipedia|lang=ms}} ===Etymology=== Borrowed from {{bor|ms|en|condom}}. ===Noun=== {{ms-noun|j=کوندوم}} # [[condom]] ====Further reading==== * {{R:PRPM}} {{c|ms|Birth control}} ---- ==Norwegian Bokmål== {{wikipedia|lang=no}} ===Etymology=== From {{der|nb|en|condom}} ===Noun=== {{nb-noun-n3}} # a {{l|en|condom}} ===References=== * {{R:The Bokmål Dictionary}} {{c|nb|Birth control}} ---- ==Norwegian Nynorsk== {{wikipedia|lang=nn}} ===Etymology=== From {{der|nn|en|condom}} ===Noun=== {{nn-noun-n1}} # a {{l|en|condom}} ===References=== * {{R:The Nynorsk Dictionary}} {{c|nn|Birth control}} ---- ==Polish== {{wp|lang=pl}} ===Etymology=== {{bor+|pl|en|condom}}. ===Pronunciation=== {{pl-p|a=Pl-kondom.ogg}} ===Noun=== {{pl-noun|m-in}} # [[condom]] #: {{syn|pl|prezerwatywa}} ====Declension==== {{pl-decl-noun |kondom|kondomy |kondomu|kondomów |kondomowi|kondomom |kondom|kondomy |kondomem|kondomami |kondomie|kondomach |kondomie|kondomy }} ===Further reading=== * {{R:pl:WSJP}} * {{R:pl:PWN}} {{C|pl|Birth control}} ---- ==Serbo-Croatian== ===Etymology=== From {{bor|sh|en|condom}}. ===Pronunciation=== * {{IPA|sh|/kǒndoːm/}} * {{hyphenation|sh|kon|dom}} ===Noun=== {{sh-noun|g=m|head=kòndōm}} # [[condom]] ====Declension==== {{sh-decl-noun |kòndōm|kondomi |kondóma|kondoma |kondomu|kondomima |kondom|kondome |kondome|kondomi |kondomu|kondomima |kondomom|kondomima }} {{c|sh|Birth control}} ---- ==Slovene== ===Pronunciation=== * {{sl-IPA|kondọ̑m}} ===Noun=== {{sl-noun|kondọ̑m|m-in}} # [[condom]] #: {{syn|sl|preservatív}} ====Inflection==== {{sl-decl-noun-m|kondóm}} {{c|sl|Birth control}} ---- ==Swedish== {{wikipedia|lang=sv}} ===Etymology=== From {{der|sv|en|condom}}. ===Noun=== {{sv-noun|c}} # a {{l|en|condom}} #: {{syn|sv|gummi|kådis}} {{q|both slang}} ====Declension==== {{sv-infl-noun-c-r|2=kondome}} {{topics|sv|Birth control}} ---- ==Tagalog== ===Etymology=== Borrowed from {{bor|tl|en|condom}}. ===Pronunciation=== * {{hyph|tl|kon|dom}} * {{tl-IPA}} ===Noun=== {{tl-noun}} # [[condom]] ===Further reading=== * {{R:KWF Diksiyonaryo}} {{C|tl|Birth control}} ---- ==Tok Pisin== ===Etymology=== From {{der|tpi|en|condom}}. ===Noun=== {{head|tpi|noun}} # [[condom]] {{c|tpi|Birth control}} ---- ==Turkish== ===Etymology=== Borrowed from {{bor|tr|fr|condom}}. ===Noun=== {{tr-noun|u|lar}} # [[condom]] #: {{syn|tr|prezervatif}} ====Declension==== {{tr-infl-noun-c|o}} {{c|tr|Birth control}} 68hi5usmzccndhqtffhup5cdzq1um2f 13311 13310 2022-08-03T06:14:16Z Asinis632 1829 wikitext text/x-wiki {{also|Kondom}} ==Afar== ===Etymology=== From {{bor|aa|en|condom}}. ===Pronunciation=== * {{aa-IPA|kóndom}} ===Noun=== {{aa-noun|kóndom|g=m|pl=kondomwá|gpl=f}} # [[condom]] ====References==== * {{R:aa:Hassan Kamil:2015}} {{c|aa|Birth control}} ---- ==Cebuano== ===Etymology=== Borrowed from {{bor|ceb|en|condom}}. ===Pronunciation=== * {{hyphenation|ceb|kon|dom}} ===Noun=== {{ceb-noun}} # [[condom]] ===Verb=== {{ceb-verb}} # to [[put on]] a condom {{topics|ceb|Birth control}} ---- ==Czech== ===Etymology=== From {{der|cs|en|condom}}. ===Pronunciation=== * {{cs-IPA}} * {{hyphenation|cs|kon|dom}} ===Noun=== {{cs-noun|g=m-in}} # [[condom]] #: {{syn|cs|prezervativ|guma|šprcka|šprcguma}} ====Declension==== {{cs-decl-noun |kondom|kondomu|kondomu|kondom|kondome|kondomu|kondomem |kondomy|kondomů|kondomům|kondomy|kondomy|kondomech|kondomy }} ===Further reading=== * {{R:PSJC}} * {{R:SSJC}} {{c|cs|Birth control}} ---- ==Danish== {{wikipedia|lang=da}} ===Pronunciation=== * {{IPA|da|/kɔndoːm/|[kʰʌnˈd̥oːˀm]}} or {{IPA|da|/kondoːm/|[kʰɔnˈd̥oːˀm]|[kʰonˈd̥oːˀm]}} ===Noun=== {{da-noun|et|er}} # [[condom]] {{gloss|flexible sleeve}} #: {{syn|da|præservativ|gummi}} ====Declension==== {{da-noun-infl|et|er}} ====Descendants==== * {{desc|kl|kondomi}} {{c|da|Birth control}} ---- ==Indonesian== ===Pronunciation=== * {{IPA|id|[ˈkɔndɔm]|qual1=}} * {{hyphenation|id|kon|dom}} * {{rhymes|id|dom|om|m|s=2}} ===Etymology 1=== From {{bor|id|nl|condoom}}, from {{der|id|en|condom}}. * The sense of protective case or cover is comparable to the Dutch synonym {{m|nl|kous|t=condom, mantle|lit=stocking, sock}}. ====Noun==== {{id-noun}} # {{lb|id|literal}} [[condom]]: A flexible sleeve made of latex or other impermeable material such as sheepskin, worn over an erect penis during sexual intercourse as a contraceptive or as a way to prevent the spread of STDs. # {{lb|id|colloquial}} [[protective]] [[case]] or [[cover]]. ====Derived terms==== {{der4|id| | berkondom |}} ===Etymology 2=== {{blend|id|kondisi|domisili}}. ====Noun==== {{id-noun}} # {{lb|id|slang|dated}} [[condition]] and [[situation]] ===Further reading=== * {{R:KBBI Daring}} {{c|id|Birth control}} ---- ==Malay== {{wikipedia|lang=ms}} ===Etymology=== Borrowed from {{bor|ms|en|condom}}. ===Noun=== {{ms-noun|j=کوندوم}} # [[condom]] ====Further reading==== * {{R:PRPM}} {{c|ms|Birth control}} ---- ==Norwegian Bokmål== {{wikipedia|lang=no}} ===Etymology=== From {{der|nb|en|condom}} ===Noun=== {{nb-noun-n3}} # a {{l|en|condom}} ===References=== * {{R:The Bokmål Dictionary}} {{c|nb|Birth control}} ---- ==Norwegian Nynorsk== {{wikipedia|lang=nn}} ===Etymology=== From {{der|nn|en|condom}} ===Noun=== {{nn-noun-n1}} # a {{l|en|condom}} ===References=== * {{R:The Nynorsk Dictionary}} {{c|nn|Birth control}} ---- ==Polish== {{wp|lang=pl}} ===Etymology=== {{bor+|pl|en|condom}}. ===Pronunciation=== {{pl-p|a=Pl-kondom.ogg}} ===Noun=== {{pl-noun|m-in}} # [[condom]] #: {{syn|pl|prezerwatywa}} ====Declension==== {{pl-decl-noun |kondom|kondomy |kondomu|kondomów |kondomowi|kondomom |kondom|kondomy |kondomem|kondomami |kondomie|kondomach |kondomie|kondomy }} ===Further reading=== * {{R:pl:WSJP}} * {{R:pl:PWN}} {{C|pl|Birth control}} ---- {{-sr-}} ===Etymology=== From {{bor|sh|en|condom}}. ===Pronunciation=== * {{IPA|sh|/kǒndoːm/}} * {{hyphenation|sh|kon|dom}} ===Noun=== {{sh-noun|g=m|head=kòndōm}} # [[condom]] ====Declension==== {{sh-decl-noun |kòndōm|kondomi |kondóma|kondoma |kondomu|kondomima |kondom|kondome |kondome|kondomi |kondomu|kondomima |kondomom|kondomima }} {{c|sh|Birth control}} ---- ==Slovene== ===Pronunciation=== * {{sl-IPA|kondọ̑m}} ===Noun=== {{sl-noun|kondọ̑m|m-in}} # [[condom]] #: {{syn|sl|preservatív}} ====Inflection==== {{sl-decl-noun-m|kondóm}} {{c|sl|Birth control}} ---- ==Swedish== {{wikipedia|lang=sv}} ===Etymology=== From {{der|sv|en|condom}}. ===Noun=== {{sv-noun|c}} # a {{l|en|condom}} #: {{syn|sv|gummi|kådis}} {{q|both slang}} ====Declension==== {{sv-infl-noun-c-r|2=kondome}} {{topics|sv|Birth control}} ---- ==Tagalog== ===Etymology=== Borrowed from {{bor|tl|en|condom}}. ===Pronunciation=== * {{hyph|tl|kon|dom}} * {{tl-IPA}} ===Noun=== {{tl-noun}} # [[condom]] ===Further reading=== * {{R:KWF Diksiyonaryo}} {{C|tl|Birth control}} ---- {{-tpi-}} ===Etymology=== From {{der|tpi|en|condom}}. ===Noun=== {{head|tpi|noun}} # [[condom]] {{c|tpi|Birth control}} ---- {{-tr-}} ===Etymology=== Borrowed from {{bor|tr|fr|condom}}. ===Noun=== {{tr-noun|u|lar}} # [[condom]] #: {{syn|tr|prezervatif}} ====Declension==== {{tr-infl-noun-c|o}} {{c|tr|Birth control}} 7pvgob1o69n8s555wt7ebm2q3w3mnxv Module:etymology/templates/descendant 828 5291 13313 2022-08-03T06:18:33Z Asinis632 1829 Created page with "local export = {} local listToSet = require("Module:table/listToSet") local rsplit = mw.text.split local error_on_no_descendants = false local function qualifier(content) if content then return '<span class="ib-brac qualifier-brac">(</span><span class="ib-content qualifier-content">' .. content .. '</span><span class="ib-brac qualifier-brac">)</span>' end end local function track(page) return require("Module:debug/track")("descendant/" .. page) end local func..." Scribunto text/plain local export = {} local listToSet = require("Module:table/listToSet") local rsplit = mw.text.split local error_on_no_descendants = false local function qualifier(content) if content then return '<span class="ib-brac qualifier-brac">(</span><span class="ib-content qualifier-content">' .. content .. '</span><span class="ib-brac qualifier-brac">)</span>' end end local function track(page) return require("Module:debug/track")("descendant/" .. page) end local function ine(arg) if arg == "" then return nil else return arg end end local function add_tooltip(text, tooltip) return '<span class="desc-arr" title="' .. tooltip .. '">' .. text .. '</span>' end local m_dialect_tags local function memoize_require_dialect_tags() if not m_dialect_tags then m_dialect_tags = require("Module:dialect tags") end return m_dialect_tags end -- Replace comma+whitespace in the non-modifier parts of an alternating run (after parse_balanced_segment_run() is -- called). See split_on_comma() in [[Module:dialect tags]]. local function escape_comma_whitespace_in_alternating_run(run) local need_tempcomma_undo = false for i, seg in ipairs(run) do if i % 2 == 1 then local this_need_tempcomma_undo if seg:find(",") then run[i], this_need_tempcomma_undo = memoize_require_dialect_tags().escape_comma_whitespace(seg) end need_tempcomma_undo = need_tempcomma_undo or this_need_tempcomma_undo end end return need_tempcomma_undo end -- Params that modify a descendant term (as also supported by {{l}}, {{m}}). Doesn't include gloss=, which we -- handle specially. local param_term_mods = {"alt", "g", "id", "lit", "pos", "sc", "t", "tr", "ts"} local param_term_mod_set = listToSet(param_term_mods) -- Boolean params indicating whether a descendant term (or all terms) are particular sorts of borrowings. local bortypes = {"inh", "bor", "lbor", "slb", "obor", "translit", "der", "clq", "pclq", "sml", "unc"} local bortype_set = listToSet(bortypes) -- Aliases of clq=. local calque_aliases = {"cal", "calq", "calque"} local calque_alias_set = listToSet(calque_aliases) -- Aliases of pclq=. local partial_calque_aliases = {"pcal", "pcalq", "pcalque"} local partial_calque_alias_set = listToSet(partial_calque_aliases) -- Miscellaneous list params. local misc_list_params = {"q", "qq", "tag"} local misc_list_param_set = listToSet(misc_list_params) local function desc_or_desc_tree(frame, desc_tree) local params if desc_tree then params = { [1] = {required = true, default = "gem-pro"}, [2] = {required = true, list = true, allow_holes = true, default = "*fuhsaz"}, ["notext"] = {type = "boolean"}, ["noalts"] = {type = "boolean"}, ["noparent"] = {type = "boolean"}, } else params = { [1] = {required = true}, [2] = {list = true, allow_holes = true}, ["alts"] = {type = "boolean"} } end -- Add a "regular" list param such as g=, gloss=, lit=, etc. "Regular" here means that `param` and `param1` are -- the same thing. `type` if given is the param type (e.g. "boolean") and `alias_of` is used for params that are -- aliases of other params. local function add_regular_list_param(param, type, alias_of) params[param] = {type = type, alias_of = alias_of, list = true, allow_holes = true} end -- Add an index-separated list param such as bor=, calq=, qq=, etc. "Index-separated" means that `param` and -- `param1` are different. Non-numbered `param` is accessible as `args.param` while numbered `param1`, `param2`, -- etc. are accessible as `args.partparam[1]`, `args.partparam[2]`, etc. `type` if given is the param type (e.g. -- "boolean") and `alias_of` is used for params that are aliases of other params. local function add_index_separated_list_param(param, type, alias_of) params[param] = {alias_of = alias_of, type = type} params["part" .. param] = {alias_of = alias_of and "part" .. alias_of or nil, type = type, list = param, allow_holes = true, require_index = true} end for _, term_mod in ipairs(param_term_mods) do add_regular_list_param(term_mod) end -- Handle gloss= specially because it's an alias. add_regular_list_param("gloss", nil, "t") for _, bortype in ipairs(bortypes) do add_index_separated_list_param(bortype, "boolean") end for _, calque_alias in ipairs(calque_aliases) do add_index_separated_list_param(calque_alias, "boolean", "clq") end for _, partial_calque_alias in ipairs(partial_calque_aliases) do add_index_separated_list_param(partial_calque_alias, "boolean", "pclq") end for _, misc_list_param in ipairs(misc_list_params) do add_index_separated_list_param(misc_list_param) end -- Add other single params. for k, v in pairs({ ["sclb"] = {type = "boolean"}, ["nolb"] = {type = "boolean"}, ["sandbox"] = {type = "boolean"}, }) do params[k] = v end local namespace = mw.title.getCurrentTitle().nsText local parent_args if frame.args[1] then parent_args = frame.args else parent_args = frame:getParent().args end -- Error to catch most uses of old-style parameters. if ine(parent_args[4]) and not ine(parent_args[3]) and not ine(parent_args.tr2) and not ine(parent_args.ts2) and not ine(parent_args.t2) and not ine(parent_args.gloss2) and not ine(parent_args.g2) and not ine(parent_args.alt2) then error("You specified a term in 4= and not one in 3=. You probably meant to use t= to specify a gloss instead. " .. "If you intended to specify two terms, put the second term in 3=.") end if not ine(parent_args[3]) and not ine(parent_args.alt2) and not ine(parent_args.tr2) and not ine(parent_args.ts2) and ine(parent_args.g2) then error("You specified a gender in g2= but no term in 3=. You were probably trying to specify two genders for " .. "a single term. To do that, put both genders in g=, comma-separated.") end -- FIXME: Remove this after a few days. if parent_args.q or parent_args.q1 or parent_args.q2 or parent_args.q3 or parent_args.q4 or parent_args.q5 or parent_args.q6 or parent_args.q7 or parent_args.q8 or parent_args.q9 then track("q") error("Please use qq= not q=. q= will be switching to put the qualifier *before* the term, not after.") end local args = require("Module:parameters").process(parent_args, params) if args.sandbox then if namespace == "" or namespace == "Reconstruction" then error("The sandbox module, Module:descendants tree/sandbox, should not be used in entries.") end end local m_desctree if desc_tree or args["alts"] then if args.sandbox or require("Module:yesno")(frame.args.sandbox, false) then m_desctree = require("Module:descendants tree/sandbox") else m_desctree = require("Module:descendants tree") end end local lang = args[1] local terms = args[2] if mw.title.getCurrentTitle().nsText == "Template" then lang = lang or "en" if #terms == 0 then terms = {"word"} terms.maxindex = 1 end end local m_languages = require("Module:languages") lang = m_languages.getByCode(lang, 1, "allow etym") local entryLang = m_languages.getNonEtymological(lang) if not desc_tree and entryLang:getType() == "family" then error("Cannot use language family code in [[Template:desc]].") end if lang:getCode() ~= entryLang:getCode() then -- [[Special:WhatLinksHere/Template:tracking/descendant/etymological]] track("etymological") track("etymological/" .. lang:getCode()) end local languageName = lang:getCanonicalName() local label if args["sclb"] then local sc = args["sc"][1] and require("Module:scripts").getByCode(args["sc"][1], "sc") local term = terms[1] if sc then label = sc:getCanonicalName() else label = require("Module:scripts").findBestScript(term, lang):getCanonicalName() end else label = languageName end -- Find the maximum index among any of the list parameters. local maxmaxindex = terms.maxindex for k, v in pairs(args) do if type(v) == "table" and v.maxindex and v.maxindex > maxmaxindex then maxmaxindex = v.maxindex end end -- Convert a raw tag= param (or nil) to a list of formatted dialect tags; unrecognized tags are passed through -- unchanged. Return nil if nil passed in. local function tags_to_dialects(tags) if not tags then return nil end local m_dialect_tags = memoize_require_dialect_tags() return m_dialect_tags.make_dialects(m_dialect_tags.split_on_comma(tags), lang) end -- Return a function of one argument `arg` (a param name), which fetches args[`arg`] if index == 0, else -- args["part" .. `arg`][index]. local function get_val(index) return function(arg) if index == 0 then return args[arg] else return args["part" .. arg][index] end end end -- Return the arrow text for the `index`th term, or the overall arrow text if index == 0. local function get_arrow(index) local val = get_val(index) local arrow if val("bor") then arrow = add_tooltip("→", "borrowed") elseif val("lbor") then arrow = add_tooltip("→", "learned borrowing") elseif val("slb") then arrow = add_tooltip("→", "semi-learned borrowing") elseif val("obor") then arrow = add_tooltip("→", "orthographic borrowing") elseif args["translit"] then arrow = add_tooltip("→", "transliteration") elseif val("clq") then arrow = add_tooltip("→", "calque") elseif val("pclq") then arrow = add_tooltip("→", "partial calque") elseif val("sml") then arrow = add_tooltip("→", "semantic loan") elseif val("inh") or (val("unc") and not val("der")) then arrow = add_tooltip(">", "inherited") else arrow = "" end -- allow der=1 in conjunction with bor=1 to indicate e.g. English "pars recta" -- derived and borrowed from Latin "pars". if val("der") then arrow = arrow .. add_tooltip("⇒", "reshaped by analogy or addition of morphemes") end if val("unc") then arrow = arrow .. add_tooltip("?", "uncertain") end if arrow ~= "" then arrow = arrow .. " " end return arrow end -- Return the pre-qualifier text for the `index`th term, or the overall pre-qualifier text if index == 0. local function get_pre_qualifiers(index) local val = get_val(index) local quals if index > 0 then quals = tags_to_dialects(val("tag")) end if val("q") then quals = quals or {} table.insert(quals, val("q")) end if quals then return require("Module:qualifier").format_qualifier(quals) .. " " else return "" end end -- Return the post-qualifier text for the `index`th term, or the overall post-qualifier text if index == 0. local function get_post_qualifiers(index) local val = get_val(index) local postqs = {} if val("inh") then table.insert(postqs, qualifier("inherited")) end if val("lbor") then table.insert(postqs, qualifier("learned")) end if val("slb") then table.insert(postqs, qualifier("semi-learned")) end if val("translit") then table.insert(postqs, qualifier("transliteration")) end if val("clq") then table.insert(postqs, qualifier("calque")) end if val("pclq") then table.insert(postqs, qualifier("partial calque")) end if val("sml") then table.insert(postqs, qualifier("semantic loan")) end if val("qq") then table.insert(postqs, require("Module:qualifier").format_qualifier(val("qq"))) end if index == 0 then local dialects = tags_to_dialects(val("tag")) if dialects then table.insert(postqs, memoize_require_dialect_tags().post_format_dialects(dialects)) end end if #postqs > 0 then return " " .. table.concat(postqs, " ") else return "" end end local parts = {} local descendants = {} local saw_descendants = false local seen_terms = {} local put local use_semicolon = false local ind = 0 for i = 1, maxmaxindex do local term = terms[i] if term ~= ";" then ind = ind + 1 local alt = args["alt"][ind] local id = args["id"][ind] local sc = args["sc"][ind] and require("Module:scripts").getByCode(args["sc"][ind], "sc" .. (ind == 1 and "" or ind)) or nil local tr = args["tr"][ind] local ts = args["ts"][ind] local gloss = args["t"][ind] local pos = args["pos"][ind] local lit = args["lit"][ind] local g = args["g"][ind] and rsplit(args["g"][ind], "%s*,%s*") or {} local link local termobj = { lang = entryLang, } -- Initialize `termobj` with indexed modifier params such as t1, t2, etc. and alt1, alt2, etc. Inline -- modifiers specified using the <...> notation override these. local function reinit_termobj(term) termobj.term = term termobj.sc = sc termobj.term = term termobj.alt = alt termobj.id = id termobj.tr = tr termobj.ts = ts termobj.genders = g termobj.gloss = gloss termobj.pos = pos termobj.lit = lit end -- Construct a link out of `termobj`. local function get_link() local link = "" -- If an individual term has a literal comma in it, use semicolons for all joiners. Otherwise we use -- semicolon only if the user specified a literal semicolon as a term. if termobj.term and termobj.term:find(",") then use_semicolon = true end if termobj.term ~= "-" then -- including term == nil link = require("Module:links").full_link(termobj, nil, true) elseif termobj.ts or termobj.gloss or #termobj.genders > 0 then -- [[Special:WhatLinksHere/Template:tracking/descendant/no term]] track("no term") termobj.term = nil link = require("Module:links").full_link(termobj, nil, true) link = link :gsub("<small>%[Term%?%]</small> ", "") :gsub("<small>%[Term%?%]</small>&nbsp;", "") :gsub("%[%[Category:[^%[%]]+ term requests%]%]", "") else -- display no link at all -- [[Special:WhatLinksHere/Template:tracking/descendant/no term or annotations]] track("no term or annotations") end return link end -- Check for new-style argument, e.g. מרים<tr:Miryem>. But exclude HTML entry with <span ...>, <i ...>, -- <br/> or similar in it, caused by wrapping an argument in {{l|...}}, {{af|...}} or similar. Basically, -- all tags of the sort we parse here should consist of less-than + letters + greater-than, e.g. <bor>, or -- less-than + letters + colon + arbitrary text with balanced angle brackets + greater-than, e.g. <tr:...>, -- so if we see a tag on the outer level that isn't in this format, we don't try to parse it. The -- restriction to the outer level is to allow generated HTML inside of e.g. qualifier tags, such as -- foo<q:similar to {{m|fr|bar}}>. if term and term:find("<") and not term:find("<[a-z]*[^a-z:>]") then if not put then put = require("Module:parse utilities") end local run = put.parse_balanced_segment_run(term, "<", ">") -- Split the non-modifier parts of an alternating run on comma, but not on comma+whitespace. local need_tempcomma_undo = escape_comma_whitespace_in_alternating_run(run) local comma_separated_runs if need_tempcomma_undo then comma_separated_runs = put.split_alternating_runs_and_frob_raw_text(run, ",", memoize_require_dialect_tags().unescape_comma_whitespace) else comma_separated_runs = put.split_alternating_runs(run, ",") end local sub_links = {} local function parse_err(msg) local parts = {} for _, run in ipairs(comma_separated_runs) do table.insert(parts, table.concat(run)) end error(msg .. ": " .. (i + 1) .. "=" .. table.concat(parts, ",")) end for j, run in ipairs(comma_separated_runs) do reinit_termobj(run[1]) local seen_mods = {} for k = 2, #run - 1, 2 do if run[k + 1] ~= "" then parse_err("Extraneous text '" .. run[k + 1] .. "' after modifier") end local modtext = run[k]:match("^<(.*)>$") if not modtext then parse_err("Internal error: Modifier '" .. modtext .. "' isn't surrounded by angle brackets") end local prefix, arg = modtext:match("^([a-z]+):(.*)$") if prefix then if seen_mods[prefix] then parse_err("Modifier '" .. prefix .. "' occurs twice, second occurrence " .. run[k]) end seen_mods[prefix] = true if prefix == "t" or prefix == "gloss" then termobj.gloss = arg elseif prefix == "g" then termobj.genders = rsplit(arg, "%s*,%s*") elseif prefix == "sc" then termobj.sc = require("Module:scripts").getByCode(arg, "" .. (i + 1) .. ":sc") elseif param_term_mod_set[prefix] then termobj[prefix] = arg elseif misc_list_param_set[prefix] then if j < #comma_separated_runs then parse_err("Modifier " .. run[k] .. " should come after the last term") end args["part" .. prefix][ind] = arg else parse_err("Unrecognized prefix '" .. prefix .. "' in modifier " .. run[k]) end elseif j < #comma_separated_runs then parse_err("Modifier " .. run[k] .. " should come after the last term") else if seen_mods[modtext] then parse_err("Modifier '" .. modtext .. "' occurs twice") end seen_mods[modtext] = true if bortype_set[modtext] then args["part" .. modtext][ind] = true elseif calque_alias_set[modtext] then args.partclq[ind] = true elseif partial_calque_alias_set[modtext] then args.partpclq[ind] = true else parse_err("Unrecognized modifier '" .. modtext .. "'") end end end local sub_link = get_link() if sub_link ~= "" then table.insert(sub_links, sub_link) end end link = table.concat(sub_links, "/") elseif term and term:find(",") then local sub_terms = memoize_require_dialect_tags().split_on_comma(term) local sub_links = {} for _, sub_term in ipairs(sub_terms) do reinit_termobj(sub_term) local sub_link = get_link() if sub_link ~= "" then table.insert(sub_links, sub_link) end end link = table.concat(sub_links, "/") else reinit_termobj(term) link = get_link() end local arrow = get_arrow(ind) local preqs = get_pre_qualifiers(ind) local postqs = get_post_qualifiers(ind) local alts if desc_tree and term and term ~= "-" then table.insert(seen_terms, term) -- This is what I ([[User:Benwing2]]) had in Nov 2020 when I first implemented this. -- Since then, [[User:Fytcha]] added `true` as the fourth param. -- descendants[ind] = m_desctree.getDescendants(entryLang, term, id, maxmaxindex > 1) descendants[ind] = m_desctree.getDescendants(entryLang, term, id, true) if descendants[ind] then saw_descendants = true end end descendants[ind] = descendants[ind] or "" if term and (desc_tree and not args["noalts"] or not desc_tree and args["alts"]) then -- [[Special:WhatLinksHere/Template:tracking/descendant/alts]] track("alts") alts = m_desctree.getAlternativeForms(entryLang, term, id) else alts = "" end local linktext = table.concat{preqs, link, alts, postqs} if not args["notext"] then linktext = arrow .. linktext end if linktext ~= "" then if i > 1 then table.insert(parts, terms[i - 1] == ";" and "; " or ", ") end table.insert(parts, linktext) end end end if error_on_no_descendants and desc_tree and not saw_descendants then if #seen_terms == 0 then error("[[Template:desctree]] invoked but no terms to retrieve descendants from") elseif #seen_terms == 1 then error("No Descendants section was found in the entry [[" .. seen_terms[1] .. "]] under the header for " .. entryLang:getCanonicalName() .. ".") else for i, term in ipairs(seen_terms) do seen_terms[i] = "[[" .. term .. "]]" end error("No Descendants section was found in any of the entries " .. table.concat(seen_terms, ", ") .. " under the header for " .. entryLang:getCanonicalName() .. ".") end end descendants = table.concat(descendants) if args["noparent"] then return descendants end local initial_arrow = get_arrow(0) local initial_preqs = get_pre_qualifiers(0) local final_postqs = get_post_qualifiers(0) if use_semicolon then for i = 2, #parts - 1, 2 do parts[i] = ";" end end local all_linktext = initial_preqs .. table.concat(parts) .. final_postqs .. descendants if args["notext"] then return all_linktext elseif args["nolb"] then return initial_arrow .. all_linktext else return table.concat{initial_arrow, label, ":", all_linktext ~= "" and " " or "", all_linktext} end end function export.descendant(frame) return desc_or_desc_tree(frame, false) .. require("Module:TemplateStyles")("Module:etymology/style.css") end function export.descendants_tree(frame) return desc_or_desc_tree(frame, true) end return export jq02tjb4jdodeuiktpd9vgoqr3nif3o Module:table/listToSet 828 5292 13314 2022-08-03T06:20:59Z Asinis632 1829 Created page with "--[[ { "a", "b", "c" } -> { ["a"] = true, ["b"] = true, ["c"] = true } --]] return function(t) -- checkType("listToSet", 1, t, "table") local set = {} for _, item in ipairs(t) do set[item] = true end return set end" Scribunto text/plain --[[ { "a", "b", "c" } -> { ["a"] = true, ["b"] = true, ["c"] = true } --]] return function(t) -- checkType("listToSet", 1, t, "table") local set = {} for _, item in ipairs(t) do set[item] = true end return set end hbvxu7fbovj7kgywa51p83eop5r8sf9 Templet:aa-IPA 10 5293 13315 2022-08-03T06:56:36Z Asinis632 1829 Created page with "<includeonly>{{#invoke:aa-IPA|show}}</includeonly><noinclude>{{documentation}}[[Category:Afar templates]][[Category:Pronunciation templates]]</noinclude>" wikitext text/x-wiki <includeonly>{{#invoke:aa-IPA|show}}</includeonly><noinclude>{{documentation}}[[Category:Afar templates]][[Category:Pronunciation templates]]</noinclude> pybx6lwz3zp6fwmcj5o8gqwj7xatu1v 13316 13315 2022-08-03T06:58:13Z Asinis632 1829 wikitext text/x-wiki <includeonly>{{#invoke:aa-IPA|show}}</includeonly><noinclude>{{documentation}}[[Grup:Afar templetes]][[Grup:Pronunciation templetes]]</noinclude> rp2m5f33yz6v7ppame4lf8x6ssgvf85 Module:aa-IPA 828 5294 13317 2022-08-03T06:59:54Z Asinis632 1829 Created page with "local export = {} local m_IPA = require("Module:IPA") local m_a = require("Module:accent qualifier") local lang = require("Module:languages").getByCode("aa") local s = mw.ustring.gsub local title = mw.title.getCurrentTitle().text local C = "[bcdfghjklmnpqrstwxyzʃ]" local c = { {"sh", "ʃ"}, {"(" .. C .. "?)á", "ˈ%1a"}, {"(" .. C .. "?)é", "ˈ%1e"}, {"(" .. C .. "?)í", "ˈ%1i"}, {"(" .. C .. "?)ó", "ˈ%1o"}, {"(" .. C .. "?)ú", "ˈ%1u"}, {"(" .. C .. "?)à..." Scribunto text/plain local export = {} local m_IPA = require("Module:IPA") local m_a = require("Module:accent qualifier") local lang = require("Module:languages").getByCode("aa") local s = mw.ustring.gsub local title = mw.title.getCurrentTitle().text local C = "[bcdfghjklmnpqrstwxyzʃ]" local c = { {"sh", "ʃ"}, {"(" .. C .. "?)á", "ˈ%1a"}, {"(" .. C .. "?)é", "ˈ%1e"}, {"(" .. C .. "?)í", "ˈ%1i"}, {"(" .. C .. "?)ó", "ˈ%1o"}, {"(" .. C .. "?)ú", "ˈ%1u"}, {"(" .. C .. "?)à", "ˌ%1a"}, {"(" .. C .. "?)è", "ˌ%1e"}, {"(" .. C .. "?)ì", "ˌ%1i"}, {"(" .. C .. "?)ò", "ˌ%1o"}, {"(" .. C .. "?)ù", "ˌ%1u"}, {"(.)%1", "%1ː"}, {"r", "ɾ"}, {"a", "ʌ"}, {"ɾˈɾ", "rˈr"}, {"ʌː", "aː"}, {"ɾː", "rː"}, {"c", "ħ"}, {"g", "ɡ"}, {"j", "d͡ʒ"}, {"q", "ʕ"}, {"x", "ɖ"}, {"y", "j"}, {"([ktp])m", "%1ʰm"} } function export.pronunciation_phonemic(word) word = mw.ustring.lower(word) for a = 1, #c do word = s(word, c[a][1], c[a][2]) end return word end function export.syllabify(term) --split for hyphenation local H, i = {}, 0 for a in string.gmatch(s(term, "([aeiou]" .. C .. "?)(" .. C .. ")%f[aeiou]", "%1.%2"), "[^%.-/]+") do i = i+1 H[i] = a end return H end function export.show(frame) local args = frame:getParent().args local p, results, results_SA = {}, {}, {} if not args[1] or (args[1] == "") then error("Please put the word as the first positional parameter!") else for index, item in ipairs(args) do table.insert(p, (item ~= "") and item or nil) end end local separate_SA = false --default for _, word in ipairs(p) do word = export.pronunciation_phonemic(word) table.insert(results, {pron = "/" .. word .. "/"}) table.insert(results_SA, {pron = "/" .. s(s(word, "j(ˈ?)s", "j%1ʃ"), "si", "ʃi") .. "/"}) if word ~= s(s(word, "j(ˈ?)s", "j%1ʃ"), "si", "ʃi") then --different Southern Afar pronunciation separate_SA = true end end local H = "" if mw.ustring.match(title, "^[^%-].+[^%-]$") then H = export.syllabify(title) table.insert(H, 1, "aa") -- language code argument, ie. MOD:hyphenation format, next L H = "\n* " .. require("Module:hyphenation").hyphenate(H) end if separate_SA then --Northern & Southern return "* " .. m_a.show({"Northern Afar"}) .. " " .. m_IPA.format_IPA_full(lang, results) .. "\n* " .. m_a.show({"Southern Afar"}) .. " " .. m_IPA.format_IPA_full(lang, results_SA) .. H else --unified return "* " .. m_IPA.format_IPA_full(lang, results) .. H end end return export 58ps3z7ce2n57ii8nzytur1svd79lml Templet:aa-noun 10 5295 13318 2022-08-03T07:01:19Z Asinis632 1829 Created page with "{{#if:{{{head2|}}}|{{head|aa|noun|head={{{1|}}}|g={{#switch:{{{g|}}}|m|f={{{g}}}|?}}}} ''or''&nbsp;}}{{head|aa|noun |head={{{head2|{{{1|{{{head|{{SUBPAGENAME}}<sup title="stress missing">?</sup>}}}}}}}}} |g={{#switch:{{{g2|{{{g|}}}}}}|m|f={{{g2|{{{g|}}}}}}|mf=m|=?}} }}<!-- -->&nbsp;{{#if:{{{f|{{{m|{{{sg|{{{pl|}}}}}}}}}}}}|''(}}<!-- -->{{#if:{{{f|}}}|feminine&nbsp;'''''{{l-self|aa|{{{f}}}|accel-form=f}}'''''{{#if:{{{sg|{{{pl|}}}}}}|,&nbsp;}}}}<!-- -->{{#if:{{{m|}}}|masc..." wikitext text/x-wiki {{#if:{{{head2|}}}|{{head|aa|noun|head={{{1|}}}|g={{#switch:{{{g|}}}|m|f={{{g}}}|?}}}} ''or''&nbsp;}}{{head|aa|noun |head={{{head2|{{{1|{{{head|{{SUBPAGENAME}}<sup title="stress missing">?</sup>}}}}}}}}} |g={{#switch:{{{g2|{{{g|}}}}}}|m|f={{{g2|{{{g|}}}}}}|mf=m|=?}} }}<!-- -->&nbsp;{{#if:{{{f|{{{m|{{{sg|{{{pl|}}}}}}}}}}}}|''(}}<!-- -->{{#if:{{{f|}}}|feminine&nbsp;'''''{{l-self|aa|{{{f}}}|accel-form=f}}'''''{{#if:{{{sg|{{{pl|}}}}}}|,&nbsp;}}}}<!-- -->{{#if:{{{m|}}}|masculine&nbsp;'''''{{l-self|aa|{{{m}}}|accel-form=m}}'''''{{#if:{{{sg|{{{pl|}}}}}}|,&nbsp;}}}}<!-- -->{{#if:{{{sg|}}}|singulative&nbsp;'''''{{l-self|aa|{{{sg}}}|accel-form=s}}'''''&nbsp;{{g|{{{gsg|?}}}}}{{#if:{{{sg2|}}}|&nbsp;or&nbsp;|{{#if:{{{pl|}}}|,&nbsp;}}}}<!-- -->{{#if:{{{sg2|}}}|'''''{{l-self|aa|{{{sg2}}}|accel-form=s}}'''''&nbsp;{{g|{{{gsg2|{{{gsg|?}}}}}}}}{{#if:{{{sg3|}}}|&nbsp;or&nbsp;|{{#if:{{{pl|}}}|,&nbsp;}}}}<!-- -->{{#if:{{{sg3|}}}|'''''{{l-self|aa|{{{sg3}}}|accel-form=s}}'''''&nbsp;{{g|{{{gsg3|{{{gsg2|{{{gsg|?}}}}}}}}}}}{{#if:{{{sg4|}}}|&nbsp;or&nbsp;|{{#if:{{{pl|}}}|,&nbsp;}}}}<!-- -->{{#if:{{{sg4|}}}|'''''{{l-self|aa|{{{sg4}}}|accel-form=s}}'''''&nbsp;{{g|{{{gsg4|{{{gsg3|{{{gsg2|{{{gsg|?}}}}}}}}}}}}}}{{#if:{{{pl|}}}|,&nbsp;}}}}}}}}}}<!-- -->{{#if:{{{pl|}}}|plural&nbsp;'''''{{l-self|aa|{{{pl}}}|accel-form=p}}'''''&nbsp;{{g|{{{gpl|?}}}}}<!-- -->{{#if:{{{pl2|}}}|&nbsp;or&nbsp;'''''{{l-self|aa|{{{pl2}}}|accel-form=p}}'''''&nbsp;{{g|{{{gpl2|{{{gpl|?}}}}}}}}<!-- -->{{#if:{{{pl3|}}}|&nbsp;or&nbsp;'''''{{l-self|aa|{{{pl3}}}|accel-form=p}}'''''&nbsp;{{g|{{{gpl3|{{{gpl2|{{{gpl|?}}}}}}}}}}}<!-- -->{{#if:{{{pl4|}}}|&nbsp;or&nbsp;'''''{{l-self|aa|{{{pl4}}}|accel-form=p}}'''&nbsp;{{g|{{{gpl4|{{{gpl3|{{{gpl2|{{{gpl|?}}}}}}}}}}}}}}}}}}}}}}<!-- -->{{#if:{{{f|{{{m|{{{sg|{{{pl|}}}}}}}}}}}}|)''}}<!-- -->{{#ifeq:{{{1|{{{head|}}}}}}||{{categorize|aa|Requests for tone in Afar entries}}}}{{#ifeq:{{{g|}}}||{{categorize|aa|Requests for gender in Afar entries}}}}<!-- --><noinclude>{{documentation}}</noinclude> boxn4b0pnuw7canoob9tvrvhc8f9j8w Templet:R:aa:Hassan Kamil:2015 10 5296 13319 2022-08-03T07:02:58Z Asinis632 1829 Created page with "{{cite-book|author=Mohamed Hassan Kamil|title=L’afar: description grammaticale d’une langue couchitique (Djibouti, Erythrée et Ethiopie)|page={{{page|{{{p|{{{1|}}}}}}}}}|url=https://tel.archives-ouvertes.fr/tel-01368253/document|location=Paris|publisher=Université Sorbonne Paris Cité (doctoral thesis)|year=2015}}<noinclude>[[Category:Afar reference templates|Hassan Kamil 2015]]</noinclude>" wikitext text/x-wiki {{cite-book|author=Mohamed Hassan Kamil|title=L’afar: description grammaticale d’une langue couchitique (Djibouti, Erythrée et Ethiopie)|page={{{page|{{{p|{{{1|}}}}}}}}}|url=https://tel.archives-ouvertes.fr/tel-01368253/document|location=Paris|publisher=Université Sorbonne Paris Cité (doctoral thesis)|year=2015}}<noinclude>[[Category:Afar reference templates|Hassan Kamil 2015]]</noinclude> dy3c6ljlcjnomkqj8ggjvx0a8jvojst Templet:g 10 5297 13320 2022-08-03T07:14:07Z Asinis632 1829 Created page with "{{#invoke:gender and number|show_list|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}}}<!-- --><noinclude>{{documentation}}</noinclude>" wikitext text/x-wiki {{#invoke:gender and number|show_list|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}}}<!-- --><noinclude>{{documentation}}</noinclude> rg6pfjwl4kkmry9r70c0oqjm4mxjvf2 Templet:ceb-noun 10 5298 13324 2022-08-03T08:04:07Z Asinis632 1829 Created page with "<includeonly>{{#invoke:ceb-headword|show|nouns}}</includeonly><noinclude>{{documentation}}[[Category:Cebuano headword-line templates‎]]</noinclude>" wikitext text/x-wiki <includeonly>{{#invoke:ceb-headword|show|nouns}}</includeonly><noinclude>{{documentation}}[[Category:Cebuano headword-line templates‎]]</noinclude> egjyrxhijye6jf0ctdo60by1bhijuen Module:ceb-headword 828 5300 13325 2022-08-03T08:05:09Z Asinis632 1829 Created page with "local export = {} local pos_functions = {} local lang = require("Module:languages").getByCode("ceb") local PAGENAME = mw.title.getCurrentTitle().text local script = require("Module:scripts").findBestScript(PAGENAME, lang) -- Latn function export.show(frame) local tracking_categories = {} local args = frame:getParent().args local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.") local head..." Scribunto text/plain local export = {} local pos_functions = {} local lang = require("Module:languages").getByCode("ceb") local PAGENAME = mw.title.getCurrentTitle().text local script = require("Module:scripts").findBestScript(PAGENAME, lang) -- Latn function export.show(frame) local tracking_categories = {} local args = frame:getParent().args local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.") local head = {} -- supports multiple headword if args["head"] or args[1] then table.insert(head, args["head"] or args[1]) end if args["head2"] or args[2] then table.insert(head, args["head2"] or args[2]) end if args["head3"] or args[3] then table.insert(head, args["head3"] or args[3]) end local data = {lang = lang, sc = script, pos_category = poscat, categories = {}, heads = head, translits = {"-"}, inflections = {}} if pos_functions[poscat] then pos_functions[poscat](args, data) end local content = mw.title.new(PAGENAME):getContent() return require("Module:headword").full_headword(data) .. require("Module:utilities").format_categories(tracking_categories, lang) end pos_functions["verbs"] = function(args, data) params = { [1] = {alias_of = 'head'}, [2] = {alias_of = 'inch'}, --Nasugdan. Use with affixed verbs only [3] = {alias_of = 'imp'}, head = {list = true}, head2= {}, head3= {}, inch = {list = true}, imp = {list = true} } local args = require("Module:parameters").process(args,params) data.heads = args.head data.id = args.id local pattern = args.pattern args.inch.label = "inchoative" args.imp.label = "imperative" args.inch.accel = {form = "realis"} args.imp.accel = {form = "imperative"} if #args.inch > 0 then table.insert(data.inflections, args.inch) end if #args.imp > 0 then table.insert(data.inflections, args.imp) end end pos_functions["adjectives"] = function(args, data) params = { [1] = {alias_of = 'head'}, [2] = {alias_of = 'comp_sup'}, [3] = {alias_of = 'abs_sup'}, [4] = {alias_of = 'plural'}, -- See notes. head = {list = true}, head2= {}, head3= {}, plural = {list = true}, -- Some adjectives only comp_sup = {list = true}, abs_sup = {list = true} } local args = require("Module:parameters").process(args,params) data.heads = args.head data.id = args.id local pattern = args.pattern args.comp_sup.label = "comp_sup" args.abs_sup.label = "abs_sup" args.plural.label = "plural" args.comp_sup.accel = {form = "comparative|superlative"} args.abs_sup.accel = {form = "absolutive|superlative"} args.plural.accel = {form = "plural"} if #args.comp_sup > 0 then table.insert(data.inflections, args.comp_sup) end if #args.abs_sup > 0 then table.insert(data.inflections, args.abs_sup) end if #args.plural > 0 then table.insert(data.inflections, args.plural) end end pos_functions["nouns"] = function(args, data) params = { [1] = {alias_of = 'head'}, [2] = {alias_of = 'plural'}, -- Special plural cases only head = {list = true}, head2= {}, head3= {}, plural = {list = true} } local args = require("Module:parameters").process(args,params) data.heads = args.head data.id = args.id local pattern = args.pattern args.plural.label = "plural" args.plural.accel = {form = "plural"} if #args.plural > 0 then table.insert(data.inflections, args.plural) end end return export m1ud93tfot0gtju48t9s38v0fsvhnki condom 0 5301 13326 2022-08-03T08:07:08Z Asinis632 1829 Created page with "{{also|Condom}} ==English== {{wikipedia}} [[File:Kondom.jpg|200px|thumb|right|A rolled-up '''condom'''.]] ===Alternative forms=== * {{l|en|condum}} ===Etymology=== {{unk|en}}. Many speculations exist. Possibly derived from {{cog|it|guantone}}, from {{m|it|guanto||a glove}} ===Pronunciation=== * {{a|UK}} {{IPA|en|/ˈkɒn.dɒm/|/ˈkɒn.dəm/}} * {{a|US}} {{IPA|en|/ˈkɑn.dəm/|/ˈkʌn.dəm/}} * {{audio|en|en-us-condom.ogg|Audio (US)}} ===Noun=== {{en-noun}} # A flexib..." wikitext text/x-wiki {{also|Condom}} ==English== {{wikipedia}} [[File:Kondom.jpg|200px|thumb|right|A rolled-up '''condom'''.]] ===Alternative forms=== * {{l|en|condum}} ===Etymology=== {{unk|en}}. Many speculations exist. Possibly derived from {{cog|it|guantone}}, from {{m|it|guanto||a glove}} ===Pronunciation=== * {{a|UK}} {{IPA|en|/ˈkɒn.dɒm/|/ˈkɒn.dəm/}} * {{a|US}} {{IPA|en|/ˈkɑn.dəm/|/ˈkʌn.dəm/}} * {{audio|en|en-us-condom.ogg|Audio (US)}} ===Noun=== {{en-noun}} # A flexible sleeve made of [[latex]] or other [[impermeable]] material such as sheepskin, worn over an erect [[penis]] during sexual intercourse as a [[contraceptive]] or as a way to prevent the spread of [[STD]]s. #: {{syn|en|Thesaurus:condom}} #: {{ux|en|buy a pack of '''condoms'''}} #: {{ux|en|flavoured '''condom'''}} #: {{ux|en|ribbed '''condoms'''}} ====Synonyms==== {{top2}} * {{l|en|dinger}} {{qualifier|Australian slang}} * {{l|en|franger}} {{qualifier|Australian slang}} * {{l|en|French letter}} {{qualifier|UK}} * {{l|en|johnny}} {{qualifier|UK slang}} {{mid2}} * {{l|en|rubber}} {{qualifier|US slang}} * {{l|en|raincoat}} {{qualifier|slang}} * {{l|en|protection}} {{qualifier|euphemism}} * {{l|en|jimmy hat}} {{qualifier|slang}} * {{l|en|condie}} {{qualifier|slang}} {{bottom}} ====Derived terms==== {{der3|en|condomed|condomize|condomless|condomlike|female condom}} ====Descendants==== * {{desc|fi|kondomi|bor=1}} * {{desc|id|kondom|bor=1}} * {{desc|ja|-|bor=1}} {{ja-r|コンドーム}} * {{desc|ko|콘돔|bor=1}} * {{desc|ms|kondom|bor=1}} * {{desc|sw|kondomu|bor=1}} ====Translations==== {{trans-top|flexible sleeve worn on the penis}} * Afrikaans: {{t+|af|kondoom}} * Albanian: {{t|sq|prezervativ|m}} * Arabic: {{t|ar|عَازِل ذَكَرِيّ|m}}, {{t|ar|وَاقٍ ذَكَرِيّ|m}}, {{t|ar|كُونْدُوم|m}}, {{t|ar|كَانْدُوم|m}} {{qualifier|colloquial|dialectal}}, {{t|ar|عَازِل طِبِّيّ|m}} *: Egyptian Arabic: {{t|arz|كوندوم|m|tr=kondom}}, {{t|arz|كاندوم|m|tr=kandom}} *: Moroccan Arabic: {{t|ary|جلدة|f|tr=jalda}}, {{t|ary|واقي|m|tr=wāqi}} * Armenian: {{t+|hy|պահպանակ}}, {{t|hy|գանդոն}} {{qualifier|vulgar}} * Asturian: {{t|ast|condón|m}}, {{t|ast|preservativu|m}} * Azerbaijani: {{t|az|prezervativ}}, {{t|az|kondom}}, {{t|az|qoruyucu}} * Basque: {{t|eu|kondoi}}, {{t|eu|preserbatibo}} * Belarusian: {{t|be|прэзерваты́ў|m}}, {{t|be|кандо́м|m}}, {{t|be|начэ́пнік|m}} * Bengali: {{t|bn|কন্ডম}} * Breton: {{t|br|stevell|f}}, {{t+|br|tog|m}} * Bulgarian: {{t+|bg|кондо́м|m}}, {{t+|bg|презервати́в|m}} * Burmese: {{t|my|ကွန်ဒုံး}} * Catalan: {{t+|ca|preservatiu|m}}, {{t+|ca|condó|m}}, {{t+|ca|condom|m}} * Chinese: *: Cantonese: {{t|yue|避孕套|tr=bei6 jan6 tou3}}, {{t|yue|安全套|tr=on1 cyun4 tou3}}, {{t|yue|如意套|tr=jyu4 ji3 tou3}} {{qualifier|Singapore, Malaysia}}, {{t|yue|套|tr=tou3}} {{qualifier|colloquial}} *: Mandarin: {{t+|cmn|避孕套|tr=bìyùntào}}, {{t+|cmn|安全套|tr=ānquántào}}, {{t+|cmn|保險套}}, {{t+|cmn|保险套|tr=bǎoxiǎntào}}, {{t+|cmn|衛生套}}, {{t+|cmn|卫生套|tr=wèishēngtào}}, {{t+|cmn|陰莖套}}, {{t+|cmn|阴茎套|tr=yīnjīngtào}}, {{t|cmn|如意套|tr=rúyìtào}} {{qualifier|Singapore & Malaysia}}, {{t+|cmn|套兒}}, {{t+|cmn|套儿|tr=tàor}} {{qualifier|colloquial}}, {{t+|cmn|套套|tr=tàotao}} {{qualifier|colloquial}} *: Min Nan: {{t|nan|保險套}}, {{t|nan|保险套|tr=pó-hiám-thò}}, {{t|nan|sak-khù}}, {{t|nan|sak-khuh}} * Cornish: {{t|kw|kondom|m}} * Czech: {{t+|cs|kondom|m}}, {{t|cs|prezervativ|m}} * Danish: {{t+|da|kondom}}, {{t|da|præservativ}} * Dutch: {{t+|nl|condoom|m}}, {{t|nl|capotje|n}}, {{t+|nl|regenjasje|n}} {{qualifier|jocular}} * Elfdalian: {{t|ovd|tjytågummi|n}} * Esperanto: {{t|eo|kondomo}}, {{t|eo|preventilo}}, {{t|eo|penisingo}} * Estonian: {{t+|et|kondoom}}, {{t|et|preservatiiv}}, {{t|et|kumm}} {{qualifier|slang}}, {{t|et|kandoss}} {{qualifier|slang}} * Faroese: {{t|fo|hít|f}} * Finnish: {{t+|fi|kondomi}}, {{t+|fi|kortsu}} {{qualifier|colloquial}}, {{t+|fi|kumi}} {{qualifier|colloquial}}, {{t+|fi|spärdäri}} {{qualifier|slang}} * French: {{t+|fr|préservatif|m}}, {{t+|fr|capote anglaise|f}}, {{t+|fr|capote|f}} {{qualifier|informal}}, {{t+|fr|condom|m}} {{qualifier|Quebec}} * Galician: {{t+|gl|preservativo|m}}, {{t+|gl|condón|m}} {{qualifier|colloquial}}, {{t|gl|profiláctico|m}} * Georgian: {{t|ka|პრეზერვატივი}}, {{t|ka|განდონი}} {{qualifier|vulgar}} * German: {{t+|de|Präservativ|n}}, {{t+|de|Kondom|n}}, {{t+|de|Präser|m}}, {{t+|de|Pariser|m}}, {{t+|de|Gummi|n}} {{qualifier|colloquial}}, {{t|de|Fuffzicher|m}} {{qualifier|East German|colloquial}}; {{t|de|Verhüterli|n}} {{qualifier|Switzerland|colloquial}}, {{t|de|Ficktüte|f}} {{qualifier|vulgar}}, {{t|de|Nahkampfsocke|f}} {{qualifier|slang}}, {{t+|de|Überzieher|m}} * Greek: {{t+|el|προφυλακτικό|n}} * Greenlandic: {{t|kl|kondomi}}, {{t|kl|usuup-puua}} * Gujarati: {{t|gu|નિરોધ|m}} * Hebrew: {{t+|he|קוֹנְדּוֹם|m|tr=kondóm}} * Hindi: {{t+|hi|निरोध|m}}, {{t+|hi|कंडोम|?}} * Hungarian: {{t+|hu|óvszer}}, {{t+|hu|kondom}}, {{t|hu|koton}} {{qualifier|colloquial}}, {{t+|hu|gumi}} {{qualifier|colloquial}} * Icelandic: {{t+|is|smokkur|m}} * Indonesian: {{t+|id|kondom}} * Interlingua: {{t|ia|preservativo}}, {{t|ia|condom}} * Irish: {{t|ga|coiscín|m}} {{trans-mid}} * Italian: {{t+|it|preservativo|m}}, {{t+|it|profilattico|m}}, {{t+|it|condom|m}} * Japanese: {{t+|ja|コンドーム|tr=kondōmu}} * Kalmyk: {{t|xal|белгвч}} * Kannada: {{t|kn|ಕಾಂಡಮ್}} * Kashmiri: {{t|ks|कंडोम}} * Kashubian: {{t|csb|prezerwatiwa|f}} * Kazakh: {{t|kk|үрпекқап}}, {{t|kk|мүшеқап}} * Khmer: {{t|km|ស្រោមក្ត|tr=sraom kdɑɑ}}, {{t|km|អាវភ្លៀង|tr=aav pliəng}} * Korean: {{t+|ko|콘돔}} * Kyrgyz: {{t|ky|презерватив}} * Lao: {{t|lo|ຖົງຢາງ}} * Latvian: {{t|lv|prezervatīvs|m}} * Lithuanian: {{t|lt|prezervatyvas|m}} * Macedonian: {{t|mk|кондо́м|m}}, {{t|mk|презервати́в|m}}, {{t|mk|курто́н|m}} {{qualifier|vulgar}}, {{t|mk|накурник|m}} * Malay: {{t+|ms|kondom}} * Malayalam: {{t+|ml|ഉറ}}, {{t|ml|ഗർഭനിരോധന ഉറ}} * Maltese: {{t|mt|kondo}} * Maori: {{t|mi|pūkoro ure}} * Marathi: {{t|mr|निरोध}}, {{t|mr|कॉन्डोम}} * Mongolian: {{t+|mn|бэлгэвч}} * Navajo: {{t|nv|akááʼ ałtsoozígíí}} * Norman: {{t|nrf|capote|f}} * Northern Sami: {{t|se|kondoma}}, {{t|se|gumme}} * Norwegian: {{t|no|kondom|m|n}}, {{t|no|gummi|m|n}} {{qualifier|slang}} * Occitan: {{t|oc|preservatiu|m}}, {{t|oc|condòm|m}} * Ojibwe: {{t|oj|biindaʼoojigan}} * Persian: {{t+|fa|کاپوت|tr=kâput}}, {{t+|fa|کاندوم|tr=kândom}} * Polish: {{t+|pl|prezerwatywa|f}}, {{t+|pl|kondom|m}} {{qualifier|outdated}} * Portuguese: {{t+|pt|preservativo|m}}, {{t+|pt|camisa-de-vênus|f}}, {{t+|pt|camisinha|f}}, {{t+|pt|capa|f}} (colloquial), {{t+|pt|jeito|m}} * Punjabi: {{t|pa|ਨਿਰੋਧ|m}} * Romanian: {{t+|ro|prezervativ|n}} * Romansch: {{t|rm|condom|m}}, {{t|rm|preservativ|m}} * Russian: {{t+|ru|презервати́в|m}}, {{t+|ru|кондо́м|m}} {{qualifier|rare}}, {{t+|ru|гондо́н|m}} {{qualifier|vulgar}}, {{t+|ru|резинка|f}} {{qualifier|colloquial}} * Serbo-Croatian: *: Cyrillic: {{t|sh|ко̀ндо̄м|m}}, {{t|sh|презерва̀тӣв|m}}, {{t|sh|го̀лдӯн|m}} {{qualifier|colloquial}} *: Roman: {{t+|sh|kòndōm|m}}, {{t+|sh|prezervàtīv|m}}, {{t|sh|gòldūn|m}} {{qualifier|colloquial}} * Sicilian: {{t|scn|prisirvativu|m}} * Slovak: {{t|sk|prezervatív|m}}, {{t|sk|kondóm|m}} * Slovene: {{t+|sl|kondọ̑m|m}}, {{t|sl|prezervativ|m}} * Sorbian: *: Upper Sorbian: {{t|hsb|kondom|m}}, {{t|hsb|prezerwatiw|m}} * Spanish: {{t+|es|preservativo|m}}, {{t+|es|condón|m}}, {{t+|es|profiláctico|f}}, {{t+|es|goma|f}}, {{t+|es|forro}} {{qualifier|Argentina}} * Swahili: {{t+|sw|kondomu|9/10}} * Swedish: {{t+|sv|kondom|c}} * Tagalog: {{t|tl|kondom}} * Tajik: {{t|tg|презерватив}} * Telugu: {{t|te|కండోం}}, {{t+|te|తొడుగు}}, {{t|te|నిరోధ్}} * Thai: {{t+|th|ถุงยางอนามัย}}, {{t+|th|ถุงยาง}} * Tibetan: {{t|bo|སྲུང་ཤུབས}} * Turkish: {{t+|tr|prezervatif}}, {{t+|tr|kondom}} * Turkmen: {{t|tk|prezerwatiw}} * Ukrainian: {{t|uk|презервати́в|m}}, {{t|uk|кондо́м|m}} * Urdu: {{t|ur|کنڈوم|?|tr=kaṇḍom}} * Uzbek: {{t|uz|prezervativ}} * Venetian: {{t+|vec|goldon|m}} * Vietnamese: {{t+|vi|bao cao su}}, {{t|vi|bao dương vật}}, {{t|vi|túi cao su}}, {{t+|vi|áo mưa}} * Volapük: {{t|vo|tagrodaslivil}} * Walloon: {{t+|wa|capote inglesse|f}}, {{t+|wa|capote|f}}, {{t|wa|cabounete|f}} * Welsh: {{t+|cy|condom|m}}, {{t|cy|sach ddyrnu|f}} * Yiddish: {{t|yi|קאַנדאַם|m}} * Zhuang: {{t|za|dauqancienz}}, {{t|za|biyindau}} * Zulu: {{t-needed|zu}} {{trans-bottom}} ====See also==== * {{pedia}} ===References=== * {{R:BBS}} ===Anagrams=== * {{anagrams|en|a=cdmnoo|McOndo|mod con}} [[Category:en:Birth control]] ---- ==French== ===Pronunciation=== * {{fr-IPA}} ===Noun=== {{fr-noun|m}} # {{lb|fr|Quebec}} {{l|en|condom}} ====Derived terms==== * {{desc|tr|kondom}} {{C|fr|Birth control}} ---- ==Italian== ===Pronunciation=== {{it-pr|còndom}} ===Noun=== {{it-noun|m|#}} # [[condom#English|condom]] #: {{syn|it|preservativo|profilattico}} {{c|it|Birth control}} swnvi1m9xo3jh948gx1goka0uydcrbg 13327 13326 2022-08-03T08:08:13Z Asinis632 1829 wikitext text/x-wiki {{also|Condom}} {{-en-}} {{wikipedia}} [[File:Kondom.jpg|200px|thumb|right|A rolled-up '''condom'''.]] ===Alternative forms=== * {{l|en|condum}} ===Etymology=== {{unk|en}}. Many speculations exist. Possibly derived from {{cog|it|guantone}}, from {{m|it|guanto||a glove}} ===Pronunciation=== * {{a|UK}} {{IPA|en|/ˈkɒn.dɒm/|/ˈkɒn.dəm/}} * {{a|US}} {{IPA|en|/ˈkɑn.dəm/|/ˈkʌn.dəm/}} * {{audio|en|en-us-condom.ogg|Audio (US)}} ===Noun=== {{en-noun}} # A flexible sleeve made of [[latex]] or other [[impermeable]] material such as sheepskin, worn over an erect [[penis]] during sexual intercourse as a [[contraceptive]] or as a way to prevent the spread of [[STD]]s. #: {{syn|en|Thesaurus:condom}} #: {{ux|en|buy a pack of '''condoms'''}} #: {{ux|en|flavoured '''condom'''}} #: {{ux|en|ribbed '''condoms'''}} ====Synonyms==== {{top2}} * {{l|en|dinger}} {{qualifier|Australian slang}} * {{l|en|franger}} {{qualifier|Australian slang}} * {{l|en|French letter}} {{qualifier|UK}} * {{l|en|johnny}} {{qualifier|UK slang}} {{mid2}} * {{l|en|rubber}} {{qualifier|US slang}} * {{l|en|raincoat}} {{qualifier|slang}} * {{l|en|protection}} {{qualifier|euphemism}} * {{l|en|jimmy hat}} {{qualifier|slang}} * {{l|en|condie}} {{qualifier|slang}} {{bottom}} ====Derived terms==== {{der3|en|condomed|condomize|condomless|condomlike|female condom}} ====Descendants==== * {{desc|fi|kondomi|bor=1}} * {{desc|id|kondom|bor=1}} * {{desc|ja|-|bor=1}} {{ja-r|コンドーム}} * {{desc|ko|콘돔|bor=1}} * {{desc|ms|kondom|bor=1}} * {{desc|sw|kondomu|bor=1}} ====Translations==== {{trans-top|flexible sleeve worn on the penis}} * Afrikaans: {{t+|af|kondoom}} * Albanian: {{t|sq|prezervativ|m}} * Arabic: {{t|ar|عَازِل ذَكَرِيّ|m}}, {{t|ar|وَاقٍ ذَكَرِيّ|m}}, {{t|ar|كُونْدُوم|m}}, {{t|ar|كَانْدُوم|m}} {{qualifier|colloquial|dialectal}}, {{t|ar|عَازِل طِبِّيّ|m}} *: Egyptian Arabic: {{t|arz|كوندوم|m|tr=kondom}}, {{t|arz|كاندوم|m|tr=kandom}} *: Moroccan Arabic: {{t|ary|جلدة|f|tr=jalda}}, {{t|ary|واقي|m|tr=wāqi}} * Armenian: {{t+|hy|պահպանակ}}, {{t|hy|գանդոն}} {{qualifier|vulgar}} * Asturian: {{t|ast|condón|m}}, {{t|ast|preservativu|m}} * Azerbaijani: {{t|az|prezervativ}}, {{t|az|kondom}}, {{t|az|qoruyucu}} * Basque: {{t|eu|kondoi}}, {{t|eu|preserbatibo}} * Belarusian: {{t|be|прэзерваты́ў|m}}, {{t|be|кандо́м|m}}, {{t|be|начэ́пнік|m}} * Bengali: {{t|bn|কন্ডম}} * Breton: {{t|br|stevell|f}}, {{t+|br|tog|m}} * Bulgarian: {{t+|bg|кондо́м|m}}, {{t+|bg|презервати́в|m}} * Burmese: {{t|my|ကွန်ဒုံး}} * Catalan: {{t+|ca|preservatiu|m}}, {{t+|ca|condó|m}}, {{t+|ca|condom|m}} * Chinese: *: Cantonese: {{t|yue|避孕套|tr=bei6 jan6 tou3}}, {{t|yue|安全套|tr=on1 cyun4 tou3}}, {{t|yue|如意套|tr=jyu4 ji3 tou3}} {{qualifier|Singapore, Malaysia}}, {{t|yue|套|tr=tou3}} {{qualifier|colloquial}} *: Mandarin: {{t+|cmn|避孕套|tr=bìyùntào}}, {{t+|cmn|安全套|tr=ānquántào}}, {{t+|cmn|保險套}}, {{t+|cmn|保险套|tr=bǎoxiǎntào}}, {{t+|cmn|衛生套}}, {{t+|cmn|卫生套|tr=wèishēngtào}}, {{t+|cmn|陰莖套}}, {{t+|cmn|阴茎套|tr=yīnjīngtào}}, {{t|cmn|如意套|tr=rúyìtào}} {{qualifier|Singapore & Malaysia}}, {{t+|cmn|套兒}}, {{t+|cmn|套儿|tr=tàor}} {{qualifier|colloquial}}, {{t+|cmn|套套|tr=tàotao}} {{qualifier|colloquial}} *: Min Nan: {{t|nan|保險套}}, {{t|nan|保险套|tr=pó-hiám-thò}}, {{t|nan|sak-khù}}, {{t|nan|sak-khuh}} * Cornish: {{t|kw|kondom|m}} * Czech: {{t+|cs|kondom|m}}, {{t|cs|prezervativ|m}} * Danish: {{t+|da|kondom}}, {{t|da|præservativ}} * Dutch: {{t+|nl|condoom|m}}, {{t|nl|capotje|n}}, {{t+|nl|regenjasje|n}} {{qualifier|jocular}} * Elfdalian: {{t|ovd|tjytågummi|n}} * Esperanto: {{t|eo|kondomo}}, {{t|eo|preventilo}}, {{t|eo|penisingo}} * Estonian: {{t+|et|kondoom}}, {{t|et|preservatiiv}}, {{t|et|kumm}} {{qualifier|slang}}, {{t|et|kandoss}} {{qualifier|slang}} * Faroese: {{t|fo|hít|f}} * Finnish: {{t+|fi|kondomi}}, {{t+|fi|kortsu}} {{qualifier|colloquial}}, {{t+|fi|kumi}} {{qualifier|colloquial}}, {{t+|fi|spärdäri}} {{qualifier|slang}} * French: {{t+|fr|préservatif|m}}, {{t+|fr|capote anglaise|f}}, {{t+|fr|capote|f}} {{qualifier|informal}}, {{t+|fr|condom|m}} {{qualifier|Quebec}} * Galician: {{t+|gl|preservativo|m}}, {{t+|gl|condón|m}} {{qualifier|colloquial}}, {{t|gl|profiláctico|m}} * Georgian: {{t|ka|პრეზერვატივი}}, {{t|ka|განდონი}} {{qualifier|vulgar}} * German: {{t+|de|Präservativ|n}}, {{t+|de|Kondom|n}}, {{t+|de|Präser|m}}, {{t+|de|Pariser|m}}, {{t+|de|Gummi|n}} {{qualifier|colloquial}}, {{t|de|Fuffzicher|m}} {{qualifier|East German|colloquial}}; {{t|de|Verhüterli|n}} {{qualifier|Switzerland|colloquial}}, {{t|de|Ficktüte|f}} {{qualifier|vulgar}}, {{t|de|Nahkampfsocke|f}} {{qualifier|slang}}, {{t+|de|Überzieher|m}} * Greek: {{t+|el|προφυλακτικό|n}} * Greenlandic: {{t|kl|kondomi}}, {{t|kl|usuup-puua}} * Gujarati: {{t|gu|નિરોધ|m}} * Hebrew: {{t+|he|קוֹנְדּוֹם|m|tr=kondóm}} * Hindi: {{t+|hi|निरोध|m}}, {{t+|hi|कंडोम|?}} * Hungarian: {{t+|hu|óvszer}}, {{t+|hu|kondom}}, {{t|hu|koton}} {{qualifier|colloquial}}, {{t+|hu|gumi}} {{qualifier|colloquial}} * Icelandic: {{t+|is|smokkur|m}} * Indonesian: {{t+|id|kondom}} * Interlingua: {{t|ia|preservativo}}, {{t|ia|condom}} * Irish: {{t|ga|coiscín|m}} {{trans-mid}} * Italian: {{t+|it|preservativo|m}}, {{t+|it|profilattico|m}}, {{t+|it|condom|m}} * Japanese: {{t+|ja|コンドーム|tr=kondōmu}} * Kalmyk: {{t|xal|белгвч}} * Kannada: {{t|kn|ಕಾಂಡಮ್}} * Kashmiri: {{t|ks|कंडोम}} * Kashubian: {{t|csb|prezerwatiwa|f}} * Kazakh: {{t|kk|үрпекқап}}, {{t|kk|мүшеқап}} * Khmer: {{t|km|ស្រោមក្ត|tr=sraom kdɑɑ}}, {{t|km|អាវភ្លៀង|tr=aav pliəng}} * Korean: {{t+|ko|콘돔}} * Kyrgyz: {{t|ky|презерватив}} * Lao: {{t|lo|ຖົງຢາງ}} * Latvian: {{t|lv|prezervatīvs|m}} * Lithuanian: {{t|lt|prezervatyvas|m}} * Macedonian: {{t|mk|кондо́м|m}}, {{t|mk|презервати́в|m}}, {{t|mk|курто́н|m}} {{qualifier|vulgar}}, {{t|mk|накурник|m}} * Malay: {{t+|ms|kondom}} * Malayalam: {{t+|ml|ഉറ}}, {{t|ml|ഗർഭനിരോധന ഉറ}} * Maltese: {{t|mt|kondo}} * Maori: {{t|mi|pūkoro ure}} * Marathi: {{t|mr|निरोध}}, {{t|mr|कॉन्डोम}} * Mongolian: {{t+|mn|бэлгэвч}} * Navajo: {{t|nv|akááʼ ałtsoozígíí}} * Norman: {{t|nrf|capote|f}} * Northern Sami: {{t|se|kondoma}}, {{t|se|gumme}} * Norwegian: {{t|no|kondom|m|n}}, {{t|no|gummi|m|n}} {{qualifier|slang}} * Occitan: {{t|oc|preservatiu|m}}, {{t|oc|condòm|m}} * Ojibwe: {{t|oj|biindaʼoojigan}} * Persian: {{t+|fa|کاپوت|tr=kâput}}, {{t+|fa|کاندوم|tr=kândom}} * Polish: {{t+|pl|prezerwatywa|f}}, {{t+|pl|kondom|m}} {{qualifier|outdated}} * Portuguese: {{t+|pt|preservativo|m}}, {{t+|pt|camisa-de-vênus|f}}, {{t+|pt|camisinha|f}}, {{t+|pt|capa|f}} (colloquial), {{t+|pt|jeito|m}} * Punjabi: {{t|pa|ਨਿਰੋਧ|m}} * Romanian: {{t+|ro|prezervativ|n}} * Romansch: {{t|rm|condom|m}}, {{t|rm|preservativ|m}} * Russian: {{t+|ru|презервати́в|m}}, {{t+|ru|кондо́м|m}} {{qualifier|rare}}, {{t+|ru|гондо́н|m}} {{qualifier|vulgar}}, {{t+|ru|резинка|f}} {{qualifier|colloquial}} * Serbo-Croatian: *: Cyrillic: {{t|sh|ко̀ндо̄м|m}}, {{t|sh|презерва̀тӣв|m}}, {{t|sh|го̀лдӯн|m}} {{qualifier|colloquial}} *: Roman: {{t+|sh|kòndōm|m}}, {{t+|sh|prezervàtīv|m}}, {{t|sh|gòldūn|m}} {{qualifier|colloquial}} * Sicilian: {{t|scn|prisirvativu|m}} * Slovak: {{t|sk|prezervatív|m}}, {{t|sk|kondóm|m}} * Slovene: {{t+|sl|kondọ̑m|m}}, {{t|sl|prezervativ|m}} * Sorbian: *: Upper Sorbian: {{t|hsb|kondom|m}}, {{t|hsb|prezerwatiw|m}} * Spanish: {{t+|es|preservativo|m}}, {{t+|es|condón|m}}, {{t+|es|profiláctico|f}}, {{t+|es|goma|f}}, {{t+|es|forro}} {{qualifier|Argentina}} * Swahili: {{t+|sw|kondomu|9/10}} * Swedish: {{t+|sv|kondom|c}} * Tagalog: {{t|tl|kondom}} * Tajik: {{t|tg|презерватив}} * Telugu: {{t|te|కండోం}}, {{t+|te|తొడుగు}}, {{t|te|నిరోధ్}} * Thai: {{t+|th|ถุงยางอนามัย}}, {{t+|th|ถุงยาง}} * Tibetan: {{t|bo|སྲུང་ཤུབས}} * Turkish: {{t+|tr|prezervatif}}, {{t+|tr|kondom}} * Turkmen: {{t|tk|prezerwatiw}} * Ukrainian: {{t|uk|презервати́в|m}}, {{t|uk|кондо́м|m}} * Urdu: {{t|ur|کنڈوم|?|tr=kaṇḍom}} * Uzbek: {{t|uz|prezervativ}} * Venetian: {{t+|vec|goldon|m}} * Vietnamese: {{t+|vi|bao cao su}}, {{t|vi|bao dương vật}}, {{t|vi|túi cao su}}, {{t+|vi|áo mưa}} * Volapük: {{t|vo|tagrodaslivil}} * Walloon: {{t+|wa|capote inglesse|f}}, {{t+|wa|capote|f}}, {{t|wa|cabounete|f}} * Welsh: {{t+|cy|condom|m}}, {{t|cy|sach ddyrnu|f}} * Yiddish: {{t|yi|קאַנדאַם|m}} * Zhuang: {{t|za|dauqancienz}}, {{t|za|biyindau}} * Zulu: {{t-needed|zu}} {{trans-bottom}} ====See also==== * {{pedia}} ===References=== * {{R:BBS}} ===Anagrams=== * {{anagrams|en|a=cdmnoo|McOndo|mod con}} [[Category:en:Birth control]] ---- {{-fr-}} ===Pronunciation=== * {{fr-IPA}} ===Noun=== {{fr-noun|m}} # {{lb|fr|Quebec}} {{l|en|condom}} ====Derived terms==== * {{desc|tr|kondom}} {{C|fr|Birth control}} ---- {{-it-}} ===Pronunciation=== {{it-pr|còndom}} ===Noun=== {{it-noun|m|#}} # [[condom#English|condom]] #: {{syn|it|preservativo|profilattico}} {{c|it|Birth control}} 1lfcff2qbw7chp1ot27ram8zjbeu7py