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 = " +‎ ",
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 = " +‎ ",
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