Wiktionary suwiktionary https://su.wiktionary.org/wiki/Tepas MediaWiki 1.47.0-wmf.17 case-sensitive Média Husus Obrolan Pamaké Obrolan pamaké Wiktionary Obrolan Wiktionary Gambar Obrolan gambar MédiaWiki Obrolan MédiaWiki Citakan Obrolan citakan Pitulung Obrolan pitulung Kategori Obrolan kategori TimedText TimedText talk Modul Pembicaraan Modul Acara Pembicaraan Acara dikabaya 0 4687 25447 14215 2026-08-30T14:04:23Z Deepturquoise 2456 25447 wikitext text/x-wiki =={{sunda}}== {{émbohan di-|kabaya}} *kecap pagawéan nu ngagunakeun kabaya. :* ''Bu Gubernur sok '''dikabaya''' lamun ngahadiran acara penting.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Lany pirna]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] f1q1jmw2qf866eirzw7lnfmoeki9axb Modul:form of/templates 828 7167 25501 25209 2026-08-31T07:31:35Z Deepturquoise 2456 - 25501 Scribunto text/plain local export = {} local debug_track_module = "Module:debug/track" local form_of_module = "Module:form of" local functions_module = "Module:fun" local headword_data_module = "Module:headword/data" local languages_module = "Module:languages" local load_module = "Module:load" local parameters_module = "Module:parameters" local parameter_utilities_module = "Module:parameter utilities" local parse_interface_module = "Module:parse interface" local string_utilities_module = "Module:string utilities" local table_module = "Module:table" local utilities_module = "Module:utilities" local insert = table.insert local ipairs = ipairs local pairs = pairs local require = require local boolean_param = {type = "boolean"} -- FIXME: Finish [[Module:format utilities]]. -- local allowed_conj_set = require(format_utilities_module).allowed_conj_set_for_join_segments local allowed_conj_set = {["and"] = true, ["or"] = true, ["and/or"] = true} --[==[ Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==] local function debug_track(...) debug_track = require(debug_track_module) return debug_track(...) end local function decode_entities(...) decode_entities = require(string_utilities_module).decode_entities return decode_entities(...) end local function extend(...) extend = require(table_module).extend return extend(...) end local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function format_form_of(...) format_form_of = require(form_of_module).format_form_of return format_form_of(...) end local function get_lang(...) get_lang = require(languages_module).getByCode return get_lang(...) end local function gsplit(...) gsplit = require(string_utilities_module).gsplit return gsplit(...) end local function is_callable(...) is_callable = require(functions_module).is_callable return is_callable(...) end local function load_data(...) load_data = require(load_module).load_data return load_data(...) end local function parse_inline_modifiers(...) parse_inline_modifiers = require(parse_interface_module).parse_inline_modifiers return parse_inline_modifiers(...) end local function pattern_escape(...) pattern_escape = require(string_utilities_module).pattern_escape return pattern_escape(...) end local function process_params(...) process_params = require(parameters_module).process return process_params(...) end local function safe_load_data(...) safe_load_data = require(load_module).safe_load_data return safe_load_data(...) end local function split(...) split = require(string_utilities_module).split return split(...) end local function split_tag_set(...) split_tag_set = require(form_of_module).split_tag_set return split_tag_set(...) end local function tagged_inflections(...) tagged_inflections = require(form_of_module).tagged_inflections return tagged_inflections(...) end local function trim(...) trim = require(string_utilities_module).trim return trim(...) end local function ucfirst(...) ucfirst = require(string_utilities_module).ucfirst return ucfirst(...) end --[==[ Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==] local force_cat local function get_force_cat() force_cat, get_force_cat = require(form_of_module).force_cat, nil return force_cat end local m_form_of_pos local function get_m_form_of_pos() m_form_of_pos, get_m_form_of_pos = load_data(headword_data_module).pos_aliases, nil return m_form_of_pos end local module_prefix local function get_module_prefix() module_prefix, get_module_prefix = require(form_of_module).form_of_lang_data_module_prefix, nil return module_prefix end --[==[ intro: This module contains code that directly implements {{tl|form of}}, {{tl|inflection of}}, and the various other [[:Category:Form-of templates|form-of templates]]. It is meant to be called directly from templates. See also [[Module:form of]], which contains the underlying implementing code and is meant to be called from other modules. ]==] -- Add tracking category for PAGE when called from TEMPLATE. The tracking category linked to is -- [[Wiktionary:Tracking/form of/TEMPLATE/PAGE]]. If TEMPLATE is omitted, the tracking category is of the form -- [[Wiktionary:Tracking/form of/PAGE]]. local function track(page, template) debug_track("form of/" .. (template and template .. "/" or "") .. page) end local function get_common_template_params() return { -- Named params not controlling link display ["cat"] = {list = true, sublist = "comma without whitespace", flatten = true}, ["notext"] = boolean_param, ["sort"] = true, ["enclitic"] = true, -- FIXME! The following should only be available when withcap=1 in invocation args or when withencap=1 and the -- language is "en". Before doing that, need to remove all uses of nocap= in other circumstances. ["nocap"] = boolean_param, ["addl"] = true, -- additional text to display at the end, before the closing </span> ["pagename"] = true, -- for testing, etc. } end -- Split TAGSPECS (inflection tag specifications) on SPLIT_REGEX, which -- may be nil for no splitting. local function split_inflection_tags(tagspecs, split_regex) if not split_regex then return tagspecs end local inflection_tags = {} for _, tagspec in ipairs(tagspecs) do for tag in gsplit(tagspec, split_regex) do insert(inflection_tags, tag) end end return inflection_tags end local function parse_terms_with_inline_modifiers(paramname, val, param_mods, lang) local function generate_obj(term) return {lang = lang, term = decode_entities(term)} end return parse_inline_modifiers(val, { paramname = paramname, param_mods = param_mods, generate_obj = generate_obj, splitchar = ",", outer_container = {}, }) end -- Need to do what [[Module:parameters]] does to string arguments from parent_args as we're running this -- before calling [[Module:parameters]] on parent_args. local function ine(arg) if not arg then return nil end arg = trim(arg) return arg ~= "" and arg or nil end local function add_base_lemma_params(parent_args, iargs, params, compat) -- Check the language-specific data for additional base lemma params. But if there's no language-specific data, -- attempt any parent varieties as well (i.e. superordinate varieties). local lang = get_lang(ine(parent_args[compat and "lang" or 1]) or ine(iargs.lang) or "und", nil, true) while lang do local langdata = safe_load_data((module_prefix or get_module_prefix()) .. lang:getCode()) if langdata then local base_lemma_params = langdata.base_lemma_params if base_lemma_params then for _, param in ipairs(base_lemma_params) do params[param.param] = true end return base_lemma_params end end lang = lang:getParent() end end --[=[ Modify `params` in-place by adding parameters that control the link to the main entry and any base lemmas. `term_param` is the number of the param specifying the main entry itself; `term_param` + 1 will be the display text, and `term_param` + 2 will be the gloss, unless `no_numbered_gloss` is given. The base lemma parameters are determined by attempting to load language-specific data for the language of the page; this comes from |lang= if `compat` is given, else from |1=. ]=] local function add_link_and_base_lemma_params(iargs, parent_args, params, term_param, compat, no_numbered_gloss) local base_lemma_params if not iargs.nolink and not iargs.linktext then -- Numbered params controlling link display if iargs.with_multiple_parts then params[term_param] = {list = true, allow_holes = true} else params[term_param + 1] = {alias_of = "alt"} if not no_numbered_gloss then params[term_param + 2] = {alias_of = "t"} end params[term_param] = true end base_lemma_params = add_base_lemma_params(parent_args, iargs, params, compat) end return base_lemma_params end local function handle_withdot_withcap(iargs, params) local ignored_tracked_params = {} if iargs.withdot then params.dot = true params.nodot = boolean_param end if iargs.withcap and iargs.withencap then error("Internal error: Can specify only one of withcap= and withencap=") end if not iargs.withcap then params.cap = boolean_param ignored_tracked_params.nocap = iargs.withencap and "non-english" or "always" end return ignored_tracked_params end --[=[ Construct and return the full definition line for a form-of-type template invocation. `data` is an object with the following fields: * `template`: Approximate template name, for debug tracking; * `iargs`: processed invocation arguments; * `parent_args`: raw parent args from `frame:getParent().args`; * `params`: partially constructed params structure of the sort passed to `process()` in [[Module:parameters]], but without any link params; * `ignored_tracked_params`: params that are ignored but should be tracked, to be eventually removed; * `term_param`: the parent argument specifying the main entry; * `compat`: true if the language code is found in args.lang instead of args[1]; * `base_lemma_params`: if non-nil, a list of base lemma param objects of the sort stored in the language-specific data; * `do_form_of`: a function of one argument, `lemma_data`, that returns the actual definition-line text and any language-specific categories. See below. This function does several things: # If link parameters are called for (neither `iargs.nolink` nor `iargs.linktext` are given), augment the `params` structure with separate link parameters. # Modify the parent args as appropriate if invocation arguments def= or ignore= are given. # Parse the parent args, both for separate parameter properties and inline modifiers on the term parameter (which may consist of multiple comma-separated terms). # Compute categories to add to the page, including language-specific categories and any categories requested by the invocation or parent args. # Parse enclitic and extra base lemma parameters. # Construct the actual text using `do_form_of`. # Add a terminating period/dot as appropriate, along with the formatted categories. `do_form_of` takes one argument, `lemma_data`, which looks like this: { lang = LANG, args = {ARG = VALUE, ARG = VALUE, ...}, lemmas = {LEMMA_OBJ, LEMMA_OBJ, ...}, enclitics = {ENCLITIC_OBJ, ENCLITIC_OBJ, ...}, base_lemmas = {BASE_LEMMA_OBJ, BASE_LEMMA_OBJ, ...}, categories = {"CATEGORY", "CATEGORY", ...}, posttext = "POSTTEXT" or nil, } where * LANG is the language code; * ARGS is the parsed arguments, based on what the user specified; * LEMMAS is a sequence of objects specifying the main entries/lemmas, as passed to full_link in [[Module:links]]; however, if the invocation argument linktext= is given, it will be a string consisting of that text, and if the invocation argument nolink= is given, it will be nil; * ENCLITICS is nil or a sequence of objects specifying the enclitics, as passed to full_link in [[Module:links]]; * BASE_LEMMA_OBJ is a sequence of objects specifying the base lemma(s), which are used when the lemma is itself a form of another lemma (the base lemma), e.g. a comparative, superlative or participle; each object is of the form { paramobj = PARAM_OBJ, lemmas = {LEMMA_OBJ, LEMMA_OBJ, ...} } where PARAM_OBJ describes the properties of the base lemma parameter (i.e. the relationship between the intermediate and base lemmas) and LEMMA_OBJ is of the same format of ENCLITIC_OBJ, i.e. an object suitable to be passed to full_link in [[Module:links]]; PARAM_OBJ is of the format { param = "PARAM", tags = {"TAG", "TAG", ...} } where PARAM is the name of the parameter to {{inflection of}} etc. that holds the base lemma(s) of the specified relationship and the tags describe the relationship, such as {"comd"} or {"past", "part"}; * CATEGORIES is the categories to add the page to (consisting of any categories specified in the invocation or parent args and any tracking categories, but not any additional lang-specific categories that may be added by {{inflection of}} or similar templates); * POSTTEXT is text to display at the end of the form-of text, before the final </span> (or at the end of the first line, before the colon, in a multiline {{infl of}} call). `do_form_of` should return two arguments: (1) The actual definition-line text, marked up appropriately with <span>...</span> but without any terminating period/dot. (2) Any extra categories to add the page to (other than those that can be derived from parameters specified to the invocation or parent arguments, which will automatically be added to the page). ]=] local function construct_form_of_text(data) local template, iargs, parent_args, params, no_numbered_gloss, do_form_of = data.template, data.iargs, data.parent_args, data.params, data.no_numbered_gloss, data.do_form_of local term_param = iargs.term_param local compat = iargs.lang or parent_args.lang term_param = term_param or compat and 1 or 2 -- Numbered params params[compat and "lang" or 1] = { required = not iargs.lang, type = "language", default = iargs.lang or "und" } -- Error to catch most uses of old-style parameters for {{contraction of}}. (FIXME: Remove eventually.) if iargs.with_multiple_parts then if ine(parent_args[term_param + 2]) and not ine(parent_args[term_param + 1]) 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 %s= and not one in %s=. You probably meant to use t= to specify a gloss instead. " .. "If you intended to specify two terms, put the second term in %s=."):format(term_param + 2, term_param + 1, term_param + 1)) end if not ine(parent_args[term_param + 1]) 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 %s=. You were probably trying to specify two genders for " .. "a single term. To do that, put both genders in g=, comma-separated."):format(term_param + 1)) end end local base_lemma_params = add_link_and_base_lemma_params(iargs, parent_args, params, term_param, compat, no_numbered_gloss) local ignored_tracked_params = handle_withdot_withcap(iargs, params) --[=[ Process parent arguments. This is similar to the following: require("Module:parameters").process(parent_args, params) but in addition it does the following: (1) Supplies default values for unspecified parent arguments as specified in DEFAULTS, which consist of specs of the form "ARG=VALUE". These are added to the parent arguments prior to processing, so boolean and number parameters will process the value appropriately. (2) Removes parent arguments specified in IGNORESPECS, which consist either of bare argument names to remove, or list-argument names to remove of the form "ARG:list". (3) Tracks the use of any parent arguments specified in TRACKED_PARAMS, which is a set where the keys are arguments as they exist after processing (hence numeric arguments should be numbers, not strings) and the values should be boolean true. ]=]-- local defaults = iargs.def local ignorespecs = iargs.ignore if defaults[1] or ignorespecs[1] then local new_parent_args = {} for _, default in ipairs(defaults) do local defparam, defval = default:match("^(.-)=(.*)$") if not defparam then error("Bad default spec " .. default) end new_parent_args[defparam] = defval end local params_to_ignore = {} local numbered_list_params_to_ignore = {} local named_list_params_to_ignore = {} for _, ignorespec in ipairs(ignorespecs) do for ignore in gsplit(ignorespec, ",") do local param = ignore:match("^(.*):list$") if param then if param:match("^%d+$") then insert(numbered_list_params_to_ignore, tonumber(param)) else insert(named_list_params_to_ignore, "^" .. pattern_escape(param) .. "%d*$") end else if ignore:match("^%d+$") then ignore = tonumber(ignore) end params_to_ignore[ignore] = true end end end for k, v in pairs(parent_args) do if not params_to_ignore[k] then local ignore_me = false if type(k) == "number" then for _, lparam in ipairs(numbered_list_params_to_ignore) do if k >= lparam then ignore_me = true break end end else for _, lparam in ipairs(named_list_params_to_ignore) do if k:match(lparam) then ignore_me = true break end end end if not ignore_me then new_parent_args[k] = v end end end parent_args = new_parent_args end local param_mods_with_conj, param_mods_without_conj local function get_param_mods(with_conj) if with_conj then if not param_mods_with_conj then param_mods_with_conj = require(parameter_utilities_module).construct_param_mods { {group = {"link", "q", "l", "ref"}}, {param = "conj", set = allowed_conj_set, overall = true}, } end return param_mods_with_conj else if not param_mods_without_conj then param_mods_without_conj = require(parameter_utilities_module).construct_param_mods { {group = {"link", "q", "l", "ref"}}, -- Override lit= to have a separate overall value {param = "lit", separate_no_index = true}, } end return param_mods_without_conj end end local terms, args if iargs.nolink or iargs.linktext then args = process_params(parent_args, params) else local m_param_utils = require(parameter_utilities_module) if iargs.with_multiple_parts then terms, args = m_param_utils.parse_list_with_inline_modifiers_and_separate_params { params = params, param_mods = get_param_mods(false), raw_args = parent_args, termarg = term_param, track_module = "form of" .. (template and "/" .. template or ""), lang = compat and "lang" or 1, sc = "sc.default", parse_lang_prefix = true, default_separator = " +&lrm; ", special_separators = {[";"] = " or "}, } else terms, args = m_param_utils.parse_term_with_inline_modifiers_and_separate_params { params = params, param_mods = get_param_mods("with conj"), raw_args = parent_args, termarg = term_param, track_module = "form of" .. (template and "/" .. template or ""), lang = compat and "lang" or 1, sc = "sc", parse_lang_prefix = true, make_separate_g_into_list = true, splitchar = ",", subitem_param_handling = "last", } end end local lang = args[compat and "lang" or 1] -- Tracking for certain user-specified params. This is generally used for -- parameters that we accept but ignore, so that we can eventually remove -- all uses of these params and stop accepting them. if ignored_tracked_params then for ignored_tracked_param, condition in pairs(ignored_tracked_params) do if parent_args[ignored_tracked_param] and (condition ~= "non-english" or lang:getCode() ~= "en") then track("arg/" .. ignored_tracked_param, template) track("arg/" .. ignored_tracked_param) end end end -- Determine categories for the page, including tracking categories local categories = {} if not args.nocat then for _, cat in ipairs(iargs.cat) do insert(categories, lang:getFullName() .. " " .. cat) end end for _, cat in ipairs(args.cat) do insert(categories, lang:getFullName() .. " " .. cat) end -- Format the link, preceding text and categories local function add_term_tracking_categories(term) -- add tracking category if term is same as page title if term and mw.loadData("Module:headword/data").pagename == lang:stripDiacritics(term) then insert(categories, "Forms linking to themselves") end -- maybe add tracking category if primary entry doesn't exist (this is an -- expensive call so we don't do it by default) if iargs.noprimaryentrycat and term and mw.title.getCurrentTitle().nsText == "" and not mw.title.new(term):getContent() then insert(categories, lang:getFullName() .. " " .. iargs.noprimaryentrycat) end end local lemmas if iargs.nolink then lemmas = nil elseif iargs.linktext then lemmas = iargs.linktext else if iargs.with_multiple_parts then lemmas = terms else lemmas = terms.terms end if not lemmas[1] then if mw.title.getCurrentTitle().nsText == "Citakan" then lemmas[1] = { lang = lang, term = "term" } else error("No linked-to term specified") end end for _, termobj in ipairs(lemmas) do if termobj.term then add_term_tracking_categories(termobj.term) end -- NOTE: Formerly, template arg sc= overrode inline modifier <sc:...>, which seems backwards, so I've -- changed it. Hopefully nothing depended on the old behavior. end end local enclitics, enclitic_conj if args.enclitic then local enclitics_obj = parse_terms_with_inline_modifiers("enclitic", args.enclitic, get_param_mods("with conj"), lang) enclitics = enclitics_obj.terms enclitic_conj = enclitics_obj.conj end local base_lemmas = {} if base_lemma_params then for _, base_lemma_param_obj in ipairs(base_lemma_params) do local param = base_lemma_param_obj.param if args[param] then local base_lemmas_obj = parse_terms_with_inline_modifiers(param, args[param], get_param_mods("with conj"), lang) insert(base_lemmas, { paramobj = base_lemma_param_obj, lemmas = base_lemmas_obj.terms, conj = base_lemmas_obj.conj, }) end end end local posttext = iargs.posttext local addl = args.addl if addl then posttext = posttext or "" if addl:find("^[;:]") then posttext = posttext .. addl elseif addl:find("^_") then posttext = posttext .. " " .. addl:sub(2) else posttext = posttext .. ", " .. addl end end local conj if iargs.with_multiple_parts then conj = false -- signals to use 'separator' field else conj = terms and terms.conj or iargs.conj end local lemma_data = { lang = lang, args = args, lemmas = lemmas, conj = conj, enclitics = enclitics, enclitic_conj = enclitic_conj, base_lemmas = base_lemmas, categories = categories, posttext = posttext, lit = iargs.with_multiple_parts and args.lit.default or nil, } local form_of_text, lang_cats = do_form_of(lemma_data) extend(lemma_data.categories, lang_cats) local text = form_of_text .. ( args.nodot and "" or args.dot or iargs.withdot and "." or "" ) if not lemma_data.categories[1] then return text end return text .. format_categories(lemma_data.categories, lemma_data.lang, args.sort, -- If lemma_is_sort_key is given, supply the first lemma term as the sort base if possible. If sort= is given, -- it will override the base; otherwise, the base will be converted appropriately to a sort key using the -- same algorithm applied to pagenames. iargs.lemma_is_sort_key and type(lemma_data.lemmas) == "table" and lemma_data.lemmas[1].term, -- Supply the first lemma's script for sort key computation. force_cat or get_force_cat(), type(lemma_data.lemmas) == "table" and lemma_data.lemmas[1].sc) end -- Invocation parameters shared between form_of_t(), tagged_form_of_t() and inflection_of_t(). `calling_func` is the -- invoking function ("form_of_t", "tagged_form_of_t" or "inflection_of_t"), for handling parameters shared by two but -- not all three invoking functions. local function get_common_invocation_params(calling_func) local iparams = { ["term_param"] = {type = "number"}, ["lang"] = true, -- To be used as the default code in params. ["sc"] = {type = "script"}, ["cat"] = {list = true, sublist = "comma without whitespace", flatten = true}, ["ignore"] = {list = true}, ["def"] = {list = true}, ["conj"] = {set = allowed_conj_set, default = "and"}, ["withcap"] = boolean_param, ["withencap"] = boolean_param, ["withdot"] = boolean_param, ["nolink"] = boolean_param, ["linktext"] = true, ["posttext"] = true, ["noprimaryentrycat"] = true, ["lemma_is_sort_key"] = true, } if calling_func ~= "inflection_of_t" then iparams.with_multiple_parts = boolean_param end return iparams end local function should_ucfirst_text(args, iargs, lang) local code = lang:getCode() return args.cap or (iargs.withcap or iargs.withencap and code == "en" or code == "mul") and not args.nocap end --[==[ Function that implements {{tl|form of}} and the various more specific form-of templates (but not {{tl|inflection of}} or templates that take tagged inflection parameters). Invocation params: ; {{para|1|req=1}} : Text to display before the link. ; {{para|term_param}} : Numbered param holding the term linked to. Other numbered params come after. Defaults to 1 if invocation or template param {{para|lang}} is present, otherwise 2. ; {{para|with_multiple_parts|1}} : If specified, higher numbered parameters above the numbered param in {{para|term_param}} specify additional parts out of which the term was constructed, for use by templates like {{tl|contraction of}}. (If not specified, the parameter at <code><var>term_param</var> + 1</code> is the display form, same as {{para|alt}}, and the parameter at at <code><var>term_param</var> + 2</code> is the gloss, same as {{para|t}}.) ; {{para|lang}} : Default language code for language-specific templates. If specified, no language code needs to be specified, and if specified it needs to be set using {{para|lang}}, not {{para|1}}. ; {{para|sc}} : Default script code for language-specific templates. The script code can still be overridden using template param {{para|sc}}. ; {{para|cat}}, {{para|cat2}}, ...: : Categories to place the page into. The language name will automatically be prepended. Note that there is also a template param {{para|cat}} to specify categories at the template level. Use of {{para|nocat}} disables categorization of categories specified using invocation param {{para|cat}}, but not using template param {{para|cat}}. A single param can specify multiple comma-separated categories if no space follows the comma. ; {{para|ignore}}, {{para|ignore2}}, ...: : One or more template params to silently accept and ignore. Useful e.g. when the template takes additional parameters such as {{para|from}} or {{para|POS}}. Each value is a comma-separated list of either bare parameter names or specifications of the form `PARAM:list` to specify that the parameter is a list parameter. ; {{para|def}}, {{para|def2}}, ...: : One or more default values to supply for template args. For example, specifying {{para|def|2=tr=-}} causes the default for template param {{para|tr}} to be `-`. Actual template params override these defaults. ; {{para|withcap|1}} : Capitalize the first character of the text preceding the link, unless template param {{para|nocap}} is given. ; {{para|withencap|1}} : Capitalize the first character of the text preceding the link if the language is English and template param {{para|nocap}} is not given. ; {{para|withdot|1}} : Add a final period after the link, unless template param {{para|nodot}} is given to suppress the period, or {{para|dot}} is given to specify an alternative punctuation character. ; {{para|nolink|1}} : Suppress the display of the link. If specified, none of the template params that control the link ({{para|<var>term_param</var>}}, {{para|<var>term_param</var> + 1}}, {{para|<var>term_param</var> + 2}}, {{para|t}}, {{para|gloss}}, {{para|sc}}, {{para|tr}}, {{para|ts}}, {{para|pos}}, {{para|g}}, {{para|id}}, {{para|lit}}) will be available. If the calling template uses any of these parameters, they must be ignored using {{para|ignore}}. {{para|linktext}} : Override the display of the link with the specified text. This is useful if a custom template is available to format the link (e.g. in Hebrew, Chinese and Japanese). If specified, none of the template params that control the link ({{para|<var>term_param</var>}}, {{para|<var>term_param</var> + 1}}, {{para|<var>term_param</var> + 2}}, {{para|t}}, {{para|gloss}}, {{para|sc}}, {{para|tr}}, {{para|ts}}, {{para|pos}}, {{para|g}}, {{para|id}}, {{para|lit}}) will be available. If the calling template uses any of these parameters, they must be ignored using {{para|ignore}}. ; {{para|posttext}} : Additional text to display directly after the formatted link, before any terminating period/dot and inside of `<span class='use-with-mention'>`. ; {{para|noprimaryentrycat}} : Category to add the page to if the primary entry linked to doesn't exist. The language name will automatically be prepended. ; {{para|lemma_is_sort_key|1}} : If the user didn't specify a sort key, use the lemma as the sort key (instead of the page itself). ]==] function export.form_of_t(frame) local iparams = get_common_invocation_params("form_of_t") iparams[1] = {required = true} local iargs = process_params(frame.args, iparams) local parent_args = frame:getParent().args local params = get_common_template_params() if next(iargs.cat) then params.nocat = boolean_param end return construct_form_of_text { template = "form-of-t", iargs = iargs, parent_args = parent_args, params = params, do_form_of = function(lemma_data) local args = lemma_data.args local text if args.notext then text = "" else text = iargs[1] if should_ucfirst_text(args, iargs, lemma_data.lang) then text = ucfirst(text) end end -- This returns two values, which we pass up to the caller. return format_form_of { lang = lemma_data.lang, text = text, lemmas = lemma_data.lemmas, conj = lemma_data.conj, enclitics = lemma_data.enclitics, base_lemmas = lemma_data.base_lemmas, lemma_face = "term", lit = lemma_data.lit, posttext = lemma_data.posttext } end } end --[=[ Construct and return the full definition line for a form-of-type template invocation that is based on inflection tags. This is a wrapper around construct_form_of_text() and takes the following arguments: processed invocation arguments IARGS, processed parent arguments ARGS, TERM_PARAM (the parent argument specifying the main entry), COMPAT (true if the language code is found in args.lang instead of args[1]), and TAGS, the list of (non-canonicalized) inflection tags. It returns that actual definition-line text including terminating period/full-stop, formatted categories, etc. and should be directly returned as the template function's return value. ]=] local function construct_tagged_form_of_text(data) local template, iargs, parent_args, params, no_numbered_gloss, tags = data.template, data.iargs, data.parent_args, data.params, data.no_numbered_gloss, data.tags -- Named params not controlling link display -- Always included because lang-specific categories may be added params.nocat = boolean_param params.p = true params.POS = {alias_of = "p"} return construct_form_of_text { template = template, iargs = iargs, parent_args = parent_args, params = params, no_numbered_gloss = no_numbered_gloss, do_form_of = function(lemma_data) local args = lemma_data.args if is_callable(tags) then tags = tags(args) end -- NOTE: tagged_inflections returns two values, so we do too. return tagged_inflections { lang = lemma_data.lang, tags = tags, lemmas = lemma_data.lemmas, conj = lemma_data.conj, enclitics = lemma_data.enclitics, enclitic_conj = lemma_data.enclitic_conj, base_lemmas = lemma_data.base_lemmas, lemma_face = "term", POS = args.p, pagename = args.pagename, -- Set no_format_categories because we do it ourselves in construct_form_of_text(). no_format_categories = true, nocat = args.nocat, notext = args.notext, capfirst = should_ucfirst_text(args, iargs, lemma_data.lang), posttext = lemma_data.posttext, } end } end --[==[ Function that implements form-of templates that are defined by specific tagged inflections (typically a template referring to a non-lemma inflection, such as {{tl|plural of}}). This works exactly like {form_of_t()} except that the "form of" text displayed before the link is based off of a pre-specified set of inflection tags (which will be appropriately linked to the glossary) instead of arbitrary text. From the user's perspective, there is no difference between templates implemented using {form_of_t()} and {tagged_form_of_t()}; they accept exactly the same parameters and work the same. See also {inflection_of_t()} below, which is intended for templates with user-specified inflection tags. Invocation params: ; {{para|1|req=1}}, {{para|2}}, ... : One or more inflection tags describing the inflection in question. ; {{para|split_tags}} : If specified, character to split specified inflection tags on. This allows multiple tags to be included in a single argument, simplifying template code. ; {{para|term_param}} ; {{para|with_multiple_parts|1}} ; {{para|lang}} ; {{para|sc}} ; {{para|cat}}, {{para|cat2}}, ... ; {{para|ignore}}, {{para|ignore2}}, ... ; {{para|def}}, {{para|def2}}, ... ; {{para|withcap|1}} ; {{para|withencap|1}} ; {{para|withdot|1}} ; {{para|nolink|1}} ; {{para|linktext}} ; {{para|posttext}} ; {{para|noprimaryentrycat}} ; {{para|lemma_is_sort_key|1}} : All of these are the same as in {form_of_t()}. ]==] function export.tagged_form_of_t(frame) local iparams = get_common_invocation_params("tagged_form_of_t") iparams[1] = {list = true, required = true} iparams.split_tags = true local iargs = process_params(frame.args, iparams) local parent_args = frame:getParent().args local params = get_common_template_params() return construct_tagged_form_of_text { template = "tagged-form-of-t", iargs = iargs, parent_args = parent_args, params = params, tags = split_inflection_tags(iargs[1], iargs.split_tags), } end --[==[ Function that implements {{tl|inflection of}} and certain semi-specific variants, such as {{tl|participle of}} and {{tl|past participle form of}}. This function is intended for templates that allow the user to specify a set of inflection tags. It works similarly to {form_of_t()} and {tagged_form_of_t()} except that the calling convention for the calling template is : { {{TEMPLATE|LANG|MAIN_ENTRY_LINK|MAIN_ENTRY_DISPLAY_TEXT|TAG|TAG|...}}} instead of : { {{TEMPLATE|LANG|MAIN_ENTRY_LINK|MAIN_ENTRY_DISPLAY_TEXT|GLOSS}}} Note that there isn't a numbered parameter for the gloss, but it can still be specified using {{para|t}} or {{para|gloss}}. Invocation params: ; {{para|preinfl}}, {{para|preinfl2}}, ... : Extra inflection tags to automatically prepend to the tags specified by the template. ; {{para|postinfl}}, {{para|postinfl2}}, ... : Extra inflection tags to automatically append to the tags specified by the template. Used for example by {{tl|past participle form of}} to add the tags `of the|past|p` onto the user-specified tags, which indicate which past participle form the page refers to. ; {{para|split_tags}} : If specified, character to split specified inflection tags on. This allows multiple tags to be included in a single argument, simplifying template code. Note that this applies *ONLY* to inflection tags specified in the invocation arguments using {{para|preinfl}} or {{para|postinfl}}, not to user-specified inflection tags. ; {{para|term_param}} ; {{para|lang}} ; {{para|sc}} ; {{para|cat}}, {{para|cat2}}, ... ; {{para|ignore}}, {{para|ignore2}}, ... ; {{para|def}}, {{para|def2}}, ... ; {{para|withcap|1}} ; {{para|withencap|1}} ; {{para|withdot|1}} ; {{para|nolink|1}} ; {{para|linktext}} ; {{para|posttext}} ; {{para|noprimaryentrycat}} ; {{para|lemma_is_sort_key|1}} : All of these are the same as in {form_of_t()}. ]==] function export.inflection_of_t(frame) local iparams = get_common_invocation_params("inflection_of_t") iparams.preinfl = {list = true} iparams.postinfl = {list = true} iparams.split_tags = true local iargs = process_params(frame.args, iparams) local parent_args = frame:getParent().args local params = get_common_template_params() local compat = iargs.lang or parent_args.lang local tagsind = (iargs.term_param or compat and 1 or 2) + 2 params[tagsind] = {list = true, -- at least one inflection tag is required unless preinfl or postinfl tags are given required = #iargs.preinfl == 0 and #iargs.postinfl == 0} return construct_tagged_form_of_text { template = "inflection-of-t", iargs = iargs, parent_args = parent_args, params = params, no_numbered_gloss = true, tags = function(args) local infls if not next(iargs.preinfl) and not next(iargs.postinfl) then -- If no preinfl or postinfl tags, just use the user-specified tags directly. infls = args[tagsind] else -- Otherwise, we need to prepend the preinfl tags and postpend the postinfl tags. If there's only one tag set -- (no semicolon), it's easier. Since this is common, we optimize for it. infls = {} local saw_semicolon = false for _, infl in ipairs(args[tagsind]) do if infl == ";" then saw_semicolon = true break end end local split_preinfl = split_inflection_tags(iargs.preinfl, iargs.split_tags) local split_postinfl = split_inflection_tags(iargs.postinfl, iargs.split_tags) if not saw_semicolon then extend(infls, split_preinfl) extend(infls, args[tagsind]) extend(infls, split_postinfl) else local groups = split_tag_set(args[tagsind]) for _, group in ipairs(groups) do if #infls > 0 then insert(infls, ";") end extend(infls, split_preinfl) extend(infls, group) extend(infls, split_postinfl) end end end return infls end, } end --[==[ Normalize a part-of-speech tag given a possible abbreviation (passed in as {{para|1}} of the invocation args). If the abbreviation isn't recognized, the original POS tag is returned. If no POS tag is passed in, return the value of invocation arg {{para|default}}. ]==] function export.normalize_pos(frame) local iparams = { [1] = true, ["default"] = true, } local iargs = process_params(frame.args, iparams) if not iargs[1] and not iargs.default then error("Either 1= or default= must be given in the invocation args") end if not iargs[1] then return iargs.default end return (m_form_of_pos or get_m_form_of_pos())[iargs[1]] or iargs[1] end return export 7z6g2yjudpq6y1fegrs59qknox7coi5 25502 25501 2026-08-31T07:35:38Z Deepturquoise 2456 + 25502 Scribunto text/plain local export = {} local debug_track_module = "Module:debug/track" local form_of_module = "Module:form of" local functions_module = "Module:fun" local headword_data_module = "Module:headword/data" local languages_module = "Module:languages" local load_module = "Module:load" local parameters_module = "Module:parameters" local parameter_utilities_module = "Module:parameter utilities" local parse_interface_module = "Module:parse interface" local string_utilities_module = "Module:string utilities" local table_module = "Module:table" local utilities_module = "Module:utilities" local insert = table.insert local ipairs = ipairs local pairs = pairs local require = require local boolean_param = {type = "boolean"} -- FIXME: Finish [[Module:format utilities]]. -- local allowed_conj_set = require(format_utilities_module).allowed_conj_set_for_join_segments local allowed_conj_set = {["and"] = true, ["or"] = true, ["and/or"] = true} --[==[ Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==] local function debug_track(...) debug_track = require(debug_track_module) return debug_track(...) end local function decode_entities(...) decode_entities = require(string_utilities_module).decode_entities return decode_entities(...) end local function extend(...) extend = require(table_module).extend return extend(...) end local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function format_form_of(...) format_form_of = require(form_of_module).format_form_of return format_form_of(...) end local function get_lang(...) get_lang = require(languages_module).getByCode return get_lang(...) end local function gsplit(...) gsplit = require(string_utilities_module).gsplit return gsplit(...) end local function is_callable(...) is_callable = require(functions_module).is_callable return is_callable(...) end local function load_data(...) load_data = require(load_module).load_data return load_data(...) end local function parse_inline_modifiers(...) parse_inline_modifiers = require(parse_interface_module).parse_inline_modifiers return parse_inline_modifiers(...) end local function pattern_escape(...) pattern_escape = require(string_utilities_module).pattern_escape return pattern_escape(...) end local function process_params(...) process_params = require(parameters_module).process return process_params(...) end local function safe_load_data(...) safe_load_data = require(load_module).safe_load_data return safe_load_data(...) end local function split(...) split = require(string_utilities_module).split return split(...) end local function split_tag_set(...) split_tag_set = require(form_of_module).split_tag_set return split_tag_set(...) end local function tagged_inflections(...) tagged_inflections = require(form_of_module).tagged_inflections return tagged_inflections(...) end local function trim(...) trim = require(string_utilities_module).trim return trim(...) end local function ucfirst(...) ucfirst = require(string_utilities_module).ucfirst return ucfirst(...) end --[==[ Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==] local force_cat local function get_force_cat() force_cat, get_force_cat = require(form_of_module).force_cat, nil return force_cat end local m_form_of_pos local function get_m_form_of_pos() m_form_of_pos, get_m_form_of_pos = load_data(headword_data_module).pos_aliases, nil return m_form_of_pos end local module_prefix local function get_module_prefix() module_prefix, get_module_prefix = require(form_of_module).form_of_lang_data_module_prefix, nil return module_prefix end --[==[ intro: This module contains code that directly implements {{tl|form of}}, {{tl|inflection of}}, and the various other [[:Category:Form-of templates|form-of templates]]. It is meant to be called directly from templates. See also [[Module:form of]], which contains the underlying implementing code and is meant to be called from other modules. ]==] -- Add tracking category for PAGE when called from TEMPLATE. The tracking category linked to is -- [[Wiktionary:Tracking/form of/TEMPLATE/PAGE]]. If TEMPLATE is omitted, the tracking category is of the form -- [[Wiktionary:Tracking/form of/PAGE]]. local function track(page, template) debug_track("form of/" .. (template and template .. "/" or "") .. page) end local function get_common_template_params() return { -- Named params not controlling link display ["cat"] = {list = true, sublist = "comma without whitespace", flatten = true}, ["notext"] = boolean_param, ["sort"] = true, ["enclitic"] = true, -- FIXME! The following should only be available when withcap=1 in invocation args or when withencap=1 and the -- language is "en". Before doing that, need to remove all uses of nocap= in other circumstances. ["nocap"] = boolean_param, ["addl"] = true, -- additional text to display at the end, before the closing </span> ["pagename"] = true, -- for testing, etc. } end -- Split TAGSPECS (inflection tag specifications) on SPLIT_REGEX, which -- may be nil for no splitting. local function split_inflection_tags(tagspecs, split_regex) if not split_regex then return tagspecs end local inflection_tags = {} for _, tagspec in ipairs(tagspecs) do for tag in gsplit(tagspec, split_regex) do insert(inflection_tags, tag) end end return inflection_tags end local function parse_terms_with_inline_modifiers(paramname, val, param_mods, lang) local function generate_obj(term) return {lang = lang, term = decode_entities(term)} end return parse_inline_modifiers(val, { paramname = paramname, param_mods = param_mods, generate_obj = generate_obj, splitchar = ",", outer_container = {}, }) end -- Need to do what [[Module:parameters]] does to string arguments from parent_args as we're running this -- before calling [[Module:parameters]] on parent_args. local function ine(arg) if not arg then return nil end arg = trim(arg) return arg ~= "" and arg or nil end local function add_base_lemma_params(parent_args, iargs, params, compat) -- Check the language-specific data for additional base lemma params. But if there's no language-specific data, -- attempt any parent varieties as well (i.e. superordinate varieties). local lang = get_lang(ine(parent_args[compat and "lang" or 1]) or ine(iargs.lang) or "und", nil, true) while lang do local langdata = safe_load_data((module_prefix or get_module_prefix()) .. lang:getCode()) if langdata then local base_lemma_params = langdata.base_lemma_params if base_lemma_params then for _, param in ipairs(base_lemma_params) do params[param.param] = true end return base_lemma_params end end lang = lang:getParent() end end --[=[ Modify `params` in-place by adding parameters that control the link to the main entry and any base lemmas. `term_param` is the number of the param specifying the main entry itself; `term_param` + 1 will be the display text, and `term_param` + 2 will be the gloss, unless `no_numbered_gloss` is given. The base lemma parameters are determined by attempting to load language-specific data for the language of the page; this comes from |lang= if `compat` is given, else from |1=. ]=] local function add_link_and_base_lemma_params(iargs, parent_args, params, term_param, compat, no_numbered_gloss) local base_lemma_params if not iargs.nolink and not iargs.linktext then -- Numbered params controlling link display if iargs.with_multiple_parts then params[term_param] = {list = true, allow_holes = true} else params[term_param + 1] = {alias_of = "alt"} if not no_numbered_gloss then params[term_param + 2] = {alias_of = "t"} end params[term_param] = true end base_lemma_params = add_base_lemma_params(parent_args, iargs, params, compat) end return base_lemma_params end local function handle_withdot_withcap(iargs, params) local ignored_tracked_params = {} if iargs.withdot then params.dot = true params.nodot = boolean_param end if iargs.withcap and iargs.withencap then error("Internal error: Can specify only one of withcap= and withencap=") end if not iargs.withcap then params.cap = boolean_param ignored_tracked_params.nocap = iargs.withencap and "non-english" or "always" end return ignored_tracked_params end --[=[ Construct and return the full definition line for a form-of-type template invocation. `data` is an object with the following fields: * `template`: Approximate template name, for debug tracking; * `iargs`: processed invocation arguments; * `parent_args`: raw parent args from `frame:getParent().args`; * `params`: partially constructed params structure of the sort passed to `process()` in [[Module:parameters]], but without any link params; * `ignored_tracked_params`: params that are ignored but should be tracked, to be eventually removed; * `term_param`: the parent argument specifying the main entry; * `compat`: true if the language code is found in args.lang instead of args[1]; * `base_lemma_params`: if non-nil, a list of base lemma param objects of the sort stored in the language-specific data; * `do_form_of`: a function of one argument, `lemma_data`, that returns the actual definition-line text and any language-specific categories. See below. This function does several things: # If link parameters are called for (neither `iargs.nolink` nor `iargs.linktext` are given), augment the `params` structure with separate link parameters. # Modify the parent args as appropriate if invocation arguments def= or ignore= are given. # Parse the parent args, both for separate parameter properties and inline modifiers on the term parameter (which may consist of multiple comma-separated terms). # Compute categories to add to the page, including language-specific categories and any categories requested by the invocation or parent args. # Parse enclitic and extra base lemma parameters. # Construct the actual text using `do_form_of`. # Add a terminating period/dot as appropriate, along with the formatted categories. `do_form_of` takes one argument, `lemma_data`, which looks like this: { lang = LANG, args = {ARG = VALUE, ARG = VALUE, ...}, lemmas = {LEMMA_OBJ, LEMMA_OBJ, ...}, enclitics = {ENCLITIC_OBJ, ENCLITIC_OBJ, ...}, base_lemmas = {BASE_LEMMA_OBJ, BASE_LEMMA_OBJ, ...}, categories = {"CATEGORY", "CATEGORY", ...}, posttext = "POSTTEXT" or nil, } where * LANG is the language code; * ARGS is the parsed arguments, based on what the user specified; * LEMMAS is a sequence of objects specifying the main entries/lemmas, as passed to full_link in [[Module:links]]; however, if the invocation argument linktext= is given, it will be a string consisting of that text, and if the invocation argument nolink= is given, it will be nil; * ENCLITICS is nil or a sequence of objects specifying the enclitics, as passed to full_link in [[Module:links]]; * BASE_LEMMA_OBJ is a sequence of objects specifying the base lemma(s), which are used when the lemma is itself a form of another lemma (the base lemma), e.g. a comparative, superlative or participle; each object is of the form { paramobj = PARAM_OBJ, lemmas = {LEMMA_OBJ, LEMMA_OBJ, ...} } where PARAM_OBJ describes the properties of the base lemma parameter (i.e. the relationship between the intermediate and base lemmas) and LEMMA_OBJ is of the same format of ENCLITIC_OBJ, i.e. an object suitable to be passed to full_link in [[Module:links]]; PARAM_OBJ is of the format { param = "PARAM", tags = {"TAG", "TAG", ...} } where PARAM is the name of the parameter to {{inflection of}} etc. that holds the base lemma(s) of the specified relationship and the tags describe the relationship, such as {"comd"} or {"past", "part"}; * CATEGORIES is the categories to add the page to (consisting of any categories specified in the invocation or parent args and any tracking categories, but not any additional lang-specific categories that may be added by {{inflection of}} or similar templates); * POSTTEXT is text to display at the end of the form-of text, before the final </span> (or at the end of the first line, before the colon, in a multiline {{infl of}} call). `do_form_of` should return two arguments: (1) The actual definition-line text, marked up appropriately with <span>...</span> but without any terminating period/dot. (2) Any extra categories to add the page to (other than those that can be derived from parameters specified to the invocation or parent arguments, which will automatically be added to the page). ]=] local function construct_form_of_text(data) local template, iargs, parent_args, params, no_numbered_gloss, do_form_of = data.template, data.iargs, data.parent_args, data.params, data.no_numbered_gloss, data.do_form_of local term_param = iargs.term_param local compat = iargs.lang or parent_args.lang term_param = term_param or compat and 1 or 2 -- Numbered params params[compat and "lang" or 1] = { required = not iargs.lang, type = "language", default = iargs.lang or "und" } -- Error to catch most uses of old-style parameters for {{contraction of}}. (FIXME: Remove eventually.) if iargs.with_multiple_parts then if ine(parent_args[term_param + 2]) and not ine(parent_args[term_param + 1]) 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 %s= and not one in %s=. You probably meant to use t= to specify a gloss instead. " .. "If you intended to specify two terms, put the second term in %s=."):format(term_param + 2, term_param + 1, term_param + 1)) end if not ine(parent_args[term_param + 1]) 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 %s=. You were probably trying to specify two genders for " .. "a single term. To do that, put both genders in g=, comma-separated."):format(term_param + 1)) end end local base_lemma_params = add_link_and_base_lemma_params(iargs, parent_args, params, term_param, compat, no_numbered_gloss) local ignored_tracked_params = handle_withdot_withcap(iargs, params) --[=[ Process parent arguments. This is similar to the following: require("Module:parameters").process(parent_args, params) but in addition it does the following: (1) Supplies default values for unspecified parent arguments as specified in DEFAULTS, which consist of specs of the form "ARG=VALUE". These are added to the parent arguments prior to processing, so boolean and number parameters will process the value appropriately. (2) Removes parent arguments specified in IGNORESPECS, which consist either of bare argument names to remove, or list-argument names to remove of the form "ARG:list". (3) Tracks the use of any parent arguments specified in TRACKED_PARAMS, which is a set where the keys are arguments as they exist after processing (hence numeric arguments should be numbers, not strings) and the values should be boolean true. ]=]-- local defaults = iargs.def local ignorespecs = iargs.ignore if defaults[1] or ignorespecs[1] then local new_parent_args = {} for _, default in ipairs(defaults) do local defparam, defval = default:match("^(.-)=(.*)$") if not defparam then error("Bad default spec " .. default) end new_parent_args[defparam] = defval end local params_to_ignore = {} local numbered_list_params_to_ignore = {} local named_list_params_to_ignore = {} for _, ignorespec in ipairs(ignorespecs) do for ignore in gsplit(ignorespec, ",") do local param = ignore:match("^(.*):list$") if param then if param:match("^%d+$") then insert(numbered_list_params_to_ignore, tonumber(param)) else insert(named_list_params_to_ignore, "^" .. pattern_escape(param) .. "%d*$") end else if ignore:match("^%d+$") then ignore = tonumber(ignore) end params_to_ignore[ignore] = true end end end for k, v in pairs(parent_args) do if not params_to_ignore[k] then local ignore_me = false if type(k) == "number" then for _, lparam in ipairs(numbered_list_params_to_ignore) do if k >= lparam then ignore_me = true break end end else for _, lparam in ipairs(named_list_params_to_ignore) do if k:match(lparam) then ignore_me = true break end end end if not ignore_me then new_parent_args[k] = v end end end parent_args = new_parent_args end local param_mods_with_conj, param_mods_without_conj local function get_param_mods(with_conj) if with_conj then if not param_mods_with_conj then param_mods_with_conj = require(parameter_utilities_module).construct_param_mods { {group = {"link", "q", "l", "ref"}}, {param = "conj", set = allowed_conj_set, overall = true}, } end return param_mods_with_conj else if not param_mods_without_conj then param_mods_without_conj = require(parameter_utilities_module).construct_param_mods { {group = {"link", "q", "l", "ref"}}, -- Override lit= to have a separate overall value {param = "lit", separate_no_index = true}, } end return param_mods_without_conj end end local terms, args if iargs.nolink or iargs.linktext then args = process_params(parent_args, params) else local m_param_utils = require(parameter_utilities_module) if iargs.with_multiple_parts then terms, args = m_param_utils.parse_list_with_inline_modifiers_and_separate_params { params = params, param_mods = get_param_mods(false), raw_args = parent_args, termarg = term_param, track_module = "form of" .. (template and "/" .. template or ""), lang = compat and "lang" or 1, sc = "sc.default", parse_lang_prefix = true, default_separator = " +&lrm; ", special_separators = {[";"] = " or "}, } else terms, args = m_param_utils.parse_term_with_inline_modifiers_and_separate_params { params = params, param_mods = get_param_mods("with conj"), raw_args = parent_args, termarg = term_param, track_module = "form of" .. (template and "/" .. template or ""), lang = compat and "lang" or 1, sc = "sc", parse_lang_prefix = true, make_separate_g_into_list = true, splitchar = ",", subitem_param_handling = "last", } end end local lang = args[compat and "lang" or 1] -- Tracking for certain user-specified params. This is generally used for -- parameters that we accept but ignore, so that we can eventually remove -- all uses of these params and stop accepting them. if ignored_tracked_params then for ignored_tracked_param, condition in pairs(ignored_tracked_params) do if parent_args[ignored_tracked_param] and (condition ~= "non-english" or lang:getCode() ~= "en") then track("arg/" .. ignored_tracked_param, template) track("arg/" .. ignored_tracked_param) end end end -- Determine categories for the page, including tracking categories local categories = {} if not args.nocat then for _, cat in ipairs(iargs.cat) do insert(categories, lang:getFullName() .. " " .. cat) end end for _, cat in ipairs(args.cat) do insert(categories, lang:getFullName() .. " " .. cat) end -- Format the link, preceding text and categories local function add_term_tracking_categories(term) -- add tracking category if term is same as page title if term and mw.loadData("Module:headword/data").pagename == lang:stripDiacritics(term) then insert(categories, "Forms linking to themselves") end -- maybe add tracking category if primary entry doesn't exist (this is an -- expensive call so we don't do it by default) if iargs.noprimaryentrycat and term and mw.title.getCurrentTitle().nsText == "" and not mw.title.new(term):getContent() then insert(categories, lang:getFullName() .. " " .. iargs.noprimaryentrycat) end end local lemmas if iargs.nolink then lemmas = nil elseif iargs.linktext then lemmas = iargs.linktext else if iargs.with_multiple_parts then lemmas = terms else lemmas = terms.terms end if not lemmas[1] then if mw.title.getCurrentTitle().nsText == "Template" then lemmas[1] = { lang = lang, term = "term" } else error("No linked-to term specified") end end for _, termobj in ipairs(lemmas) do if termobj.term then add_term_tracking_categories(termobj.term) end -- NOTE: Formerly, template arg sc= overrode inline modifier <sc:...>, which seems backwards, so I've -- changed it. Hopefully nothing depended on the old behavior. end end local enclitics, enclitic_conj if args.enclitic then local enclitics_obj = parse_terms_with_inline_modifiers("enclitic", args.enclitic, get_param_mods("with conj"), lang) enclitics = enclitics_obj.terms enclitic_conj = enclitics_obj.conj end local base_lemmas = {} if base_lemma_params then for _, base_lemma_param_obj in ipairs(base_lemma_params) do local param = base_lemma_param_obj.param if args[param] then local base_lemmas_obj = parse_terms_with_inline_modifiers(param, args[param], get_param_mods("with conj"), lang) insert(base_lemmas, { paramobj = base_lemma_param_obj, lemmas = base_lemmas_obj.terms, conj = base_lemmas_obj.conj, }) end end end local posttext = iargs.posttext local addl = args.addl if addl then posttext = posttext or "" if addl:find("^[;:]") then posttext = posttext .. addl elseif addl:find("^_") then posttext = posttext .. " " .. addl:sub(2) else posttext = posttext .. ", " .. addl end end local conj if iargs.with_multiple_parts then conj = false -- signals to use 'separator' field else conj = terms and terms.conj or iargs.conj end local lemma_data = { lang = lang, args = args, lemmas = lemmas, conj = conj, enclitics = enclitics, enclitic_conj = enclitic_conj, base_lemmas = base_lemmas, categories = categories, posttext = posttext, lit = iargs.with_multiple_parts and args.lit.default or nil, } local form_of_text, lang_cats = do_form_of(lemma_data) extend(lemma_data.categories, lang_cats) local text = form_of_text .. ( args.nodot and "" or args.dot or iargs.withdot and "." or "" ) if not lemma_data.categories[1] then return text end return text .. format_categories(lemma_data.categories, lemma_data.lang, args.sort, -- If lemma_is_sort_key is given, supply the first lemma term as the sort base if possible. If sort= is given, -- it will override the base; otherwise, the base will be converted appropriately to a sort key using the -- same algorithm applied to pagenames. iargs.lemma_is_sort_key and type(lemma_data.lemmas) == "table" and lemma_data.lemmas[1].term, -- Supply the first lemma's script for sort key computation. force_cat or get_force_cat(), type(lemma_data.lemmas) == "table" and lemma_data.lemmas[1].sc) end -- Invocation parameters shared between form_of_t(), tagged_form_of_t() and inflection_of_t(). `calling_func` is the -- invoking function ("form_of_t", "tagged_form_of_t" or "inflection_of_t"), for handling parameters shared by two but -- not all three invoking functions. local function get_common_invocation_params(calling_func) local iparams = { ["term_param"] = {type = "number"}, ["lang"] = true, -- To be used as the default code in params. ["sc"] = {type = "script"}, ["cat"] = {list = true, sublist = "comma without whitespace", flatten = true}, ["ignore"] = {list = true}, ["def"] = {list = true}, ["conj"] = {set = allowed_conj_set, default = "and"}, ["withcap"] = boolean_param, ["withencap"] = boolean_param, ["withdot"] = boolean_param, ["nolink"] = boolean_param, ["linktext"] = true, ["posttext"] = true, ["noprimaryentrycat"] = true, ["lemma_is_sort_key"] = true, } if calling_func ~= "inflection_of_t" then iparams.with_multiple_parts = boolean_param end return iparams end local function should_ucfirst_text(args, iargs, lang) local code = lang:getCode() return args.cap or (iargs.withcap or iargs.withencap and code == "en" or code == "mul") and not args.nocap end --[==[ Function that implements {{tl|form of}} and the various more specific form-of templates (but not {{tl|inflection of}} or templates that take tagged inflection parameters). Invocation params: ; {{para|1|req=1}} : Text to display before the link. ; {{para|term_param}} : Numbered param holding the term linked to. Other numbered params come after. Defaults to 1 if invocation or template param {{para|lang}} is present, otherwise 2. ; {{para|with_multiple_parts|1}} : If specified, higher numbered parameters above the numbered param in {{para|term_param}} specify additional parts out of which the term was constructed, for use by templates like {{tl|contraction of}}. (If not specified, the parameter at <code><var>term_param</var> + 1</code> is the display form, same as {{para|alt}}, and the parameter at at <code><var>term_param</var> + 2</code> is the gloss, same as {{para|t}}.) ; {{para|lang}} : Default language code for language-specific templates. If specified, no language code needs to be specified, and if specified it needs to be set using {{para|lang}}, not {{para|1}}. ; {{para|sc}} : Default script code for language-specific templates. The script code can still be overridden using template param {{para|sc}}. ; {{para|cat}}, {{para|cat2}}, ...: : Categories to place the page into. The language name will automatically be prepended. Note that there is also a template param {{para|cat}} to specify categories at the template level. Use of {{para|nocat}} disables categorization of categories specified using invocation param {{para|cat}}, but not using template param {{para|cat}}. A single param can specify multiple comma-separated categories if no space follows the comma. ; {{para|ignore}}, {{para|ignore2}}, ...: : One or more template params to silently accept and ignore. Useful e.g. when the template takes additional parameters such as {{para|from}} or {{para|POS}}. Each value is a comma-separated list of either bare parameter names or specifications of the form `PARAM:list` to specify that the parameter is a list parameter. ; {{para|def}}, {{para|def2}}, ...: : One or more default values to supply for template args. For example, specifying {{para|def|2=tr=-}} causes the default for template param {{para|tr}} to be `-`. Actual template params override these defaults. ; {{para|withcap|1}} : Capitalize the first character of the text preceding the link, unless template param {{para|nocap}} is given. ; {{para|withencap|1}} : Capitalize the first character of the text preceding the link if the language is English and template param {{para|nocap}} is not given. ; {{para|withdot|1}} : Add a final period after the link, unless template param {{para|nodot}} is given to suppress the period, or {{para|dot}} is given to specify an alternative punctuation character. ; {{para|nolink|1}} : Suppress the display of the link. If specified, none of the template params that control the link ({{para|<var>term_param</var>}}, {{para|<var>term_param</var> + 1}}, {{para|<var>term_param</var> + 2}}, {{para|t}}, {{para|gloss}}, {{para|sc}}, {{para|tr}}, {{para|ts}}, {{para|pos}}, {{para|g}}, {{para|id}}, {{para|lit}}) will be available. If the calling template uses any of these parameters, they must be ignored using {{para|ignore}}. {{para|linktext}} : Override the display of the link with the specified text. This is useful if a custom template is available to format the link (e.g. in Hebrew, Chinese and Japanese). If specified, none of the template params that control the link ({{para|<var>term_param</var>}}, {{para|<var>term_param</var> + 1}}, {{para|<var>term_param</var> + 2}}, {{para|t}}, {{para|gloss}}, {{para|sc}}, {{para|tr}}, {{para|ts}}, {{para|pos}}, {{para|g}}, {{para|id}}, {{para|lit}}) will be available. If the calling template uses any of these parameters, they must be ignored using {{para|ignore}}. ; {{para|posttext}} : Additional text to display directly after the formatted link, before any terminating period/dot and inside of `<span class='use-with-mention'>`. ; {{para|noprimaryentrycat}} : Category to add the page to if the primary entry linked to doesn't exist. The language name will automatically be prepended. ; {{para|lemma_is_sort_key|1}} : If the user didn't specify a sort key, use the lemma as the sort key (instead of the page itself). ]==] function export.form_of_t(frame) local iparams = get_common_invocation_params("form_of_t") iparams[1] = {required = true} local iargs = process_params(frame.args, iparams) local parent_args = frame:getParent().args local params = get_common_template_params() if next(iargs.cat) then params.nocat = boolean_param end return construct_form_of_text { template = "form-of-t", iargs = iargs, parent_args = parent_args, params = params, do_form_of = function(lemma_data) local args = lemma_data.args local text if args.notext then text = "" else text = iargs[1] if should_ucfirst_text(args, iargs, lemma_data.lang) then text = ucfirst(text) end end -- This returns two values, which we pass up to the caller. return format_form_of { lang = lemma_data.lang, text = text, lemmas = lemma_data.lemmas, conj = lemma_data.conj, enclitics = lemma_data.enclitics, base_lemmas = lemma_data.base_lemmas, lemma_face = "term", lit = lemma_data.lit, posttext = lemma_data.posttext } end } end --[=[ Construct and return the full definition line for a form-of-type template invocation that is based on inflection tags. This is a wrapper around construct_form_of_text() and takes the following arguments: processed invocation arguments IARGS, processed parent arguments ARGS, TERM_PARAM (the parent argument specifying the main entry), COMPAT (true if the language code is found in args.lang instead of args[1]), and TAGS, the list of (non-canonicalized) inflection tags. It returns that actual definition-line text including terminating period/full-stop, formatted categories, etc. and should be directly returned as the template function's return value. ]=] local function construct_tagged_form_of_text(data) local template, iargs, parent_args, params, no_numbered_gloss, tags = data.template, data.iargs, data.parent_args, data.params, data.no_numbered_gloss, data.tags -- Named params not controlling link display -- Always included because lang-specific categories may be added params.nocat = boolean_param params.p = true params.POS = {alias_of = "p"} return construct_form_of_text { template = template, iargs = iargs, parent_args = parent_args, params = params, no_numbered_gloss = no_numbered_gloss, do_form_of = function(lemma_data) local args = lemma_data.args if is_callable(tags) then tags = tags(args) end -- NOTE: tagged_inflections returns two values, so we do too. return tagged_inflections { lang = lemma_data.lang, tags = tags, lemmas = lemma_data.lemmas, conj = lemma_data.conj, enclitics = lemma_data.enclitics, enclitic_conj = lemma_data.enclitic_conj, base_lemmas = lemma_data.base_lemmas, lemma_face = "term", POS = args.p, pagename = args.pagename, -- Set no_format_categories because we do it ourselves in construct_form_of_text(). no_format_categories = true, nocat = args.nocat, notext = args.notext, capfirst = should_ucfirst_text(args, iargs, lemma_data.lang), posttext = lemma_data.posttext, } end } end --[==[ Function that implements form-of templates that are defined by specific tagged inflections (typically a template referring to a non-lemma inflection, such as {{tl|plural of}}). This works exactly like {form_of_t()} except that the "form of" text displayed before the link is based off of a pre-specified set of inflection tags (which will be appropriately linked to the glossary) instead of arbitrary text. From the user's perspective, there is no difference between templates implemented using {form_of_t()} and {tagged_form_of_t()}; they accept exactly the same parameters and work the same. See also {inflection_of_t()} below, which is intended for templates with user-specified inflection tags. Invocation params: ; {{para|1|req=1}}, {{para|2}}, ... : One or more inflection tags describing the inflection in question. ; {{para|split_tags}} : If specified, character to split specified inflection tags on. This allows multiple tags to be included in a single argument, simplifying template code. ; {{para|term_param}} ; {{para|with_multiple_parts|1}} ; {{para|lang}} ; {{para|sc}} ; {{para|cat}}, {{para|cat2}}, ... ; {{para|ignore}}, {{para|ignore2}}, ... ; {{para|def}}, {{para|def2}}, ... ; {{para|withcap|1}} ; {{para|withencap|1}} ; {{para|withdot|1}} ; {{para|nolink|1}} ; {{para|linktext}} ; {{para|posttext}} ; {{para|noprimaryentrycat}} ; {{para|lemma_is_sort_key|1}} : All of these are the same as in {form_of_t()}. ]==] function export.tagged_form_of_t(frame) local iparams = get_common_invocation_params("tagged_form_of_t") iparams[1] = {list = true, required = true} iparams.split_tags = true local iargs = process_params(frame.args, iparams) local parent_args = frame:getParent().args local params = get_common_template_params() return construct_tagged_form_of_text { template = "tagged-form-of-t", iargs = iargs, parent_args = parent_args, params = params, tags = split_inflection_tags(iargs[1], iargs.split_tags), } end --[==[ Function that implements {{tl|inflection of}} and certain semi-specific variants, such as {{tl|participle of}} and {{tl|past participle form of}}. This function is intended for templates that allow the user to specify a set of inflection tags. It works similarly to {form_of_t()} and {tagged_form_of_t()} except that the calling convention for the calling template is : { {{TEMPLATE|LANG|MAIN_ENTRY_LINK|MAIN_ENTRY_DISPLAY_TEXT|TAG|TAG|...}}} instead of : { {{TEMPLATE|LANG|MAIN_ENTRY_LINK|MAIN_ENTRY_DISPLAY_TEXT|GLOSS}}} Note that there isn't a numbered parameter for the gloss, but it can still be specified using {{para|t}} or {{para|gloss}}. Invocation params: ; {{para|preinfl}}, {{para|preinfl2}}, ... : Extra inflection tags to automatically prepend to the tags specified by the template. ; {{para|postinfl}}, {{para|postinfl2}}, ... : Extra inflection tags to automatically append to the tags specified by the template. Used for example by {{tl|past participle form of}} to add the tags `of the|past|p` onto the user-specified tags, which indicate which past participle form the page refers to. ; {{para|split_tags}} : If specified, character to split specified inflection tags on. This allows multiple tags to be included in a single argument, simplifying template code. Note that this applies *ONLY* to inflection tags specified in the invocation arguments using {{para|preinfl}} or {{para|postinfl}}, not to user-specified inflection tags. ; {{para|term_param}} ; {{para|lang}} ; {{para|sc}} ; {{para|cat}}, {{para|cat2}}, ... ; {{para|ignore}}, {{para|ignore2}}, ... ; {{para|def}}, {{para|def2}}, ... ; {{para|withcap|1}} ; {{para|withencap|1}} ; {{para|withdot|1}} ; {{para|nolink|1}} ; {{para|linktext}} ; {{para|posttext}} ; {{para|noprimaryentrycat}} ; {{para|lemma_is_sort_key|1}} : All of these are the same as in {form_of_t()}. ]==] function export.inflection_of_t(frame) local iparams = get_common_invocation_params("inflection_of_t") iparams.preinfl = {list = true} iparams.postinfl = {list = true} iparams.split_tags = true local iargs = process_params(frame.args, iparams) local parent_args = frame:getParent().args local params = get_common_template_params() local compat = iargs.lang or parent_args.lang local tagsind = (iargs.term_param or compat and 1 or 2) + 2 params[tagsind] = {list = true, -- at least one inflection tag is required unless preinfl or postinfl tags are given required = #iargs.preinfl == 0 and #iargs.postinfl == 0} return construct_tagged_form_of_text { template = "inflection-of-t", iargs = iargs, parent_args = parent_args, params = params, no_numbered_gloss = true, tags = function(args) local infls if not next(iargs.preinfl) and not next(iargs.postinfl) then -- If no preinfl or postinfl tags, just use the user-specified tags directly. infls = args[tagsind] else -- Otherwise, we need to prepend the preinfl tags and postpend the postinfl tags. If there's only one tag set -- (no semicolon), it's easier. Since this is common, we optimize for it. infls = {} local saw_semicolon = false for _, infl in ipairs(args[tagsind]) do if infl == ";" then saw_semicolon = true break end end local split_preinfl = split_inflection_tags(iargs.preinfl, iargs.split_tags) local split_postinfl = split_inflection_tags(iargs.postinfl, iargs.split_tags) if not saw_semicolon then extend(infls, split_preinfl) extend(infls, args[tagsind]) extend(infls, split_postinfl) else local groups = split_tag_set(args[tagsind]) for _, group in ipairs(groups) do if #infls > 0 then insert(infls, ";") end extend(infls, split_preinfl) extend(infls, group) extend(infls, split_postinfl) end end end return infls end, } end --[==[ Normalize a part-of-speech tag given a possible abbreviation (passed in as {{para|1}} of the invocation args). If the abbreviation isn't recognized, the original POS tag is returned. If no POS tag is passed in, return the value of invocation arg {{para|default}}. ]==] function export.normalize_pos(frame) local iparams = { [1] = true, ["default"] = true, } local iargs = process_params(frame.args, iparams) if not iargs[1] and not iargs.default then error("Either 1= or default= must be given in the invocation args") end if not iargs[1] then return iargs.default end return (m_form_of_pos or get_m_form_of_pos())[iargs[1]] or iargs[1] end return export qngi7g0ngefkunhqwao6b90egp7n7t7 sakur 0 7307 25488 22020 2026-08-30T14:13:19Z Deepturquoise 2456 25488 wikitext text/x-wiki =={{sunda}}== {{-k bl-|su|aksara Sunda|ᮞᮊᮥᮁ}} #sakur nyaéta saniskara,sagala* #: ''"'''sakur''' ngaliwat kadinya unggal dinten"'' [[Kategori:WikiPrestasi]] 2fw3cfkkm7e6svel8322kfz5vx66whi piwuruk 0 8429 25436 23720 2026-08-30T13:22:42Z Deepturquoise 2456 25436 wikitext text/x-wiki =={{sunda}}== {{émbohan pi-|wuruk|warna=barang}} #piwuruk, pituduh, atawa naséhat ti kolot atawa guru; :# ''sabab inget kana '''piwuruk''' guruna.'' (Karena teringat akan nasihat gurunya). :# '''''Piwuruk''' ti sepuh teh kedah diregepkeun, ulah dugi ka urang kaduhung engkena.'' (Pepatah dari orangtua itu harus didengarkan, jangan sampai kita menyesal nantinya). [[Kategori:su:Nomina]] [[Kategori:Kata bahasa Sunda]] ---- {{tarjemahan}} {{(}} * {{id}} : {{trad-|id|pepatah}} {{)}} [[Kategori:id:Nomina]] [[Kategori:Kata bahasa Indonesia]] 5hftbk5u5kraqo6k59nu8ewm8k99m6q 25437 25436 2026-08-30T13:23:03Z Deepturquoise 2456 25437 wikitext text/x-wiki =={{sunda}}== {{émbohan pi-|wuruk|warna=barang}} #piwuruk, pituduh, atawa naséhat ti kolot atawa guru; #: ''sabab inget kana '''piwuruk''' guruna.'' (Karena teringat akan nasihat gurunya). #: '''''Piwuruk''' ti sepuh teh kedah diregepkeun, ulah dugi ka urang kaduhung engkena.'' (Pepatah dari orangtua itu harus didengarkan, jangan sampai kita menyesal nantinya). [[Kategori:su:Nomina]] [[Kategori:Kata bahasa Sunda]] ---- {{tarjemahan}} {{(}} * {{id}} : {{trad-|id|pepatah}} {{)}} [[Kategori:id:Nomina]] [[Kategori:Kata bahasa Indonesia]] srq91222luyidonvkm4g7csgszsl63b ngagoréng 0 9290 25500 25424 2026-08-31T01:22:26Z Oceanmuse 1752 25500 wikitext text/x-wiki =={{sunda}}== {{-k k-|su}} {{audio|su|LL-Q34002 (sun)-Sofi Solihah (Oceanmuse)-ngagoréng.wav|''Pangucapan''}} * kecap pagawéan nu hartina keur nyieun asakan. :* ''Lamun Mamah keur '''ngagoréng''' lauk sok make tipung lantaran bisi minyakna muncrat.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] 55o8yksxqgs7n3gknqim7cntuymrqba nyiksikan 0 9292 25499 25426 2026-08-31T01:21:56Z Oceanmuse 1752 25499 wikitext text/x-wiki =={{sunda}}== {{-k k-|su}} {{audio|su|LL-Q34002 (sun)-Sofi Solihah (Oceanmuse)-nyiksikan.wav|''Pangucapan''}} * kecap pagawéan pikeun motongan hiji-hiji boh sayuran atawa naon baé saacan masak. :* ''Saacan nyieun sayur sop, sayur kawas wortel alusna mah diurus sangkan nu masak '''nyiksikan''' heula tepi ka bersih.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] sweebup0xbk86a299i6onbe4jhdupmm mesékan 0 9293 25427 2026-08-30T12:37:45Z Oceanmuse 1752 Nyieun kaca anyar =={{sunda}}== {{-k k-|su}} * kecap pagawéan pikeun motongan hiji-hiji boh sayuran atawa naon baé saacan masak. :* ''Saacan nyieun sayur sop, sayur kawas wortel alusna mah diurus sangkan nu masak '''mesékan''' heula tepi ka bersih.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] 25427 wikitext text/x-wiki =={{sunda}}== {{-k k-|su}} * kecap pagawéan pikeun motongan hiji-hiji boh sayuran atawa naon baé saacan masak. :* ''Saacan nyieun sayur sop, sayur kawas wortel alusna mah diurus sangkan nu masak '''mesékan''' heula tepi ka bersih.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] fiabto000oh7yo8fuhplu0l62dm94zl 25498 25427 2026-08-31T01:21:15Z Oceanmuse 1752 25498 wikitext text/x-wiki =={{sunda}}== {{audio|su|LL-Q34002 (sun)-Sofi Solihah (Oceanmuse)-mesékan.wav|''Pangucapan''}}{{-k k-|su}} * kecap pagawéan pikeun motongan hiji-hiji boh sayuran atawa naon baé saacan masak. :* ''Saacan nyieun sayur sop, sayur kawas wortel alusna mah diurus sangkan nu masak '''mesékan''' heula tepi ka bersih.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] 0rkdazhw5th5tcxeiwt5r27yq2t2q69 ngawasuh 0 9294 25428 2026-08-30T12:54:16Z Oceanmuse 1752 Nyieun kaca anyar =={{sunda}}== {{-k k-|su}} * kecap pagawéan pikeun mersihan wadah atawa leungeun jeung sampéan, tujuanna sangkan jadi bersih. :* ''Lanceuk kuring meni beuki '''ngawasuh''' wadah lantaran manéhna bisa nyo'o cai.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] 25428 wikitext text/x-wiki =={{sunda}}== {{-k k-|su}} * kecap pagawéan pikeun mersihan wadah atawa leungeun jeung sampéan, tujuanna sangkan jadi bersih. :* ''Lanceuk kuring meni beuki '''ngawasuh''' wadah lantaran manéhna bisa nyo'o cai.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] 67bzqk0c77gzg5he6idyjgs531hkny0 25497 25428 2026-08-31T01:20:40Z Oceanmuse 1752 25497 wikitext text/x-wiki =={{sunda}}== {{-k k-|su}} {{audio|su|LL-Q34002 (sun)-Sofi Solihah (Oceanmuse)-ngawasuh.wav|''Pangucapan''}} * kecap pagawéan pikeun mersihan wadah atawa leungeun jeung sampéan, tujuanna sangkan jadi bersih. :* ''Lanceuk kuring meni beuki '''ngawasuh''' wadah lantaran manéhna bisa nyo'o cai.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] beb4l8eep2nrftba5mlsmp5u52pmvft ngabalikeun 0 9295 25429 2026-08-30T12:55:22Z Oceanmuse 1752 Nyieun kaca anyar =={{sunda}}== {{-k k-|su}} * kecap pagawéan pikeun mindahkeun posisi barang ka sisi sabalikna. :* ''Amun masak lauk, tong loba teuing '''ngabalikeun''' sabab bisi dagingna bubuk.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] 25429 wikitext text/x-wiki =={{sunda}}== {{-k k-|su}} * kecap pagawéan pikeun mindahkeun posisi barang ka sisi sabalikna. :* ''Amun masak lauk, tong loba teuing '''ngabalikeun''' sabab bisi dagingna bubuk.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] c1zcqb9phqdiu0bqceb0mauaw4wea68 25496 25429 2026-08-31T01:20:03Z Oceanmuse 1752 25496 wikitext text/x-wiki =={{sunda}}== {{-k k-|su}} {{audio|su|LL-Q34002 (sun)-Sofi Solihah (Oceanmuse)-ngabalikeun.wav|''Pangucapan''}} * kecap pagawéan pikeun mindahkeun posisi barang ka sisi sabalikna. :* ''Amun masak lauk, tong loba teuing '''ngabalikeun''' sabab bisi dagingna bubuk.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] l5qacdu66xu5gfconm7808k8x9xyqsu ngulub 0 9296 25430 2026-08-30T12:59:28Z Oceanmuse 1752 Nyieun kaca anyar =={{sunda}}== {{-k k-|su}} * kecap pagawéan pikeun manaskeun barang atawa kadaharan sangkan bisa dipake atawa bisa ningkatkeun kahayang dahar. :* ''Amun geus boga orok mah wayahna kudu rajin '''ngulub''' alat dahar budak sangkan beresih tina kuman.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] 25430 wikitext text/x-wiki =={{sunda}}== {{-k k-|su}} * kecap pagawéan pikeun manaskeun barang atawa kadaharan sangkan bisa dipake atawa bisa ningkatkeun kahayang dahar. :* ''Amun geus boga orok mah wayahna kudu rajin '''ngulub''' alat dahar budak sangkan beresih tina kuman.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] 7sfuixonaiil6bexcrd48wgk6l3v2jn 25495 25430 2026-08-31T01:19:34Z Oceanmuse 1752 25495 wikitext text/x-wiki =={{sunda}}== {{-k k-|su}} {{audio|su|LL-Q34002 (sun)-Sofi Solihah (Oceanmuse)-ngulub.wav|''Pangucapan''}} * kecap pagawéan pikeun manaskeun barang atawa kadaharan sangkan bisa dipake atawa bisa ningkatkeun kahayang dahar. :* ''Amun geus boga orok mah wayahna kudu rajin '''ngulub''' alat dahar budak sangkan beresih tina kuman.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] fgwgvnwtnjl1ez56u57t07ern4919io nyacag 0 9297 25431 2026-08-30T13:03:21Z Oceanmuse 1752 Nyieun kaca anyar =={{sunda}}== {{-k k-|su}} * kecap pagawéan nyieun daging atawa barang dipotong kasar. :* ''Lamun rék nyieun burger, dagingna kudu meunang '''nyacag''' pikeun bisa dibakar di luhur alat ''grill''.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] 25431 wikitext text/x-wiki =={{sunda}}== {{-k k-|su}} * kecap pagawéan nyieun daging atawa barang dipotong kasar. :* ''Lamun rék nyieun burger, dagingna kudu meunang '''nyacag''' pikeun bisa dibakar di luhur alat ''grill''.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] a127jop04lb8e53k09520ylnh1z8z8k nyeupan 0 9298 25432 2026-08-30T13:04:32Z Oceanmuse 1752 Nyieun kaca anyar =={{sunda}}== {{-k k-|su}} * kecap pagawéan di mana masak maké uap panas. :* ''Bapa eukeur '''nyeupan''' jagong di teras imah.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] 25432 wikitext text/x-wiki =={{sunda}}== {{-k k-|su}} * kecap pagawéan di mana masak maké uap panas. :* ''Bapa eukeur '''nyeupan''' jagong di teras imah.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] supidiu7v61sg96700uptmyv3heh3l2 25493 25432 2026-08-31T01:18:36Z Oceanmuse 1752 25493 wikitext text/x-wiki =={{sunda}}== {{-k k-|su}} {{audio|su|LL-Q34002 (sun)-Sofi Solihah (Oceanmuse)-nyeupan.wav|''Pangucapan''}} * kecap pagawéan di mana masak maké uap panas. :* ''Bapa eukeur '''nyeupan''' jagong di teras imah.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] 0wkzw10j0l29j7sqca49ta2ubavta2u ngabuleum 0 9299 25433 2026-08-30T13:06:31Z Oceanmuse 1752 Nyieun kaca anyar =={{sunda}}== {{-k k-|su}} * kecap pagawéan nu nuduhkeun kaayaan manggang dahareun di luhur seuneu. :* ''Salian ti jagong meunang ngaseupan, aya oge nu dipanaskeun ku cara '''ngabuleum''' bari diolésan bungbu.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] 25433 wikitext text/x-wiki =={{sunda}}== {{-k k-|su}} * kecap pagawéan nu nuduhkeun kaayaan manggang dahareun di luhur seuneu. :* ''Salian ti jagong meunang ngaseupan, aya oge nu dipanaskeun ku cara '''ngabuleum''' bari diolésan bungbu.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] 0f2epvg8uubmgzqtocri6xyn7yet83y 25492 25433 2026-08-31T01:17:41Z Oceanmuse 1752 25492 wikitext text/x-wiki =={{sunda}}== {{-k k-|su}} {{audio|su|LL-Q34002 (sun)-Sofi Solihah (Oceanmuse)-ngabuleum.wav|''Pangucapan''}} * kecap pagawéan nu nuduhkeun kaayaan manggang dahareun di luhur seuneu. :* ''Salian ti jagong meunang ngaseupan, aya oge nu dipanaskeun ku cara '''ngabuleum''' bari diolésan bungbu.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] 2pz2i936cm3bk6we4lic8vi0rlbtaaf 25494 25492 2026-08-31T01:19:06Z Oceanmuse 1752 25494 wikitext text/x-wiki =={{sunda}}== {{-k k-|su}} {{audio|su|LL-Q34002 (sun)-Sofi Solihah (Oceanmuse)-nyacag.wav|''Pangucapan''}} * kecap pagawéan nu nuduhkeun kaayaan manggang dahareun di luhur seuneu. :* ''Salian ti jagong meunang ngaseupan, aya oge nu dipanaskeun ku cara '''ngabuleum''' bari diolésan bungbu.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] t40fswgnmhnxdld1v2o4l3ugejkzbui ngarih 0 9300 25434 2026-08-30T13:08:49Z Oceanmuse 1752 Nyieun kaca anyar =={{sunda}}== {{-k k-|su}} * kecap pagawéan pikeun ngoérkeun asakan pikeun panasna rata. :* ''Mamah keur '''ngarih''' sangu heula tepi ka panasna kalaluar.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] 25434 wikitext text/x-wiki =={{sunda}}== {{-k k-|su}} * kecap pagawéan pikeun ngoérkeun asakan pikeun panasna rata. :* ''Mamah keur '''ngarih''' sangu heula tepi ka panasna kalaluar.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] 5wjn2qmejaxms7vee94f8u8mjbfcblo 25491 25434 2026-08-31T01:17:06Z Oceanmuse 1752 25491 wikitext text/x-wiki =={{sunda}}== {{-k k-|su}} {{audio|su|LL-Q34002 (sun)-Sofi Solihah (Oceanmuse)-ngarih.wav|''Pangucapan''}} * kecap pagawéan pikeun ngoérkeun asakan pikeun panasna rata. :* ''Mamah keur '''ngarih''' sangu heula tepi ka panasna kalaluar.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] 4bqt94pmn59oblh1jqgude7rizg5ti7 ngakeul 0 9301 25435 2026-08-30T13:10:23Z Oceanmuse 1752 Nyieun kaca anyar =={{sunda}}== {{-k k-|su}} * kecap pagawéan pikeun ngoér asakan, tujuanna ngaleungitkeun panas nu aya basa karék dijait tina wadah. :* ''Saacan didahar, éta sangu kudu aya nu daék '''ngakeul''' heula tepi ka uapna leungit.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] 25435 wikitext text/x-wiki =={{sunda}}== {{-k k-|su}} * kecap pagawéan pikeun ngoér asakan, tujuanna ngaleungitkeun panas nu aya basa karék dijait tina wadah. :* ''Saacan didahar, éta sangu kudu aya nu daék '''ngakeul''' heula tepi ka uapna leungit.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] mx31zbovx6yec7debo6o8oynf63ib0x 25490 25435 2026-08-31T01:16:25Z Oceanmuse 1752 25490 wikitext text/x-wiki =={{sunda}}== {{-k k-|su}} {{audio|su|LL-Q34002 (sun)-Sofi Solihah (Oceanmuse)-ngakeul.wav|''Pangucapan''}} * kecap pagawéan pikeun ngoér asakan, tujuanna ngaleungitkeun panas nu aya basa karék dijait tina wadah. :* ''Saacan didahar, éta sangu kudu aya nu daék '''ngakeul''' heula tepi ka uapna leungit.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] mvon0n90bb5c150z5xusn248igyqmj9 ngarangrangan 0 9302 25438 2026-08-30T13:23:31Z Oceanmuse 1752 Nyieun kaca anyar =={{sunda}}== {{-k k-|su}} * kecap pagawéan nuduhkeun tatangkalan nu garing tepi ka daunna caroplokan. :* ''Lamun geus usum halodo panjang, biasana tatangkalan '''ngarangrangan''' daun tepi ka pabalatak di jalan.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] 25438 wikitext text/x-wiki =={{sunda}}== {{-k k-|su}} * kecap pagawéan nuduhkeun tatangkalan nu garing tepi ka daunna caroplokan. :* ''Lamun geus usum halodo panjang, biasana tatangkalan '''ngarangrangan''' daun tepi ka pabalatak di jalan.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] c32vg2a0w72scz8q2xaegp0s0ces5a6 25489 25438 2026-08-31T01:15:53Z Oceanmuse 1752 25489 wikitext text/x-wiki =={{sunda}}== {{-k k-|su}} {{audio|su|LL-Q34002 (sun)-Sofi Solihah (Oceanmuse)-ngarangrangan.wav|''Pangucapan''}} * kecap pagawéan nuduhkeun tatangkalan nu garing tepi ka daunna caroplokan. :* ''Lamun geus usum halodo panjang, biasana tatangkalan '''ngarangrangan''' daun tepi ka pabalatak di jalan.'' {{kamus|ver=danadibrata}} [[Kategori:Beasiswa Daring-Sofi Solihah]] [[Kategori:Beasiswa Daring - Wiktionary Sunda]] [[Category:WikiRempah]] [[Category:WikiRempah Makassar]] opjbmoph3s47so5xrjuyfsdr3znmxco dikopéah 0 9303 25439 2026-08-30T14:03:12Z Deepturquoise 2456 + 25439 wikitext text/x-wiki =={{sunda}}== {{émbohan di-|kopéah}} #maké '''kopéah''' d7rctt2grdwfwycw8ab2lrre7ij2vr4 dibaju 0 9304 25440 2026-08-30T14:03:22Z Deepturquoise 2456 + 25440 wikitext text/x-wiki =={{sunda}}== {{émbohan di-|baju}} #maké '''baju''' tuh9j60m7n4pv50xp1mefebl0dntnw1 disapatu 0 9305 25441 2026-08-30T14:03:32Z Deepturquoise 2456 + 25441 wikitext text/x-wiki =={{sunda}}== {{émbohan di-|sapatu}} #maké '''sapatu''' awe4eg3n77o2ow5uvzfmdj0jxvop7sp didongkrak 0 9306 25442 2026-08-30T14:03:42Z Deepturquoise 2456 + 25442 wikitext text/x-wiki =={{sunda}}== {{émbohan di-|dongkrak}} #kakeunaan pagawéan maké '''dongkrak''' afe4assdz6jaf8bx1b444fw2m4xtb62 disugu 0 9307 25443 2026-08-30T14:03:52Z Deepturquoise 2456 + 25443 wikitext text/x-wiki =={{sunda}}== {{émbohan di-|sugu}} #kakeunaan pagawéan maké '''sugu''' 9l17ht42z2yev9cweb2r2difxuyr98s dipacul 0 9308 25444 2026-08-30T14:04:02Z Deepturquoise 2456 + 25444 wikitext text/x-wiki =={{sunda}}== {{émbohan di-|pacul}} #kakeunaan pagawéan maké '''pacul''' jdf5tln6rvpa3ggex5xz2ebdqprrbxz ngaruksak 0 9309 25445 2026-08-30T14:04:12Z Deepturquoise 2456 + 25445 wikitext text/x-wiki =={{sunda}}== {{émbohan N-|ruksak}} #nyieun jadi '''ruksak''' 07f5pnbn4y6eipy465gbzw250pelu90 dibulao 0 9310 25446 2026-08-30T14:04:22Z Deepturquoise 2456 + 25446 wikitext text/x-wiki =={{sunda}}== {{émbohan di-|bulao}} #dijieun jadi '''bulao''' dfj9bn3vt4gyusl1z804sl0rjxmp6yu dihormat 0 9311 25448 2026-08-30T14:04:32Z Deepturquoise 2456 + 25448 wikitext text/x-wiki =={{sunda}}== {{émbohan di-|hormat}} #dibéré '''hormat''' e7sonm7rm0zkzn99hay4w92mk33d06x karasa 0 9312 25449 2026-08-30T14:04:42Z Deepturquoise 2456 + 25449 wikitext text/x-wiki =={{sunda}}== {{émbohan ka-|rasa}} #bisa di'''rasa'''keun chxcn2ctjug41zgbxx4mp8ndkd7fm4k kagambar 0 9313 25450 2026-08-30T14:04:52Z Deepturquoise 2456 + 25450 wikitext text/x-wiki =={{sunda}}== {{émbohan ka-|gambar}} #bisa di'''gambar'''keun 7f9a9o325cuyqmfq1od5z4f55d7vwnm kabayang 0 9314 25451 2026-08-30T14:05:02Z Deepturquoise 2456 + 25451 wikitext text/x-wiki =={{sunda}}== {{émbohan ka-|bayang}} #bisa di'''bayang'''keun n9d73mfdyodh28qwirkrwc3ql6x7fse kagéléng 0 9315 25452 2026-08-30T14:05:12Z Deepturquoise 2456 + 25452 wikitext text/x-wiki =={{sunda}}== {{émbohan ka-|géléng}} #teu dihaja di'''géléng''' s6rri5t6gzmumq4bbrgtsl1a4f30yhk katincak 0 9316 25453 2026-08-30T14:05:22Z Deepturquoise 2456 + 25453 wikitext text/x-wiki =={{sunda}}== {{émbohan ka-|tincak}} #teu dihaja di'''tincak''' 2ok23kyga4irinww584w0yp8xrlrxcp katoél 0 9317 25454 2026-08-30T14:05:32Z Deepturquoise 2456 + 25454 wikitext text/x-wiki =={{sunda}}== {{émbohan ka-|toél}} #teu dihaja di'''toél''' j6xssyx1e70aqjjg3rjbrldnkv1735d kabogoh 0 9318 25455 2026-08-30T14:05:42Z Deepturquoise 2456 + 25455 wikitext text/x-wiki =={{sunda}}== {{émbohan ka-|bogoh|warna=barang}} #hal anu dipi'''bogoh''' 67dr0vuackzwfhf35vqmvwwscj6oqwr kahayang 0 9319 25456 2026-08-30T14:05:52Z Deepturquoise 2456 + 25456 wikitext text/x-wiki =={{sunda}}== {{émbohan ka-|hayang|warna=barang}} #hal anu dipi'''hayang''' apegr0i1tdlqroaeiuyh6myl2kx70zs kapélét 0 9320 25457 2026-08-30T14:06:02Z Deepturquoise 2456 + 25457 wikitext text/x-wiki =={{sunda}}== {{émbohan ka-|pélét|warna=sipat}} #kakeunaan ku '''pélét''' be5bgh14nkvf68n9uzqhng1cv6wfzxg kagendam 0 9321 25458 2026-08-30T14:06:12Z Deepturquoise 2456 + 25458 wikitext text/x-wiki =={{sunda}}== {{émbohan ka-|gendam|warna=sipat}} #kakeunaan ku '''gendam''' 2mw5nyxd1eq5mp596ef0dj0ykfrho3r kadua 0 9322 25459 2026-08-30T14:06:22Z Deepturquoise 2456 + 25459 wikitext text/x-wiki =={{sunda}}== {{émbohan ka-|dua|warna=numeralia}} #tahapan atawa bagian '''dua''' nqpd9i6pf8lohokqwfhta7d0c3oq390 kaopat 0 9323 25460 2026-08-30T14:06:32Z Deepturquoise 2456 + 25460 wikitext text/x-wiki =={{sunda}}== {{émbohan ka-|opat|warna=numeralia}} #tahapan atawa bagian '''opat''' 0bt13348t9xsbiyh19oteuk3pr6fon4 katilu 0 9324 25461 2026-08-30T14:06:42Z Deepturquoise 2456 + 25461 wikitext text/x-wiki =={{sunda}}== {{émbohan ka-|tilu|warna=numeralia}} #tahapan atawa bagian '''tilu''' l0ucc4cf9t68fnp3nv21lu8b9bnwzly kalima 0 9325 25462 2026-08-30T14:06:52Z Deepturquoise 2456 + 25462 wikitext text/x-wiki =={{sunda}}== {{émbohan ka-|lima|warna=numeralia}} #tahapan atawa bagian '''lima''' 9xnsdw7vh7o3cakz6xoakw48o1o3f8y kagenep 0 9326 25463 2026-08-30T14:07:02Z Deepturquoise 2456 + 25463 wikitext text/x-wiki =={{sunda}}== {{émbohan ka-|genep|warna=numeralia}} #tahapan atawa bagian '''genep''' 3yvhzygsr9x786dk8z5e08bmjmkmyzt kadalapan 0 9327 25464 2026-08-30T14:07:12Z Deepturquoise 2456 + 25464 wikitext text/x-wiki =={{sunda}}== {{émbohan ka-|kadalapan|warna=numeralia}} #tahapan atawa bagian '''kadalapan''' 5wsiman1aupvlmezeske6uqpm9ceg20 25472 25464 2026-08-30T14:08:24Z Deepturquoise 2456 25472 wikitext text/x-wiki =={{sunda}}== {{émbohan ka-|kadalapan|warna=numeralia}} #tahapan atawa bagian '''dalapan''' kbggytsu7scftgpu5q8xzwgjcsvob87 25475 25472 2026-08-30T14:08:50Z Deepturquoise 2456 25475 wikitext text/x-wiki =={{sunda}}== {{émbohan ka-|dalapan|warna=numeralia}} #tahapan atawa bagian '''dalapan''' qyqxfpfdua2y7v7ssf5jtg7utq0rbuj kasalapan 0 9328 25465 2026-08-30T14:07:22Z Deepturquoise 2456 + 25465 wikitext text/x-wiki =={{sunda}}== {{émbohan ka-|salapan|warna=numeralia}} #tahapan atawa bagian '''salapan''' j7m3hr7ic5h000h7kez8epklgmca3zk kasapuluh 0 9329 25466 2026-08-30T14:07:32Z Deepturquoise 2456 + 25466 wikitext text/x-wiki =={{sunda}}== {{émbohan ka-|sapuluh|warna=numeralia}} #tahapan atawa bagian '''sapuluh''' 0l3i7x91yhfn7zlmu9r0kqkj7dby960 padagang 0 9330 25467 2026-08-30T14:07:42Z Deepturquoise 2456 + 25467 wikitext text/x-wiki =={{sunda}}== {{émbohan pa-|dagang|warna=barang}} #nu biasa/pacabakanana '''dagang''' 2pf12vi76vdf85k5p4bzezzwkmea3a3 panakol 0 9331 25468 2026-08-30T14:07:52Z Deepturquoise 2456 + 25468 wikitext text/x-wiki =={{sunda}}== {{émbohan pa-|takol|warna=barang}} #alat atawa nu dipaké nakol tdg5b5hi5md7yjjg08t4d458hgl1myp paneunggeul 0 9332 25469 2026-08-30T14:08:02Z Deepturquoise 2456 + 25469 wikitext text/x-wiki =={{sunda}}== {{émbohan pa-|teunggeul|warna=barang}} #alat atawa nu dipaké neunggeul jmnjgup88r3bq7d7acnib1vl2dnd1xr barempug 0 9333 25470 2026-08-30T14:08:12Z Deepturquoise 2456 + 25470 wikitext text/x-wiki =={{sunda}}== {{émbohan ba-|rempug}} #ngalakukeun rempug kqnykg6sawnue5o3q27ifzcth9wqedc padamelong 0 9334 25471 2026-08-30T14:08:22Z Deepturquoise 2456 + 25471 wikitext text/x-wiki =={{sunda}}== {{émbohan pada-|melong|warna=verba}} #loba kakeunaan ku pagawéan melong j7zpmiixk8tctaej7jqsk6vax0fqcdr padamoro 0 9335 25473 2026-08-30T14:08:32Z Deepturquoise 2456 + 25473 wikitext text/x-wiki =={{sunda}}== {{émbohan pada-|moro|warna=verba}} #loba kakeunaan ku pagawéan moro f23zlmi0g1uumf00tyvamw29um3ethe barudak 0 9336 25474 2026-08-30T14:08:42Z Deepturquoise 2456 + 25474 wikitext text/x-wiki =={{sunda}}== {{émbohan -ar-|budak}} #loba budak ljok4mhepbvntaabss659sfmkzb0ljr daratang 0 9337 25476 2026-08-30T14:08:52Z Deepturquoise 2456 + 25476 wikitext text/x-wiki =={{sunda}}== {{émbohan -ar-|datang|warna=verba}} #loba nu datang j1f2q0igh1yiqb7my1a3f2e2umbi3xc baralik 0 9338 25477 2026-08-30T14:09:02Z Deepturquoise 2456 + 25477 wikitext text/x-wiki =={{sunda}}== {{émbohan -ar-|balik|warna=verba}} #loba nu balik m6ezvsevziioep69mzrwv5xjt5rsxux arulin 0 9339 25478 2026-08-30T14:09:12Z Deepturquoise 2456 + 25478 wikitext text/x-wiki =={{sunda}}== {{émbohan -ar-|ulin|warna=verba}} #loba nu ulin kybfztfrisgjjn9vh6fogmhecrk5xc5 dalahar 0 9340 25479 2026-08-30T14:09:22Z Deepturquoise 2456 + 25479 wikitext text/x-wiki =={{sunda}}== {{émbohan -ar-|dahar|warna=verba}} #loba nu dahar jad2d2wi15ypx5fbpvnxwjean46uz6n sararé 0 9341 25480 2026-08-30T14:09:32Z Deepturquoise 2456 + 25480 wikitext text/x-wiki =={{sunda}}== {{émbohan -ar-|saré|warna=verba}} #loba nu saré 3xt08kbus07104dzwj9x063igjsy93w nyariwit 0 9342 25481 2026-08-30T14:09:42Z Deepturquoise 2456 + 25481 wikitext text/x-wiki =={{sunda}}== {{émbohan -ar-|ciwit|warna=verba}} #loba nu nyiwit czoshsf1ast3jfw3biom595at31osyf nyarium 0 9343 25482 2026-08-30T14:09:52Z Deepturquoise 2456 + 25482 wikitext text/x-wiki =={{sunda}}== {{émbohan -ar-|cium|warna=verba}} #loba nu nyium sd9vwbllo4t2ejxj7v2gfauvptnjle4 arasup 0 9344 25483 2026-08-30T14:10:02Z Deepturquoise 2456 + 25483 wikitext text/x-wiki =={{sunda}}== {{émbohan -ar-|asup|warna=verba}} #loba nu asup 4ax1xm5xi12f6a2k8odnx94vt06bmcu kumincir 0 9345 25484 2026-08-30T14:10:12Z Deepturquoise 2456 + 25484 wikitext text/x-wiki =={{sunda}}== {{émbohan -um-|kincir|warna=sipat}} #saperti atawa jiga kincir 0tn6s32ps5cgsv34dpr7iw94581lrxz rumasa 0 9346 25485 2026-08-30T14:10:22Z Deepturquoise 2456 + 25485 wikitext text/x-wiki =={{sunda}}== {{émbohan -um-|rasa|warna=sipat}} #boga rasa j4rj130tt97ta0cxee1jgrz6v48h3ub sinatria 0 9347 25486 2026-08-30T14:10:32Z Deepturquoise 2456 + 25486 wikitext text/x-wiki =={{sunda}}== {{émbohan -in-|satria}} #nu siga satria 1w3mejk2icz27xqomsfwja3ei758r7l pinandita 0 9348 25487 2026-08-30T14:10:42Z Deepturquoise 2456 + 25487 wikitext text/x-wiki =={{sunda}}== {{émbohan -in-|pandita}} #nu siga pandita 93by3bvm4bwv6i6r18jpbrys1r3rrih