Wikikamus
mswiktionary
https://ms.wiktionary.org/wiki/Wikikamus:Laman_Utama
MediaWiki 1.47.0-wmf.2
case-sensitive
Media
Khas
Perbincangan
Pengguna
Perbincangan pengguna
Wikikamus
Perbincangan Wikikamus
Fail
Perbincangan fail
MediaWiki
Perbincangan MediaWiki
Templat
Perbincangan templat
Bantuan
Perbincangan bantuan
Kategori
Perbincangan kategori
Lampiran
Perbincangan lampiran
Rima
Perbincangan rima
Tesaurus
Perbincangan tesaurus
Indeks
Perbincangan indeks
Petikan
Perbincangan petikan
Rekonstruksi
Perbincangan rekonstruksi
Padanan isyarat
Perbincangan padanan isyarat
Konkordans
Perbincangan konkordans
TimedText
TimedText talk
Modul
Perbincangan modul
Acara
Perbincangan acara
Templat:Hira-categoryTOC
10
4433
342770
24967
2026-05-16T06:52:37Z
Hakimi97
2668
Hakimi97 telah memindahkan laman [[Templat:categoryTOChiragana]] ke [[Templat:Hira-categoryTOC]]
24967
wikitext
text/x-wiki
<small><big class="plainlinks">
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}}} Atas] -
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%82}} あ]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%84}} い]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%86}} う]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%88}} え]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%8A}} お]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%8B}} か]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%8D}} き]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%8F}} く]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%91}} け]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%93}} こ]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%95}} さ]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%97}} し]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%99}} す]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%9B}} せ]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%9D}} そ]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%9F}} た]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%A1}} ち]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%A4}} つ]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%A6}} て]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%A8}} と]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%AA}} な]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%AB}} に]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%AC}} ぬ]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%AD}} ね]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%AE}} の]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%AF}} は]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%B2}} ひ]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%B5}} ふ]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%B8}} へ]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%BB}} ほ]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%BE}} ま]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%BF}} み]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%80}} む]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%81}} め]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%82}} も]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%84}} や]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%86}} ゆ]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%88}} よ]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%89}} ら]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%8A}} り]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%8B}} る]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%8C}} れ]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%8D}} ろ]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%8F}} わ]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%93}} ん]</big></small>
<noinclude>[[Category:Templat TOC|categoryTOC-hiragana]]</noinclude>
58tk8vl7q53c2g0wfctf42e8oo3lxdd
342772
342770
2026-05-16T06:54:20Z
Hakimi97
2668
342772
wikitext
text/x-wiki
<small><big class="plainlinks">
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}}} Atas]<br/>
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%82}} あ]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%84}} い]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%86}} う]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%88}} え]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%8A}} お]<br/>
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%8B}} か]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%8D}} き]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%8F}} く]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%91}} け]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%93}} こ]<br/>
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%95}} さ]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%97}} し]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%99}} す]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%9B}} せ]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%9D}} そ]<br/>
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%9F}} た]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%A1}} ち]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%A4}} つ]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%A6}} て]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%A8}} と]<br/>
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%AA}} な]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%AB}} に]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%AC}} ぬ]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%AD}} ね]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%AE}} の]<br/>
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%AF}} は]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%B2}} ひ]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%B5}} ふ]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%B8}} へ]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%BB}} ほ]<br/>
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%BE}} ま]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%81%BF}} み]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%80}} む]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%81}} め]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%82}} も]<br/>
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%84}} や] ・
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%86}} ゆ] ・
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%88}} よ]<br/>
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%89}} ら]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%8A}} り]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%8B}} る]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%8C}} れ]
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%8D}} ろ]<br/>
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%8F}} わ] ・
[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|from=%E3%82%93}} ん]</big></small>
<noinclude>{{tcat}}</noinclude>
rjzowxbol0j4f2qeneqlw76aowil9r5
Modul:category tree/poscatboiler
828
11508
342753
257822
2026-05-16T04:12:01Z
Hakimi97
2668
Mengemas kini mengikut padanan Wikikamus bahasa Inggeris (semakan [[en:Special:Diff/89592293|89592293]])
342753
Scribunto
text/plain
local lang_independent_data = require("Module:category tree/data")
local lang_specific_module = "Module:category tree/lang"
local lang_specific_module_prefix = lang_specific_module .. "/"
local family_specific_module = "Module:category tree/fam"
local family_specific_module_prefix = family_specific_module .. "/"
local labels_utilities_module = "Module:labels/utilities"
local template_parser_module = "Module:template parser"
local concat = table.concat
local dump = mw.dumpObject
local expand_template = require("Module:frame").expandTemplate
local insert = table.insert
local is_callable = require("Module:fun").is_callable
local lcfirst = require("Module:string utilities").lcfirst
local list_to_set = require("Module:table").listToSet
local make_title = mw.title.makeTitle
local new_title = mw.title.new
local parse = require(template_parser_module).parse
local sparse_concat = require("Module:table").sparseConcat
local tostring = tostring
local type = type
local ucfirst = require("Module:string utilities").ucfirst
local uupper = require("Module:string utilities").upper
local function internal_error(msg)
error("Internal error: " .. msg)
end
local function get_lang(...)
local _get_lang = require("Module:languages").getByCode
function get_lang(...)
return _get_lang(...) or require("Module:languages/errorGetBy").code(...)
end
return get_lang(...)
end
local function get_script(...)
local _get_script = require("Module:scripts").getByCode
function get_script(code)
return _get_script(code) or require("Module:languages/error")(code, true, "script code")
end
return get_script(...)
end
-- Category object
local Category = {}
Category.__index = Category
function Category:get_originating_info()
local originating_info = ""
if self._info.originating_label then
originating_info = " (originating from label \"" .. self._info.originating_label .. "\" in module [[" .. self._info.originating_module .. "]])"
end
return originating_info
end
local valid_keys = list_to_set{"code", "label", "sc", "raw", "args", "also", "called_from_inside", "originating_label", "originating_module"}
function Category.new(info)
for key in pairs(info) do
if not valid_keys[key] then
internal_error("The parameter \"" .. key .. "\" was not recognized.")
end
end
local self = setmetatable({}, Category)
self._info = info
if not self._info.label then
internal_error("No label was specified.")
end
self:initCommon()
if not self._data then
internal_error("The " .. (self._info.raw and "raw " or "") .. "label \"" .. self._info.label .. "\" does not exist" .. self:get_originating_info() .. ".")
end
return self
end
function Category:initCommon()
local function patch_args(args)
-- This fixes the issue with Scribunto automatically converting keys
-- in a table as numbers to strings, which in turn causes a circular
-- error for having argument parameter names as numbers as strings.
if type(args) ~= "table" then
return args
end
local new_args = {}
for k, v in pairs(args) do
if type(k) == "string" and string.len(k) < 10 and not string.match(k, "^0") and string.match(k, "^%d+$") then
new_args[tonumber(k)] = patch_args(v)
else
new_args[k] = patch_args(v)
end
end
return new_args
end
local args_handled = false
if self._info.raw then
-- Check if the category exists
local raw_categories = lang_independent_data["RAW_CATEGORIES"]
self._data = raw_categories[self._info.label]
if self._data then
if self._data.lang then
self._lang = get_lang(self._data.lang, nil, true)
self._info.code = self._lang:getCode()
end
if self._data.sc then
self._sc = get_script(self._data.sc)
self._info.sc = self._sc:getCode()
end
else
-- Go through raw handlers
local data = {
category = self._info.label,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
for _, handler in ipairs(lang_independent_data["RAW_HANDLERS"]) do
self._data, args_handled = handler.handler(data)
if self._data then
self._data.module = self._data.module or handler.module
break
end
end
if self._data then
-- Update the label if the handler specified a canonical name for it.
if self._data.canonical_name then
self._info.canonical_name = self._data.canonical_name
end
if self._data.lang then
if type(self._data.lang) ~= "string" then
internal_error("Received non-string value " .. dump(self._data.lang) .. " for self._data.lang, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".")
end
self._lang = get_lang(self._data.lang, nil, true)
self._info.code = self._lang:getCode()
end
if self._data.sc then
if type(self._data.sc) ~= "string" then
internal_error("Received non-string value " .. dump(self._data.sc) .. " for self._data.sc, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".")
end
self._sc = get_script(self._data.sc)
self._info.sc = self._sc:getCode()
end
end
end
else
-- Already parsed into language + label
if self._info.code then
self._lang = get_lang(self._info.code, nil, true)
else
self._lang = nil
end
if self._info.sc then
self._sc = get_script(self._info.sc)
else
self._sc = nil
end
self._info.orig_label = self._info.label
-- If the label was packed with a \0 separator (from split_lang_label for mid-lang titles),
-- reconstruct the canonical label key used in LABELS data modules.
-- e.g. "Perkataan\0yang baru" → canonical key "Perkataan yang baru"
if self._info.label:find("\0", 1, true) then
self._info.label = self._info.label:gsub("%z", " ")
end
if not self._lang then
-- Umbrella categories without a preceding language always begin with a capital letter, but the actual label may be
-- lowercase (cf. [[:Category:Nouns by language]] with label 'nouns' with per-language [[:Category:English nouns]];
-- but [[:Category:Reddit slang by language]] with label 'Reddit slang' with per-language
-- [[:Category:English Reddit slang]]). Since the label is almost always lowercase, we lowercase it for umbrella
-- categories, storing the original into `orig_label`, and correct it later if needed.
self._info.label = lcfirst(self._info.label)
end
-- First, check lang-specific labels and handlers if this is not an umbrella category.
if self._lang then
local objects_with_modules = require(lang_specific_module)
local obj, seen = self._lang, {}
local object_specific_module_prefix = lang_specific_module_prefix
local is_family = false
repeat
if objects_with_modules[obj:getCode()] then
local module = object_specific_module_prefix .. obj:getCode()
local labels_and_handlers = require(module)
if labels_and_handlers.LABELS then
self._data = labels_and_handlers.LABELS[self._info.label]
if self._data then
if not is_family and self._data.umbrella == nil and self._data.umbrella_parents == nil then
self._data.umbrella = false
end
self._data.module = self._data.module or module
end
end
if not self._data and labels_and_handlers.HANDLERS then
for _, handler in ipairs(labels_and_handlers.HANDLERS) do
local data = {
label = self._info.label,
lang = self._lang,
sc = self._sc,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
self._data, args_handled = handler(data)
if self._data then
if not is_family and self._data.umbrella == nil and
self._data.umbrella_parents == nil then
self._data.umbrella = false
end
self._data.module = self._data.module or module
break
end
end
end
if self._data then
break
end
end
seen[obj:getCode()] = true
obj = obj:getFamily()
if not is_family then
is_family = true
object_specific_module_prefix = family_specific_module_prefix
objects_with_modules = require(family_specific_module)
end
until not obj or seen[obj:getCode()]
end
local function fetch_label_data(labels)
self._data = labels[self._info.label]
-- See comment above about uppercase- vs. lowercase-initial labels, which are indistinguishable
-- in umbrella categories.
if not self._data then
self._data = labels[self._info.orig_label]
if self._data then
self._info.label = self._info.orig_label
end
end
end
-- Then check lang-independent labels.
if not self._data then
-- lang_independent_data.LABELS should always exist.
fetch_label_data(lang_independent_data.LABELS)
if not self._data and not self._lang then
-- Check family-specific labels for umbrella label.
local families_with_modules = require(family_specific_module)
for famcode, _ in pairs(families_with_modules) do
local module = family_specific_module_prefix .. famcode
local labels_and_handlers = require(module)
if labels_and_handlers.LABELS then
fetch_label_data(labels_and_handlers.LABELS)
if self._data then
self._data.module = self._data.module or module
break
end
end
end
end
end
-- Then check lang-independent handlers.
if not self._data then
local data = {
label = self._info.label,
lang = self._lang,
sc = self._sc,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
for _, handler in ipairs(lang_independent_data["HANDLERS"]) do
self._data, args_handled = handler.handler(data)
if self._data then
self._data.module = self._data.module or handler.module
break
end
end
if not self._data and not self._lang then
-- Check family-specific labels for umbrella handler.
local families_with_modules = require(family_specific_module)
for famcode, _ in pairs(families_with_modules) do
local module = family_specific_module_prefix .. famcode
local labels_and_handlers = require(module)
if labels_and_handlers.HANDLERS then
for _, handler in ipairs(labels_and_handlers.HANDLERS) do
local data = {
label = self._info.label,
sc = self._sc,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
self._data, args_handled = handler(data)
if self._data then
self._data.module = self._data.module or module
break
end
end
end
if self._data then
break
end
end
end
end
end
if not args_handled and self._data and self._info.args and next(self._info.args) then
local module_text = " (handled in [[" .. (self._data.module or "UNKNOWN").. "]])"
local args_text = {}
for k, v in pairs(self._info.args) do
insert(args_text, k .. "=" .. ((type(v) == "string" or type(v) == "number") and v or dump(v)))
end
error("poscatboiler label '" .. self._info.label .. "' " .. module_text .. " doesn't accept extra args " ..
concat(args_text, ", "))
end
if self._sc and not self._lang then
internal_error("Umbrella categories cannot have a script specified.")
end
end
function Category:convert_spec_to_string(desc)
if not desc then
return desc
end
local desc_type = type(desc)
if desc_type == "string" then
return desc
elseif desc_type == "number" then
return tostring(desc)
elseif not is_callable(desc) then
internal_error("`desc` must be a string, number, function, callable table or nil; received " .. dump(desc))
end
desc = desc {
lang = self._lang,
sc = self._sc,
label = self._info.label,
raw = self._info.raw,
}
if not desc then
return desc
end
desc_type = type(desc)
if desc_type == "string" then
return desc
end
internal_error("The value returned by `desc` must be a string or nil; received " .. dump(desc))
end
local function add_obj_args(args, obj, obj_type)
if obj then
args[obj_type .. "code"] = obj:getCode()
args[obj_type .. "name"] = obj:getCanonicalName()
args[obj_type .. "disp"] = obj:getDisplayForm()
args[obj_type .. "cat"] = obj:getCategoryName()
args[obj_type .. "link"] = obj:makeCategoryLink()
end
end
-- Expands `desc` like a template, passing values for specs like {{{langname}}}.
function Category:substitute_template_specs(desc)
-- This may end up happening twice but that's OK as the function is (usually) idempotent.
-- FIXME: Not idempotent if a preprocessed template returns wikicode.
desc = self:convert_spec_to_string(desc)
if not desc then
return nil
end
-- Populate the substitution arguments.
local args = {}
args.umbrella_msg = "Kategori ini merupakan sebuah kategori payung. Ia tidak mengandungi sebarang entri kamus, sebaliknya hanya mengandungi kategori khusus bahasa lain, yang seterusnya mengandungi istilah yang berkaitan dalam bahasa tertentu."
args.umbrella_meta_msg = "Kategori ini merupakan sebuah metakategori payung, yang meliputi bidang umum seperti \"lema\", \"nama\" atau \"perkataan mengikut etimologi\". Ia tidak mengandungi sebarang entri kamus, sebaliknya hanya mengandungi kategori payung (\"mengikut bahasa\") yang merangkumi subtopik tertentu, yang seterusnya mengandungi kategori khusus bahasa yang mengandungi istilah dalam bahasa tertentu untuk topik yang sama."
add_obj_args(args, self._lang, "lang")
add_obj_args(args, self._sc, "sc")
return parse(desc, true):expand(args)
end
function Category:substitute_template_specs_in_args(args)
if not args then
return args
end
local pinfo = {}
for k, v in pairs(args) do
pinfo[self:substitute_template_specs(k)] = self:substitute_template_specs(v)
end
return pinfo
end
function Category:make_new(info)
info.originating_label = self._info.label
info.originating_module = self._data.module
info.called_from_inside = true
return Category.new(info)
end
function Category:getBreadcrumbName()
local ret
if self._lang or self._info.raw then
ret = self._data.breadcrumb or self._data.breadcrumb_and_first_sort_key or
self._data.breadcrumb_and_first_sort_base or nil
else
ret = self._data.umbrella and (self._data.umbrella.breadcrumb or
self._data.umbrella.breadcrumb_and_first_sort_key or self._data.umbrella.breadcrumb_and_first_sort_base) or
nil
end
if not ret then
ret = self._info.label
end
if type(ret) ~= "table" then
ret = {name = ret}
end
local name = self:substitute_template_specs(ret.name)
local nocap = ret.nocap
if self._sc then
name = name .. " dalam tulisan " .. self._sc:getDisplayForm()
end
return name, nocap
end
local function expand_toc_template_if(template)
local template_obj = new_title(template, 10)
if template_obj.exists then
return expand_template{title = template_obj.text}
end
return nil
end
-- Return the textual expansion of the first existing template among the given templates, first performing
-- substitutions on the template name such as replacing {{{langcode}}} with the current language's code (if any).
-- If no templates exist after expansion, or if nil is passed in, return nil. If a single string is passed in,
-- treat it like a one-element list consisting of that string.
function Category:get_template_text(templates)
if templates == nil then
return nil
elseif type(templates) ~= "table" then
templates = {templates}
end
for _, template in ipairs(templates) do
if template == false then
return false
end
template = self:substitute_template_specs(template)
return expand_toc_template_if(template)
end
return nil
end
function Category:getTOC(toc_type)
-- Type "none" means everything fits on a single page; in that case, display nothing.
if toc_type == "none" then
return nil
end
local templates, fallback_templates
-- If TOC type is "full" (more than 2500 entries), do the following, in order:
-- 1. look up and expand the `toc_template_full` templates (normal or umbrella, depending on whether there is
-- a current language);
-- 2. look up and expand the `toc_template` templates (normal or umbrella, as above);
-- 3. do the default behavior, which is as follows:
-- 3a. look up a language-specific "full" template according to the current language (using English if there
-- is no current language);
-- 3b. look up a script-specific "full" template according to the first script of current language (using English
-- if there is no current language);
-- 3c. look up a language-specific "normal" template according to the current language (using English if there
-- is no current language);
-- 3d. look up a script-specific "normal" template according to the first script of the current language (using
-- English if there is no current language);
-- 3e. display nothing.
--
-- If TOC type is "normal" (between 200 and 2500 entries), do the following, in order:
-- 1. look up and expand the `toc_template` templates (normal or umbrella, depending on whether there is
-- a current language);
-- 2. do the default behavior, which is as follows:
-- 2a. look up a language-specific "normal" template according to the current language (using English if there
-- is no current language);
-- 2b. look up a script-specific "normal" template according to the first script of the current language (using
-- English if there is no current language);
-- 2c. display nothing.
local data_source
if self._lang or self._info.raw then
data_source = self._data
else
data_source = self._data.umbrella
end
if data_source then
if toc_type == "full" then
templates = data_source.toc_template_full
fallback_templates = data_source.toc_template
else
templates = data_source.toc_template
end
end
local text = self:get_template_text(templates)
if text then
return text
elseif text == false then
return nil
end
text = self:get_template_text(fallback_templates)
if text then
return text
elseif text == false then
return nil
end
local default_toc_templates_to_check = {}
local lang, sc = self:getCatfixInfo()
local langcode = lang and lang:getCode() or "ms"
local sccode = sc and sc:getCode() or lang and lang:getScriptCodes()[1] or "Latn"
-- FIXME: What is toctemplateprefix used for?
local tocname = (self._data.toctemplateprefix or "") .. "categoryTOC"
if toc_type == "full" then
insert(default_toc_templates_to_check, ("%s-%s/full"):format(langcode, tocname))
insert(default_toc_templates_to_check, ("%s-%s/full"):format(sccode, tocname))
end
insert(default_toc_templates_to_check, ("%s-%s"):format(langcode, tocname))
insert(default_toc_templates_to_check, ("%s-%s"):format(sccode, tocname))
for _, toc_template in ipairs(default_toc_templates_to_check) do
local toc_template_text = expand_toc_template_if(toc_template)
if toc_template_text then
return toc_template_text
end
end
return nil
end
function Category:getInfo()
return self._info
end
function Category:getDataModule()
return self._data.module
end
function Category:canBeEmpty()
if self._lang or self._info.raw then
return self._data.can_be_empty
end
return self._data.umbrella and self._data.umbrella.can_be_empty
end
function Category:isHidden()
if self._lang or self._info.raw then
return self._data.hidden
end
return self._data.umbrella and self._data.umbrella.hidden
end
function Category:getCategoryName()
if self._info.raw then
return self._info.canonical_name or self._info.label
elseif self._lang then
local langname = self._lang:getCanonicalName()
local connector = (self._data and self._data.lang_connector) or "bahasa"
local ret
-- Case 1: label data explicitly declares lang_position = "mid" with label_before/label_after.
if self._data and self._data.lang_position == "mid" then
local before = self._data.label_before or self._info.label
local after = self._data.label_after or ""
ret = before .. " " .. connector .. " " .. langname
if after ~= "" then
ret = ret .. " " .. after
end
-- Case 2: label was parsed from a mid-lang title; before\0after packed in self._info.label.
elseif self._info.label:find("\0", 1, true) then
local before, after = self._info.label:match("^(.-)%z(.*)$")
ret = before .. " " .. connector .. " " .. langname
if after and after ~= "" then
ret = ret .. " " .. after
end
-- Case 3: default — label precedes "bahasa LANG" (original behaviour).
else
ret = self._info.label .. " " .. connector .. " " .. langname
end
if self._sc then
ret = ret .. " dalam tulisan " .. self._sc:getDisplayForm()
end
return ucfirst(ret)
end
local ret = ucfirst(self._info.label)
if not (self._data.no_by_language or self._data.umbrella and self._data.umbrella.no_by_language) then
ret = ret .. " mengikut bahasa"
end
return ret
end
function Category:getTopright()
if self._lang or self._info.raw then
return self:substitute_template_specs(self._data.topright)
end
return self._data.umbrella and self:substitute_template_specs(self._data.umbrella.topright)
end
function Category:display_title(displaytitle, lang)
if type(displaytitle) == "string" then
displaytitle = self:substitute_template_specs(displaytitle)
else
displaytitle = displaytitle(self:getCategoryName(), lang)
end
mw.getCurrentFrame():callParserFunction("DISPLAYTITLE", "Kategori:" .. displaytitle)
end
function Category:get_labels_categorizing()
local m_labels_utilities = require(labels_utilities_module)
local pos_cat_labels, sense_cat_labels, use_tlb
pos_cat_labels = m_labels_utilities.find_labels_for_category(self._info.label, "pos", self._lang)
local sense_label = self._info.label:match("^Perkataan (.*)$")
if sense_label then
use_tlb = true
else
sense_label = self._info.label:match("^Perkataan dengan erti (.*)$")
end
if not sense_label then
return nil
end
sense_cat_labels = m_labels_utilities.find_labels_for_category(sense_label, "sense", self._lang)
if use_tlb then
return m_labels_utilities.format_labels_categorizing(pos_cat_labels, sense_cat_labels, self._lang)
end
local all_labels = pos_cat_labels
for k, v in pairs(sense_cat_labels) do
all_labels[k] = v
end
return m_labels_utilities.format_labels_categorizing(all_labels, nil, self._lang)
end
-- FIXME: this is clunky.
local function remove_lang_params(desc)
-- Simply remove a language name/code/category from the beginning of the string, but replace the language name
-- in the middle of the string with either "tertentu" or "specific-language" depending on whether the
-- language name appears to be an attributive qualifier of another noun or to stand by itself. This may be wrong,
-- in which case the category in question should supply its own umbrella description.
desc = desc:gsub("^{{{langname}}} ", "")
:gsub("{{{langname}}} %(", "tertentu (")
:gsub("{{{langname}}}([.,])", "tertentu%1")
:gsub("{{{langname}}} ", "tertentu ")
:gsub("{{{langdisp}}}", "tertentu")
:gsub("{{{langlink}}}", "tertentu")
return desc
end
function Category:getDescription(isChild)
-- Allows different text in the list of a category's children
local isChild = isChild == "child"
if self._lang or self._info.raw then
if not isChild and self._data.displaytitle then
self:display_title(self._data.displaytitle, self._lang)
end
if self._sc then
return self:getCategoryName() .. "."
end
local desc = self:substitute_template_specs(self._data.description)
if not desc then
return nil
elseif isChild then
return desc
end
return sparse_concat({
self:substitute_template_specs(self._data.preceding),
desc,
self:substitute_template_specs(self._data.additional),
self:substitute_template_specs(self:get_labels_categorizing()),
}, "\n\n")
end
local umbrella = self._data.umbrella
if not isChild and umbrella and umbrella.displaytitle then
self:display_title(umbrella.displaytitle)
end
local desc = self:substitute_template_specs(umbrella and umbrella.description)
local has_umbrella_desc = not not desc
if not desc then
desc = self:convert_spec_to_string(self._data.description)
if desc then
desc = remove_lang_params(desc)
desc = lcfirst(desc)
desc = desc:gsub("%.$", "")
desc = "Kategori dengan " .. desc .. "."
else
desc = "Kategori dengan " .. self._info.label .. " dalam pelbagai bahasa tertentu."
end
desc = self:substitute_template_specs(desc)
end
if isChild then
return desc
end
return sparse_concat({
self:substitute_template_specs(umbrella and umbrella.preceding or not has_umbrella_desc and self._data.preceding),
desc,
self:substitute_template_specs(umbrella and umbrella.additional or not has_umbrella_desc and self._data.additional),
self:substitute_template_specs("{{{umbrella_msg}}}"),
self:substitute_template_specs(self:get_labels_categorizing()),
}, "\n\n")
end
function Category:new_sortkey(sortkey)
local sortkey_type = type(sortkey)
if sortkey_type == "string" then
sortkey = uupper(sortkey)
elseif sortkey_type == "table" then
function sortkey:makeSortKey()
local sort_func = self.sort_func
if sort_func ~= nil then
return sort_func(self.sort_base)
end
local lang = self.lang
if lang == nil then
return self.sort_base
end
lang = get_lang(lang, nil, true)
if lang == nil then
return self.sort_base
end
local sc = self.sc
if sc ~= nil then
sc = get_script(sc)
end
return lang:makeSortKey(self.sort_base, sc)
end
end
return sortkey
end
function Category:inherit_spec(spec, parent_spec, substitute_result)
if spec == false then
return nil
end
local retval = spec or parent_spec
if substitute_result then
retval = self:substitute_template_specs(retval)
end
return retval
end
function Category:canonicalize_parents_children(cats, is_children, fallback_sort_key, fallback_sort_base)
if not cats then
return nil
elseif type(cats) == "table" then
if cats.name or cats.module then
cats = {cats}
elseif #cats == 0 then
return nil
end
else
cats = {cats}
end
local ret = {}
for _, cat in ipairs(cats) do
if type(cat) ~= "table" or not cat.name and not cat.module then
cat = {name = cat}
end
insert(ret, cat)
end
local is_umbrella = not self._lang and not self._info.raw
local table_type = is_children and "extra_children" or "parents"
for i, cat in ipairs(ret) do
local raw
if self._info.raw or is_umbrella then
raw = not cat.is_label
else
raw = cat.raw
end
local lang = self:inherit_spec(cat.lang, not raw and self._info.code or nil, "substitute")
local sc = self:inherit_spec(cat.sc, not raw and self._info.sc or nil, "substitute")
-- Get the sortkey.
local sortkey = self:inherit_spec(cat.sort, i == 1 and (fallback_sort_key or fallback_sort_base and {sort_base = fallback_sort_base}) or nil)
if type(sortkey) == "table" then
sortkey.sort_base = self:substitute_template_specs(sortkey.sort_base) or
internal_error("Missing .sort_base in '" .. table_type .. "' .sort table for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
if sortkey.sort_func then
-- Not allowed to give a lang and/or script if sort_func is given.
local bad_spec = sortkey.lang and "lang" or sortkey.sc and "sc" or nil
if bad_spec then
internal_error("Cannot specify both ." .. bad_spec .. " and .sort_func in '" .. table_type ..
"' .sort table for '" .. self._info.label .. "' category entry in module '" ..
(self._data.module or "unknown") .. "'")
end
else
sortkey.lang = self:inherit_spec(sortkey.lang, lang, "substitute")
sortkey.sc = self:inherit_spec(sortkey.sc, sc, "substitute")
end
else
sortkey = self:substitute_template_specs(sortkey)
end
local name
if cat.module then
-- A reference to a category using another category tree module.
if not cat.args then
internal_error("Missing .args in '" .. table_type .. "' table with module=\"" .. cat.module .. "\" for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
end
name = require("Module:category tree/" .. cat.module).new(self:substitute_template_specs_in_args(cat.args))
else
name = cat.name
if not name then
internal_error("Missing .name in " .. (is_umbrella and "umbrella " or "") .. "'" .. table_type .. "' table for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
elseif type(name) == "string" then -- otherwise, assume it's a category object and use it directly
name = self:substitute_template_specs(name)
if name:find("^Kategori:") then
-- It's a non-poscatboiler category name.
sortkey = sortkey or is_children and name:gsub("^Kategori:", "") or self:getCategoryName()
else
-- It's a label.
sortkey = sortkey or is_children and name or self._info.label
name = self:make_new{
label = name, code = lang, sc = sc,
raw = raw, args = self:substitute_template_specs_in_args(cat.args)
}
end
end
end
sortkey = sortkey or is_children and " " or self._info.label
ret[i] = {
name = name,
description = is_children and self:substitute_template_specs(cat.description) or nil,
sort = self:new_sortkey(sortkey)
}
end
return ret
end
function Category:getParents()
local is_umbrella, ret = not self._lang and not self._info.raw
if self._sc then
local parent1 = self:make_new{code = self._info.code, label = "Perkataan dalam tulisan " .. self._sc:getCanonicalName()}
local parent2 = self:make_new{code = self._info.code, label = self._info.label, raw = self._info.raw, args = self._info.args}
ret = {
{name = parent1, sort = self._sc:getCanonicalName()},
{name = parent2, sort = self._sc:getCanonicalName()},
}
else
local parents, fallback_sort_key, fallback_sort_base
if is_umbrella then
parents = self._data.umbrella and self._data.umbrella.parents or self._data.umbrella_parents
fallback_sort_key = self._data.umbrella and self._data.umbrella.breadcrumb_and_first_sort_key or nil
fallback_sort_base = self._data.umbrella and self._data.umbrella.breadcrumb_and_first_sort_base or nil
else
parents = self._data.parents
fallback_sort_key = self._data.breadcrumb_and_first_sort_key
fallback_sort_base = self._data.breadcrumb_and_first_sort_base
end
ret = self:canonicalize_parents_children(parents, nil, fallback_sort_key, fallback_sort_base)
if not ret then
return nil
end
end
local self_cat = self:getCategoryName()
for _, parent in ipairs(ret) do
local parent_cat = parent.name.getCategoryName and parent.name:getCategoryName()
if self_cat == parent_cat then
internal_error(("Infinite loop would occur, as parent category '%s' is the same as the child category"):format(self_cat))
end
end
return ret
end
function Category:getChildren()
local is_umbrella = not self._lang and not self._info.raw
local children = self._data.children
local ret = {}
if not is_umbrella and children then
for _, child in ipairs(children) do
child = mw.clone(child)
if type(child) ~= "table" then
child = {name = child}
end
if not child.sort then
child.sort = child.name
end
-- FIXME, is preserving the script correct?
child.name = self:make_new{code = self._info.code, label = child.name, raw = child.raw, sc = self._info.sc}
insert(ret, child)
end
end
local extra_children
if is_umbrella then
extra_children = self._data.umbrella and self._data.umbrella.extra_children
else
extra_children = self._data.extra_children
end
extra_children = self:canonicalize_parents_children(extra_children, "children")
if extra_children then
for _, child in ipairs(extra_children) do
insert(ret, child)
end
end
return #ret > 0 and ret or nil
end
function Category:getUmbrella()
local umbrella = self._data.umbrella
if umbrella == false or self._info.raw or not self._lang or self._sc then
return nil
end
-- If `umbrella` is a string, use that; otherwise, use the label.
return self:make_new({label = type(umbrella) == "string" and umbrella or self._info.label})
end
function Category:getAppendix()
-- FIXME, this should be customizable.
local lang, label = self._lang, self._info.label
if self._info.raw or not (lang and label) then
return nil
end
local appendix = make_title(100, label .. " bahasa " .. lang:getCanonicalName())
return appendix.exists and appendix.fullText or nil
end
function Category:getCatfixInfo()
if self._lang or self._sc or self._info.raw then
local langcode, sccode = self._data.catfix, self._data.catfix_sc
local lang, sc
if langcode then
langcode = self:substitute_template_specs(langcode)
lang = get_lang(langcode, nil, true)
elseif langcode == nil then -- not false
lang = self._lang
end
if sccode then
sccode = self:substitute_template_specs(sccode)
sc = get_script(sccode)
elseif sccode == nil then -- not false
sc = self._sc
end
if lang then
lang = lang:getFull()
end
return lang, sc
elseif not self._data.umbrella then
return
end
-- umbrella
local langcode, sccode = self._data.umbrella.catfix, self._data.umbrella.catfix_sc
local lang, sc
if langcode then
langcode = self:substitute_template_specs(langcode)
lang = get_lang(langcode, nil, true)
end
if sccode then
sccode = self:substitute_template_specs(sccode)
sc = get_script(sccode)
end
if lang then
lang = lang:getFull()
end
return lang, sc
end
function Category:getTOCTemplateName()
-- This should only be invoked if getTOC() returns true, meaning to do the default algorithm, but getTOC()
-- implements its own default algorithm.
internal_error("This should never get called")
end
local export = {}
function export.main(info)
local self = setmetatable({_info = info}, Category)
self:initCommon()
return self._data and self or nil
end
export.new = Category.new
return export
syin42b26pfli4cmoza5ztx95i0pg1c
342777
342753
2026-05-16T08:32:09Z
Hakimi97
2668
342777
Scribunto
text/plain
local lang_independent_data = require("Module:category tree/data")
local lang_specific_module = "Module:category tree/lang"
local lang_specific_module_prefix = lang_specific_module .. "/"
local family_specific_module = "Module:category tree/fam"
local family_specific_module_prefix = family_specific_module .. "/"
local labels_utilities_module = "Module:labels/utilities"
local template_parser_module = "Module:template parser"
local concat = table.concat
local dump = mw.dumpObject
local expand_template = require("Module:frame").expandTemplate
local insert = table.insert
local is_callable = require("Module:fun").is_callable
local lcfirst = require("Module:string utilities").lcfirst
local list_to_set = require("Module:table").listToSet
local make_title = mw.title.makeTitle
local new_title = mw.title.new
local parse = require(template_parser_module).parse
local sparse_concat = require("Module:table").sparseConcat
local tostring = tostring
local type = type
local ucfirst = require("Module:string utilities").ucfirst
local uupper = require("Module:string utilities").upper
local function internal_error(msg)
error("Internal error: " .. msg)
end
local function get_lang(...)
local _get_lang = require("Module:languages").getByCode
function get_lang(...)
return _get_lang(...) or require("Module:languages/errorGetBy").code(...)
end
return get_lang(...)
end
local function get_script(...)
local _get_script = require("Module:scripts").getByCode
function get_script(code)
return _get_script(code) or require("Module:languages/error")(code, true, "script code")
end
return get_script(...)
end
-- Category object
local Category = {}
Category.__index = Category
function Category:get_originating_info()
local originating_info = ""
if self._info.originating_label then
originating_info = " (originating from label \"" .. self._info.originating_label .. "\" in module [[" .. self._info.originating_module .. "]])"
end
return originating_info
end
local valid_keys = list_to_set{"code", "label", "sc", "raw", "args", "also", "called_from_inside", "originating_label", "originating_module"}
function Category.new(info)
for key in pairs(info) do
if not valid_keys[key] then
internal_error("The parameter \"" .. key .. "\" was not recognized.")
end
end
local self = setmetatable({}, Category)
self._info = info
if not self._info.label then
internal_error("No label was specified.")
end
self:initCommon()
if not self._data then
internal_error("The " .. (self._info.raw and "raw " or "") .. "label \"" .. self._info.label .. "\" does not exist" .. self:get_originating_info() .. ".")
end
return self
end
function Category:initCommon()
local function patch_args(args)
-- This fixes the issue with Scribunto automatically converting keys
-- in a table as numbers to strings, which in turn causes a circular
-- error for having argument parameter names as numbers as strings.
if type(args) ~= "table" then
return args
end
local new_args = {}
for k, v in pairs(args) do
if type(k) == "string" and string.len(k) < 10 and not string.match(k, "^0") and string.match(k, "^%d+$") then
new_args[tonumber(k)] = patch_args(v)
else
new_args[k] = patch_args(v)
end
end
return new_args
end
local args_handled = false
if self._info.raw then
-- Check if the category exists
local raw_categories = lang_independent_data["RAW_CATEGORIES"]
self._data = raw_categories[self._info.label]
if self._data then
if self._data.lang then
self._lang = get_lang(self._data.lang, nil, true)
self._info.code = self._lang:getCode()
end
if self._data.sc then
self._sc = get_script(self._data.sc)
self._info.sc = self._sc:getCode()
end
else
-- Go through raw handlers
local data = {
category = self._info.label,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
for _, handler in ipairs(lang_independent_data["RAW_HANDLERS"]) do
self._data, args_handled = handler.handler(data)
if self._data then
self._data.module = self._data.module or handler.module
break
end
end
if self._data then
-- Update the label if the handler specified a canonical name for it.
if self._data.canonical_name then
self._info.canonical_name = self._data.canonical_name
end
if self._data.lang then
if type(self._data.lang) ~= "string" then
internal_error("Received non-string value " .. dump(self._data.lang) .. " for self._data.lang, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".")
end
self._lang = get_lang(self._data.lang, nil, true)
self._info.code = self._lang:getCode()
end
if self._data.sc then
if type(self._data.sc) ~= "string" then
internal_error("Received non-string value " .. dump(self._data.sc) .. " for self._data.sc, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".")
end
self._sc = get_script(self._data.sc)
self._info.sc = self._sc:getCode()
end
end
end
else
-- Already parsed into language + label
if self._info.code then
self._lang = get_lang(self._info.code, nil, true)
else
self._lang = nil
end
if self._info.sc then
self._sc = get_script(self._info.sc)
else
self._sc = nil
end
self._info.orig_label = self._info.label
-- If the label was packed with a \0 separator (from split_lang_label for mid-lang titles),
-- reconstruct the canonical label key used in LABELS data modules.
-- e.g. "Perkataan\0yang baru" → canonical key "Perkataan yang baru"
if self._info.label:find("\0", 1, true) then
self._info.label = self._info.label:gsub("%z", " ")
end
if not self._lang then
-- Umbrella categories without a preceding language always begin with a capital letter, but the actual label may be
-- lowercase (cf. [[:Category:Nouns by language]] with label 'nouns' with per-language [[:Category:English nouns]];
-- but [[:Category:Reddit slang by language]] with label 'Reddit slang' with per-language
-- [[:Category:English Reddit slang]]).
-- Malay Wiktionary category names normally use LABEL + "mengikut bahasa",
-- so the visible umbrella label should normally remain uppercase-initial.
-- Keep the original label in `orig_label`, canonicalize to uppercase-initial
-- for lookup, and later fall back to lowercase if needed.
self._info.label = ucfirst(self._info.label)
end
-- First, check lang-specific labels and handlers if this is not an umbrella category.
if self._lang then
local objects_with_modules = require(lang_specific_module)
local obj, seen = self._lang, {}
local object_specific_module_prefix = lang_specific_module_prefix
local is_family = false
repeat
if objects_with_modules[obj:getCode()] then
local module = object_specific_module_prefix .. obj:getCode()
local labels_and_handlers = require(module)
if labels_and_handlers.LABELS then
self._data = labels_and_handlers.LABELS[self._info.label]
if self._data then
if not is_family and self._data.umbrella == nil and self._data.umbrella_parents == nil then
self._data.umbrella = false
end
self._data.module = self._data.module or module
end
end
if not self._data and labels_and_handlers.HANDLERS then
for _, handler in ipairs(labels_and_handlers.HANDLERS) do
local data = {
label = self._info.label,
lang = self._lang,
sc = self._sc,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
self._data, args_handled = handler(data)
if self._data then
if not is_family and self._data.umbrella == nil and
self._data.umbrella_parents == nil then
self._data.umbrella = false
end
self._data.module = self._data.module or module
break
end
end
end
if self._data then
break
end
end
seen[obj:getCode()] = true
obj = obj:getFamily()
if not is_family then
is_family = true
object_specific_module_prefix = family_specific_module_prefix
objects_with_modules = require(family_specific_module)
end
until not obj or seen[obj:getCode()]
end
local function fetch_label_data(labels)
for _, label in ipairs{self._info.label, self._info.orig_label, lcfirst(self._info.label)} do
self._data = labels[label]
if self._data then
self._info.label = label
return
end
end
end
-- Then check lang-independent labels.
if not self._data then
-- lang_independent_data.LABELS should always exist.
fetch_label_data(lang_independent_data.LABELS)
if not self._data and not self._lang then
-- Check family-specific labels for umbrella label.
local families_with_modules = require(family_specific_module)
for famcode, _ in pairs(families_with_modules) do
local module = family_specific_module_prefix .. famcode
local labels_and_handlers = require(module)
if labels_and_handlers.LABELS then
fetch_label_data(labels_and_handlers.LABELS)
if self._data then
self._data.module = self._data.module or module
break
end
end
end
end
end
-- Then check lang-independent handlers.
if not self._data then
for _, handler in ipairs(lang_independent_data["HANDLERS"]) do
for _, label in ipairs{self._info.label, self._info.orig_label, lcfirst(self._info.label)} do
local data = {
label = label,
lang = self._lang,
sc = self._sc,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
self._data, args_handled = handler.handler(data)
if self._data then
self._info.label = label
self._data.module = self._data.module or handler.module
break
end
end
if self._data then
break
end
end
if not self._data and not self._lang then
-- Check family-specific labels for umbrella handler.
local families_with_modules = require(family_specific_module)
for famcode, _ in pairs(families_with_modules) do
local module = family_specific_module_prefix .. famcode
local labels_and_handlers = require(module)
if labels_and_handlers.HANDLERS then
for _, handler in ipairs(labels_and_handlers.HANDLERS) do
for _, label in ipairs{self._info.label, self._info.orig_label, lcfirst(self._info.label)} do
local data = {
label = label,
sc = self._sc,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
self._data, args_handled = handler(data)
if self._data then
self._info.label = label
self._data.module = self._data.module or module
break
end
end
if self._data then
break
end
end
end
if self._data then
break
end
end
end
end
end
if not args_handled and self._data and self._info.args and next(self._info.args) then
local module_text = " (handled in [[" .. (self._data.module or "UNKNOWN").. "]])"
local args_text = {}
for k, v in pairs(self._info.args) do
insert(args_text, k .. "=" .. ((type(v) == "string" or type(v) == "number") and v or dump(v)))
end
error("poscatboiler label '" .. self._info.label .. "' " .. module_text .. " doesn't accept extra args " ..
concat(args_text, ", "))
end
if self._sc and not self._lang then
internal_error("Umbrella categories cannot have a script specified.")
end
end
function Category:convert_spec_to_string(desc)
if not desc then
return desc
end
local desc_type = type(desc)
if desc_type == "string" then
return desc
elseif desc_type == "number" then
return tostring(desc)
elseif not is_callable(desc) then
internal_error("`desc` must be a string, number, function, callable table or nil; received " .. dump(desc))
end
desc = desc {
lang = self._lang,
sc = self._sc,
label = self._info.label,
raw = self._info.raw,
}
if not desc then
return desc
end
desc_type = type(desc)
if desc_type == "string" then
return desc
end
internal_error("The value returned by `desc` must be a string or nil; received " .. dump(desc))
end
local function add_obj_args(args, obj, obj_type)
if obj then
args[obj_type .. "code"] = obj:getCode()
args[obj_type .. "name"] = obj:getCanonicalName()
args[obj_type .. "disp"] = obj:getDisplayForm()
args[obj_type .. "cat"] = obj:getCategoryName()
args[obj_type .. "link"] = obj:makeCategoryLink()
end
end
-- Expands `desc` like a template, passing values for specs like {{{langname}}}.
function Category:substitute_template_specs(desc)
-- This may end up happening twice but that's OK as the function is (usually) idempotent.
-- FIXME: Not idempotent if a preprocessed template returns wikicode.
desc = self:convert_spec_to_string(desc)
if not desc then
return nil
end
-- Populate the substitution arguments.
local args = {}
args.umbrella_msg = "Kategori ini merupakan sebuah kategori payung. Ia tidak mengandungi sebarang entri kamus, sebaliknya hanya mengandungi kategori khusus bahasa lain, yang seterusnya mengandungi istilah yang berkaitan dalam bahasa tertentu."
args.umbrella_meta_msg = "Kategori ini merupakan sebuah metakategori payung, yang meliputi bidang umum seperti \"lema\", \"nama\" atau \"perkataan mengikut etimologi\". Ia tidak mengandungi sebarang entri kamus, sebaliknya hanya mengandungi kategori payung (\"mengikut bahasa\") yang merangkumi subtopik tertentu, yang seterusnya mengandungi kategori khusus bahasa yang mengandungi istilah dalam bahasa tertentu untuk topik yang sama."
add_obj_args(args, self._lang, "lang")
add_obj_args(args, self._sc, "sc")
return parse(desc, true):expand(args)
end
function Category:substitute_template_specs_in_args(args)
if not args then
return args
end
local pinfo = {}
for k, v in pairs(args) do
pinfo[self:substitute_template_specs(k)] = self:substitute_template_specs(v)
end
return pinfo
end
function Category:make_new(info)
info.originating_label = self._info.label
info.originating_module = self._data.module
info.called_from_inside = true
return Category.new(info)
end
function Category:getBreadcrumbName()
local ret
if self._lang or self._info.raw then
ret = self._data.breadcrumb or self._data.breadcrumb_and_first_sort_key or
self._data.breadcrumb_and_first_sort_base or nil
else
ret = self._data.umbrella and (self._data.umbrella.breadcrumb or
self._data.umbrella.breadcrumb_and_first_sort_key or self._data.umbrella.breadcrumb_and_first_sort_base) or
nil
end
if not ret then
ret = self._info.label
end
if type(ret) ~= "table" then
ret = {name = ret}
end
local name = self:substitute_template_specs(ret.name)
local nocap = ret.nocap
if self._sc then
name = name .. " dalam tulisan " .. self._sc:getDisplayForm()
end
return name, nocap
end
local function expand_toc_template_if(template)
local template_obj = new_title(template, 10)
if template_obj.exists then
return expand_template{title = template_obj.text}
end
return nil
end
-- Return the textual expansion of the first existing template among the given templates, first performing
-- substitutions on the template name such as replacing {{{langcode}}} with the current language's code (if any).
-- If no templates exist after expansion, or if nil is passed in, return nil. If a single string is passed in,
-- treat it like a one-element list consisting of that string.
function Category:get_template_text(templates)
if templates == nil then
return nil
elseif type(templates) ~= "table" then
templates = {templates}
end
for _, template in ipairs(templates) do
if template == false then
return false
end
template = self:substitute_template_specs(template)
return expand_toc_template_if(template)
end
return nil
end
function Category:getTOC(toc_type)
-- Type "none" means everything fits on a single page; in that case, display nothing.
if toc_type == "none" then
return nil
end
local templates, fallback_templates
-- If TOC type is "full" (more than 2500 entries), do the following, in order:
-- 1. look up and expand the `toc_template_full` templates (normal or umbrella, depending on whether there is
-- a current language);
-- 2. look up and expand the `toc_template` templates (normal or umbrella, as above);
-- 3. do the default behavior, which is as follows:
-- 3a. look up a language-specific "full" template according to the current language (using English if there
-- is no current language);
-- 3b. look up a script-specific "full" template according to the first script of current language (using English
-- if there is no current language);
-- 3c. look up a language-specific "normal" template according to the current language (using English if there
-- is no current language);
-- 3d. look up a script-specific "normal" template according to the first script of the current language (using
-- English if there is no current language);
-- 3e. display nothing.
--
-- If TOC type is "normal" (between 200 and 2500 entries), do the following, in order:
-- 1. look up and expand the `toc_template` templates (normal or umbrella, depending on whether there is
-- a current language);
-- 2. do the default behavior, which is as follows:
-- 2a. look up a language-specific "normal" template according to the current language (using English if there
-- is no current language);
-- 2b. look up a script-specific "normal" template according to the first script of the current language (using
-- English if there is no current language);
-- 2c. display nothing.
local data_source
if self._lang or self._info.raw then
data_source = self._data
else
data_source = self._data.umbrella
end
if data_source then
if toc_type == "full" then
templates = data_source.toc_template_full
fallback_templates = data_source.toc_template
else
templates = data_source.toc_template
end
end
local text = self:get_template_text(templates)
if text then
return text
elseif text == false then
return nil
end
text = self:get_template_text(fallback_templates)
if text then
return text
elseif text == false then
return nil
end
local default_toc_templates_to_check = {}
local lang, sc = self:getCatfixInfo()
local langcode = lang and lang:getCode() or "ms"
local sccode = sc and sc:getCode() or lang and lang:getScriptCodes()[1] or "Latn"
-- FIXME: What is toctemplateprefix used for?
local tocname = (self._data.toctemplateprefix or "") .. "categoryTOC"
if toc_type == "full" then
insert(default_toc_templates_to_check, ("%s-%s/full"):format(langcode, tocname))
insert(default_toc_templates_to_check, ("%s-%s/full"):format(sccode, tocname))
end
insert(default_toc_templates_to_check, ("%s-%s"):format(langcode, tocname))
insert(default_toc_templates_to_check, ("%s-%s"):format(sccode, tocname))
for _, toc_template in ipairs(default_toc_templates_to_check) do
local toc_template_text = expand_toc_template_if(toc_template)
if toc_template_text then
return toc_template_text
end
end
return nil
end
function Category:getInfo()
return self._info
end
function Category:getDataModule()
return self._data.module
end
function Category:canBeEmpty()
if self._lang or self._info.raw then
return self._data.can_be_empty
end
return self._data.umbrella and self._data.umbrella.can_be_empty
end
function Category:isHidden()
if self._lang or self._info.raw then
return self._data.hidden
end
return self._data.umbrella and self._data.umbrella.hidden
end
function Category:getCategoryName()
if self._info.raw then
return self._info.canonical_name or self._info.label
elseif self._lang then
local langname = self._lang:getCanonicalName()
local connector = (self._data and self._data.lang_connector) or "bahasa"
local ret
-- Case 1: label data explicitly declares lang_position = "mid" with label_before/label_after.
if self._data and self._data.lang_position == "mid" then
local before = self._data.label_before or self._info.label
local after = self._data.label_after or ""
ret = before .. " " .. connector .. " " .. langname
if after ~= "" then
ret = ret .. " " .. after
end
-- Case 2: label was parsed from a mid-lang title; before\0after packed in self._info.label.
elseif self._info.label:find("\0", 1, true) then
local before, after = self._info.label:match("^(.-)%z(.*)$")
ret = before .. " " .. connector .. " " .. langname
if after and after ~= "" then
ret = ret .. " " .. after
end
-- Case 3: default — label precedes "bahasa LANG" (original behaviour).
else
ret = self._info.label .. " " .. connector .. " " .. langname
end
if self._sc then
ret = ret .. " dalam tulisan " .. self._sc:getDisplayForm()
end
return ucfirst(ret)
end
local ret = ucfirst(self._info.label)
if not (self._data.no_by_language or self._data.umbrella and self._data.umbrella.no_by_language) then
ret = ret .. " mengikut bahasa"
end
return ret
end
function Category:getTopright()
if self._lang or self._info.raw then
return self:substitute_template_specs(self._data.topright)
end
return self._data.umbrella and self:substitute_template_specs(self._data.umbrella.topright)
end
function Category:display_title(displaytitle, lang)
if type(displaytitle) == "string" then
displaytitle = self:substitute_template_specs(displaytitle)
else
displaytitle = displaytitle(self:getCategoryName(), lang)
end
mw.getCurrentFrame():callParserFunction("DISPLAYTITLE", "Kategori:" .. displaytitle)
end
function Category:get_labels_categorizing()
local m_labels_utilities = require(labels_utilities_module)
local pos_cat_labels, sense_cat_labels, use_tlb
pos_cat_labels = m_labels_utilities.find_labels_for_category(self._info.label, "pos", self._lang)
local sense_label = self._info.label:match("^Perkataan (.*)$")
if sense_label then
use_tlb = true
else
sense_label = self._info.label:match("^Perkataan dengan erti (.*)$")
end
if not sense_label then
return nil
end
sense_cat_labels = m_labels_utilities.find_labels_for_category(sense_label, "sense", self._lang)
if use_tlb then
return m_labels_utilities.format_labels_categorizing(pos_cat_labels, sense_cat_labels, self._lang)
end
local all_labels = pos_cat_labels
for k, v in pairs(sense_cat_labels) do
all_labels[k] = v
end
return m_labels_utilities.format_labels_categorizing(all_labels, nil, self._lang)
end
-- FIXME: this is clunky.
local function remove_lang_params(desc)
-- Simply remove a language name/code/category from the beginning of the string, but replace the language name
-- in the middle of the string with either "tertentu" or "specific-language" depending on whether the
-- language name appears to be an attributive qualifier of another noun or to stand by itself. This may be wrong,
-- in which case the category in question should supply its own umbrella description.
desc = desc:gsub("^{{{langname}}} ", "")
:gsub("{{{langname}}} %(", "tertentu (")
:gsub("{{{langname}}}([.,])", "tertentu%1")
:gsub("{{{langname}}} ", "tertentu ")
:gsub("{{{langdisp}}}", "tertentu")
:gsub("{{{langlink}}}", "tertentu")
return desc
end
function Category:getDescription(isChild)
-- Allows different text in the list of a category's children
local isChild = isChild == "child"
if self._lang or self._info.raw then
if not isChild and self._data.displaytitle then
self:display_title(self._data.displaytitle, self._lang)
end
if self._sc then
return self:getCategoryName() .. "."
end
local desc = self:substitute_template_specs(self._data.description)
if not desc then
return nil
elseif isChild then
return desc
end
return sparse_concat({
self:substitute_template_specs(self._data.preceding),
desc,
self:substitute_template_specs(self._data.additional),
self:substitute_template_specs(self:get_labels_categorizing()),
}, "\n\n")
end
local umbrella = self._data.umbrella
if not isChild and umbrella and umbrella.displaytitle then
self:display_title(umbrella.displaytitle)
end
local desc = self:substitute_template_specs(umbrella and umbrella.description)
local has_umbrella_desc = not not desc
if not desc then
desc = self:convert_spec_to_string(self._data.description)
if desc then
desc = remove_lang_params(desc)
desc = lcfirst(desc)
desc = desc:gsub("%.$", "")
desc = "Kategori dengan " .. desc .. "."
else
desc = "Kategori dengan " .. self._info.label .. " dalam pelbagai bahasa tertentu."
end
desc = self:substitute_template_specs(desc)
end
if isChild then
return desc
end
return sparse_concat({
self:substitute_template_specs(umbrella and umbrella.preceding or not has_umbrella_desc and self._data.preceding),
desc,
self:substitute_template_specs(umbrella and umbrella.additional or not has_umbrella_desc and self._data.additional),
self:substitute_template_specs("{{{umbrella_msg}}}"),
self:substitute_template_specs(self:get_labels_categorizing()),
}, "\n\n")
end
function Category:new_sortkey(sortkey)
local sortkey_type = type(sortkey)
if sortkey_type == "string" then
sortkey = uupper(sortkey)
elseif sortkey_type == "table" then
function sortkey:makeSortKey()
local sort_func = self.sort_func
if sort_func ~= nil then
return sort_func(self.sort_base)
end
local lang = self.lang
if lang == nil then
return self.sort_base
end
lang = get_lang(lang, nil, true)
if lang == nil then
return self.sort_base
end
local sc = self.sc
if sc ~= nil then
sc = get_script(sc)
end
return lang:makeSortKey(self.sort_base, sc)
end
end
return sortkey
end
function Category:inherit_spec(spec, parent_spec, substitute_result)
if spec == false then
return nil
end
local retval = spec or parent_spec
if substitute_result then
retval = self:substitute_template_specs(retval)
end
return retval
end
function Category:canonicalize_parents_children(cats, is_children, fallback_sort_key, fallback_sort_base)
if not cats then
return nil
elseif type(cats) == "table" then
if cats.name or cats.module then
cats = {cats}
elseif #cats == 0 then
return nil
end
else
cats = {cats}
end
local ret = {}
for _, cat in ipairs(cats) do
if type(cat) ~= "table" or not cat.name and not cat.module then
cat = {name = cat}
end
insert(ret, cat)
end
local is_umbrella = not self._lang and not self._info.raw
local table_type = is_children and "extra_children" or "parents"
for i, cat in ipairs(ret) do
local raw
if self._info.raw or is_umbrella then
raw = not cat.is_label
else
raw = cat.raw
end
local lang = self:inherit_spec(cat.lang, not raw and self._info.code or nil, "substitute")
local sc = self:inherit_spec(cat.sc, not raw and self._info.sc or nil, "substitute")
-- Get the sortkey.
local sortkey = self:inherit_spec(cat.sort, i == 1 and (fallback_sort_key or fallback_sort_base and {sort_base = fallback_sort_base}) or nil)
if type(sortkey) == "table" then
sortkey.sort_base = self:substitute_template_specs(sortkey.sort_base) or
internal_error("Missing .sort_base in '" .. table_type .. "' .sort table for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
if sortkey.sort_func then
-- Not allowed to give a lang and/or script if sort_func is given.
local bad_spec = sortkey.lang and "lang" or sortkey.sc and "sc" or nil
if bad_spec then
internal_error("Cannot specify both ." .. bad_spec .. " and .sort_func in '" .. table_type ..
"' .sort table for '" .. self._info.label .. "' category entry in module '" ..
(self._data.module or "unknown") .. "'")
end
else
sortkey.lang = self:inherit_spec(sortkey.lang, lang, "substitute")
sortkey.sc = self:inherit_spec(sortkey.sc, sc, "substitute")
end
else
sortkey = self:substitute_template_specs(sortkey)
end
local name
if cat.module then
-- A reference to a category using another category tree module.
if not cat.args then
internal_error("Missing .args in '" .. table_type .. "' table with module=\"" .. cat.module .. "\" for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
end
name = require("Module:category tree/" .. cat.module).new(self:substitute_template_specs_in_args(cat.args))
else
name = cat.name
if not name then
internal_error("Missing .name in " .. (is_umbrella and "umbrella " or "") .. "'" .. table_type .. "' table for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
elseif type(name) == "string" then -- otherwise, assume it's a category object and use it directly
name = self:substitute_template_specs(name)
if name:find("^Kategori:") then
-- It's a non-poscatboiler category name.
sortkey = sortkey or is_children and name:gsub("^Kategori:", "") or self:getCategoryName()
else
-- It's a label.
sortkey = sortkey or is_children and name or self._info.label
name = self:make_new{
label = name, code = lang, sc = sc,
raw = raw, args = self:substitute_template_specs_in_args(cat.args)
}
end
end
end
sortkey = sortkey or is_children and " " or self._info.label
ret[i] = {
name = name,
description = is_children and self:substitute_template_specs(cat.description) or nil,
sort = self:new_sortkey(sortkey)
}
end
return ret
end
function Category:getParents()
local is_umbrella, ret = not self._lang and not self._info.raw
if self._sc then
local parent1 = self:make_new{code = self._info.code, label = "Perkataan dalam tulisan " .. self._sc:getCanonicalName()}
local parent2 = self:make_new{code = self._info.code, label = self._info.label, raw = self._info.raw, args = self._info.args}
ret = {
{name = parent1, sort = self._sc:getCanonicalName()},
{name = parent2, sort = self._sc:getCanonicalName()},
}
else
local parents, fallback_sort_key, fallback_sort_base
if is_umbrella then
parents = self._data.umbrella and self._data.umbrella.parents or self._data.umbrella_parents
fallback_sort_key = self._data.umbrella and self._data.umbrella.breadcrumb_and_first_sort_key or nil
fallback_sort_base = self._data.umbrella and self._data.umbrella.breadcrumb_and_first_sort_base or nil
else
parents = self._data.parents
fallback_sort_key = self._data.breadcrumb_and_first_sort_key
fallback_sort_base = self._data.breadcrumb_and_first_sort_base
end
ret = self:canonicalize_parents_children(parents, nil, fallback_sort_key, fallback_sort_base)
if not ret then
return nil
end
end
local self_cat = self:getCategoryName()
for _, parent in ipairs(ret) do
local parent_cat = parent.name.getCategoryName and parent.name:getCategoryName()
if self_cat == parent_cat then
internal_error(("Infinite loop would occur, as parent category '%s' is the same as the child category"):format(self_cat))
end
end
return ret
end
function Category:getChildren()
local is_umbrella = not self._lang and not self._info.raw
local children = self._data.children
local ret = {}
if not is_umbrella and children then
for _, child in ipairs(children) do
child = mw.clone(child)
if type(child) ~= "table" then
child = {name = child}
end
if not child.sort then
child.sort = child.name
end
-- FIXME, is preserving the script correct?
child.name = self:make_new{code = self._info.code, label = child.name, raw = child.raw, sc = self._info.sc}
insert(ret, child)
end
end
local extra_children
if is_umbrella then
extra_children = self._data.umbrella and self._data.umbrella.extra_children
else
extra_children = self._data.extra_children
end
extra_children = self:canonicalize_parents_children(extra_children, "children")
if extra_children then
for _, child in ipairs(extra_children) do
insert(ret, child)
end
end
return #ret > 0 and ret or nil
end
function Category:getUmbrella()
local umbrella = self._data.umbrella
if umbrella == false or self._info.raw or not self._lang or self._sc then
return nil
end
-- If `umbrella` is a string, use that; otherwise, use the label.
return self:make_new({label = type(umbrella) == "string" and umbrella or self._info.label})
end
function Category:getAppendix()
-- FIXME, this should be customizable.
local lang, label = self._lang, self._info.label
if self._info.raw or not (lang and label) then
return nil
end
local appendix = make_title(100, label .. " bahasa " .. lang:getCanonicalName())
return appendix.exists and appendix.fullText or nil
end
function Category:getCatfixInfo()
if self._lang or self._sc or self._info.raw then
local langcode, sccode = self._data.catfix, self._data.catfix_sc
local lang, sc
if langcode then
langcode = self:substitute_template_specs(langcode)
lang = get_lang(langcode, nil, true)
elseif langcode == nil then -- not false
lang = self._lang
end
if sccode then
sccode = self:substitute_template_specs(sccode)
sc = get_script(sccode)
elseif sccode == nil then -- not false
sc = self._sc
end
if lang then
lang = lang:getFull()
end
return lang, sc
elseif not self._data.umbrella then
return
end
-- umbrella
local langcode, sccode = self._data.umbrella.catfix, self._data.umbrella.catfix_sc
local lang, sc
if langcode then
langcode = self:substitute_template_specs(langcode)
lang = get_lang(langcode, nil, true)
end
if sccode then
sccode = self:substitute_template_specs(sccode)
sc = get_script(sccode)
end
if lang then
lang = lang:getFull()
end
return lang, sc
end
function Category:getTOCTemplateName()
-- This should only be invoked if getTOC() returns true, meaning to do the default algorithm, but getTOC()
-- implements its own default algorithm.
internal_error("This should never get called")
end
local export = {}
function export.main(info)
local self = setmetatable({_info = info}, Category)
self:initCommon()
return self._data and self or nil
end
export.new = Category.new
return export
1304c39qhl58h9gfl9s3ibhnw6y894b
342778
342777
2026-05-16T08:37:21Z
Hakimi97
2668
342778
Scribunto
text/plain
local lang_independent_data = require("Module:category tree/data")
local lang_specific_module = "Module:category tree/lang"
local lang_specific_module_prefix = lang_specific_module .. "/"
local family_specific_module = "Module:category tree/fam"
local family_specific_module_prefix = family_specific_module .. "/"
local labels_utilities_module = "Module:labels/utilities"
local template_parser_module = "Module:template parser"
local concat = table.concat
local dump = mw.dumpObject
local expand_template = require("Module:frame").expandTemplate
local insert = table.insert
local is_callable = require("Module:fun").is_callable
local lcfirst = require("Module:string utilities").lcfirst
local list_to_set = require("Module:table").listToSet
local make_title = mw.title.makeTitle
local new_title = mw.title.new
local parse = require(template_parser_module).parse
local sparse_concat = require("Module:table").sparseConcat
local tostring = tostring
local type = type
local ucfirst = require("Module:string utilities").ucfirst
local uupper = require("Module:string utilities").upper
local function internal_error(msg)
error("Internal error: " .. msg)
end
local function get_lang(...)
local _get_lang = require("Module:languages").getByCode
function get_lang(...)
return _get_lang(...) or require("Module:languages/errorGetBy").code(...)
end
return get_lang(...)
end
local function get_script(...)
local _get_script = require("Module:scripts").getByCode
function get_script(code)
return _get_script(code) or require("Module:languages/error")(code, true, "script code")
end
return get_script(...)
end
-- Category object
local Category = {}
Category.__index = Category
function Category:get_originating_info()
local originating_info = ""
if self._info.originating_label then
originating_info = " (originating from label \"" .. self._info.originating_label .. "\" in module [[" .. self._info.originating_module .. "]])"
end
return originating_info
end
local valid_keys = list_to_set{"code", "label", "sc", "raw", "args", "also", "called_from_inside", "originating_label", "originating_module"}
function Category.new(info)
for key in pairs(info) do
if not valid_keys[key] then
internal_error("The parameter \"" .. key .. "\" was not recognized.")
end
end
local self = setmetatable({}, Category)
self._info = info
if not self._info.label then
internal_error("No label was specified.")
end
self:initCommon()
if not self._data then
internal_error("The " .. (self._info.raw and "raw " or "") .. "label \"" .. self._info.label .. "\" does not exist" .. self:get_originating_info() .. ".")
end
return self
end
function Category:initCommon()
local function patch_args(args)
-- This fixes the issue with Scribunto automatically converting keys
-- in a table as numbers to strings, which in turn causes a circular
-- error for having argument parameter names as numbers as strings.
if type(args) ~= "table" then
return args
end
local new_args = {}
for k, v in pairs(args) do
if type(k) == "string" and string.len(k) < 10 and not string.match(k, "^0") and string.match(k, "^%d+$") then
new_args[tonumber(k)] = patch_args(v)
else
new_args[k] = patch_args(v)
end
end
return new_args
end
local args_handled = false
if self._info.raw then
-- Check if the category exists
local raw_categories = lang_independent_data["RAW_CATEGORIES"]
self._data = raw_categories[self._info.label]
if self._data then
if self._data.lang then
self._lang = get_lang(self._data.lang, nil, true)
self._info.code = self._lang:getCode()
end
if self._data.sc then
self._sc = get_script(self._data.sc)
self._info.sc = self._sc:getCode()
end
else
-- Go through raw handlers
local data = {
category = self._info.label,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
for _, handler in ipairs(lang_independent_data["RAW_HANDLERS"]) do
self._data, args_handled = handler.handler(data)
if self._data then
self._data.module = self._data.module or handler.module
break
end
end
if self._data then
-- Update the label if the handler specified a canonical name for it.
if self._data.canonical_name then
self._info.canonical_name = self._data.canonical_name
end
if self._data.lang then
if type(self._data.lang) ~= "string" then
internal_error("Received non-string value " .. dump(self._data.lang) .. " for self._data.lang, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".")
end
self._lang = get_lang(self._data.lang, nil, true)
self._info.code = self._lang:getCode()
end
if self._data.sc then
if type(self._data.sc) ~= "string" then
internal_error("Received non-string value " .. dump(self._data.sc) .. " for self._data.sc, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".")
end
self._sc = get_script(self._data.sc)
self._info.sc = self._sc:getCode()
end
end
end
else
-- Already parsed into language + label
if self._info.code then
self._lang = get_lang(self._info.code, nil, true)
else
self._lang = nil
end
if self._info.sc then
self._sc = get_script(self._info.sc)
else
self._sc = nil
end
self._info.orig_label = self._info.label
-- If the label was packed with a \0 separator (from split_lang_label for mid-lang titles),
-- reconstruct the canonical label key used in LABELS data modules.
-- e.g. "Perkataan\0yang baru" → canonical key "Perkataan yang baru"
if self._info.label:find("\0", 1, true) then
self._info.label = self._info.label:gsub("%z", " ")
end
if not self._lang then
-- Malay Wiktionary category names normally use LABEL + "mengikut bahasa",
-- so umbrella category labels should normally remain uppercase-initial.
-- Keep the original label in `orig_label`, canonicalize to uppercase-initial
-- for lookup, and later fall back to lowercase if needed.
self._info.label = ucfirst(self._info.label)
end
local function get_label_forms()
local labels, seen = {}, {}
local function add(label)
if label and not seen[label] then
insert(labels, label)
seen[label] = true
end
end
add(self._info.label)
add(self._info.orig_label)
add(lcfirst(self._info.label))
return labels
end
-- First, check lang-specific labels and handlers if this is not an umbrella category.
if self._lang then
local objects_with_modules = require(lang_specific_module)
local obj, seen = self._lang, {}
local object_specific_module_prefix = lang_specific_module_prefix
local is_family = false
repeat
if objects_with_modules[obj:getCode()] then
local module = object_specific_module_prefix .. obj:getCode()
local labels_and_handlers = require(module)
if labels_and_handlers.LABELS then
self._data = labels_and_handlers.LABELS[self._info.label]
if self._data then
if not is_family and self._data.umbrella == nil and self._data.umbrella_parents == nil then
self._data.umbrella = false
end
self._data.module = self._data.module or module
end
end
if not self._data and labels_and_handlers.HANDLERS then
for _, handler in ipairs(labels_and_handlers.HANDLERS) do
local data = {
label = self._info.label,
lang = self._lang,
sc = self._sc,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
self._data, args_handled = handler(data)
if self._data then
if not is_family and self._data.umbrella == nil and
self._data.umbrella_parents == nil then
self._data.umbrella = false
end
self._data.module = self._data.module or module
break
end
end
end
if self._data then
break
end
end
seen[obj:getCode()] = true
obj = obj:getFamily()
if not is_family then
is_family = true
object_specific_module_prefix = family_specific_module_prefix
objects_with_modules = require(family_specific_module)
end
until not obj or seen[obj:getCode()]
end
local function fetch_label_data(labels)
for _, label in ipairs(get_label_forms()) do
self._data = labels[label]
if self._data then
self._info.label = label
return
end
end
end
-- Then check lang-independent labels.
if not self._data then
-- lang_independent_data.LABELS should always exist.
fetch_label_data(lang_independent_data.LABELS)
if not self._data and not self._lang then
-- Check family-specific labels for umbrella label.
local families_with_modules = require(family_specific_module)
for famcode, _ in pairs(families_with_modules) do
local module = family_specific_module_prefix .. famcode
local labels_and_handlers = require(module)
if labels_and_handlers.LABELS then
fetch_label_data(labels_and_handlers.LABELS)
if self._data then
self._data.module = self._data.module or module
break
end
end
end
end
end
-- Then check lang-independent handlers.
if not self._data then
for _, handler in ipairs(lang_independent_data["HANDLERS"]) do
for _, label in ipairs(get_label_forms()) do
local data = {
label = label,
lang = self._lang,
sc = self._sc,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
self._data, args_handled = handler.handler(data)
if self._data then
self._info.label = label
self._data.module = self._data.module or handler.module
break
end
end
if self._data then
break
end
end
if not self._data and not self._lang then
-- Check family-specific labels for umbrella handler.
local families_with_modules = require(family_specific_module)
for famcode, _ in pairs(families_with_modules) do
local module = family_specific_module_prefix .. famcode
local labels_and_handlers = require(module)
if labels_and_handlers.HANDLERS then
for _, handler in ipairs(labels_and_handlers.HANDLERS) do
for _, label in ipairs(get_label_forms()) do
local data = {
label = label,
sc = self._sc,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
self._data, args_handled = handler(data)
if self._data then
self._info.label = label
self._data.module = self._data.module or module
break
end
end
if self._data then
break
end
end
end
if self._data then
break
end
end
end
end
end
if not args_handled and self._data and self._info.args and next(self._info.args) then
local module_text = " (handled in [[" .. (self._data.module or "UNKNOWN").. "]])"
local args_text = {}
for k, v in pairs(self._info.args) do
insert(args_text, k .. "=" .. ((type(v) == "string" or type(v) == "number") and v or dump(v)))
end
error("poscatboiler label '" .. self._info.label .. "' " .. module_text .. " doesn't accept extra args " ..
concat(args_text, ", "))
end
if self._sc and not self._lang then
internal_error("Umbrella categories cannot have a script specified.")
end
end
function Category:convert_spec_to_string(desc)
if not desc then
return desc
end
local desc_type = type(desc)
if desc_type == "string" then
return desc
elseif desc_type == "number" then
return tostring(desc)
elseif not is_callable(desc) then
internal_error("`desc` must be a string, number, function, callable table or nil; received " .. dump(desc))
end
desc = desc {
lang = self._lang,
sc = self._sc,
label = self._info.label,
raw = self._info.raw,
}
if not desc then
return desc
end
desc_type = type(desc)
if desc_type == "string" then
return desc
end
internal_error("The value returned by `desc` must be a string or nil; received " .. dump(desc))
end
local function add_obj_args(args, obj, obj_type)
if obj then
args[obj_type .. "code"] = obj:getCode()
args[obj_type .. "name"] = obj:getCanonicalName()
args[obj_type .. "disp"] = obj:getDisplayForm()
args[obj_type .. "cat"] = obj:getCategoryName()
args[obj_type .. "link"] = obj:makeCategoryLink()
end
end
-- Expands `desc` like a template, passing values for specs like {{{langname}}}.
function Category:substitute_template_specs(desc)
-- This may end up happening twice but that's OK as the function is (usually) idempotent.
-- FIXME: Not idempotent if a preprocessed template returns wikicode.
desc = self:convert_spec_to_string(desc)
if not desc then
return nil
end
-- Populate the substitution arguments.
local args = {}
args.umbrella_msg = "Kategori ini merupakan sebuah kategori payung. Ia tidak mengandungi sebarang entri kamus, sebaliknya hanya mengandungi kategori khusus bahasa lain, yang seterusnya mengandungi istilah yang berkaitan dalam bahasa tertentu."
args.umbrella_meta_msg = "Kategori ini merupakan sebuah metakategori payung, yang meliputi bidang umum seperti \"lema\", \"nama\" atau \"perkataan mengikut etimologi\". Ia tidak mengandungi sebarang entri kamus, sebaliknya hanya mengandungi kategori payung (\"mengikut bahasa\") yang merangkumi subtopik tertentu, yang seterusnya mengandungi kategori khusus bahasa yang mengandungi istilah dalam bahasa tertentu untuk topik yang sama."
add_obj_args(args, self._lang, "lang")
add_obj_args(args, self._sc, "sc")
return parse(desc, true):expand(args)
end
function Category:substitute_template_specs_in_args(args)
if not args then
return args
end
local pinfo = {}
for k, v in pairs(args) do
pinfo[self:substitute_template_specs(k)] = self:substitute_template_specs(v)
end
return pinfo
end
function Category:make_new(info)
info.originating_label = self._info.label
info.originating_module = self._data.module
info.called_from_inside = true
return Category.new(info)
end
function Category:getBreadcrumbName()
local ret
if self._lang or self._info.raw then
ret = self._data.breadcrumb or self._data.breadcrumb_and_first_sort_key or
self._data.breadcrumb_and_first_sort_base or nil
else
ret = self._data.umbrella and (self._data.umbrella.breadcrumb or
self._data.umbrella.breadcrumb_and_first_sort_key or self._data.umbrella.breadcrumb_and_first_sort_base) or
nil
end
if not ret then
ret = self._info.label
end
if type(ret) ~= "table" then
ret = {name = ret}
end
local name = self:substitute_template_specs(ret.name)
local nocap = ret.nocap
if self._sc then
name = name .. " dalam tulisan " .. self._sc:getDisplayForm()
end
return name, nocap
end
local function expand_toc_template_if(template)
local template_obj = new_title(template, 10)
if template_obj.exists then
return expand_template{title = template_obj.text}
end
return nil
end
-- Return the textual expansion of the first existing template among the given templates, first performing
-- substitutions on the template name such as replacing {{{langcode}}} with the current language's code (if any).
-- If no templates exist after expansion, or if nil is passed in, return nil. If a single string is passed in,
-- treat it like a one-element list consisting of that string.
function Category:get_template_text(templates)
if templates == nil then
return nil
elseif type(templates) ~= "table" then
templates = {templates}
end
for _, template in ipairs(templates) do
if template == false then
return false
end
template = self:substitute_template_specs(template)
return expand_toc_template_if(template)
end
return nil
end
function Category:getTOC(toc_type)
-- Type "none" means everything fits on a single page; in that case, display nothing.
if toc_type == "none" then
return nil
end
local templates, fallback_templates
-- If TOC type is "full" (more than 2500 entries), do the following, in order:
-- 1. look up and expand the `toc_template_full` templates (normal or umbrella, depending on whether there is
-- a current language);
-- 2. look up and expand the `toc_template` templates (normal or umbrella, as above);
-- 3. do the default behavior, which is as follows:
-- 3a. look up a language-specific "full" template according to the current language (using English if there
-- is no current language);
-- 3b. look up a script-specific "full" template according to the first script of current language (using English
-- if there is no current language);
-- 3c. look up a language-specific "normal" template according to the current language (using English if there
-- is no current language);
-- 3d. look up a script-specific "normal" template according to the first script of the current language (using
-- English if there is no current language);
-- 3e. display nothing.
--
-- If TOC type is "normal" (between 200 and 2500 entries), do the following, in order:
-- 1. look up and expand the `toc_template` templates (normal or umbrella, depending on whether there is
-- a current language);
-- 2. do the default behavior, which is as follows:
-- 2a. look up a language-specific "normal" template according to the current language (using English if there
-- is no current language);
-- 2b. look up a script-specific "normal" template according to the first script of the current language (using
-- English if there is no current language);
-- 2c. display nothing.
local data_source
if self._lang or self._info.raw then
data_source = self._data
else
data_source = self._data.umbrella
end
if data_source then
if toc_type == "full" then
templates = data_source.toc_template_full
fallback_templates = data_source.toc_template
else
templates = data_source.toc_template
end
end
local text = self:get_template_text(templates)
if text then
return text
elseif text == false then
return nil
end
text = self:get_template_text(fallback_templates)
if text then
return text
elseif text == false then
return nil
end
local default_toc_templates_to_check = {}
local lang, sc = self:getCatfixInfo()
local langcode = lang and lang:getCode() or "ms"
local sccode = sc and sc:getCode() or lang and lang:getScriptCodes()[1] or "Latn"
-- FIXME: What is toctemplateprefix used for?
local tocname = (self._data.toctemplateprefix or "") .. "categoryTOC"
if toc_type == "full" then
insert(default_toc_templates_to_check, ("%s-%s/full"):format(langcode, tocname))
insert(default_toc_templates_to_check, ("%s-%s/full"):format(sccode, tocname))
end
insert(default_toc_templates_to_check, ("%s-%s"):format(langcode, tocname))
insert(default_toc_templates_to_check, ("%s-%s"):format(sccode, tocname))
for _, toc_template in ipairs(default_toc_templates_to_check) do
local toc_template_text = expand_toc_template_if(toc_template)
if toc_template_text then
return toc_template_text
end
end
return nil
end
function Category:getInfo()
return self._info
end
function Category:getDataModule()
return self._data.module
end
function Category:canBeEmpty()
if self._lang or self._info.raw then
return self._data.can_be_empty
end
return self._data.umbrella and self._data.umbrella.can_be_empty
end
function Category:isHidden()
if self._lang or self._info.raw then
return self._data.hidden
end
return self._data.umbrella and self._data.umbrella.hidden
end
function Category:getCategoryName()
if self._info.raw then
return self._info.canonical_name or self._info.label
elseif self._lang then
local langname = self._lang:getCanonicalName()
local connector = (self._data and self._data.lang_connector) or "bahasa"
local ret
-- Case 1: label data explicitly declares lang_position = "mid" with label_before/label_after.
if self._data and self._data.lang_position == "mid" then
local before = self._data.label_before or self._info.label
local after = self._data.label_after or ""
ret = before .. " " .. connector .. " " .. langname
if after ~= "" then
ret = ret .. " " .. after
end
-- Case 2: label was parsed from a mid-lang title; before\0after packed in self._info.label.
elseif self._info.label:find("\0", 1, true) then
local before, after = self._info.label:match("^(.-)%z(.*)$")
ret = before .. " " .. connector .. " " .. langname
if after and after ~= "" then
ret = ret .. " " .. after
end
-- Case 3: default — label precedes "bahasa LANG" (original behaviour).
else
ret = self._info.label .. " " .. connector .. " " .. langname
end
if self._sc then
ret = ret .. " dalam tulisan " .. self._sc:getDisplayForm()
end
return ucfirst(ret)
end
local ret = ucfirst(self._info.label)
if not (self._data.no_by_language or self._data.umbrella and self._data.umbrella.no_by_language) then
ret = ret .. " mengikut bahasa"
end
return ret
end
function Category:getTopright()
if self._lang or self._info.raw then
return self:substitute_template_specs(self._data.topright)
end
return self._data.umbrella and self:substitute_template_specs(self._data.umbrella.topright)
end
function Category:display_title(displaytitle, lang)
if type(displaytitle) == "string" then
displaytitle = self:substitute_template_specs(displaytitle)
else
displaytitle = displaytitle(self:getCategoryName(), lang)
end
mw.getCurrentFrame():callParserFunction("DISPLAYTITLE", "Kategori:" .. displaytitle)
end
function Category:get_labels_categorizing()
local m_labels_utilities = require(labels_utilities_module)
local pos_cat_labels, sense_cat_labels, use_tlb
pos_cat_labels = m_labels_utilities.find_labels_for_category(self._info.label, "pos", self._lang)
local sense_label = self._info.label:match("^Perkataan (.*)$")
if sense_label then
use_tlb = true
else
sense_label = self._info.label:match("^Perkataan dengan erti (.*)$")
end
if not sense_label then
return nil
end
sense_cat_labels = m_labels_utilities.find_labels_for_category(sense_label, "sense", self._lang)
if use_tlb then
return m_labels_utilities.format_labels_categorizing(pos_cat_labels, sense_cat_labels, self._lang)
end
local all_labels = pos_cat_labels
for k, v in pairs(sense_cat_labels) do
all_labels[k] = v
end
return m_labels_utilities.format_labels_categorizing(all_labels, nil, self._lang)
end
-- FIXME: this is clunky.
local function remove_lang_params(desc)
-- Simply remove a language name/code/category from the beginning of the string, but replace the language name
-- in the middle of the string with either "tertentu" or "specific-language" depending on whether the
-- language name appears to be an attributive qualifier of another noun or to stand by itself. This may be wrong,
-- in which case the category in question should supply its own umbrella description.
desc = desc:gsub("^{{{langname}}} ", "")
:gsub("{{{langname}}} %(", "tertentu (")
:gsub("{{{langname}}}([.,])", "tertentu%1")
:gsub("{{{langname}}} ", "tertentu ")
:gsub("{{{langdisp}}}", "tertentu")
:gsub("{{{langlink}}}", "tertentu")
return desc
end
function Category:getDescription(isChild)
-- Allows different text in the list of a category's children
local isChild = isChild == "child"
if self._lang or self._info.raw then
if not isChild and self._data.displaytitle then
self:display_title(self._data.displaytitle, self._lang)
end
if self._sc then
return self:getCategoryName() .. "."
end
local desc = self:substitute_template_specs(self._data.description)
if not desc then
return nil
elseif isChild then
return desc
end
return sparse_concat({
self:substitute_template_specs(self._data.preceding),
desc,
self:substitute_template_specs(self._data.additional),
self:substitute_template_specs(self:get_labels_categorizing()),
}, "\n\n")
end
local umbrella = self._data.umbrella
if not isChild and umbrella and umbrella.displaytitle then
self:display_title(umbrella.displaytitle)
end
local desc = self:substitute_template_specs(umbrella and umbrella.description)
local has_umbrella_desc = not not desc
if not desc then
desc = self:convert_spec_to_string(self._data.description)
if desc then
desc = remove_lang_params(desc)
desc = lcfirst(desc)
desc = desc:gsub("%.$", "")
desc = "Kategori dengan " .. desc .. "."
else
desc = "Kategori dengan " .. self._info.label .. " dalam pelbagai bahasa tertentu."
end
desc = self:substitute_template_specs(desc)
end
if isChild then
return desc
end
return sparse_concat({
self:substitute_template_specs(umbrella and umbrella.preceding or not has_umbrella_desc and self._data.preceding),
desc,
self:substitute_template_specs(umbrella and umbrella.additional or not has_umbrella_desc and self._data.additional),
self:substitute_template_specs("{{{umbrella_msg}}}"),
self:substitute_template_specs(self:get_labels_categorizing()),
}, "\n\n")
end
function Category:new_sortkey(sortkey)
local sortkey_type = type(sortkey)
if sortkey_type == "string" then
sortkey = uupper(sortkey)
elseif sortkey_type == "table" then
function sortkey:makeSortKey()
local sort_func = self.sort_func
if sort_func ~= nil then
return sort_func(self.sort_base)
end
local lang = self.lang
if lang == nil then
return self.sort_base
end
lang = get_lang(lang, nil, true)
if lang == nil then
return self.sort_base
end
local sc = self.sc
if sc ~= nil then
sc = get_script(sc)
end
return lang:makeSortKey(self.sort_base, sc)
end
end
return sortkey
end
function Category:inherit_spec(spec, parent_spec, substitute_result)
if spec == false then
return nil
end
local retval = spec or parent_spec
if substitute_result then
retval = self:substitute_template_specs(retval)
end
return retval
end
function Category:canonicalize_parents_children(cats, is_children, fallback_sort_key, fallback_sort_base)
if not cats then
return nil
elseif type(cats) == "table" then
if cats.name or cats.module then
cats = {cats}
elseif #cats == 0 then
return nil
end
else
cats = {cats}
end
local ret = {}
for _, cat in ipairs(cats) do
if type(cat) ~= "table" or not cat.name and not cat.module then
cat = {name = cat}
end
insert(ret, cat)
end
local is_umbrella = not self._lang and not self._info.raw
local table_type = is_children and "extra_children" or "parents"
for i, cat in ipairs(ret) do
local raw
if self._info.raw or is_umbrella then
raw = not cat.is_label
else
raw = cat.raw
end
local lang = self:inherit_spec(cat.lang, not raw and self._info.code or nil, "substitute")
local sc = self:inherit_spec(cat.sc, not raw and self._info.sc or nil, "substitute")
-- Get the sortkey.
local sortkey = self:inherit_spec(cat.sort, i == 1 and (fallback_sort_key or fallback_sort_base and {sort_base = fallback_sort_base}) or nil)
if type(sortkey) == "table" then
sortkey.sort_base = self:substitute_template_specs(sortkey.sort_base) or
internal_error("Missing .sort_base in '" .. table_type .. "' .sort table for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
if sortkey.sort_func then
-- Not allowed to give a lang and/or script if sort_func is given.
local bad_spec = sortkey.lang and "lang" or sortkey.sc and "sc" or nil
if bad_spec then
internal_error("Cannot specify both ." .. bad_spec .. " and .sort_func in '" .. table_type ..
"' .sort table for '" .. self._info.label .. "' category entry in module '" ..
(self._data.module or "unknown") .. "'")
end
else
sortkey.lang = self:inherit_spec(sortkey.lang, lang, "substitute")
sortkey.sc = self:inherit_spec(sortkey.sc, sc, "substitute")
end
else
sortkey = self:substitute_template_specs(sortkey)
end
local name
if cat.module then
-- A reference to a category using another category tree module.
if not cat.args then
internal_error("Missing .args in '" .. table_type .. "' table with module=\"" .. cat.module .. "\" for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
end
name = require("Module:category tree/" .. cat.module).new(self:substitute_template_specs_in_args(cat.args))
else
name = cat.name
if not name then
internal_error("Missing .name in " .. (is_umbrella and "umbrella " or "") .. "'" .. table_type .. "' table for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
elseif type(name) == "string" then -- otherwise, assume it's a category object and use it directly
name = self:substitute_template_specs(name)
if name:find("^Kategori:") then
-- It's a non-poscatboiler category name.
sortkey = sortkey or is_children and name:gsub("^Kategori:", "") or self:getCategoryName()
else
-- It's a label.
sortkey = sortkey or is_children and name or self._info.label
name = self:make_new{
label = name, code = lang, sc = sc,
raw = raw, args = self:substitute_template_specs_in_args(cat.args)
}
end
end
end
sortkey = sortkey or is_children and " " or self._info.label
ret[i] = {
name = name,
description = is_children and self:substitute_template_specs(cat.description) or nil,
sort = self:new_sortkey(sortkey)
}
end
return ret
end
function Category:getParents()
local is_umbrella, ret = not self._lang and not self._info.raw
if self._sc then
local parent1 = self:make_new{code = self._info.code, label = "Perkataan dalam tulisan " .. self._sc:getCanonicalName()}
local parent2 = self:make_new{code = self._info.code, label = self._info.label, raw = self._info.raw, args = self._info.args}
ret = {
{name = parent1, sort = self._sc:getCanonicalName()},
{name = parent2, sort = self._sc:getCanonicalName()},
}
else
local parents, fallback_sort_key, fallback_sort_base
if is_umbrella then
parents = self._data.umbrella and self._data.umbrella.parents or self._data.umbrella_parents
fallback_sort_key = self._data.umbrella and self._data.umbrella.breadcrumb_and_first_sort_key or nil
fallback_sort_base = self._data.umbrella and self._data.umbrella.breadcrumb_and_first_sort_base or nil
else
parents = self._data.parents
fallback_sort_key = self._data.breadcrumb_and_first_sort_key
fallback_sort_base = self._data.breadcrumb_and_first_sort_base
end
ret = self:canonicalize_parents_children(parents, nil, fallback_sort_key, fallback_sort_base)
if not ret then
return nil
end
end
local self_cat = self:getCategoryName()
for _, parent in ipairs(ret) do
local parent_cat = parent.name.getCategoryName and parent.name:getCategoryName()
if self_cat == parent_cat then
internal_error(("Infinite loop would occur, as parent category '%s' is the same as the child category"):format(self_cat))
end
end
return ret
end
function Category:getChildren()
local is_umbrella = not self._lang and not self._info.raw
local children = self._data.children
local ret = {}
if not is_umbrella and children then
for _, child in ipairs(children) do
child = mw.clone(child)
if type(child) ~= "table" then
child = {name = child}
end
if not child.sort then
child.sort = child.name
end
-- FIXME, is preserving the script correct?
child.name = self:make_new{code = self._info.code, label = child.name, raw = child.raw, sc = self._info.sc}
insert(ret, child)
end
end
local extra_children
if is_umbrella then
extra_children = self._data.umbrella and self._data.umbrella.extra_children
else
extra_children = self._data.extra_children
end
extra_children = self:canonicalize_parents_children(extra_children, "children")
if extra_children then
for _, child in ipairs(extra_children) do
insert(ret, child)
end
end
return #ret > 0 and ret or nil
end
function Category:getUmbrella()
local umbrella = self._data.umbrella
if umbrella == false or self._info.raw or not self._lang or self._sc then
return nil
end
-- If `umbrella` is a string, use that; otherwise, use the label.
return self:make_new({label = type(umbrella) == "string" and umbrella or self._info.label})
end
function Category:getAppendix()
-- FIXME, this should be customizable.
local lang, label = self._lang, self._info.label
if self._info.raw or not (lang and label) then
return nil
end
local appendix = make_title(100, label .. " bahasa " .. lang:getCanonicalName())
return appendix.exists and appendix.fullText or nil
end
function Category:getCatfixInfo()
if self._lang or self._sc or self._info.raw then
local langcode, sccode = self._data.catfix, self._data.catfix_sc
local lang, sc
if langcode then
langcode = self:substitute_template_specs(langcode)
lang = get_lang(langcode, nil, true)
elseif langcode == nil then -- not false
lang = self._lang
end
if sccode then
sccode = self:substitute_template_specs(sccode)
sc = get_script(sccode)
elseif sccode == nil then -- not false
sc = self._sc
end
if lang then
lang = lang:getFull()
end
return lang, sc
elseif not self._data.umbrella then
return
end
-- umbrella
local langcode, sccode = self._data.umbrella.catfix, self._data.umbrella.catfix_sc
local lang, sc
if langcode then
langcode = self:substitute_template_specs(langcode)
lang = get_lang(langcode, nil, true)
end
if sccode then
sccode = self:substitute_template_specs(sccode)
sc = get_script(sccode)
end
if lang then
lang = lang:getFull()
end
return lang, sc
end
function Category:getTOCTemplateName()
-- This should only be invoked if getTOC() returns true, meaning to do the default algorithm, but getTOC()
-- implements its own default algorithm.
internal_error("This should never get called")
end
local export = {}
function export.main(info)
local self = setmetatable({_info = info}, Category)
self:initCommon()
return self._data and self or nil
end
export.new = Category.new
return export
gxo4owc3d3mxrvau4oifgp70e2xk6b5
342779
342778
2026-05-16T08:50:04Z
Hakimi97
2668
Membatalkan semakan [[Special:Diff/342778|342778]] oleh [[Special:Contributions/Hakimi97|Hakimi97]] ([[User talk:Hakimi97|bincang]])
342779
Scribunto
text/plain
local lang_independent_data = require("Module:category tree/data")
local lang_specific_module = "Module:category tree/lang"
local lang_specific_module_prefix = lang_specific_module .. "/"
local family_specific_module = "Module:category tree/fam"
local family_specific_module_prefix = family_specific_module .. "/"
local labels_utilities_module = "Module:labels/utilities"
local template_parser_module = "Module:template parser"
local concat = table.concat
local dump = mw.dumpObject
local expand_template = require("Module:frame").expandTemplate
local insert = table.insert
local is_callable = require("Module:fun").is_callable
local lcfirst = require("Module:string utilities").lcfirst
local list_to_set = require("Module:table").listToSet
local make_title = mw.title.makeTitle
local new_title = mw.title.new
local parse = require(template_parser_module).parse
local sparse_concat = require("Module:table").sparseConcat
local tostring = tostring
local type = type
local ucfirst = require("Module:string utilities").ucfirst
local uupper = require("Module:string utilities").upper
local function internal_error(msg)
error("Internal error: " .. msg)
end
local function get_lang(...)
local _get_lang = require("Module:languages").getByCode
function get_lang(...)
return _get_lang(...) or require("Module:languages/errorGetBy").code(...)
end
return get_lang(...)
end
local function get_script(...)
local _get_script = require("Module:scripts").getByCode
function get_script(code)
return _get_script(code) or require("Module:languages/error")(code, true, "script code")
end
return get_script(...)
end
-- Category object
local Category = {}
Category.__index = Category
function Category:get_originating_info()
local originating_info = ""
if self._info.originating_label then
originating_info = " (originating from label \"" .. self._info.originating_label .. "\" in module [[" .. self._info.originating_module .. "]])"
end
return originating_info
end
local valid_keys = list_to_set{"code", "label", "sc", "raw", "args", "also", "called_from_inside", "originating_label", "originating_module"}
function Category.new(info)
for key in pairs(info) do
if not valid_keys[key] then
internal_error("The parameter \"" .. key .. "\" was not recognized.")
end
end
local self = setmetatable({}, Category)
self._info = info
if not self._info.label then
internal_error("No label was specified.")
end
self:initCommon()
if not self._data then
internal_error("The " .. (self._info.raw and "raw " or "") .. "label \"" .. self._info.label .. "\" does not exist" .. self:get_originating_info() .. ".")
end
return self
end
function Category:initCommon()
local function patch_args(args)
-- This fixes the issue with Scribunto automatically converting keys
-- in a table as numbers to strings, which in turn causes a circular
-- error for having argument parameter names as numbers as strings.
if type(args) ~= "table" then
return args
end
local new_args = {}
for k, v in pairs(args) do
if type(k) == "string" and string.len(k) < 10 and not string.match(k, "^0") and string.match(k, "^%d+$") then
new_args[tonumber(k)] = patch_args(v)
else
new_args[k] = patch_args(v)
end
end
return new_args
end
local args_handled = false
if self._info.raw then
-- Check if the category exists
local raw_categories = lang_independent_data["RAW_CATEGORIES"]
self._data = raw_categories[self._info.label]
if self._data then
if self._data.lang then
self._lang = get_lang(self._data.lang, nil, true)
self._info.code = self._lang:getCode()
end
if self._data.sc then
self._sc = get_script(self._data.sc)
self._info.sc = self._sc:getCode()
end
else
-- Go through raw handlers
local data = {
category = self._info.label,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
for _, handler in ipairs(lang_independent_data["RAW_HANDLERS"]) do
self._data, args_handled = handler.handler(data)
if self._data then
self._data.module = self._data.module or handler.module
break
end
end
if self._data then
-- Update the label if the handler specified a canonical name for it.
if self._data.canonical_name then
self._info.canonical_name = self._data.canonical_name
end
if self._data.lang then
if type(self._data.lang) ~= "string" then
internal_error("Received non-string value " .. dump(self._data.lang) .. " for self._data.lang, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".")
end
self._lang = get_lang(self._data.lang, nil, true)
self._info.code = self._lang:getCode()
end
if self._data.sc then
if type(self._data.sc) ~= "string" then
internal_error("Received non-string value " .. dump(self._data.sc) .. " for self._data.sc, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".")
end
self._sc = get_script(self._data.sc)
self._info.sc = self._sc:getCode()
end
end
end
else
-- Already parsed into language + label
if self._info.code then
self._lang = get_lang(self._info.code, nil, true)
else
self._lang = nil
end
if self._info.sc then
self._sc = get_script(self._info.sc)
else
self._sc = nil
end
self._info.orig_label = self._info.label
-- If the label was packed with a \0 separator (from split_lang_label for mid-lang titles),
-- reconstruct the canonical label key used in LABELS data modules.
-- e.g. "Perkataan\0yang baru" → canonical key "Perkataan yang baru"
if self._info.label:find("\0", 1, true) then
self._info.label = self._info.label:gsub("%z", " ")
end
if not self._lang then
-- Umbrella categories without a preceding language always begin with a capital letter, but the actual label may be
-- lowercase (cf. [[:Category:Nouns by language]] with label 'nouns' with per-language [[:Category:English nouns]];
-- but [[:Category:Reddit slang by language]] with label 'Reddit slang' with per-language
-- [[:Category:English Reddit slang]]).
-- Malay Wiktionary category names normally use LABEL + "mengikut bahasa",
-- so the visible umbrella label should normally remain uppercase-initial.
-- Keep the original label in `orig_label`, canonicalize to uppercase-initial
-- for lookup, and later fall back to lowercase if needed.
self._info.label = ucfirst(self._info.label)
end
-- First, check lang-specific labels and handlers if this is not an umbrella category.
if self._lang then
local objects_with_modules = require(lang_specific_module)
local obj, seen = self._lang, {}
local object_specific_module_prefix = lang_specific_module_prefix
local is_family = false
repeat
if objects_with_modules[obj:getCode()] then
local module = object_specific_module_prefix .. obj:getCode()
local labels_and_handlers = require(module)
if labels_and_handlers.LABELS then
self._data = labels_and_handlers.LABELS[self._info.label]
if self._data then
if not is_family and self._data.umbrella == nil and self._data.umbrella_parents == nil then
self._data.umbrella = false
end
self._data.module = self._data.module or module
end
end
if not self._data and labels_and_handlers.HANDLERS then
for _, handler in ipairs(labels_and_handlers.HANDLERS) do
local data = {
label = self._info.label,
lang = self._lang,
sc = self._sc,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
self._data, args_handled = handler(data)
if self._data then
if not is_family and self._data.umbrella == nil and
self._data.umbrella_parents == nil then
self._data.umbrella = false
end
self._data.module = self._data.module or module
break
end
end
end
if self._data then
break
end
end
seen[obj:getCode()] = true
obj = obj:getFamily()
if not is_family then
is_family = true
object_specific_module_prefix = family_specific_module_prefix
objects_with_modules = require(family_specific_module)
end
until not obj or seen[obj:getCode()]
end
local function fetch_label_data(labels)
for _, label in ipairs{self._info.label, self._info.orig_label, lcfirst(self._info.label)} do
self._data = labels[label]
if self._data then
self._info.label = label
return
end
end
end
-- Then check lang-independent labels.
if not self._data then
-- lang_independent_data.LABELS should always exist.
fetch_label_data(lang_independent_data.LABELS)
if not self._data and not self._lang then
-- Check family-specific labels for umbrella label.
local families_with_modules = require(family_specific_module)
for famcode, _ in pairs(families_with_modules) do
local module = family_specific_module_prefix .. famcode
local labels_and_handlers = require(module)
if labels_and_handlers.LABELS then
fetch_label_data(labels_and_handlers.LABELS)
if self._data then
self._data.module = self._data.module or module
break
end
end
end
end
end
-- Then check lang-independent handlers.
if not self._data then
for _, handler in ipairs(lang_independent_data["HANDLERS"]) do
for _, label in ipairs{self._info.label, self._info.orig_label, lcfirst(self._info.label)} do
local data = {
label = label,
lang = self._lang,
sc = self._sc,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
self._data, args_handled = handler.handler(data)
if self._data then
self._info.label = label
self._data.module = self._data.module or handler.module
break
end
end
if self._data then
break
end
end
if not self._data and not self._lang then
-- Check family-specific labels for umbrella handler.
local families_with_modules = require(family_specific_module)
for famcode, _ in pairs(families_with_modules) do
local module = family_specific_module_prefix .. famcode
local labels_and_handlers = require(module)
if labels_and_handlers.HANDLERS then
for _, handler in ipairs(labels_and_handlers.HANDLERS) do
for _, label in ipairs{self._info.label, self._info.orig_label, lcfirst(self._info.label)} do
local data = {
label = label,
sc = self._sc,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
self._data, args_handled = handler(data)
if self._data then
self._info.label = label
self._data.module = self._data.module or module
break
end
end
if self._data then
break
end
end
end
if self._data then
break
end
end
end
end
end
if not args_handled and self._data and self._info.args and next(self._info.args) then
local module_text = " (handled in [[" .. (self._data.module or "UNKNOWN").. "]])"
local args_text = {}
for k, v in pairs(self._info.args) do
insert(args_text, k .. "=" .. ((type(v) == "string" or type(v) == "number") and v or dump(v)))
end
error("poscatboiler label '" .. self._info.label .. "' " .. module_text .. " doesn't accept extra args " ..
concat(args_text, ", "))
end
if self._sc and not self._lang then
internal_error("Umbrella categories cannot have a script specified.")
end
end
function Category:convert_spec_to_string(desc)
if not desc then
return desc
end
local desc_type = type(desc)
if desc_type == "string" then
return desc
elseif desc_type == "number" then
return tostring(desc)
elseif not is_callable(desc) then
internal_error("`desc` must be a string, number, function, callable table or nil; received " .. dump(desc))
end
desc = desc {
lang = self._lang,
sc = self._sc,
label = self._info.label,
raw = self._info.raw,
}
if not desc then
return desc
end
desc_type = type(desc)
if desc_type == "string" then
return desc
end
internal_error("The value returned by `desc` must be a string or nil; received " .. dump(desc))
end
local function add_obj_args(args, obj, obj_type)
if obj then
args[obj_type .. "code"] = obj:getCode()
args[obj_type .. "name"] = obj:getCanonicalName()
args[obj_type .. "disp"] = obj:getDisplayForm()
args[obj_type .. "cat"] = obj:getCategoryName()
args[obj_type .. "link"] = obj:makeCategoryLink()
end
end
-- Expands `desc` like a template, passing values for specs like {{{langname}}}.
function Category:substitute_template_specs(desc)
-- This may end up happening twice but that's OK as the function is (usually) idempotent.
-- FIXME: Not idempotent if a preprocessed template returns wikicode.
desc = self:convert_spec_to_string(desc)
if not desc then
return nil
end
-- Populate the substitution arguments.
local args = {}
args.umbrella_msg = "Kategori ini merupakan sebuah kategori payung. Ia tidak mengandungi sebarang entri kamus, sebaliknya hanya mengandungi kategori khusus bahasa lain, yang seterusnya mengandungi istilah yang berkaitan dalam bahasa tertentu."
args.umbrella_meta_msg = "Kategori ini merupakan sebuah metakategori payung, yang meliputi bidang umum seperti \"lema\", \"nama\" atau \"perkataan mengikut etimologi\". Ia tidak mengandungi sebarang entri kamus, sebaliknya hanya mengandungi kategori payung (\"mengikut bahasa\") yang merangkumi subtopik tertentu, yang seterusnya mengandungi kategori khusus bahasa yang mengandungi istilah dalam bahasa tertentu untuk topik yang sama."
add_obj_args(args, self._lang, "lang")
add_obj_args(args, self._sc, "sc")
return parse(desc, true):expand(args)
end
function Category:substitute_template_specs_in_args(args)
if not args then
return args
end
local pinfo = {}
for k, v in pairs(args) do
pinfo[self:substitute_template_specs(k)] = self:substitute_template_specs(v)
end
return pinfo
end
function Category:make_new(info)
info.originating_label = self._info.label
info.originating_module = self._data.module
info.called_from_inside = true
return Category.new(info)
end
function Category:getBreadcrumbName()
local ret
if self._lang or self._info.raw then
ret = self._data.breadcrumb or self._data.breadcrumb_and_first_sort_key or
self._data.breadcrumb_and_first_sort_base or nil
else
ret = self._data.umbrella and (self._data.umbrella.breadcrumb or
self._data.umbrella.breadcrumb_and_first_sort_key or self._data.umbrella.breadcrumb_and_first_sort_base) or
nil
end
if not ret then
ret = self._info.label
end
if type(ret) ~= "table" then
ret = {name = ret}
end
local name = self:substitute_template_specs(ret.name)
local nocap = ret.nocap
if self._sc then
name = name .. " dalam tulisan " .. self._sc:getDisplayForm()
end
return name, nocap
end
local function expand_toc_template_if(template)
local template_obj = new_title(template, 10)
if template_obj.exists then
return expand_template{title = template_obj.text}
end
return nil
end
-- Return the textual expansion of the first existing template among the given templates, first performing
-- substitutions on the template name such as replacing {{{langcode}}} with the current language's code (if any).
-- If no templates exist after expansion, or if nil is passed in, return nil. If a single string is passed in,
-- treat it like a one-element list consisting of that string.
function Category:get_template_text(templates)
if templates == nil then
return nil
elseif type(templates) ~= "table" then
templates = {templates}
end
for _, template in ipairs(templates) do
if template == false then
return false
end
template = self:substitute_template_specs(template)
return expand_toc_template_if(template)
end
return nil
end
function Category:getTOC(toc_type)
-- Type "none" means everything fits on a single page; in that case, display nothing.
if toc_type == "none" then
return nil
end
local templates, fallback_templates
-- If TOC type is "full" (more than 2500 entries), do the following, in order:
-- 1. look up and expand the `toc_template_full` templates (normal or umbrella, depending on whether there is
-- a current language);
-- 2. look up and expand the `toc_template` templates (normal or umbrella, as above);
-- 3. do the default behavior, which is as follows:
-- 3a. look up a language-specific "full" template according to the current language (using English if there
-- is no current language);
-- 3b. look up a script-specific "full" template according to the first script of current language (using English
-- if there is no current language);
-- 3c. look up a language-specific "normal" template according to the current language (using English if there
-- is no current language);
-- 3d. look up a script-specific "normal" template according to the first script of the current language (using
-- English if there is no current language);
-- 3e. display nothing.
--
-- If TOC type is "normal" (between 200 and 2500 entries), do the following, in order:
-- 1. look up and expand the `toc_template` templates (normal or umbrella, depending on whether there is
-- a current language);
-- 2. do the default behavior, which is as follows:
-- 2a. look up a language-specific "normal" template according to the current language (using English if there
-- is no current language);
-- 2b. look up a script-specific "normal" template according to the first script of the current language (using
-- English if there is no current language);
-- 2c. display nothing.
local data_source
if self._lang or self._info.raw then
data_source = self._data
else
data_source = self._data.umbrella
end
if data_source then
if toc_type == "full" then
templates = data_source.toc_template_full
fallback_templates = data_source.toc_template
else
templates = data_source.toc_template
end
end
local text = self:get_template_text(templates)
if text then
return text
elseif text == false then
return nil
end
text = self:get_template_text(fallback_templates)
if text then
return text
elseif text == false then
return nil
end
local default_toc_templates_to_check = {}
local lang, sc = self:getCatfixInfo()
local langcode = lang and lang:getCode() or "ms"
local sccode = sc and sc:getCode() or lang and lang:getScriptCodes()[1] or "Latn"
-- FIXME: What is toctemplateprefix used for?
local tocname = (self._data.toctemplateprefix or "") .. "categoryTOC"
if toc_type == "full" then
insert(default_toc_templates_to_check, ("%s-%s/full"):format(langcode, tocname))
insert(default_toc_templates_to_check, ("%s-%s/full"):format(sccode, tocname))
end
insert(default_toc_templates_to_check, ("%s-%s"):format(langcode, tocname))
insert(default_toc_templates_to_check, ("%s-%s"):format(sccode, tocname))
for _, toc_template in ipairs(default_toc_templates_to_check) do
local toc_template_text = expand_toc_template_if(toc_template)
if toc_template_text then
return toc_template_text
end
end
return nil
end
function Category:getInfo()
return self._info
end
function Category:getDataModule()
return self._data.module
end
function Category:canBeEmpty()
if self._lang or self._info.raw then
return self._data.can_be_empty
end
return self._data.umbrella and self._data.umbrella.can_be_empty
end
function Category:isHidden()
if self._lang or self._info.raw then
return self._data.hidden
end
return self._data.umbrella and self._data.umbrella.hidden
end
function Category:getCategoryName()
if self._info.raw then
return self._info.canonical_name or self._info.label
elseif self._lang then
local langname = self._lang:getCanonicalName()
local connector = (self._data and self._data.lang_connector) or "bahasa"
local ret
-- Case 1: label data explicitly declares lang_position = "mid" with label_before/label_after.
if self._data and self._data.lang_position == "mid" then
local before = self._data.label_before or self._info.label
local after = self._data.label_after or ""
ret = before .. " " .. connector .. " " .. langname
if after ~= "" then
ret = ret .. " " .. after
end
-- Case 2: label was parsed from a mid-lang title; before\0after packed in self._info.label.
elseif self._info.label:find("\0", 1, true) then
local before, after = self._info.label:match("^(.-)%z(.*)$")
ret = before .. " " .. connector .. " " .. langname
if after and after ~= "" then
ret = ret .. " " .. after
end
-- Case 3: default — label precedes "bahasa LANG" (original behaviour).
else
ret = self._info.label .. " " .. connector .. " " .. langname
end
if self._sc then
ret = ret .. " dalam tulisan " .. self._sc:getDisplayForm()
end
return ucfirst(ret)
end
local ret = ucfirst(self._info.label)
if not (self._data.no_by_language or self._data.umbrella and self._data.umbrella.no_by_language) then
ret = ret .. " mengikut bahasa"
end
return ret
end
function Category:getTopright()
if self._lang or self._info.raw then
return self:substitute_template_specs(self._data.topright)
end
return self._data.umbrella and self:substitute_template_specs(self._data.umbrella.topright)
end
function Category:display_title(displaytitle, lang)
if type(displaytitle) == "string" then
displaytitle = self:substitute_template_specs(displaytitle)
else
displaytitle = displaytitle(self:getCategoryName(), lang)
end
mw.getCurrentFrame():callParserFunction("DISPLAYTITLE", "Kategori:" .. displaytitle)
end
function Category:get_labels_categorizing()
local m_labels_utilities = require(labels_utilities_module)
local pos_cat_labels, sense_cat_labels, use_tlb
pos_cat_labels = m_labels_utilities.find_labels_for_category(self._info.label, "pos", self._lang)
local sense_label = self._info.label:match("^Perkataan (.*)$")
if sense_label then
use_tlb = true
else
sense_label = self._info.label:match("^Perkataan dengan erti (.*)$")
end
if not sense_label then
return nil
end
sense_cat_labels = m_labels_utilities.find_labels_for_category(sense_label, "sense", self._lang)
if use_tlb then
return m_labels_utilities.format_labels_categorizing(pos_cat_labels, sense_cat_labels, self._lang)
end
local all_labels = pos_cat_labels
for k, v in pairs(sense_cat_labels) do
all_labels[k] = v
end
return m_labels_utilities.format_labels_categorizing(all_labels, nil, self._lang)
end
-- FIXME: this is clunky.
local function remove_lang_params(desc)
-- Simply remove a language name/code/category from the beginning of the string, but replace the language name
-- in the middle of the string with either "tertentu" or "specific-language" depending on whether the
-- language name appears to be an attributive qualifier of another noun or to stand by itself. This may be wrong,
-- in which case the category in question should supply its own umbrella description.
desc = desc:gsub("^{{{langname}}} ", "")
:gsub("{{{langname}}} %(", "tertentu (")
:gsub("{{{langname}}}([.,])", "tertentu%1")
:gsub("{{{langname}}} ", "tertentu ")
:gsub("{{{langdisp}}}", "tertentu")
:gsub("{{{langlink}}}", "tertentu")
return desc
end
function Category:getDescription(isChild)
-- Allows different text in the list of a category's children
local isChild = isChild == "child"
if self._lang or self._info.raw then
if not isChild and self._data.displaytitle then
self:display_title(self._data.displaytitle, self._lang)
end
if self._sc then
return self:getCategoryName() .. "."
end
local desc = self:substitute_template_specs(self._data.description)
if not desc then
return nil
elseif isChild then
return desc
end
return sparse_concat({
self:substitute_template_specs(self._data.preceding),
desc,
self:substitute_template_specs(self._data.additional),
self:substitute_template_specs(self:get_labels_categorizing()),
}, "\n\n")
end
local umbrella = self._data.umbrella
if not isChild and umbrella and umbrella.displaytitle then
self:display_title(umbrella.displaytitle)
end
local desc = self:substitute_template_specs(umbrella and umbrella.description)
local has_umbrella_desc = not not desc
if not desc then
desc = self:convert_spec_to_string(self._data.description)
if desc then
desc = remove_lang_params(desc)
desc = lcfirst(desc)
desc = desc:gsub("%.$", "")
desc = "Kategori dengan " .. desc .. "."
else
desc = "Kategori dengan " .. self._info.label .. " dalam pelbagai bahasa tertentu."
end
desc = self:substitute_template_specs(desc)
end
if isChild then
return desc
end
return sparse_concat({
self:substitute_template_specs(umbrella and umbrella.preceding or not has_umbrella_desc and self._data.preceding),
desc,
self:substitute_template_specs(umbrella and umbrella.additional or not has_umbrella_desc and self._data.additional),
self:substitute_template_specs("{{{umbrella_msg}}}"),
self:substitute_template_specs(self:get_labels_categorizing()),
}, "\n\n")
end
function Category:new_sortkey(sortkey)
local sortkey_type = type(sortkey)
if sortkey_type == "string" then
sortkey = uupper(sortkey)
elseif sortkey_type == "table" then
function sortkey:makeSortKey()
local sort_func = self.sort_func
if sort_func ~= nil then
return sort_func(self.sort_base)
end
local lang = self.lang
if lang == nil then
return self.sort_base
end
lang = get_lang(lang, nil, true)
if lang == nil then
return self.sort_base
end
local sc = self.sc
if sc ~= nil then
sc = get_script(sc)
end
return lang:makeSortKey(self.sort_base, sc)
end
end
return sortkey
end
function Category:inherit_spec(spec, parent_spec, substitute_result)
if spec == false then
return nil
end
local retval = spec or parent_spec
if substitute_result then
retval = self:substitute_template_specs(retval)
end
return retval
end
function Category:canonicalize_parents_children(cats, is_children, fallback_sort_key, fallback_sort_base)
if not cats then
return nil
elseif type(cats) == "table" then
if cats.name or cats.module then
cats = {cats}
elseif #cats == 0 then
return nil
end
else
cats = {cats}
end
local ret = {}
for _, cat in ipairs(cats) do
if type(cat) ~= "table" or not cat.name and not cat.module then
cat = {name = cat}
end
insert(ret, cat)
end
local is_umbrella = not self._lang and not self._info.raw
local table_type = is_children and "extra_children" or "parents"
for i, cat in ipairs(ret) do
local raw
if self._info.raw or is_umbrella then
raw = not cat.is_label
else
raw = cat.raw
end
local lang = self:inherit_spec(cat.lang, not raw and self._info.code or nil, "substitute")
local sc = self:inherit_spec(cat.sc, not raw and self._info.sc or nil, "substitute")
-- Get the sortkey.
local sortkey = self:inherit_spec(cat.sort, i == 1 and (fallback_sort_key or fallback_sort_base and {sort_base = fallback_sort_base}) or nil)
if type(sortkey) == "table" then
sortkey.sort_base = self:substitute_template_specs(sortkey.sort_base) or
internal_error("Missing .sort_base in '" .. table_type .. "' .sort table for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
if sortkey.sort_func then
-- Not allowed to give a lang and/or script if sort_func is given.
local bad_spec = sortkey.lang and "lang" or sortkey.sc and "sc" or nil
if bad_spec then
internal_error("Cannot specify both ." .. bad_spec .. " and .sort_func in '" .. table_type ..
"' .sort table for '" .. self._info.label .. "' category entry in module '" ..
(self._data.module or "unknown") .. "'")
end
else
sortkey.lang = self:inherit_spec(sortkey.lang, lang, "substitute")
sortkey.sc = self:inherit_spec(sortkey.sc, sc, "substitute")
end
else
sortkey = self:substitute_template_specs(sortkey)
end
local name
if cat.module then
-- A reference to a category using another category tree module.
if not cat.args then
internal_error("Missing .args in '" .. table_type .. "' table with module=\"" .. cat.module .. "\" for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
end
name = require("Module:category tree/" .. cat.module).new(self:substitute_template_specs_in_args(cat.args))
else
name = cat.name
if not name then
internal_error("Missing .name in " .. (is_umbrella and "umbrella " or "") .. "'" .. table_type .. "' table for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
elseif type(name) == "string" then -- otherwise, assume it's a category object and use it directly
name = self:substitute_template_specs(name)
if name:find("^Kategori:") then
-- It's a non-poscatboiler category name.
sortkey = sortkey or is_children and name:gsub("^Kategori:", "") or self:getCategoryName()
else
-- It's a label.
sortkey = sortkey or is_children and name or self._info.label
name = self:make_new{
label = name, code = lang, sc = sc,
raw = raw, args = self:substitute_template_specs_in_args(cat.args)
}
end
end
end
sortkey = sortkey or is_children and " " or self._info.label
ret[i] = {
name = name,
description = is_children and self:substitute_template_specs(cat.description) or nil,
sort = self:new_sortkey(sortkey)
}
end
return ret
end
function Category:getParents()
local is_umbrella, ret = not self._lang and not self._info.raw
if self._sc then
local parent1 = self:make_new{code = self._info.code, label = "Perkataan dalam tulisan " .. self._sc:getCanonicalName()}
local parent2 = self:make_new{code = self._info.code, label = self._info.label, raw = self._info.raw, args = self._info.args}
ret = {
{name = parent1, sort = self._sc:getCanonicalName()},
{name = parent2, sort = self._sc:getCanonicalName()},
}
else
local parents, fallback_sort_key, fallback_sort_base
if is_umbrella then
parents = self._data.umbrella and self._data.umbrella.parents or self._data.umbrella_parents
fallback_sort_key = self._data.umbrella and self._data.umbrella.breadcrumb_and_first_sort_key or nil
fallback_sort_base = self._data.umbrella and self._data.umbrella.breadcrumb_and_first_sort_base or nil
else
parents = self._data.parents
fallback_sort_key = self._data.breadcrumb_and_first_sort_key
fallback_sort_base = self._data.breadcrumb_and_first_sort_base
end
ret = self:canonicalize_parents_children(parents, nil, fallback_sort_key, fallback_sort_base)
if not ret then
return nil
end
end
local self_cat = self:getCategoryName()
for _, parent in ipairs(ret) do
local parent_cat = parent.name.getCategoryName and parent.name:getCategoryName()
if self_cat == parent_cat then
internal_error(("Infinite loop would occur, as parent category '%s' is the same as the child category"):format(self_cat))
end
end
return ret
end
function Category:getChildren()
local is_umbrella = not self._lang and not self._info.raw
local children = self._data.children
local ret = {}
if not is_umbrella and children then
for _, child in ipairs(children) do
child = mw.clone(child)
if type(child) ~= "table" then
child = {name = child}
end
if not child.sort then
child.sort = child.name
end
-- FIXME, is preserving the script correct?
child.name = self:make_new{code = self._info.code, label = child.name, raw = child.raw, sc = self._info.sc}
insert(ret, child)
end
end
local extra_children
if is_umbrella then
extra_children = self._data.umbrella and self._data.umbrella.extra_children
else
extra_children = self._data.extra_children
end
extra_children = self:canonicalize_parents_children(extra_children, "children")
if extra_children then
for _, child in ipairs(extra_children) do
insert(ret, child)
end
end
return #ret > 0 and ret or nil
end
function Category:getUmbrella()
local umbrella = self._data.umbrella
if umbrella == false or self._info.raw or not self._lang or self._sc then
return nil
end
-- If `umbrella` is a string, use that; otherwise, use the label.
return self:make_new({label = type(umbrella) == "string" and umbrella or self._info.label})
end
function Category:getAppendix()
-- FIXME, this should be customizable.
local lang, label = self._lang, self._info.label
if self._info.raw or not (lang and label) then
return nil
end
local appendix = make_title(100, label .. " bahasa " .. lang:getCanonicalName())
return appendix.exists and appendix.fullText or nil
end
function Category:getCatfixInfo()
if self._lang or self._sc or self._info.raw then
local langcode, sccode = self._data.catfix, self._data.catfix_sc
local lang, sc
if langcode then
langcode = self:substitute_template_specs(langcode)
lang = get_lang(langcode, nil, true)
elseif langcode == nil then -- not false
lang = self._lang
end
if sccode then
sccode = self:substitute_template_specs(sccode)
sc = get_script(sccode)
elseif sccode == nil then -- not false
sc = self._sc
end
if lang then
lang = lang:getFull()
end
return lang, sc
elseif not self._data.umbrella then
return
end
-- umbrella
local langcode, sccode = self._data.umbrella.catfix, self._data.umbrella.catfix_sc
local lang, sc
if langcode then
langcode = self:substitute_template_specs(langcode)
lang = get_lang(langcode, nil, true)
end
if sccode then
sccode = self:substitute_template_specs(sccode)
sc = get_script(sccode)
end
if lang then
lang = lang:getFull()
end
return lang, sc
end
function Category:getTOCTemplateName()
-- This should only be invoked if getTOC() returns true, meaning to do the default algorithm, but getTOC()
-- implements its own default algorithm.
internal_error("This should never get called")
end
local export = {}
function export.main(info)
local self = setmetatable({_info = info}, Category)
self:initCommon()
return self._data and self or nil
end
export.new = Category.new
return export
1304c39qhl58h9gfl9s3ibhnw6y894b
342780
342779
2026-05-16T08:50:59Z
Hakimi97
2668
342780
Scribunto
text/plain
local lang_independent_data = require("Module:category tree/data")
local lang_specific_module = "Module:category tree/lang"
local lang_specific_module_prefix = lang_specific_module .. "/"
local family_specific_module = "Module:category tree/fam"
local family_specific_module_prefix = family_specific_module .. "/"
local labels_utilities_module = "Module:labels/utilities"
local template_parser_module = "Module:template parser"
local concat = table.concat
local dump = mw.dumpObject
local expand_template = require("Module:frame").expandTemplate
local insert = table.insert
local is_callable = require("Module:fun").is_callable
local lcfirst = require("Module:string utilities").lcfirst
local list_to_set = require("Module:table").listToSet
local make_title = mw.title.makeTitle
local new_title = mw.title.new
local parse = require(template_parser_module).parse
local sparse_concat = require("Module:table").sparseConcat
local tostring = tostring
local type = type
local ucfirst = require("Module:string utilities").ucfirst
local uupper = require("Module:string utilities").upper
local function internal_error(msg)
error("Internal error: " .. msg)
end
local function get_lang(...)
local _get_lang = require("Module:languages").getByCode
function get_lang(...)
return _get_lang(...) or require("Module:languages/errorGetBy").code(...)
end
return get_lang(...)
end
local function get_script(...)
local _get_script = require("Module:scripts").getByCode
function get_script(code)
return _get_script(code) or require("Module:languages/error")(code, true, "script code")
end
return get_script(...)
end
-- Category object
local Category = {}
Category.__index = Category
function Category:get_originating_info()
local originating_info = ""
if self._info.originating_label then
originating_info = " (originating from label \"" .. self._info.originating_label .. "\" in module [[" .. self._info.originating_module .. "]])"
end
return originating_info
end
local valid_keys = list_to_set{"code", "label", "sc", "raw", "args", "also", "called_from_inside", "originating_label", "originating_module"}
function Category.new(info)
for key in pairs(info) do
if not valid_keys[key] then
internal_error("The parameter \"" .. key .. "\" was not recognized.")
end
end
local self = setmetatable({}, Category)
self._info = info
if not self._info.label then
internal_error("No label was specified.")
end
self:initCommon()
if not self._data then
internal_error("The " .. (self._info.raw and "raw " or "") .. "label \"" .. self._info.label .. "\" does not exist" .. self:get_originating_info() .. ".")
end
return self
end
function Category:initCommon()
local function patch_args(args)
-- This fixes the issue with Scribunto automatically converting keys
-- in a table as numbers to strings, which in turn causes a circular
-- error for having argument parameter names as numbers as strings.
if type(args) ~= "table" then
return args
end
local new_args = {}
for k, v in pairs(args) do
if type(k) == "string" and string.len(k) < 10 and not string.match(k, "^0") and string.match(k, "^%d+$") then
new_args[tonumber(k)] = patch_args(v)
else
new_args[k] = patch_args(v)
end
end
return new_args
end
local args_handled = false
if self._info.raw then
-- Check if the category exists
local raw_categories = lang_independent_data["RAW_CATEGORIES"]
self._data = raw_categories[self._info.label]
if self._data then
if self._data.lang then
self._lang = get_lang(self._data.lang, nil, true)
self._info.code = self._lang:getCode()
end
if self._data.sc then
self._sc = get_script(self._data.sc)
self._info.sc = self._sc:getCode()
end
else
-- Go through raw handlers
local data = {
category = self._info.label,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
for _, handler in ipairs(lang_independent_data["RAW_HANDLERS"]) do
self._data, args_handled = handler.handler(data)
if self._data then
self._data.module = self._data.module or handler.module
break
end
end
if self._data then
-- Update the label if the handler specified a canonical name for it.
if self._data.canonical_name then
self._info.canonical_name = self._data.canonical_name
end
if self._data.lang then
if type(self._data.lang) ~= "string" then
internal_error("Received non-string value " .. dump(self._data.lang) .. " for self._data.lang, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".")
end
self._lang = get_lang(self._data.lang, nil, true)
self._info.code = self._lang:getCode()
end
if self._data.sc then
if type(self._data.sc) ~= "string" then
internal_error("Received non-string value " .. dump(self._data.sc) .. " for self._data.sc, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".")
end
self._sc = get_script(self._data.sc)
self._info.sc = self._sc:getCode()
end
end
end
else
-- Already parsed into language + label
if self._info.code then
self._lang = get_lang(self._info.code, nil, true)
else
self._lang = nil
end
if self._info.sc then
self._sc = get_script(self._info.sc)
else
self._sc = nil
end
self._info.orig_label = self._info.label
-- If the label was packed with a \0 separator (from split_lang_label for mid-lang titles),
-- reconstruct the canonical label key used in LABELS data modules.
-- e.g. "Perkataan\0yang baru" → canonical key "Perkataan yang baru"
if self._info.label:find("\0", 1, true) then
self._info.label = self._info.label:gsub("%z", " ")
end
if not self._lang then
-- Umbrella categories without a preceding language always begin with a capital letter, but the actual label may be
-- lowercase (cf. [[:Category:Nouns by language]] with label 'nouns' with per-language [[:Category:English nouns]];
-- but [[:Category:Reddit slang by language]] with label 'Reddit slang' with per-language
-- [[:Category:English Reddit slang]]). Since the label is almost always lowercase, we lowercase it for umbrella
-- categories, storing the original into `orig_label`, and correct it later if needed.
self._info.label = lcfirst(self._info.label)
end
-- First, check lang-specific labels and handlers if this is not an umbrella category.
if self._lang then
local objects_with_modules = require(lang_specific_module)
local obj, seen = self._lang, {}
local object_specific_module_prefix = lang_specific_module_prefix
local is_family = false
repeat
if objects_with_modules[obj:getCode()] then
local module = object_specific_module_prefix .. obj:getCode()
local labels_and_handlers = require(module)
if labels_and_handlers.LABELS then
self._data = labels_and_handlers.LABELS[self._info.label]
if self._data then
if not is_family and self._data.umbrella == nil and self._data.umbrella_parents == nil then
self._data.umbrella = false
end
self._data.module = self._data.module or module
end
end
if not self._data and labels_and_handlers.HANDLERS then
for _, handler in ipairs(labels_and_handlers.HANDLERS) do
local data = {
label = self._info.label,
lang = self._lang,
sc = self._sc,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
self._data, args_handled = handler(data)
if self._data then
if not is_family and self._data.umbrella == nil and
self._data.umbrella_parents == nil then
self._data.umbrella = false
end
self._data.module = self._data.module or module
break
end
end
end
if self._data then
break
end
end
seen[obj:getCode()] = true
obj = obj:getFamily()
if not is_family then
is_family = true
object_specific_module_prefix = family_specific_module_prefix
objects_with_modules = require(family_specific_module)
end
until not obj or seen[obj:getCode()]
end
local function fetch_label_data(labels)
self._data = labels[self._info.label]
-- See comment above about uppercase- vs. lowercase-initial labels, which are indistinguishable
-- in umbrella categories.
if not self._data then
self._data = labels[self._info.orig_label]
if self._data then
self._info.label = self._info.orig_label
end
end
end
-- Then check lang-independent labels.
if not self._data then
-- lang_independent_data.LABELS should always exist.
fetch_label_data(lang_independent_data.LABELS)
if not self._data and not self._lang then
-- Check family-specific labels for umbrella label.
local families_with_modules = require(family_specific_module)
for famcode, _ in pairs(families_with_modules) do
local module = family_specific_module_prefix .. famcode
local labels_and_handlers = require(module)
if labels_and_handlers.LABELS then
fetch_label_data(labels_and_handlers.LABELS)
if self._data then
self._data.module = self._data.module or module
break
end
end
end
end
end
-- Then check lang-independent handlers.
if not self._data then
local data = {
label = self._info.label,
lang = self._lang,
sc = self._sc,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
for _, handler in ipairs(lang_independent_data["HANDLERS"]) do
self._data, args_handled = handler.handler(data)
if self._data then
self._data.module = self._data.module or handler.module
break
end
end
if not self._data and not self._lang then
-- Check family-specific labels for umbrella handler.
local families_with_modules = require(family_specific_module)
for famcode, _ in pairs(families_with_modules) do
local module = family_specific_module_prefix .. famcode
local labels_and_handlers = require(module)
if labels_and_handlers.HANDLERS then
for _, handler in ipairs(labels_and_handlers.HANDLERS) do
local data = {
label = self._info.label,
sc = self._sc,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
self._data, args_handled = handler(data)
if self._data then
self._data.module = self._data.module or module
break
end
end
end
if self._data then
break
end
end
end
end
end
if not args_handled and self._data and self._info.args and next(self._info.args) then
local module_text = " (handled in [[" .. (self._data.module or "UNKNOWN").. "]])"
local args_text = {}
for k, v in pairs(self._info.args) do
insert(args_text, k .. "=" .. ((type(v) == "string" or type(v) == "number") and v or dump(v)))
end
error("poscatboiler label '" .. self._info.label .. "' " .. module_text .. " doesn't accept extra args " ..
concat(args_text, ", "))
end
if self._sc and not self._lang then
internal_error("Umbrella categories cannot have a script specified.")
end
end
function Category:convert_spec_to_string(desc)
if not desc then
return desc
end
local desc_type = type(desc)
if desc_type == "string" then
return desc
elseif desc_type == "number" then
return tostring(desc)
elseif not is_callable(desc) then
internal_error("`desc` must be a string, number, function, callable table or nil; received " .. dump(desc))
end
desc = desc {
lang = self._lang,
sc = self._sc,
label = self._info.label,
raw = self._info.raw,
}
if not desc then
return desc
end
desc_type = type(desc)
if desc_type == "string" then
return desc
end
internal_error("The value returned by `desc` must be a string or nil; received " .. dump(desc))
end
local function add_obj_args(args, obj, obj_type)
if obj then
args[obj_type .. "code"] = obj:getCode()
args[obj_type .. "name"] = obj:getCanonicalName()
args[obj_type .. "disp"] = obj:getDisplayForm()
args[obj_type .. "cat"] = obj:getCategoryName()
args[obj_type .. "link"] = obj:makeCategoryLink()
end
end
-- Expands `desc` like a template, passing values for specs like {{{langname}}}.
function Category:substitute_template_specs(desc)
-- This may end up happening twice but that's OK as the function is (usually) idempotent.
-- FIXME: Not idempotent if a preprocessed template returns wikicode.
desc = self:convert_spec_to_string(desc)
if not desc then
return nil
end
-- Populate the substitution arguments.
local args = {}
args.umbrella_msg = "Kategori ini merupakan sebuah kategori payung. Ia tidak mengandungi sebarang entri kamus, sebaliknya hanya mengandungi kategori khusus bahasa lain, yang seterusnya mengandungi istilah yang berkaitan dalam bahasa tertentu."
args.umbrella_meta_msg = "Kategori ini merupakan sebuah metakategori payung, yang meliputi bidang umum seperti \"lema\", \"nama\" atau \"perkataan mengikut etimologi\". Ia tidak mengandungi sebarang entri kamus, sebaliknya hanya mengandungi kategori payung (\"mengikut bahasa\") yang merangkumi subtopik tertentu, yang seterusnya mengandungi kategori khusus bahasa yang mengandungi istilah dalam bahasa tertentu untuk topik yang sama."
add_obj_args(args, self._lang, "lang")
add_obj_args(args, self._sc, "sc")
return parse(desc, true):expand(args)
end
function Category:substitute_template_specs_in_args(args)
if not args then
return args
end
local pinfo = {}
for k, v in pairs(args) do
pinfo[self:substitute_template_specs(k)] = self:substitute_template_specs(v)
end
return pinfo
end
function Category:make_new(info)
info.originating_label = self._info.label
info.originating_module = self._data.module
info.called_from_inside = true
return Category.new(info)
end
function Category:getBreadcrumbName()
local ret
if self._lang or self._info.raw then
ret = self._data.breadcrumb or self._data.breadcrumb_and_first_sort_key or
self._data.breadcrumb_and_first_sort_base or nil
else
ret = self._data.umbrella and (self._data.umbrella.breadcrumb or
self._data.umbrella.breadcrumb_and_first_sort_key or self._data.umbrella.breadcrumb_and_first_sort_base) or
nil
end
if not ret then
ret = self._info.label
end
if type(ret) ~= "table" then
ret = {name = ret}
end
local name = self:substitute_template_specs(ret.name)
local nocap = ret.nocap
if self._sc then
name = name .. " dalam tulisan " .. self._sc:getDisplayForm()
end
return name, nocap
end
local function expand_toc_template_if(template)
local template_obj = new_title(template, 10)
if template_obj.exists then
return expand_template{title = template_obj.text}
end
return nil
end
-- Return the textual expansion of the first existing template among the given templates, first performing
-- substitutions on the template name such as replacing {{{langcode}}} with the current language's code (if any).
-- If no templates exist after expansion, or if nil is passed in, return nil. If a single string is passed in,
-- treat it like a one-element list consisting of that string.
function Category:get_template_text(templates)
if templates == nil then
return nil
elseif type(templates) ~= "table" then
templates = {templates}
end
for _, template in ipairs(templates) do
if template == false then
return false
end
template = self:substitute_template_specs(template)
return expand_toc_template_if(template)
end
return nil
end
function Category:getTOC(toc_type)
-- Type "none" means everything fits on a single page; in that case, display nothing.
if toc_type == "none" then
return nil
end
local templates, fallback_templates
-- If TOC type is "full" (more than 2500 entries), do the following, in order:
-- 1. look up and expand the `toc_template_full` templates (normal or umbrella, depending on whether there is
-- a current language);
-- 2. look up and expand the `toc_template` templates (normal or umbrella, as above);
-- 3. do the default behavior, which is as follows:
-- 3a. look up a language-specific "full" template according to the current language (using English if there
-- is no current language);
-- 3b. look up a script-specific "full" template according to the first script of current language (using English
-- if there is no current language);
-- 3c. look up a language-specific "normal" template according to the current language (using English if there
-- is no current language);
-- 3d. look up a script-specific "normal" template according to the first script of the current language (using
-- English if there is no current language);
-- 3e. display nothing.
--
-- If TOC type is "normal" (between 200 and 2500 entries), do the following, in order:
-- 1. look up and expand the `toc_template` templates (normal or umbrella, depending on whether there is
-- a current language);
-- 2. do the default behavior, which is as follows:
-- 2a. look up a language-specific "normal" template according to the current language (using English if there
-- is no current language);
-- 2b. look up a script-specific "normal" template according to the first script of the current language (using
-- English if there is no current language);
-- 2c. display nothing.
local data_source
if self._lang or self._info.raw then
data_source = self._data
else
data_source = self._data.umbrella
end
if data_source then
if toc_type == "full" then
templates = data_source.toc_template_full
fallback_templates = data_source.toc_template
else
templates = data_source.toc_template
end
end
local text = self:get_template_text(templates)
if text then
return text
elseif text == false then
return nil
end
text = self:get_template_text(fallback_templates)
if text then
return text
elseif text == false then
return nil
end
local default_toc_templates_to_check = {}
local lang, sc = self:getCatfixInfo()
local langcode = lang and lang:getCode() or "ms"
local sccode = sc and sc:getCode() or lang and lang:getScriptCodes()[1] or "Latn"
-- FIXME: What is toctemplateprefix used for?
local tocname = (self._data.toctemplateprefix or "") .. "categoryTOC"
if toc_type == "full" then
insert(default_toc_templates_to_check, ("%s-%s/full"):format(langcode, tocname))
insert(default_toc_templates_to_check, ("%s-%s/full"):format(sccode, tocname))
end
insert(default_toc_templates_to_check, ("%s-%s"):format(langcode, tocname))
insert(default_toc_templates_to_check, ("%s-%s"):format(sccode, tocname))
for _, toc_template in ipairs(default_toc_templates_to_check) do
local toc_template_text = expand_toc_template_if(toc_template)
if toc_template_text then
return toc_template_text
end
end
return nil
end
function Category:getInfo()
return self._info
end
function Category:getDataModule()
return self._data.module
end
function Category:canBeEmpty()
if self._lang or self._info.raw then
return self._data.can_be_empty
end
return self._data.umbrella and self._data.umbrella.can_be_empty
end
function Category:isHidden()
if self._lang or self._info.raw then
return self._data.hidden
end
return self._data.umbrella and self._data.umbrella.hidden
end
function Category:getCategoryName()
if self._info.raw then
return self._info.canonical_name or self._info.label
elseif self._lang then
local langname = self._lang:getCanonicalName()
local connector = (self._data and self._data.lang_connector) or "bahasa"
local ret
-- Case 1: label data explicitly declares lang_position = "mid" with label_before/label_after.
if self._data and self._data.lang_position == "mid" then
local before = self._data.label_before or self._info.label
local after = self._data.label_after or ""
ret = before .. " " .. connector .. " " .. langname
if after ~= "" then
ret = ret .. " " .. after
end
-- Case 2: label was parsed from a mid-lang title; before\0after packed in self._info.label.
elseif self._info.label:find("\0", 1, true) then
local before, after = self._info.label:match("^(.-)%z(.*)$")
ret = before .. " " .. connector .. " " .. langname
if after and after ~= "" then
ret = ret .. " " .. after
end
-- Case 3: default — label precedes "bahasa LANG" (original behaviour).
else
ret = self._info.label .. " " .. connector .. " " .. langname
end
if self._sc then
ret = ret .. " dalam tulisan " .. self._sc:getDisplayForm()
end
return ucfirst(ret)
end
local ret = ucfirst(self._info.label)
if not (self._data.no_by_language or self._data.umbrella and self._data.umbrella.no_by_language) then
ret = ret .. " mengikut bahasa"
end
return ret
end
function Category:getTopright()
if self._lang or self._info.raw then
return self:substitute_template_specs(self._data.topright)
end
return self._data.umbrella and self:substitute_template_specs(self._data.umbrella.topright)
end
function Category:display_title(displaytitle, lang)
if type(displaytitle) == "string" then
displaytitle = self:substitute_template_specs(displaytitle)
else
displaytitle = displaytitle(self:getCategoryName(), lang)
end
mw.getCurrentFrame():callParserFunction("DISPLAYTITLE", "Kategori:" .. displaytitle)
end
function Category:get_labels_categorizing()
local m_labels_utilities = require(labels_utilities_module)
local pos_cat_labels, sense_cat_labels, use_tlb
pos_cat_labels = m_labels_utilities.find_labels_for_category(self._info.label, "pos", self._lang)
local sense_label = self._info.label:match("^Perkataan (.*)$")
if sense_label then
use_tlb = true
else
sense_label = self._info.label:match("^Perkataan dengan erti (.*)$")
end
if not sense_label then
return nil
end
sense_cat_labels = m_labels_utilities.find_labels_for_category(sense_label, "sense", self._lang)
if use_tlb then
return m_labels_utilities.format_labels_categorizing(pos_cat_labels, sense_cat_labels, self._lang)
end
local all_labels = pos_cat_labels
for k, v in pairs(sense_cat_labels) do
all_labels[k] = v
end
return m_labels_utilities.format_labels_categorizing(all_labels, nil, self._lang)
end
-- FIXME: this is clunky.
local function remove_lang_params(desc)
-- Simply remove a language name/code/category from the beginning of the string, but replace the language name
-- in the middle of the string with either "tertentu" or "specific-language" depending on whether the
-- language name appears to be an attributive qualifier of another noun or to stand by itself. This may be wrong,
-- in which case the category in question should supply its own umbrella description.
desc = desc:gsub("^{{{langname}}} ", "")
:gsub("{{{langname}}} %(", "tertentu (")
:gsub("{{{langname}}}([.,])", "tertentu%1")
:gsub("{{{langname}}} ", "tertentu ")
:gsub("{{{langdisp}}}", "tertentu")
:gsub("{{{langlink}}}", "tertentu")
return desc
end
function Category:getDescription(isChild)
-- Allows different text in the list of a category's children
local isChild = isChild == "child"
if self._lang or self._info.raw then
if not isChild and self._data.displaytitle then
self:display_title(self._data.displaytitle, self._lang)
end
if self._sc then
return self:getCategoryName() .. "."
end
local desc = self:substitute_template_specs(self._data.description)
if not desc then
return nil
elseif isChild then
return desc
end
return sparse_concat({
self:substitute_template_specs(self._data.preceding),
desc,
self:substitute_template_specs(self._data.additional),
self:substitute_template_specs(self:get_labels_categorizing()),
}, "\n\n")
end
local umbrella = self._data.umbrella
if not isChild and umbrella and umbrella.displaytitle then
self:display_title(umbrella.displaytitle)
end
local desc = self:substitute_template_specs(umbrella and umbrella.description)
local has_umbrella_desc = not not desc
if not desc then
desc = self:convert_spec_to_string(self._data.description)
if desc then
desc = remove_lang_params(desc)
desc = lcfirst(desc)
desc = desc:gsub("%.$", "")
desc = "Kategori dengan " .. desc .. "."
else
desc = "Kategori dengan " .. self._info.label .. " dalam pelbagai bahasa tertentu."
end
desc = self:substitute_template_specs(desc)
end
if isChild then
return desc
end
return sparse_concat({
self:substitute_template_specs(umbrella and umbrella.preceding or not has_umbrella_desc and self._data.preceding),
desc,
self:substitute_template_specs(umbrella and umbrella.additional or not has_umbrella_desc and self._data.additional),
self:substitute_template_specs("{{{umbrella_msg}}}"),
self:substitute_template_specs(self:get_labels_categorizing()),
}, "\n\n")
end
function Category:new_sortkey(sortkey)
local sortkey_type = type(sortkey)
if sortkey_type == "string" then
sortkey = uupper(sortkey)
elseif sortkey_type == "table" then
function sortkey:makeSortKey()
local sort_func = self.sort_func
if sort_func ~= nil then
return sort_func(self.sort_base)
end
local lang = self.lang
if lang == nil then
return self.sort_base
end
lang = get_lang(lang, nil, true)
if lang == nil then
return self.sort_base
end
local sc = self.sc
if sc ~= nil then
sc = get_script(sc)
end
return lang:makeSortKey(self.sort_base, sc)
end
end
return sortkey
end
function Category:inherit_spec(spec, parent_spec, substitute_result)
if spec == false then
return nil
end
local retval = spec or parent_spec
if substitute_result then
retval = self:substitute_template_specs(retval)
end
return retval
end
function Category:canonicalize_parents_children(cats, is_children, fallback_sort_key, fallback_sort_base)
if not cats then
return nil
elseif type(cats) == "table" then
if cats.name or cats.module then
cats = {cats}
elseif #cats == 0 then
return nil
end
else
cats = {cats}
end
local ret = {}
for _, cat in ipairs(cats) do
if type(cat) ~= "table" or not cat.name and not cat.module then
cat = {name = cat}
end
insert(ret, cat)
end
local is_umbrella = not self._lang and not self._info.raw
local table_type = is_children and "extra_children" or "parents"
for i, cat in ipairs(ret) do
local raw
if self._info.raw or is_umbrella then
raw = not cat.is_label
else
raw = cat.raw
end
local lang = self:inherit_spec(cat.lang, not raw and self._info.code or nil, "substitute")
local sc = self:inherit_spec(cat.sc, not raw and self._info.sc or nil, "substitute")
-- Get the sortkey.
local sortkey = self:inherit_spec(cat.sort, i == 1 and (fallback_sort_key or fallback_sort_base and {sort_base = fallback_sort_base}) or nil)
if type(sortkey) == "table" then
sortkey.sort_base = self:substitute_template_specs(sortkey.sort_base) or
internal_error("Missing .sort_base in '" .. table_type .. "' .sort table for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
if sortkey.sort_func then
-- Not allowed to give a lang and/or script if sort_func is given.
local bad_spec = sortkey.lang and "lang" or sortkey.sc and "sc" or nil
if bad_spec then
internal_error("Cannot specify both ." .. bad_spec .. " and .sort_func in '" .. table_type ..
"' .sort table for '" .. self._info.label .. "' category entry in module '" ..
(self._data.module or "unknown") .. "'")
end
else
sortkey.lang = self:inherit_spec(sortkey.lang, lang, "substitute")
sortkey.sc = self:inherit_spec(sortkey.sc, sc, "substitute")
end
else
sortkey = self:substitute_template_specs(sortkey)
end
local name
if cat.module then
-- A reference to a category using another category tree module.
if not cat.args then
internal_error("Missing .args in '" .. table_type .. "' table with module=\"" .. cat.module .. "\" for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
end
name = require("Module:category tree/" .. cat.module).new(self:substitute_template_specs_in_args(cat.args))
else
name = cat.name
if not name then
internal_error("Missing .name in " .. (is_umbrella and "umbrella " or "") .. "'" .. table_type .. "' table for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
elseif type(name) == "string" then -- otherwise, assume it's a category object and use it directly
name = self:substitute_template_specs(name)
if name:find("^Kategori:") then
-- It's a non-poscatboiler category name.
sortkey = sortkey or is_children and name:gsub("^Kategori:", "") or self:getCategoryName()
else
-- It's a label.
sortkey = sortkey or is_children and name or self._info.label
name = self:make_new{
label = name, code = lang, sc = sc,
raw = raw, args = self:substitute_template_specs_in_args(cat.args)
}
end
end
end
sortkey = sortkey or is_children and " " or self._info.label
ret[i] = {
name = name,
description = is_children and self:substitute_template_specs(cat.description) or nil,
sort = self:new_sortkey(sortkey)
}
end
return ret
end
function Category:getParents()
local is_umbrella, ret = not self._lang and not self._info.raw
if self._sc then
local parent1 = self:make_new{code = self._info.code, label = "Perkataan dalam tulisan " .. self._sc:getCanonicalName()}
local parent2 = self:make_new{code = self._info.code, label = self._info.label, raw = self._info.raw, args = self._info.args}
ret = {
{name = parent1, sort = self._sc:getCanonicalName()},
{name = parent2, sort = self._sc:getCanonicalName()},
}
else
local parents, fallback_sort_key, fallback_sort_base
if is_umbrella then
parents = self._data.umbrella and self._data.umbrella.parents or self._data.umbrella_parents
fallback_sort_key = self._data.umbrella and self._data.umbrella.breadcrumb_and_first_sort_key or nil
fallback_sort_base = self._data.umbrella and self._data.umbrella.breadcrumb_and_first_sort_base or nil
else
parents = self._data.parents
fallback_sort_key = self._data.breadcrumb_and_first_sort_key
fallback_sort_base = self._data.breadcrumb_and_first_sort_base
end
ret = self:canonicalize_parents_children(parents, nil, fallback_sort_key, fallback_sort_base)
if not ret then
return nil
end
end
local self_cat = self:getCategoryName()
for _, parent in ipairs(ret) do
local parent_cat = parent.name.getCategoryName and parent.name:getCategoryName()
if self_cat == parent_cat then
internal_error(("Infinite loop would occur, as parent category '%s' is the same as the child category"):format(self_cat))
end
end
return ret
end
function Category:getChildren()
local is_umbrella = not self._lang and not self._info.raw
local children = self._data.children
local ret = {}
if not is_umbrella and children then
for _, child in ipairs(children) do
child = mw.clone(child)
if type(child) ~= "table" then
child = {name = child}
end
if not child.sort then
child.sort = child.name
end
-- FIXME, is preserving the script correct?
child.name = self:make_new{code = self._info.code, label = child.name, raw = child.raw, sc = self._info.sc}
insert(ret, child)
end
end
local extra_children
if is_umbrella then
extra_children = self._data.umbrella and self._data.umbrella.extra_children
else
extra_children = self._data.extra_children
end
extra_children = self:canonicalize_parents_children(extra_children, "children")
if extra_children then
for _, child in ipairs(extra_children) do
insert(ret, child)
end
end
return #ret > 0 and ret or nil
end
function Category:getUmbrella()
local umbrella = self._data.umbrella
if umbrella == false or self._info.raw or not self._lang or self._sc then
return nil
end
-- If `umbrella` is a string, use that; otherwise, use the label.
return self:make_new({label = type(umbrella) == "string" and umbrella or self._info.label})
end
function Category:getAppendix()
-- FIXME, this should be customizable.
local lang, label = self._lang, self._info.label
if self._info.raw or not (lang and label) then
return nil
end
local appendix = make_title(100, label .. " bahasa " .. lang:getCanonicalName())
return appendix.exists and appendix.fullText or nil
end
function Category:getCatfixInfo()
if self._lang or self._sc or self._info.raw then
local langcode, sccode = self._data.catfix, self._data.catfix_sc
local lang, sc
if langcode then
langcode = self:substitute_template_specs(langcode)
lang = get_lang(langcode, nil, true)
elseif langcode == nil then -- not false
lang = self._lang
end
if sccode then
sccode = self:substitute_template_specs(sccode)
sc = get_script(sccode)
elseif sccode == nil then -- not false
sc = self._sc
end
if lang then
lang = lang:getFull()
end
return lang, sc
elseif not self._data.umbrella then
return
end
-- umbrella
local langcode, sccode = self._data.umbrella.catfix, self._data.umbrella.catfix_sc
local lang, sc
if langcode then
langcode = self:substitute_template_specs(langcode)
lang = get_lang(langcode, nil, true)
end
if sccode then
sccode = self:substitute_template_specs(sccode)
sc = get_script(sccode)
end
if lang then
lang = lang:getFull()
end
return lang, sc
end
function Category:getTOCTemplateName()
-- This should only be invoked if getTOC() returns true, meaning to do the default algorithm, but getTOC()
-- implements its own default algorithm.
internal_error("This should never get called")
end
local export = {}
function export.main(info)
local self = setmetatable({_info = info}, Category)
self:initCommon()
return self._data and self or nil
end
export.new = Category.new
return export
syin42b26pfli4cmoza5ztx95i0pg1c
342781
342780
2026-05-16T08:52:14Z
Hakimi97
2668
Try only ucfirst
342781
Scribunto
text/plain
local lang_independent_data = require("Module:category tree/data")
local lang_specific_module = "Module:category tree/lang"
local lang_specific_module_prefix = lang_specific_module .. "/"
local family_specific_module = "Module:category tree/fam"
local family_specific_module_prefix = family_specific_module .. "/"
local labels_utilities_module = "Module:labels/utilities"
local template_parser_module = "Module:template parser"
local concat = table.concat
local dump = mw.dumpObject
local expand_template = require("Module:frame").expandTemplate
local insert = table.insert
local is_callable = require("Module:fun").is_callable
local lcfirst = require("Module:string utilities").lcfirst
local list_to_set = require("Module:table").listToSet
local make_title = mw.title.makeTitle
local new_title = mw.title.new
local parse = require(template_parser_module).parse
local sparse_concat = require("Module:table").sparseConcat
local tostring = tostring
local type = type
local ucfirst = require("Module:string utilities").ucfirst
local uupper = require("Module:string utilities").upper
local function internal_error(msg)
error("Internal error: " .. msg)
end
local function get_lang(...)
local _get_lang = require("Module:languages").getByCode
function get_lang(...)
return _get_lang(...) or require("Module:languages/errorGetBy").code(...)
end
return get_lang(...)
end
local function get_script(...)
local _get_script = require("Module:scripts").getByCode
function get_script(code)
return _get_script(code) or require("Module:languages/error")(code, true, "script code")
end
return get_script(...)
end
-- Category object
local Category = {}
Category.__index = Category
function Category:get_originating_info()
local originating_info = ""
if self._info.originating_label then
originating_info = " (originating from label \"" .. self._info.originating_label .. "\" in module [[" .. self._info.originating_module .. "]])"
end
return originating_info
end
local valid_keys = list_to_set{"code", "label", "sc", "raw", "args", "also", "called_from_inside", "originating_label", "originating_module"}
function Category.new(info)
for key in pairs(info) do
if not valid_keys[key] then
internal_error("The parameter \"" .. key .. "\" was not recognized.")
end
end
local self = setmetatable({}, Category)
self._info = info
if not self._info.label then
internal_error("No label was specified.")
end
self:initCommon()
if not self._data then
internal_error("The " .. (self._info.raw and "raw " or "") .. "label \"" .. self._info.label .. "\" does not exist" .. self:get_originating_info() .. ".")
end
return self
end
function Category:initCommon()
local function patch_args(args)
-- This fixes the issue with Scribunto automatically converting keys
-- in a table as numbers to strings, which in turn causes a circular
-- error for having argument parameter names as numbers as strings.
if type(args) ~= "table" then
return args
end
local new_args = {}
for k, v in pairs(args) do
if type(k) == "string" and string.len(k) < 10 and not string.match(k, "^0") and string.match(k, "^%d+$") then
new_args[tonumber(k)] = patch_args(v)
else
new_args[k] = patch_args(v)
end
end
return new_args
end
local args_handled = false
if self._info.raw then
-- Check if the category exists
local raw_categories = lang_independent_data["RAW_CATEGORIES"]
self._data = raw_categories[self._info.label]
if self._data then
if self._data.lang then
self._lang = get_lang(self._data.lang, nil, true)
self._info.code = self._lang:getCode()
end
if self._data.sc then
self._sc = get_script(self._data.sc)
self._info.sc = self._sc:getCode()
end
else
-- Go through raw handlers
local data = {
category = self._info.label,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
for _, handler in ipairs(lang_independent_data["RAW_HANDLERS"]) do
self._data, args_handled = handler.handler(data)
if self._data then
self._data.module = self._data.module or handler.module
break
end
end
if self._data then
-- Update the label if the handler specified a canonical name for it.
if self._data.canonical_name then
self._info.canonical_name = self._data.canonical_name
end
if self._data.lang then
if type(self._data.lang) ~= "string" then
internal_error("Received non-string value " .. dump(self._data.lang) .. " for self._data.lang, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".")
end
self._lang = get_lang(self._data.lang, nil, true)
self._info.code = self._lang:getCode()
end
if self._data.sc then
if type(self._data.sc) ~= "string" then
internal_error("Received non-string value " .. dump(self._data.sc) .. " for self._data.sc, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".")
end
self._sc = get_script(self._data.sc)
self._info.sc = self._sc:getCode()
end
end
end
else
-- Already parsed into language + label
if self._info.code then
self._lang = get_lang(self._info.code, nil, true)
else
self._lang = nil
end
if self._info.sc then
self._sc = get_script(self._info.sc)
else
self._sc = nil
end
self._info.orig_label = self._info.label
-- If the label was packed with a \0 separator (from split_lang_label for mid-lang titles),
-- reconstruct the canonical label key used in LABELS data modules.
-- e.g. "Perkataan\0yang baru" → canonical key "Perkataan yang baru"
if self._info.label:find("\0", 1, true) then
self._info.label = self._info.label:gsub("%z", " ")
end
if not self._lang then
-- Umbrella categories without a preceding language always begin with a capital letter, but the actual label may be
-- lowercase (cf. [[:Category:Nouns by language]] with label 'nouns' with per-language [[:Category:English nouns]];
-- but [[:Category:Reddit slang by language]] with label 'Reddit slang' with per-language
-- [[:Category:English Reddit slang]]). Since the label is almost always lowercase, we lowercase it for umbrella
-- categories, storing the original into `orig_label`, and correct it later if needed.
self._info.label = ucfirst(self._info.label)
end
-- First, check lang-specific labels and handlers if this is not an umbrella category.
if self._lang then
local objects_with_modules = require(lang_specific_module)
local obj, seen = self._lang, {}
local object_specific_module_prefix = lang_specific_module_prefix
local is_family = false
repeat
if objects_with_modules[obj:getCode()] then
local module = object_specific_module_prefix .. obj:getCode()
local labels_and_handlers = require(module)
if labels_and_handlers.LABELS then
self._data = labels_and_handlers.LABELS[self._info.label]
if self._data then
if not is_family and self._data.umbrella == nil and self._data.umbrella_parents == nil then
self._data.umbrella = false
end
self._data.module = self._data.module or module
end
end
if not self._data and labels_and_handlers.HANDLERS then
for _, handler in ipairs(labels_and_handlers.HANDLERS) do
local data = {
label = self._info.label,
lang = self._lang,
sc = self._sc,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
self._data, args_handled = handler(data)
if self._data then
if not is_family and self._data.umbrella == nil and
self._data.umbrella_parents == nil then
self._data.umbrella = false
end
self._data.module = self._data.module or module
break
end
end
end
if self._data then
break
end
end
seen[obj:getCode()] = true
obj = obj:getFamily()
if not is_family then
is_family = true
object_specific_module_prefix = family_specific_module_prefix
objects_with_modules = require(family_specific_module)
end
until not obj or seen[obj:getCode()]
end
local function fetch_label_data(labels)
self._data = labels[self._info.label]
-- See comment above about uppercase- vs. lowercase-initial labels, which are indistinguishable
-- in umbrella categories.
if not self._data then
self._data = labels[self._info.orig_label]
if self._data then
self._info.label = self._info.orig_label
end
end
end
-- Then check lang-independent labels.
if not self._data then
-- lang_independent_data.LABELS should always exist.
fetch_label_data(lang_independent_data.LABELS)
if not self._data and not self._lang then
-- Check family-specific labels for umbrella label.
local families_with_modules = require(family_specific_module)
for famcode, _ in pairs(families_with_modules) do
local module = family_specific_module_prefix .. famcode
local labels_and_handlers = require(module)
if labels_and_handlers.LABELS then
fetch_label_data(labels_and_handlers.LABELS)
if self._data then
self._data.module = self._data.module or module
break
end
end
end
end
end
-- Then check lang-independent handlers.
if not self._data then
local data = {
label = self._info.label,
lang = self._lang,
sc = self._sc,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
for _, handler in ipairs(lang_independent_data["HANDLERS"]) do
self._data, args_handled = handler.handler(data)
if self._data then
self._data.module = self._data.module or handler.module
break
end
end
if not self._data and not self._lang then
-- Check family-specific labels for umbrella handler.
local families_with_modules = require(family_specific_module)
for famcode, _ in pairs(families_with_modules) do
local module = family_specific_module_prefix .. famcode
local labels_and_handlers = require(module)
if labels_and_handlers.HANDLERS then
for _, handler in ipairs(labels_and_handlers.HANDLERS) do
local data = {
label = self._info.label,
sc = self._sc,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
self._data, args_handled = handler(data)
if self._data then
self._data.module = self._data.module or module
break
end
end
end
if self._data then
break
end
end
end
end
end
if not args_handled and self._data and self._info.args and next(self._info.args) then
local module_text = " (handled in [[" .. (self._data.module or "UNKNOWN").. "]])"
local args_text = {}
for k, v in pairs(self._info.args) do
insert(args_text, k .. "=" .. ((type(v) == "string" or type(v) == "number") and v or dump(v)))
end
error("poscatboiler label '" .. self._info.label .. "' " .. module_text .. " doesn't accept extra args " ..
concat(args_text, ", "))
end
if self._sc and not self._lang then
internal_error("Umbrella categories cannot have a script specified.")
end
end
function Category:convert_spec_to_string(desc)
if not desc then
return desc
end
local desc_type = type(desc)
if desc_type == "string" then
return desc
elseif desc_type == "number" then
return tostring(desc)
elseif not is_callable(desc) then
internal_error("`desc` must be a string, number, function, callable table or nil; received " .. dump(desc))
end
desc = desc {
lang = self._lang,
sc = self._sc,
label = self._info.label,
raw = self._info.raw,
}
if not desc then
return desc
end
desc_type = type(desc)
if desc_type == "string" then
return desc
end
internal_error("The value returned by `desc` must be a string or nil; received " .. dump(desc))
end
local function add_obj_args(args, obj, obj_type)
if obj then
args[obj_type .. "code"] = obj:getCode()
args[obj_type .. "name"] = obj:getCanonicalName()
args[obj_type .. "disp"] = obj:getDisplayForm()
args[obj_type .. "cat"] = obj:getCategoryName()
args[obj_type .. "link"] = obj:makeCategoryLink()
end
end
-- Expands `desc` like a template, passing values for specs like {{{langname}}}.
function Category:substitute_template_specs(desc)
-- This may end up happening twice but that's OK as the function is (usually) idempotent.
-- FIXME: Not idempotent if a preprocessed template returns wikicode.
desc = self:convert_spec_to_string(desc)
if not desc then
return nil
end
-- Populate the substitution arguments.
local args = {}
args.umbrella_msg = "Kategori ini merupakan sebuah kategori payung. Ia tidak mengandungi sebarang entri kamus, sebaliknya hanya mengandungi kategori khusus bahasa lain, yang seterusnya mengandungi istilah yang berkaitan dalam bahasa tertentu."
args.umbrella_meta_msg = "Kategori ini merupakan sebuah metakategori payung, yang meliputi bidang umum seperti \"lema\", \"nama\" atau \"perkataan mengikut etimologi\". Ia tidak mengandungi sebarang entri kamus, sebaliknya hanya mengandungi kategori payung (\"mengikut bahasa\") yang merangkumi subtopik tertentu, yang seterusnya mengandungi kategori khusus bahasa yang mengandungi istilah dalam bahasa tertentu untuk topik yang sama."
add_obj_args(args, self._lang, "lang")
add_obj_args(args, self._sc, "sc")
return parse(desc, true):expand(args)
end
function Category:substitute_template_specs_in_args(args)
if not args then
return args
end
local pinfo = {}
for k, v in pairs(args) do
pinfo[self:substitute_template_specs(k)] = self:substitute_template_specs(v)
end
return pinfo
end
function Category:make_new(info)
info.originating_label = self._info.label
info.originating_module = self._data.module
info.called_from_inside = true
return Category.new(info)
end
function Category:getBreadcrumbName()
local ret
if self._lang or self._info.raw then
ret = self._data.breadcrumb or self._data.breadcrumb_and_first_sort_key or
self._data.breadcrumb_and_first_sort_base or nil
else
ret = self._data.umbrella and (self._data.umbrella.breadcrumb or
self._data.umbrella.breadcrumb_and_first_sort_key or self._data.umbrella.breadcrumb_and_first_sort_base) or
nil
end
if not ret then
ret = self._info.label
end
if type(ret) ~= "table" then
ret = {name = ret}
end
local name = self:substitute_template_specs(ret.name)
local nocap = ret.nocap
if self._sc then
name = name .. " dalam tulisan " .. self._sc:getDisplayForm()
end
return name, nocap
end
local function expand_toc_template_if(template)
local template_obj = new_title(template, 10)
if template_obj.exists then
return expand_template{title = template_obj.text}
end
return nil
end
-- Return the textual expansion of the first existing template among the given templates, first performing
-- substitutions on the template name such as replacing {{{langcode}}} with the current language's code (if any).
-- If no templates exist after expansion, or if nil is passed in, return nil. If a single string is passed in,
-- treat it like a one-element list consisting of that string.
function Category:get_template_text(templates)
if templates == nil then
return nil
elseif type(templates) ~= "table" then
templates = {templates}
end
for _, template in ipairs(templates) do
if template == false then
return false
end
template = self:substitute_template_specs(template)
return expand_toc_template_if(template)
end
return nil
end
function Category:getTOC(toc_type)
-- Type "none" means everything fits on a single page; in that case, display nothing.
if toc_type == "none" then
return nil
end
local templates, fallback_templates
-- If TOC type is "full" (more than 2500 entries), do the following, in order:
-- 1. look up and expand the `toc_template_full` templates (normal or umbrella, depending on whether there is
-- a current language);
-- 2. look up and expand the `toc_template` templates (normal or umbrella, as above);
-- 3. do the default behavior, which is as follows:
-- 3a. look up a language-specific "full" template according to the current language (using English if there
-- is no current language);
-- 3b. look up a script-specific "full" template according to the first script of current language (using English
-- if there is no current language);
-- 3c. look up a language-specific "normal" template according to the current language (using English if there
-- is no current language);
-- 3d. look up a script-specific "normal" template according to the first script of the current language (using
-- English if there is no current language);
-- 3e. display nothing.
--
-- If TOC type is "normal" (between 200 and 2500 entries), do the following, in order:
-- 1. look up and expand the `toc_template` templates (normal or umbrella, depending on whether there is
-- a current language);
-- 2. do the default behavior, which is as follows:
-- 2a. look up a language-specific "normal" template according to the current language (using English if there
-- is no current language);
-- 2b. look up a script-specific "normal" template according to the first script of the current language (using
-- English if there is no current language);
-- 2c. display nothing.
local data_source
if self._lang or self._info.raw then
data_source = self._data
else
data_source = self._data.umbrella
end
if data_source then
if toc_type == "full" then
templates = data_source.toc_template_full
fallback_templates = data_source.toc_template
else
templates = data_source.toc_template
end
end
local text = self:get_template_text(templates)
if text then
return text
elseif text == false then
return nil
end
text = self:get_template_text(fallback_templates)
if text then
return text
elseif text == false then
return nil
end
local default_toc_templates_to_check = {}
local lang, sc = self:getCatfixInfo()
local langcode = lang and lang:getCode() or "ms"
local sccode = sc and sc:getCode() or lang and lang:getScriptCodes()[1] or "Latn"
-- FIXME: What is toctemplateprefix used for?
local tocname = (self._data.toctemplateprefix or "") .. "categoryTOC"
if toc_type == "full" then
insert(default_toc_templates_to_check, ("%s-%s/full"):format(langcode, tocname))
insert(default_toc_templates_to_check, ("%s-%s/full"):format(sccode, tocname))
end
insert(default_toc_templates_to_check, ("%s-%s"):format(langcode, tocname))
insert(default_toc_templates_to_check, ("%s-%s"):format(sccode, tocname))
for _, toc_template in ipairs(default_toc_templates_to_check) do
local toc_template_text = expand_toc_template_if(toc_template)
if toc_template_text then
return toc_template_text
end
end
return nil
end
function Category:getInfo()
return self._info
end
function Category:getDataModule()
return self._data.module
end
function Category:canBeEmpty()
if self._lang or self._info.raw then
return self._data.can_be_empty
end
return self._data.umbrella and self._data.umbrella.can_be_empty
end
function Category:isHidden()
if self._lang or self._info.raw then
return self._data.hidden
end
return self._data.umbrella and self._data.umbrella.hidden
end
function Category:getCategoryName()
if self._info.raw then
return self._info.canonical_name or self._info.label
elseif self._lang then
local langname = self._lang:getCanonicalName()
local connector = (self._data and self._data.lang_connector) or "bahasa"
local ret
-- Case 1: label data explicitly declares lang_position = "mid" with label_before/label_after.
if self._data and self._data.lang_position == "mid" then
local before = self._data.label_before or self._info.label
local after = self._data.label_after or ""
ret = before .. " " .. connector .. " " .. langname
if after ~= "" then
ret = ret .. " " .. after
end
-- Case 2: label was parsed from a mid-lang title; before\0after packed in self._info.label.
elseif self._info.label:find("\0", 1, true) then
local before, after = self._info.label:match("^(.-)%z(.*)$")
ret = before .. " " .. connector .. " " .. langname
if after and after ~= "" then
ret = ret .. " " .. after
end
-- Case 3: default — label precedes "bahasa LANG" (original behaviour).
else
ret = self._info.label .. " " .. connector .. " " .. langname
end
if self._sc then
ret = ret .. " dalam tulisan " .. self._sc:getDisplayForm()
end
return ucfirst(ret)
end
local ret = ucfirst(self._info.label)
if not (self._data.no_by_language or self._data.umbrella and self._data.umbrella.no_by_language) then
ret = ret .. " mengikut bahasa"
end
return ret
end
function Category:getTopright()
if self._lang or self._info.raw then
return self:substitute_template_specs(self._data.topright)
end
return self._data.umbrella and self:substitute_template_specs(self._data.umbrella.topright)
end
function Category:display_title(displaytitle, lang)
if type(displaytitle) == "string" then
displaytitle = self:substitute_template_specs(displaytitle)
else
displaytitle = displaytitle(self:getCategoryName(), lang)
end
mw.getCurrentFrame():callParserFunction("DISPLAYTITLE", "Kategori:" .. displaytitle)
end
function Category:get_labels_categorizing()
local m_labels_utilities = require(labels_utilities_module)
local pos_cat_labels, sense_cat_labels, use_tlb
pos_cat_labels = m_labels_utilities.find_labels_for_category(self._info.label, "pos", self._lang)
local sense_label = self._info.label:match("^Perkataan (.*)$")
if sense_label then
use_tlb = true
else
sense_label = self._info.label:match("^Perkataan dengan erti (.*)$")
end
if not sense_label then
return nil
end
sense_cat_labels = m_labels_utilities.find_labels_for_category(sense_label, "sense", self._lang)
if use_tlb then
return m_labels_utilities.format_labels_categorizing(pos_cat_labels, sense_cat_labels, self._lang)
end
local all_labels = pos_cat_labels
for k, v in pairs(sense_cat_labels) do
all_labels[k] = v
end
return m_labels_utilities.format_labels_categorizing(all_labels, nil, self._lang)
end
-- FIXME: this is clunky.
local function remove_lang_params(desc)
-- Simply remove a language name/code/category from the beginning of the string, but replace the language name
-- in the middle of the string with either "tertentu" or "specific-language" depending on whether the
-- language name appears to be an attributive qualifier of another noun or to stand by itself. This may be wrong,
-- in which case the category in question should supply its own umbrella description.
desc = desc:gsub("^{{{langname}}} ", "")
:gsub("{{{langname}}} %(", "tertentu (")
:gsub("{{{langname}}}([.,])", "tertentu%1")
:gsub("{{{langname}}} ", "tertentu ")
:gsub("{{{langdisp}}}", "tertentu")
:gsub("{{{langlink}}}", "tertentu")
return desc
end
function Category:getDescription(isChild)
-- Allows different text in the list of a category's children
local isChild = isChild == "child"
if self._lang or self._info.raw then
if not isChild and self._data.displaytitle then
self:display_title(self._data.displaytitle, self._lang)
end
if self._sc then
return self:getCategoryName() .. "."
end
local desc = self:substitute_template_specs(self._data.description)
if not desc then
return nil
elseif isChild then
return desc
end
return sparse_concat({
self:substitute_template_specs(self._data.preceding),
desc,
self:substitute_template_specs(self._data.additional),
self:substitute_template_specs(self:get_labels_categorizing()),
}, "\n\n")
end
local umbrella = self._data.umbrella
if not isChild and umbrella and umbrella.displaytitle then
self:display_title(umbrella.displaytitle)
end
local desc = self:substitute_template_specs(umbrella and umbrella.description)
local has_umbrella_desc = not not desc
if not desc then
desc = self:convert_spec_to_string(self._data.description)
if desc then
desc = remove_lang_params(desc)
desc = lcfirst(desc)
desc = desc:gsub("%.$", "")
desc = "Kategori dengan " .. desc .. "."
else
desc = "Kategori dengan " .. self._info.label .. " dalam pelbagai bahasa tertentu."
end
desc = self:substitute_template_specs(desc)
end
if isChild then
return desc
end
return sparse_concat({
self:substitute_template_specs(umbrella and umbrella.preceding or not has_umbrella_desc and self._data.preceding),
desc,
self:substitute_template_specs(umbrella and umbrella.additional or not has_umbrella_desc and self._data.additional),
self:substitute_template_specs("{{{umbrella_msg}}}"),
self:substitute_template_specs(self:get_labels_categorizing()),
}, "\n\n")
end
function Category:new_sortkey(sortkey)
local sortkey_type = type(sortkey)
if sortkey_type == "string" then
sortkey = uupper(sortkey)
elseif sortkey_type == "table" then
function sortkey:makeSortKey()
local sort_func = self.sort_func
if sort_func ~= nil then
return sort_func(self.sort_base)
end
local lang = self.lang
if lang == nil then
return self.sort_base
end
lang = get_lang(lang, nil, true)
if lang == nil then
return self.sort_base
end
local sc = self.sc
if sc ~= nil then
sc = get_script(sc)
end
return lang:makeSortKey(self.sort_base, sc)
end
end
return sortkey
end
function Category:inherit_spec(spec, parent_spec, substitute_result)
if spec == false then
return nil
end
local retval = spec or parent_spec
if substitute_result then
retval = self:substitute_template_specs(retval)
end
return retval
end
function Category:canonicalize_parents_children(cats, is_children, fallback_sort_key, fallback_sort_base)
if not cats then
return nil
elseif type(cats) == "table" then
if cats.name or cats.module then
cats = {cats}
elseif #cats == 0 then
return nil
end
else
cats = {cats}
end
local ret = {}
for _, cat in ipairs(cats) do
if type(cat) ~= "table" or not cat.name and not cat.module then
cat = {name = cat}
end
insert(ret, cat)
end
local is_umbrella = not self._lang and not self._info.raw
local table_type = is_children and "extra_children" or "parents"
for i, cat in ipairs(ret) do
local raw
if self._info.raw or is_umbrella then
raw = not cat.is_label
else
raw = cat.raw
end
local lang = self:inherit_spec(cat.lang, not raw and self._info.code or nil, "substitute")
local sc = self:inherit_spec(cat.sc, not raw and self._info.sc or nil, "substitute")
-- Get the sortkey.
local sortkey = self:inherit_spec(cat.sort, i == 1 and (fallback_sort_key or fallback_sort_base and {sort_base = fallback_sort_base}) or nil)
if type(sortkey) == "table" then
sortkey.sort_base = self:substitute_template_specs(sortkey.sort_base) or
internal_error("Missing .sort_base in '" .. table_type .. "' .sort table for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
if sortkey.sort_func then
-- Not allowed to give a lang and/or script if sort_func is given.
local bad_spec = sortkey.lang and "lang" or sortkey.sc and "sc" or nil
if bad_spec then
internal_error("Cannot specify both ." .. bad_spec .. " and .sort_func in '" .. table_type ..
"' .sort table for '" .. self._info.label .. "' category entry in module '" ..
(self._data.module or "unknown") .. "'")
end
else
sortkey.lang = self:inherit_spec(sortkey.lang, lang, "substitute")
sortkey.sc = self:inherit_spec(sortkey.sc, sc, "substitute")
end
else
sortkey = self:substitute_template_specs(sortkey)
end
local name
if cat.module then
-- A reference to a category using another category tree module.
if not cat.args then
internal_error("Missing .args in '" .. table_type .. "' table with module=\"" .. cat.module .. "\" for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
end
name = require("Module:category tree/" .. cat.module).new(self:substitute_template_specs_in_args(cat.args))
else
name = cat.name
if not name then
internal_error("Missing .name in " .. (is_umbrella and "umbrella " or "") .. "'" .. table_type .. "' table for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
elseif type(name) == "string" then -- otherwise, assume it's a category object and use it directly
name = self:substitute_template_specs(name)
if name:find("^Kategori:") then
-- It's a non-poscatboiler category name.
sortkey = sortkey or is_children and name:gsub("^Kategori:", "") or self:getCategoryName()
else
-- It's a label.
sortkey = sortkey or is_children and name or self._info.label
name = self:make_new{
label = name, code = lang, sc = sc,
raw = raw, args = self:substitute_template_specs_in_args(cat.args)
}
end
end
end
sortkey = sortkey or is_children and " " or self._info.label
ret[i] = {
name = name,
description = is_children and self:substitute_template_specs(cat.description) or nil,
sort = self:new_sortkey(sortkey)
}
end
return ret
end
function Category:getParents()
local is_umbrella, ret = not self._lang and not self._info.raw
if self._sc then
local parent1 = self:make_new{code = self._info.code, label = "Perkataan dalam tulisan " .. self._sc:getCanonicalName()}
local parent2 = self:make_new{code = self._info.code, label = self._info.label, raw = self._info.raw, args = self._info.args}
ret = {
{name = parent1, sort = self._sc:getCanonicalName()},
{name = parent2, sort = self._sc:getCanonicalName()},
}
else
local parents, fallback_sort_key, fallback_sort_base
if is_umbrella then
parents = self._data.umbrella and self._data.umbrella.parents or self._data.umbrella_parents
fallback_sort_key = self._data.umbrella and self._data.umbrella.breadcrumb_and_first_sort_key or nil
fallback_sort_base = self._data.umbrella and self._data.umbrella.breadcrumb_and_first_sort_base or nil
else
parents = self._data.parents
fallback_sort_key = self._data.breadcrumb_and_first_sort_key
fallback_sort_base = self._data.breadcrumb_and_first_sort_base
end
ret = self:canonicalize_parents_children(parents, nil, fallback_sort_key, fallback_sort_base)
if not ret then
return nil
end
end
local self_cat = self:getCategoryName()
for _, parent in ipairs(ret) do
local parent_cat = parent.name.getCategoryName and parent.name:getCategoryName()
if self_cat == parent_cat then
internal_error(("Infinite loop would occur, as parent category '%s' is the same as the child category"):format(self_cat))
end
end
return ret
end
function Category:getChildren()
local is_umbrella = not self._lang and not self._info.raw
local children = self._data.children
local ret = {}
if not is_umbrella and children then
for _, child in ipairs(children) do
child = mw.clone(child)
if type(child) ~= "table" then
child = {name = child}
end
if not child.sort then
child.sort = child.name
end
-- FIXME, is preserving the script correct?
child.name = self:make_new{code = self._info.code, label = child.name, raw = child.raw, sc = self._info.sc}
insert(ret, child)
end
end
local extra_children
if is_umbrella then
extra_children = self._data.umbrella and self._data.umbrella.extra_children
else
extra_children = self._data.extra_children
end
extra_children = self:canonicalize_parents_children(extra_children, "children")
if extra_children then
for _, child in ipairs(extra_children) do
insert(ret, child)
end
end
return #ret > 0 and ret or nil
end
function Category:getUmbrella()
local umbrella = self._data.umbrella
if umbrella == false or self._info.raw or not self._lang or self._sc then
return nil
end
-- If `umbrella` is a string, use that; otherwise, use the label.
return self:make_new({label = type(umbrella) == "string" and umbrella or self._info.label})
end
function Category:getAppendix()
-- FIXME, this should be customizable.
local lang, label = self._lang, self._info.label
if self._info.raw or not (lang and label) then
return nil
end
local appendix = make_title(100, label .. " bahasa " .. lang:getCanonicalName())
return appendix.exists and appendix.fullText or nil
end
function Category:getCatfixInfo()
if self._lang or self._sc or self._info.raw then
local langcode, sccode = self._data.catfix, self._data.catfix_sc
local lang, sc
if langcode then
langcode = self:substitute_template_specs(langcode)
lang = get_lang(langcode, nil, true)
elseif langcode == nil then -- not false
lang = self._lang
end
if sccode then
sccode = self:substitute_template_specs(sccode)
sc = get_script(sccode)
elseif sccode == nil then -- not false
sc = self._sc
end
if lang then
lang = lang:getFull()
end
return lang, sc
elseif not self._data.umbrella then
return
end
-- umbrella
local langcode, sccode = self._data.umbrella.catfix, self._data.umbrella.catfix_sc
local lang, sc
if langcode then
langcode = self:substitute_template_specs(langcode)
lang = get_lang(langcode, nil, true)
end
if sccode then
sccode = self:substitute_template_specs(sccode)
sc = get_script(sccode)
end
if lang then
lang = lang:getFull()
end
return lang, sc
end
function Category:getTOCTemplateName()
-- This should only be invoked if getTOC() returns true, meaning to do the default algorithm, but getTOC()
-- implements its own default algorithm.
internal_error("This should never get called")
end
local export = {}
function export.main(info)
local self = setmetatable({_info = info}, Category)
self:initCommon()
return self._data and self or nil
end
export.new = Category.new
return export
3uvcuoz282x62xq6o6o1ay8krjnrggd
342782
342781
2026-05-16T08:54:45Z
Hakimi97
2668
342782
Scribunto
text/plain
local lang_independent_data = require("Module:category tree/data")
local lang_specific_module = "Module:category tree/lang"
local lang_specific_module_prefix = lang_specific_module .. "/"
local family_specific_module = "Module:category tree/fam"
local family_specific_module_prefix = family_specific_module .. "/"
local labels_utilities_module = "Module:labels/utilities"
local template_parser_module = "Module:template parser"
local concat = table.concat
local dump = mw.dumpObject
local expand_template = require("Module:frame").expandTemplate
local insert = table.insert
local is_callable = require("Module:fun").is_callable
local lcfirst = require("Module:string utilities").lcfirst
local list_to_set = require("Module:table").listToSet
local make_title = mw.title.makeTitle
local new_title = mw.title.new
local parse = require(template_parser_module).parse
local sparse_concat = require("Module:table").sparseConcat
local tostring = tostring
local type = type
local ucfirst = require("Module:string utilities").ucfirst
local uupper = require("Module:string utilities").upper
local function internal_error(msg)
error("Internal error: " .. msg)
end
local function get_lang(...)
local _get_lang = require("Module:languages").getByCode
function get_lang(...)
return _get_lang(...) or require("Module:languages/errorGetBy").code(...)
end
return get_lang(...)
end
local function get_script(...)
local _get_script = require("Module:scripts").getByCode
function get_script(code)
return _get_script(code) or require("Module:languages/error")(code, true, "script code")
end
return get_script(...)
end
-- Category object
local Category = {}
Category.__index = Category
function Category:get_originating_info()
local originating_info = ""
if self._info.originating_label then
originating_info = " (originating from label \"" .. self._info.originating_label .. "\" in module [[" .. self._info.originating_module .. "]])"
end
return originating_info
end
local valid_keys = list_to_set{"code", "label", "sc", "raw", "args", "also", "called_from_inside", "originating_label", "originating_module"}
function Category.new(info)
for key in pairs(info) do
if not valid_keys[key] then
internal_error("The parameter \"" .. key .. "\" was not recognized.")
end
end
local self = setmetatable({}, Category)
self._info = info
if not self._info.label then
internal_error("No label was specified.")
end
self:initCommon()
if not self._data then
internal_error("The " .. (self._info.raw and "raw " or "") .. "label \"" .. self._info.label .. "\" does not exist" .. self:get_originating_info() .. ".")
end
return self
end
function Category:initCommon()
local function patch_args(args)
-- This fixes the issue with Scribunto automatically converting keys
-- in a table as numbers to strings, which in turn causes a circular
-- error for having argument parameter names as numbers as strings.
if type(args) ~= "table" then
return args
end
local new_args = {}
for k, v in pairs(args) do
if type(k) == "string" and string.len(k) < 10 and not string.match(k, "^0") and string.match(k, "^%d+$") then
new_args[tonumber(k)] = patch_args(v)
else
new_args[k] = patch_args(v)
end
end
return new_args
end
local args_handled = false
if self._info.raw then
-- Check if the category exists
local raw_categories = lang_independent_data["RAW_CATEGORIES"]
self._data = raw_categories[self._info.label]
if self._data then
if self._data.lang then
self._lang = get_lang(self._data.lang, nil, true)
self._info.code = self._lang:getCode()
end
if self._data.sc then
self._sc = get_script(self._data.sc)
self._info.sc = self._sc:getCode()
end
else
-- Go through raw handlers
local data = {
category = self._info.label,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
for _, handler in ipairs(lang_independent_data["RAW_HANDLERS"]) do
self._data, args_handled = handler.handler(data)
if self._data then
self._data.module = self._data.module or handler.module
break
end
end
if self._data then
-- Update the label if the handler specified a canonical name for it.
if self._data.canonical_name then
self._info.canonical_name = self._data.canonical_name
end
if self._data.lang then
if type(self._data.lang) ~= "string" then
internal_error("Received non-string value " .. dump(self._data.lang) .. " for self._data.lang, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".")
end
self._lang = get_lang(self._data.lang, nil, true)
self._info.code = self._lang:getCode()
end
if self._data.sc then
if type(self._data.sc) ~= "string" then
internal_error("Received non-string value " .. dump(self._data.sc) .. " for self._data.sc, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".")
end
self._sc = get_script(self._data.sc)
self._info.sc = self._sc:getCode()
end
end
end
else
-- Already parsed into language + label
if self._info.code then
self._lang = get_lang(self._info.code, nil, true)
else
self._lang = nil
end
if self._info.sc then
self._sc = get_script(self._info.sc)
else
self._sc = nil
end
self._info.orig_label = self._info.label
-- If the label was packed with a \0 separator (from split_lang_label for mid-lang titles),
-- reconstruct the canonical label key used in LABELS data modules.
-- e.g. "Perkataan\0yang baru" → canonical key "Perkataan yang baru"
if self._info.label:find("\0", 1, true) then
self._info.label = self._info.label:gsub("%z", " ")
end
if not self._lang then
-- Umbrella categories without a preceding language always begin with a capital letter, but the actual label may be
-- lowercase (cf. [[:Category:Nouns by language]] with label 'nouns' with per-language [[:Category:English nouns]];
-- but [[:Category:Reddit slang by language]] with label 'Reddit slang' with per-language
-- [[:Category:English Reddit slang]]). Since the label is almost always lowercase, we lowercase it for umbrella
-- categories, storing the original into `orig_label`, and correct it later if needed.
self._info.label = lcfirst(self._info.label)
end
-- First, check lang-specific labels and handlers if this is not an umbrella category.
if self._lang then
local objects_with_modules = require(lang_specific_module)
local obj, seen = self._lang, {}
local object_specific_module_prefix = lang_specific_module_prefix
local is_family = false
repeat
if objects_with_modules[obj:getCode()] then
local module = object_specific_module_prefix .. obj:getCode()
local labels_and_handlers = require(module)
if labels_and_handlers.LABELS then
self._data = labels_and_handlers.LABELS[self._info.label]
if self._data then
if not is_family and self._data.umbrella == nil and self._data.umbrella_parents == nil then
self._data.umbrella = false
end
self._data.module = self._data.module or module
end
end
if not self._data and labels_and_handlers.HANDLERS then
for _, handler in ipairs(labels_and_handlers.HANDLERS) do
local data = {
label = self._info.label,
lang = self._lang,
sc = self._sc,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
self._data, args_handled = handler(data)
if self._data then
if not is_family and self._data.umbrella == nil and
self._data.umbrella_parents == nil then
self._data.umbrella = false
end
self._data.module = self._data.module or module
break
end
end
end
if self._data then
break
end
end
seen[obj:getCode()] = true
obj = obj:getFamily()
if not is_family then
is_family = true
object_specific_module_prefix = family_specific_module_prefix
objects_with_modules = require(family_specific_module)
end
until not obj or seen[obj:getCode()]
end
local function fetch_label_data(labels)
self._data = labels[self._info.label]
-- See comment above about uppercase- vs. lowercase-initial labels, which are indistinguishable
-- in umbrella categories.
if not self._data then
self._data = labels[self._info.orig_label]
if self._data then
self._info.label = self._info.orig_label
end
end
end
-- Then check lang-independent labels.
if not self._data then
-- lang_independent_data.LABELS should always exist.
fetch_label_data(lang_independent_data.LABELS)
if not self._data and not self._lang then
-- Check family-specific labels for umbrella label.
local families_with_modules = require(family_specific_module)
for famcode, _ in pairs(families_with_modules) do
local module = family_specific_module_prefix .. famcode
local labels_and_handlers = require(module)
if labels_and_handlers.LABELS then
fetch_label_data(labels_and_handlers.LABELS)
if self._data then
self._data.module = self._data.module or module
break
end
end
end
end
end
-- Then check lang-independent handlers.
if not self._data then
local data = {
label = self._info.label,
lang = self._lang,
sc = self._sc,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
for _, handler in ipairs(lang_independent_data["HANDLERS"]) do
self._data, args_handled = handler.handler(data)
if self._data then
self._data.module = self._data.module or handler.module
break
end
end
if not self._data and not self._lang then
-- Check family-specific labels for umbrella handler.
local families_with_modules = require(family_specific_module)
for famcode, _ in pairs(families_with_modules) do
local module = family_specific_module_prefix .. famcode
local labels_and_handlers = require(module)
if labels_and_handlers.HANDLERS then
for _, handler in ipairs(labels_and_handlers.HANDLERS) do
local data = {
label = self._info.label,
sc = self._sc,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
self._data, args_handled = handler(data)
if self._data then
self._data.module = self._data.module or module
break
end
end
end
if self._data then
break
end
end
end
end
end
if not args_handled and self._data and self._info.args and next(self._info.args) then
local module_text = " (handled in [[" .. (self._data.module or "UNKNOWN").. "]])"
local args_text = {}
for k, v in pairs(self._info.args) do
insert(args_text, k .. "=" .. ((type(v) == "string" or type(v) == "number") and v or dump(v)))
end
error("poscatboiler label '" .. self._info.label .. "' " .. module_text .. " doesn't accept extra args " ..
concat(args_text, ", "))
end
if self._sc and not self._lang then
internal_error("Umbrella categories cannot have a script specified.")
end
end
function Category:convert_spec_to_string(desc)
if not desc then
return desc
end
local desc_type = type(desc)
if desc_type == "string" then
return desc
elseif desc_type == "number" then
return tostring(desc)
elseif not is_callable(desc) then
internal_error("`desc` must be a string, number, function, callable table or nil; received " .. dump(desc))
end
desc = desc {
lang = self._lang,
sc = self._sc,
label = self._info.label,
raw = self._info.raw,
}
if not desc then
return desc
end
desc_type = type(desc)
if desc_type == "string" then
return desc
end
internal_error("The value returned by `desc` must be a string or nil; received " .. dump(desc))
end
local function add_obj_args(args, obj, obj_type)
if obj then
args[obj_type .. "code"] = obj:getCode()
args[obj_type .. "name"] = obj:getCanonicalName()
args[obj_type .. "disp"] = obj:getDisplayForm()
args[obj_type .. "cat"] = obj:getCategoryName()
args[obj_type .. "link"] = obj:makeCategoryLink()
end
end
-- Expands `desc` like a template, passing values for specs like {{{langname}}}.
function Category:substitute_template_specs(desc)
-- This may end up happening twice but that's OK as the function is (usually) idempotent.
-- FIXME: Not idempotent if a preprocessed template returns wikicode.
desc = self:convert_spec_to_string(desc)
if not desc then
return nil
end
-- Populate the substitution arguments.
local args = {}
args.umbrella_msg = "Kategori ini merupakan sebuah kategori payung. Ia tidak mengandungi sebarang entri kamus, sebaliknya hanya mengandungi kategori khusus bahasa lain, yang seterusnya mengandungi istilah yang berkaitan dalam bahasa tertentu."
args.umbrella_meta_msg = "Kategori ini merupakan sebuah metakategori payung, yang meliputi bidang umum seperti \"lema\", \"nama\" atau \"perkataan mengikut etimologi\". Ia tidak mengandungi sebarang entri kamus, sebaliknya hanya mengandungi kategori payung (\"mengikut bahasa\") yang merangkumi subtopik tertentu, yang seterusnya mengandungi kategori khusus bahasa yang mengandungi istilah dalam bahasa tertentu untuk topik yang sama."
add_obj_args(args, self._lang, "lang")
add_obj_args(args, self._sc, "sc")
return parse(desc, true):expand(args)
end
function Category:substitute_template_specs_in_args(args)
if not args then
return args
end
local pinfo = {}
for k, v in pairs(args) do
pinfo[self:substitute_template_specs(k)] = self:substitute_template_specs(v)
end
return pinfo
end
function Category:make_new(info)
info.originating_label = self._info.label
info.originating_module = self._data.module
info.called_from_inside = true
return Category.new(info)
end
function Category:getBreadcrumbName()
local ret
if self._lang or self._info.raw then
ret = self._data.breadcrumb or self._data.breadcrumb_and_first_sort_key or
self._data.breadcrumb_and_first_sort_base or nil
else
ret = self._data.umbrella and (self._data.umbrella.breadcrumb or
self._data.umbrella.breadcrumb_and_first_sort_key or self._data.umbrella.breadcrumb_and_first_sort_base) or
nil
end
if not ret then
ret = self._info.label
end
if type(ret) ~= "table" then
ret = {name = ret}
end
local name = self:substitute_template_specs(ret.name)
local nocap = ret.nocap
if self._sc then
name = name .. " dalam tulisan " .. self._sc:getDisplayForm()
end
return name, nocap
end
local function expand_toc_template_if(template)
local template_obj = new_title(template, 10)
if template_obj.exists then
return expand_template{title = template_obj.text}
end
return nil
end
-- Return the textual expansion of the first existing template among the given templates, first performing
-- substitutions on the template name such as replacing {{{langcode}}} with the current language's code (if any).
-- If no templates exist after expansion, or if nil is passed in, return nil. If a single string is passed in,
-- treat it like a one-element list consisting of that string.
function Category:get_template_text(templates)
if templates == nil then
return nil
elseif type(templates) ~= "table" then
templates = {templates}
end
for _, template in ipairs(templates) do
if template == false then
return false
end
template = self:substitute_template_specs(template)
return expand_toc_template_if(template)
end
return nil
end
function Category:getTOC(toc_type)
-- Type "none" means everything fits on a single page; in that case, display nothing.
if toc_type == "none" then
return nil
end
local templates, fallback_templates
-- If TOC type is "full" (more than 2500 entries), do the following, in order:
-- 1. look up and expand the `toc_template_full` templates (normal or umbrella, depending on whether there is
-- a current language);
-- 2. look up and expand the `toc_template` templates (normal or umbrella, as above);
-- 3. do the default behavior, which is as follows:
-- 3a. look up a language-specific "full" template according to the current language (using English if there
-- is no current language);
-- 3b. look up a script-specific "full" template according to the first script of current language (using English
-- if there is no current language);
-- 3c. look up a language-specific "normal" template according to the current language (using English if there
-- is no current language);
-- 3d. look up a script-specific "normal" template according to the first script of the current language (using
-- English if there is no current language);
-- 3e. display nothing.
--
-- If TOC type is "normal" (between 200 and 2500 entries), do the following, in order:
-- 1. look up and expand the `toc_template` templates (normal or umbrella, depending on whether there is
-- a current language);
-- 2. do the default behavior, which is as follows:
-- 2a. look up a language-specific "normal" template according to the current language (using English if there
-- is no current language);
-- 2b. look up a script-specific "normal" template according to the first script of the current language (using
-- English if there is no current language);
-- 2c. display nothing.
local data_source
if self._lang or self._info.raw then
data_source = self._data
else
data_source = self._data.umbrella
end
if data_source then
if toc_type == "full" then
templates = data_source.toc_template_full
fallback_templates = data_source.toc_template
else
templates = data_source.toc_template
end
end
local text = self:get_template_text(templates)
if text then
return text
elseif text == false then
return nil
end
text = self:get_template_text(fallback_templates)
if text then
return text
elseif text == false then
return nil
end
local default_toc_templates_to_check = {}
local lang, sc = self:getCatfixInfo()
local langcode = lang and lang:getCode() or "ms"
local sccode = sc and sc:getCode() or lang and lang:getScriptCodes()[1] or "Latn"
-- FIXME: What is toctemplateprefix used for?
local tocname = (self._data.toctemplateprefix or "") .. "categoryTOC"
if toc_type == "full" then
insert(default_toc_templates_to_check, ("%s-%s/full"):format(langcode, tocname))
insert(default_toc_templates_to_check, ("%s-%s/full"):format(sccode, tocname))
end
insert(default_toc_templates_to_check, ("%s-%s"):format(langcode, tocname))
insert(default_toc_templates_to_check, ("%s-%s"):format(sccode, tocname))
for _, toc_template in ipairs(default_toc_templates_to_check) do
local toc_template_text = expand_toc_template_if(toc_template)
if toc_template_text then
return toc_template_text
end
end
return nil
end
function Category:getInfo()
return self._info
end
function Category:getDataModule()
return self._data.module
end
function Category:canBeEmpty()
if self._lang or self._info.raw then
return self._data.can_be_empty
end
return self._data.umbrella and self._data.umbrella.can_be_empty
end
function Category:isHidden()
if self._lang or self._info.raw then
return self._data.hidden
end
return self._data.umbrella and self._data.umbrella.hidden
end
function Category:getCategoryName()
if self._info.raw then
return self._info.canonical_name or self._info.label
elseif self._lang then
local langname = self._lang:getCanonicalName()
local connector = (self._data and self._data.lang_connector) or "bahasa"
local ret
-- Case 1: label data explicitly declares lang_position = "mid" with label_before/label_after.
if self._data and self._data.lang_position == "mid" then
local before = self._data.label_before or self._info.label
local after = self._data.label_after or ""
ret = before .. " " .. connector .. " " .. langname
if after ~= "" then
ret = ret .. " " .. after
end
-- Case 2: label was parsed from a mid-lang title; before\0after packed in self._info.label.
elseif self._info.label:find("\0", 1, true) then
local before, after = self._info.label:match("^(.-)%z(.*)$")
ret = before .. " " .. connector .. " " .. langname
if after and after ~= "" then
ret = ret .. " " .. after
end
-- Case 3: default — label precedes "bahasa LANG" (original behaviour).
else
ret = self._info.label .. " " .. connector .. " " .. langname
end
if self._sc then
ret = ret .. " dalam tulisan " .. self._sc:getDisplayForm()
end
return ucfirst(ret)
end
local ret = ucfirst(self._info.label)
if not (self._data.no_by_language or self._data.umbrella and self._data.umbrella.no_by_language) then
ret = ret .. " mengikut bahasa"
end
return ret
end
function Category:getTopright()
if self._lang or self._info.raw then
return self:substitute_template_specs(self._data.topright)
end
return self._data.umbrella and self:substitute_template_specs(self._data.umbrella.topright)
end
function Category:display_title(displaytitle, lang)
if type(displaytitle) == "string" then
displaytitle = self:substitute_template_specs(displaytitle)
else
displaytitle = displaytitle(self:getCategoryName(), lang)
end
mw.getCurrentFrame():callParserFunction("DISPLAYTITLE", "Kategori:" .. displaytitle)
end
function Category:get_labels_categorizing()
local m_labels_utilities = require(labels_utilities_module)
local pos_cat_labels, sense_cat_labels, use_tlb
pos_cat_labels = m_labels_utilities.find_labels_for_category(self._info.label, "pos", self._lang)
local sense_label = self._info.label:match("^Perkataan (.*)$")
if sense_label then
use_tlb = true
else
sense_label = self._info.label:match("^Perkataan dengan erti (.*)$")
end
if not sense_label then
return nil
end
sense_cat_labels = m_labels_utilities.find_labels_for_category(sense_label, "sense", self._lang)
if use_tlb then
return m_labels_utilities.format_labels_categorizing(pos_cat_labels, sense_cat_labels, self._lang)
end
local all_labels = pos_cat_labels
for k, v in pairs(sense_cat_labels) do
all_labels[k] = v
end
return m_labels_utilities.format_labels_categorizing(all_labels, nil, self._lang)
end
-- FIXME: this is clunky.
local function remove_lang_params(desc)
-- Simply remove a language name/code/category from the beginning of the string, but replace the language name
-- in the middle of the string with either "tertentu" or "specific-language" depending on whether the
-- language name appears to be an attributive qualifier of another noun or to stand by itself. This may be wrong,
-- in which case the category in question should supply its own umbrella description.
desc = desc:gsub("^{{{langname}}} ", "")
:gsub("{{{langname}}} %(", "tertentu (")
:gsub("{{{langname}}}([.,])", "tertentu%1")
:gsub("{{{langname}}} ", "tertentu ")
:gsub("{{{langdisp}}}", "tertentu")
:gsub("{{{langlink}}}", "tertentu")
return desc
end
function Category:getDescription(isChild)
-- Allows different text in the list of a category's children
local isChild = isChild == "child"
if self._lang or self._info.raw then
if not isChild and self._data.displaytitle then
self:display_title(self._data.displaytitle, self._lang)
end
if self._sc then
return self:getCategoryName() .. "."
end
local desc = self:substitute_template_specs(self._data.description)
if not desc then
return nil
elseif isChild then
return desc
end
return sparse_concat({
self:substitute_template_specs(self._data.preceding),
desc,
self:substitute_template_specs(self._data.additional),
self:substitute_template_specs(self:get_labels_categorizing()),
}, "\n\n")
end
local umbrella = self._data.umbrella
if not isChild and umbrella and umbrella.displaytitle then
self:display_title(umbrella.displaytitle)
end
local desc = self:substitute_template_specs(umbrella and umbrella.description)
local has_umbrella_desc = not not desc
if not desc then
desc = self:convert_spec_to_string(self._data.description)
if desc then
desc = remove_lang_params(desc)
desc = lcfirst(desc)
desc = desc:gsub("%.$", "")
desc = "Kategori dengan " .. desc .. "."
else
desc = "Kategori dengan " .. self._info.label .. " dalam pelbagai bahasa tertentu."
end
desc = self:substitute_template_specs(desc)
end
if isChild then
return desc
end
return sparse_concat({
self:substitute_template_specs(umbrella and umbrella.preceding or not has_umbrella_desc and self._data.preceding),
desc,
self:substitute_template_specs(umbrella and umbrella.additional or not has_umbrella_desc and self._data.additional),
self:substitute_template_specs("{{{umbrella_msg}}}"),
self:substitute_template_specs(self:get_labels_categorizing()),
}, "\n\n")
end
function Category:new_sortkey(sortkey)
local sortkey_type = type(sortkey)
if sortkey_type == "string" then
sortkey = uupper(sortkey)
elseif sortkey_type == "table" then
function sortkey:makeSortKey()
local sort_func = self.sort_func
if sort_func ~= nil then
return sort_func(self.sort_base)
end
local lang = self.lang
if lang == nil then
return self.sort_base
end
lang = get_lang(lang, nil, true)
if lang == nil then
return self.sort_base
end
local sc = self.sc
if sc ~= nil then
sc = get_script(sc)
end
return lang:makeSortKey(self.sort_base, sc)
end
end
return sortkey
end
function Category:inherit_spec(spec, parent_spec, substitute_result)
if spec == false then
return nil
end
local retval = spec or parent_spec
if substitute_result then
retval = self:substitute_template_specs(retval)
end
return retval
end
function Category:canonicalize_parents_children(cats, is_children, fallback_sort_key, fallback_sort_base)
if not cats then
return nil
elseif type(cats) == "table" then
if cats.name or cats.module then
cats = {cats}
elseif #cats == 0 then
return nil
end
else
cats = {cats}
end
local ret = {}
for _, cat in ipairs(cats) do
if type(cat) ~= "table" or not cat.name and not cat.module then
cat = {name = cat}
end
insert(ret, cat)
end
local is_umbrella = not self._lang and not self._info.raw
local table_type = is_children and "extra_children" or "parents"
for i, cat in ipairs(ret) do
local raw
if self._info.raw or is_umbrella then
raw = not cat.is_label
else
raw = cat.raw
end
local lang = self:inherit_spec(cat.lang, not raw and self._info.code or nil, "substitute")
local sc = self:inherit_spec(cat.sc, not raw and self._info.sc or nil, "substitute")
-- Get the sortkey.
local sortkey = self:inherit_spec(cat.sort, i == 1 and (fallback_sort_key or fallback_sort_base and {sort_base = fallback_sort_base}) or nil)
if type(sortkey) == "table" then
sortkey.sort_base = self:substitute_template_specs(sortkey.sort_base) or
internal_error("Missing .sort_base in '" .. table_type .. "' .sort table for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
if sortkey.sort_func then
-- Not allowed to give a lang and/or script if sort_func is given.
local bad_spec = sortkey.lang and "lang" or sortkey.sc and "sc" or nil
if bad_spec then
internal_error("Cannot specify both ." .. bad_spec .. " and .sort_func in '" .. table_type ..
"' .sort table for '" .. self._info.label .. "' category entry in module '" ..
(self._data.module or "unknown") .. "'")
end
else
sortkey.lang = self:inherit_spec(sortkey.lang, lang, "substitute")
sortkey.sc = self:inherit_spec(sortkey.sc, sc, "substitute")
end
else
sortkey = self:substitute_template_specs(sortkey)
end
local name
if cat.module then
-- A reference to a category using another category tree module.
if not cat.args then
internal_error("Missing .args in '" .. table_type .. "' table with module=\"" .. cat.module .. "\" for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
end
name = require("Module:category tree/" .. cat.module).new(self:substitute_template_specs_in_args(cat.args))
else
name = cat.name
if not name then
internal_error("Missing .name in " .. (is_umbrella and "umbrella " or "") .. "'" .. table_type .. "' table for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
elseif type(name) == "string" then -- otherwise, assume it's a category object and use it directly
name = self:substitute_template_specs(name)
if name:find("^Kategori:") then
-- It's a non-poscatboiler category name.
sortkey = sortkey or is_children and name:gsub("^Kategori:", "") or self:getCategoryName()
else
-- It's a label.
sortkey = sortkey or is_children and name or self._info.label
name = self:make_new{
label = name, code = lang, sc = sc,
raw = raw, args = self:substitute_template_specs_in_args(cat.args)
}
end
end
end
sortkey = sortkey or is_children and " " or self._info.label
ret[i] = {
name = name,
description = is_children and self:substitute_template_specs(cat.description) or nil,
sort = self:new_sortkey(sortkey)
}
end
return ret
end
function Category:getParents()
local is_umbrella, ret = not self._lang and not self._info.raw
if self._sc then
local parent1 = self:make_new{code = self._info.code, label = "Perkataan dalam tulisan " .. self._sc:getCanonicalName()}
local parent2 = self:make_new{code = self._info.code, label = self._info.label, raw = self._info.raw, args = self._info.args}
ret = {
{name = parent1, sort = self._sc:getCanonicalName()},
{name = parent2, sort = self._sc:getCanonicalName()},
}
else
local parents, fallback_sort_key, fallback_sort_base
if is_umbrella then
parents = self._data.umbrella and self._data.umbrella.parents or self._data.umbrella_parents
fallback_sort_key = self._data.umbrella and self._data.umbrella.breadcrumb_and_first_sort_key or nil
fallback_sort_base = self._data.umbrella and self._data.umbrella.breadcrumb_and_first_sort_base or nil
else
parents = self._data.parents
fallback_sort_key = self._data.breadcrumb_and_first_sort_key
fallback_sort_base = self._data.breadcrumb_and_first_sort_base
end
ret = self:canonicalize_parents_children(parents, nil, fallback_sort_key, fallback_sort_base)
if not ret then
return nil
end
end
local self_cat = self:getCategoryName()
for _, parent in ipairs(ret) do
local parent_cat = parent.name.getCategoryName and parent.name:getCategoryName()
if self_cat == parent_cat then
internal_error(("Infinite loop would occur, as parent category '%s' is the same as the child category"):format(self_cat))
end
end
return ret
end
function Category:getChildren()
local is_umbrella = not self._lang and not self._info.raw
local children = self._data.children
local ret = {}
if not is_umbrella and children then
for _, child in ipairs(children) do
child = mw.clone(child)
if type(child) ~= "table" then
child = {name = child}
end
if not child.sort then
child.sort = child.name
end
-- FIXME, is preserving the script correct?
child.name = self:make_new{code = self._info.code, label = child.name, raw = child.raw, sc = self._info.sc}
insert(ret, child)
end
end
local extra_children
if is_umbrella then
extra_children = self._data.umbrella and self._data.umbrella.extra_children
else
extra_children = self._data.extra_children
end
extra_children = self:canonicalize_parents_children(extra_children, "children")
if extra_children then
for _, child in ipairs(extra_children) do
insert(ret, child)
end
end
return #ret > 0 and ret or nil
end
function Category:getUmbrella()
local umbrella = self._data.umbrella
if umbrella == false or self._info.raw or not self._lang or self._sc then
return nil
end
-- If `umbrella` is a string, use that; otherwise, use the label.
return self:make_new({label = type(umbrella) == "string" and umbrella or self._info.label})
end
function Category:getAppendix()
-- FIXME, this should be customizable.
local lang, label = self._lang, self._info.label
if self._info.raw or not (lang and label) then
return nil
end
local appendix = make_title(100, label .. " bahasa " .. lang:getCanonicalName())
return appendix.exists and appendix.fullText or nil
end
function Category:getCatfixInfo()
if self._lang or self._sc or self._info.raw then
local langcode, sccode = self._data.catfix, self._data.catfix_sc
local lang, sc
if langcode then
langcode = self:substitute_template_specs(langcode)
lang = get_lang(langcode, nil, true)
elseif langcode == nil then -- not false
lang = self._lang
end
if sccode then
sccode = self:substitute_template_specs(sccode)
sc = get_script(sccode)
elseif sccode == nil then -- not false
sc = self._sc
end
if lang then
lang = lang:getFull()
end
return lang, sc
elseif not self._data.umbrella then
return
end
-- umbrella
local langcode, sccode = self._data.umbrella.catfix, self._data.umbrella.catfix_sc
local lang, sc
if langcode then
langcode = self:substitute_template_specs(langcode)
lang = get_lang(langcode, nil, true)
end
if sccode then
sccode = self:substitute_template_specs(sccode)
sc = get_script(sccode)
end
if lang then
lang = lang:getFull()
end
return lang, sc
end
function Category:getTOCTemplateName()
-- This should only be invoked if getTOC() returns true, meaning to do the default algorithm, but getTOC()
-- implements its own default algorithm.
internal_error("This should never get called")
end
local export = {}
function export.main(info)
local self = setmetatable({_info = info}, Category)
self:initCommon()
return self._data and self or nil
end
export.new = Category.new
return export
syin42b26pfli4cmoza5ztx95i0pg1c
342783
342782
2026-05-16T09:14:25Z
Hakimi97
2668
342783
Scribunto
text/plain
local lang_independent_data = require("Module:category tree/data")
local lang_specific_module = "Module:category tree/lang"
local lang_specific_module_prefix = lang_specific_module .. "/"
local family_specific_module = "Module:category tree/fam"
local family_specific_module_prefix = family_specific_module .. "/"
local labels_utilities_module = "Module:labels/utilities"
local template_parser_module = "Module:template parser"
local concat = table.concat
local dump = mw.dumpObject
local expand_template = require("Module:frame").expandTemplate
local insert = table.insert
local is_callable = require("Module:fun").is_callable
local lcfirst = require("Module:string utilities").lcfirst
local list_to_set = require("Module:table").listToSet
local make_title = mw.title.makeTitle
local new_title = mw.title.new
local parse = require(template_parser_module).parse
local sparse_concat = require("Module:table").sparseConcat
local tostring = tostring
local type = type
local ucfirst = require("Module:string utilities").ucfirst
local uupper = require("Module:string utilities").upper
local function internal_error(msg)
error("Internal error: " .. msg)
end
local function get_lang(...)
local _get_lang = require("Module:languages").getByCode
function get_lang(...)
return _get_lang(...) or require("Module:languages/errorGetBy").code(...)
end
return get_lang(...)
end
local function get_script(...)
local _get_script = require("Module:scripts").getByCode
function get_script(code)
return _get_script(code) or require("Module:languages/error")(code, true, "script code")
end
return get_script(...)
end
-- Category object
local Category = {}
Category.__index = Category
function Category:get_originating_info()
local originating_info = ""
if self._info.originating_label then
originating_info = " (originating from label \"" .. self._info.originating_label .. "\" in module [[" .. self._info.originating_module .. "]])"
end
return originating_info
end
local valid_keys = list_to_set{"code", "label", "sc", "raw", "args", "also", "called_from_inside", "originating_label", "originating_module"}
function Category.new(info)
for key in pairs(info) do
if not valid_keys[key] then
internal_error("The parameter \"" .. key .. "\" was not recognized.")
end
end
local self = setmetatable({}, Category)
self._info = info
if not self._info.label then
internal_error("No label was specified.")
end
self:initCommon()
if not self._data then
internal_error("The " .. (self._info.raw and "raw " or "") .. "label \"" .. self._info.label .. "\" does not exist" .. self:get_originating_info() .. ".")
end
return self
end
function Category:initCommon()
local function patch_args(args)
-- This fixes the issue with Scribunto automatically converting keys
-- in a table as numbers to strings, which in turn causes a circular
-- error for having argument parameter names as numbers as strings.
if type(args) ~= "table" then
return args
end
local new_args = {}
for k, v in pairs(args) do
if type(k) == "string" and string.len(k) < 10 and not string.match(k, "^0") and string.match(k, "^%d+$") then
new_args[tonumber(k)] = patch_args(v)
else
new_args[k] = patch_args(v)
end
end
return new_args
end
local args_handled = false
if self._info.raw then
-- Check if the category exists
local raw_categories = lang_independent_data["RAW_CATEGORIES"]
self._data = raw_categories[self._info.label]
if self._data then
if self._data.lang then
self._lang = get_lang(self._data.lang, nil, true)
self._info.code = self._lang:getCode()
end
if self._data.sc then
self._sc = get_script(self._data.sc)
self._info.sc = self._sc:getCode()
end
else
-- Go through raw handlers
local data = {
category = self._info.label,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
for _, handler in ipairs(lang_independent_data["RAW_HANDLERS"]) do
self._data, args_handled = handler.handler(data)
if self._data then
self._data.module = self._data.module or handler.module
break
end
end
if self._data then
-- Update the label if the handler specified a canonical name for it.
if self._data.canonical_name then
self._info.canonical_name = self._data.canonical_name
end
if self._data.lang then
if type(self._data.lang) ~= "string" then
internal_error("Received non-string value " .. dump(self._data.lang) .. " for self._data.lang, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".")
end
self._lang = get_lang(self._data.lang, nil, true)
self._info.code = self._lang:getCode()
end
if self._data.sc then
if type(self._data.sc) ~= "string" then
internal_error("Received non-string value " .. dump(self._data.sc) .. " for self._data.sc, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".")
end
self._sc = get_script(self._data.sc)
self._info.sc = self._sc:getCode()
end
end
end
else
-- Already parsed into language + label
if self._info.code then
self._lang = get_lang(self._info.code, nil, true)
else
self._lang = nil
end
if self._info.sc then
self._sc = get_script(self._info.sc)
else
self._sc = nil
end
self._info.orig_label = self._info.label
-- If the label was packed with a \0 separator (from split_lang_label for mid-lang titles),
-- reconstruct the canonical label key used in LABELS data modules.
-- e.g. "Perkataan\0yang baru" → canonical key "Perkataan yang baru"
if self._info.label:find("\0", 1, true) then
self._info.label = self._info.label:gsub("%z", " ")
end
if not self._lang then
-- Malay Wiktionary category names normally use LABEL + "mengikut bahasa",
-- so umbrella category labels should normally remain uppercase-initial.
-- Keep the original label in `orig_label`, canonicalize to uppercase-initial
-- for lookup, and later fall back to lowercase if needed.
self._info.label = ucfirst(self._info.label)
end
local function get_label_forms()
local labels, seen = {}, {}
local function add(label)
if label and not seen[label] then
insert(labels, label)
seen[label] = true
end
end
add(self._info.label)
add(self._info.orig_label)
add(lcfirst(self._info.label))
return labels
end
-- First, check lang-specific labels and handlers if this is not an umbrella category.
if self._lang then
local objects_with_modules = require(lang_specific_module)
local obj, seen = self._lang, {}
local object_specific_module_prefix = lang_specific_module_prefix
local is_family = false
repeat
if objects_with_modules[obj:getCode()] then
local module = object_specific_module_prefix .. obj:getCode()
local labels_and_handlers = require(module)
if labels_and_handlers.LABELS then
self._data = labels_and_handlers.LABELS[self._info.label]
if self._data then
if not is_family and self._data.umbrella == nil and self._data.umbrella_parents == nil then
self._data.umbrella = false
end
self._data.module = self._data.module or module
end
end
if not self._data and labels_and_handlers.HANDLERS then
for _, handler in ipairs(labels_and_handlers.HANDLERS) do
local data = {
label = self._info.label,
lang = self._lang,
sc = self._sc,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
self._data, args_handled = handler(data)
if self._data then
if not is_family and self._data.umbrella == nil and
self._data.umbrella_parents == nil then
self._data.umbrella = false
end
self._data.module = self._data.module or module
break
end
end
end
if self._data then
break
end
end
seen[obj:getCode()] = true
obj = obj:getFamily()
if not is_family then
is_family = true
object_specific_module_prefix = family_specific_module_prefix
objects_with_modules = require(family_specific_module)
end
until not obj or seen[obj:getCode()]
end
local function fetch_label_data(labels)
for _, label in ipairs(get_label_forms()) do
self._data = labels[label]
if self._data then
self._info.label = label
return
end
end
end
-- Then check lang-independent labels.
if not self._data then
-- lang_independent_data.LABELS should always exist.
fetch_label_data(lang_independent_data.LABELS)
if not self._data and not self._lang then
-- Check family-specific labels for umbrella label.
local families_with_modules = require(family_specific_module)
for famcode, _ in pairs(families_with_modules) do
local module = family_specific_module_prefix .. famcode
local labels_and_handlers = require(module)
if labels_and_handlers.LABELS then
fetch_label_data(labels_and_handlers.LABELS)
if self._data then
self._data.module = self._data.module or module
break
end
end
end
end
end
-- Then check lang-independent handlers.
if not self._data then
for _, handler in ipairs(lang_independent_data["HANDLERS"]) do
for _, label in ipairs(get_label_forms()) do
local data = {
label = label,
lang = self._lang,
sc = self._sc,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
self._data, args_handled = handler.handler(data)
if self._data then
self._info.label = label
self._data.module = self._data.module or handler.module
break
end
end
if self._data then
break
end
end
if not self._data and not self._lang then
-- Check family-specific labels for umbrella handler.
local families_with_modules = require(family_specific_module)
for famcode, _ in pairs(families_with_modules) do
local module = family_specific_module_prefix .. famcode
local labels_and_handlers = require(module)
if labels_and_handlers.HANDLERS then
for _, handler in ipairs(labels_and_handlers.HANDLERS) do
for _, label in ipairs(get_label_forms()) do
local data = {
label = label,
sc = self._sc,
args = patch_args(self._info.args) or {},
called_from_inside = self._info.called_from_inside,
}
self._data, args_handled = handler(data)
if self._data then
self._info.label = label
self._data.module = self._data.module or module
break
end
end
if self._data then
break
end
end
end
if self._data then
break
end
end
end
end
end
if not args_handled and self._data and self._info.args and next(self._info.args) then
local module_text = " (handled in [[" .. (self._data.module or "UNKNOWN").. "]])"
local args_text = {}
for k, v in pairs(self._info.args) do
insert(args_text, k .. "=" .. ((type(v) == "string" or type(v) == "number") and v or dump(v)))
end
error("poscatboiler label '" .. self._info.label .. "' " .. module_text .. " doesn't accept extra args " ..
concat(args_text, ", "))
end
if self._sc and not self._lang then
internal_error("Umbrella categories cannot have a script specified.")
end
end
function Category:convert_spec_to_string(desc)
if not desc then
return desc
end
local desc_type = type(desc)
if desc_type == "string" then
return desc
elseif desc_type == "number" then
return tostring(desc)
elseif not is_callable(desc) then
internal_error("`desc` must be a string, number, function, callable table or nil; received " .. dump(desc))
end
desc = desc {
lang = self._lang,
sc = self._sc,
label = self._info.label,
raw = self._info.raw,
}
if not desc then
return desc
end
desc_type = type(desc)
if desc_type == "string" then
return desc
end
internal_error("The value returned by `desc` must be a string or nil; received " .. dump(desc))
end
local function add_obj_args(args, obj, obj_type)
if obj then
args[obj_type .. "code"] = obj:getCode()
args[obj_type .. "name"] = obj:getCanonicalName()
args[obj_type .. "disp"] = obj:getDisplayForm()
args[obj_type .. "cat"] = obj:getCategoryName()
args[obj_type .. "link"] = obj:makeCategoryLink()
end
end
-- Expands `desc` like a template, passing values for specs like {{{langname}}}.
function Category:substitute_template_specs(desc)
-- This may end up happening twice but that's OK as the function is (usually) idempotent.
-- FIXME: Not idempotent if a preprocessed template returns wikicode.
desc = self:convert_spec_to_string(desc)
if not desc then
return nil
end
-- Populate the substitution arguments.
local args = {}
args.umbrella_msg = "Kategori ini merupakan sebuah kategori payung. Ia tidak mengandungi sebarang entri kamus, sebaliknya hanya mengandungi kategori khusus bahasa lain, yang seterusnya mengandungi istilah yang berkaitan dalam bahasa tertentu."
args.umbrella_meta_msg = "Kategori ini merupakan sebuah metakategori payung, yang meliputi bidang umum seperti \"lema\", \"nama\" atau \"perkataan mengikut etimologi\". Ia tidak mengandungi sebarang entri kamus, sebaliknya hanya mengandungi kategori payung (\"mengikut bahasa\") yang merangkumi subtopik tertentu, yang seterusnya mengandungi kategori khusus bahasa yang mengandungi istilah dalam bahasa tertentu untuk topik yang sama."
add_obj_args(args, self._lang, "lang")
add_obj_args(args, self._sc, "sc")
return parse(desc, true):expand(args)
end
function Category:substitute_template_specs_in_args(args)
if not args then
return args
end
local pinfo = {}
for k, v in pairs(args) do
pinfo[self:substitute_template_specs(k)] = self:substitute_template_specs(v)
end
return pinfo
end
function Category:make_new(info)
info.originating_label = self._info.label
info.originating_module = self._data.module
info.called_from_inside = true
return Category.new(info)
end
function Category:getBreadcrumbName()
local ret
if self._lang or self._info.raw then
ret = self._data.breadcrumb or self._data.breadcrumb_and_first_sort_key or
self._data.breadcrumb_and_first_sort_base or nil
else
ret = self._data.umbrella and (self._data.umbrella.breadcrumb or
self._data.umbrella.breadcrumb_and_first_sort_key or self._data.umbrella.breadcrumb_and_first_sort_base) or
nil
end
if not ret then
ret = self._info.label
end
if type(ret) ~= "table" then
ret = {name = ret}
end
local name = self:substitute_template_specs(ret.name)
local nocap = ret.nocap
if self._sc then
name = name .. " dalam tulisan " .. self._sc:getDisplayForm()
end
return name, nocap
end
local function expand_toc_template_if(template)
local template_obj = new_title(template, 10)
if template_obj.exists then
return expand_template{title = template_obj.text}
end
return nil
end
-- Return the textual expansion of the first existing template among the given templates, first performing
-- substitutions on the template name such as replacing {{{langcode}}} with the current language's code (if any).
-- If no templates exist after expansion, or if nil is passed in, return nil. If a single string is passed in,
-- treat it like a one-element list consisting of that string.
function Category:get_template_text(templates)
if templates == nil then
return nil
elseif type(templates) ~= "table" then
templates = {templates}
end
for _, template in ipairs(templates) do
if template == false then
return false
end
template = self:substitute_template_specs(template)
return expand_toc_template_if(template)
end
return nil
end
function Category:getTOC(toc_type)
-- Type "none" means everything fits on a single page; in that case, display nothing.
if toc_type == "none" then
return nil
end
local templates, fallback_templates
-- If TOC type is "full" (more than 2500 entries), do the following, in order:
-- 1. look up and expand the `toc_template_full` templates (normal or umbrella, depending on whether there is
-- a current language);
-- 2. look up and expand the `toc_template` templates (normal or umbrella, as above);
-- 3. do the default behavior, which is as follows:
-- 3a. look up a language-specific "full" template according to the current language (using English if there
-- is no current language);
-- 3b. look up a script-specific "full" template according to the first script of current language (using English
-- if there is no current language);
-- 3c. look up a language-specific "normal" template according to the current language (using English if there
-- is no current language);
-- 3d. look up a script-specific "normal" template according to the first script of the current language (using
-- English if there is no current language);
-- 3e. display nothing.
--
-- If TOC type is "normal" (between 200 and 2500 entries), do the following, in order:
-- 1. look up and expand the `toc_template` templates (normal or umbrella, depending on whether there is
-- a current language);
-- 2. do the default behavior, which is as follows:
-- 2a. look up a language-specific "normal" template according to the current language (using English if there
-- is no current language);
-- 2b. look up a script-specific "normal" template according to the first script of the current language (using
-- English if there is no current language);
-- 2c. display nothing.
local data_source
if self._lang or self._info.raw then
data_source = self._data
else
data_source = self._data.umbrella
end
if data_source then
if toc_type == "full" then
templates = data_source.toc_template_full
fallback_templates = data_source.toc_template
else
templates = data_source.toc_template
end
end
local text = self:get_template_text(templates)
if text then
return text
elseif text == false then
return nil
end
text = self:get_template_text(fallback_templates)
if text then
return text
elseif text == false then
return nil
end
local default_toc_templates_to_check = {}
local lang, sc = self:getCatfixInfo()
local langcode = lang and lang:getCode() or "ms"
local sccode = sc and sc:getCode() or lang and lang:getScriptCodes()[1] or "Latn"
-- FIXME: What is toctemplateprefix used for?
local tocname = (self._data.toctemplateprefix or "") .. "categoryTOC"
if toc_type == "full" then
insert(default_toc_templates_to_check, ("%s-%s/full"):format(langcode, tocname))
insert(default_toc_templates_to_check, ("%s-%s/full"):format(sccode, tocname))
end
insert(default_toc_templates_to_check, ("%s-%s"):format(langcode, tocname))
insert(default_toc_templates_to_check, ("%s-%s"):format(sccode, tocname))
for _, toc_template in ipairs(default_toc_templates_to_check) do
local toc_template_text = expand_toc_template_if(toc_template)
if toc_template_text then
return toc_template_text
end
end
return nil
end
function Category:getInfo()
return self._info
end
function Category:getDataModule()
return self._data.module
end
function Category:canBeEmpty()
if self._lang or self._info.raw then
return self._data.can_be_empty
end
return self._data.umbrella and self._data.umbrella.can_be_empty
end
function Category:isHidden()
if self._lang or self._info.raw then
return self._data.hidden
end
return self._data.umbrella and self._data.umbrella.hidden
end
function Category:getCategoryName()
if self._info.raw then
return self._info.canonical_name or self._info.label
elseif self._lang then
local langname = self._lang:getCanonicalName()
local connector = (self._data and self._data.lang_connector) or "bahasa"
local ret
-- Case 1: label data explicitly declares lang_position = "mid" with label_before/label_after.
if self._data and self._data.lang_position == "mid" then
local before = self._data.label_before or self._info.label
local after = self._data.label_after or ""
ret = before .. " " .. connector .. " " .. langname
if after ~= "" then
ret = ret .. " " .. after
end
-- Case 2: label was parsed from a mid-lang title; before\0after packed in self._info.label.
elseif self._info.label:find("\0", 1, true) then
local before, after = self._info.label:match("^(.-)%z(.*)$")
ret = before .. " " .. connector .. " " .. langname
if after and after ~= "" then
ret = ret .. " " .. after
end
-- Case 3: default — label precedes "bahasa LANG" (original behaviour).
else
ret = self._info.label .. " " .. connector .. " " .. langname
end
if self._sc then
ret = ret .. " dalam tulisan " .. self._sc:getDisplayForm()
end
return ucfirst(ret)
end
local ret = ucfirst(self._info.label)
if not (self._data.no_by_language or self._data.umbrella and self._data.umbrella.no_by_language) then
ret = ret .. " mengikut bahasa"
end
return ret
end
function Category:getTopright()
if self._lang or self._info.raw then
return self:substitute_template_specs(self._data.topright)
end
return self._data.umbrella and self:substitute_template_specs(self._data.umbrella.topright)
end
function Category:display_title(displaytitle, lang)
if type(displaytitle) == "string" then
displaytitle = self:substitute_template_specs(displaytitle)
else
displaytitle = displaytitle(self:getCategoryName(), lang)
end
mw.getCurrentFrame():callParserFunction("DISPLAYTITLE", "Kategori:" .. displaytitle)
end
function Category:get_labels_categorizing()
local m_labels_utilities = require(labels_utilities_module)
local pos_cat_labels, sense_cat_labels, use_tlb
pos_cat_labels = m_labels_utilities.find_labels_for_category(self._info.label, "pos", self._lang)
local sense_label = self._info.label:match("^Perkataan (.*)$")
if sense_label then
use_tlb = true
else
sense_label = self._info.label:match("^Perkataan dengan erti (.*)$")
end
if not sense_label then
return nil
end
sense_cat_labels = m_labels_utilities.find_labels_for_category(sense_label, "sense", self._lang)
if use_tlb then
return m_labels_utilities.format_labels_categorizing(pos_cat_labels, sense_cat_labels, self._lang)
end
local all_labels = pos_cat_labels
for k, v in pairs(sense_cat_labels) do
all_labels[k] = v
end
return m_labels_utilities.format_labels_categorizing(all_labels, nil, self._lang)
end
-- FIXME: this is clunky.
local function remove_lang_params(desc)
-- Simply remove a language name/code/category from the beginning of the string, but replace the language name
-- in the middle of the string with either "tertentu" or "specific-language" depending on whether the
-- language name appears to be an attributive qualifier of another noun or to stand by itself. This may be wrong,
-- in which case the category in question should supply its own umbrella description.
desc = desc:gsub("^{{{langname}}} ", "")
:gsub("{{{langname}}} %(", "tertentu (")
:gsub("{{{langname}}}([.,])", "tertentu%1")
:gsub("{{{langname}}} ", "tertentu ")
:gsub("{{{langdisp}}}", "tertentu")
:gsub("{{{langlink}}}", "tertentu")
return desc
end
function Category:getDescription(isChild)
-- Allows different text in the list of a category's children
local isChild = isChild == "child"
if self._lang or self._info.raw then
if not isChild and self._data.displaytitle then
self:display_title(self._data.displaytitle, self._lang)
end
if self._sc then
return self:getCategoryName() .. "."
end
local desc = self:substitute_template_specs(self._data.description)
if not desc then
return nil
elseif isChild then
return desc
end
return sparse_concat({
self:substitute_template_specs(self._data.preceding),
desc,
self:substitute_template_specs(self._data.additional),
self:substitute_template_specs(self:get_labels_categorizing()),
}, "\n\n")
end
local umbrella = self._data.umbrella
if not isChild and umbrella and umbrella.displaytitle then
self:display_title(umbrella.displaytitle)
end
local desc = self:substitute_template_specs(umbrella and umbrella.description)
local has_umbrella_desc = not not desc
if not desc then
desc = self:convert_spec_to_string(self._data.description)
if desc then
desc = remove_lang_params(desc)
desc = lcfirst(desc)
desc = desc:gsub("%.$", "")
desc = "Kategori dengan " .. desc .. "."
else
desc = "Kategori dengan " .. self._info.label .. " dalam pelbagai bahasa tertentu."
end
desc = self:substitute_template_specs(desc)
end
if isChild then
return desc
end
return sparse_concat({
self:substitute_template_specs(umbrella and umbrella.preceding or not has_umbrella_desc and self._data.preceding),
desc,
self:substitute_template_specs(umbrella and umbrella.additional or not has_umbrella_desc and self._data.additional),
self:substitute_template_specs("{{{umbrella_msg}}}"),
self:substitute_template_specs(self:get_labels_categorizing()),
}, "\n\n")
end
function Category:new_sortkey(sortkey)
local sortkey_type = type(sortkey)
if sortkey_type == "string" then
sortkey = uupper(sortkey)
elseif sortkey_type == "table" then
function sortkey:makeSortKey()
local sort_func = self.sort_func
if sort_func ~= nil then
return sort_func(self.sort_base)
end
local lang = self.lang
if lang == nil then
return self.sort_base
end
lang = get_lang(lang, nil, true)
if lang == nil then
return self.sort_base
end
local sc = self.sc
if sc ~= nil then
sc = get_script(sc)
end
return lang:makeSortKey(self.sort_base, sc)
end
end
return sortkey
end
function Category:inherit_spec(spec, parent_spec, substitute_result)
if spec == false then
return nil
end
local retval = spec or parent_spec
if substitute_result then
retval = self:substitute_template_specs(retval)
end
return retval
end
function Category:canonicalize_parents_children(cats, is_children, fallback_sort_key, fallback_sort_base)
if not cats then
return nil
elseif type(cats) == "table" then
if cats.name or cats.module then
cats = {cats}
elseif #cats == 0 then
return nil
end
else
cats = {cats}
end
local ret = {}
for _, cat in ipairs(cats) do
if type(cat) ~= "table" or not cat.name and not cat.module then
cat = {name = cat}
end
insert(ret, cat)
end
local is_umbrella = not self._lang and not self._info.raw
local table_type = is_children and "extra_children" or "parents"
for i, cat in ipairs(ret) do
local raw
if self._info.raw or is_umbrella then
raw = not cat.is_label
else
raw = cat.raw
end
local lang = self:inherit_spec(cat.lang, not raw and self._info.code or nil, "substitute")
local sc = self:inherit_spec(cat.sc, not raw and self._info.sc or nil, "substitute")
-- Get the sortkey.
local sortkey = self:inherit_spec(cat.sort, i == 1 and (fallback_sort_key or fallback_sort_base and {sort_base = fallback_sort_base}) or nil)
if type(sortkey) == "table" then
sortkey.sort_base = self:substitute_template_specs(sortkey.sort_base) or
internal_error("Missing .sort_base in '" .. table_type .. "' .sort table for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
if sortkey.sort_func then
-- Not allowed to give a lang and/or script if sort_func is given.
local bad_spec = sortkey.lang and "lang" or sortkey.sc and "sc" or nil
if bad_spec then
internal_error("Cannot specify both ." .. bad_spec .. " and .sort_func in '" .. table_type ..
"' .sort table for '" .. self._info.label .. "' category entry in module '" ..
(self._data.module or "unknown") .. "'")
end
else
sortkey.lang = self:inherit_spec(sortkey.lang, lang, "substitute")
sortkey.sc = self:inherit_spec(sortkey.sc, sc, "substitute")
end
else
sortkey = self:substitute_template_specs(sortkey)
end
local name
if cat.module then
-- A reference to a category using another category tree module.
if not cat.args then
internal_error("Missing .args in '" .. table_type .. "' table with module=\"" .. cat.module .. "\" for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
end
name = require("Module:category tree/" .. cat.module).new(self:substitute_template_specs_in_args(cat.args))
else
name = cat.name
if not name then
internal_error("Missing .name in " .. (is_umbrella and "umbrella " or "") .. "'" .. table_type .. "' table for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
elseif type(name) == "string" then -- otherwise, assume it's a category object and use it directly
name = self:substitute_template_specs(name)
if name:find("^Kategori:") then
-- It's a non-poscatboiler category name.
sortkey = sortkey or is_children and name:gsub("^Kategori:", "") or self:getCategoryName()
else
-- It's a label.
sortkey = sortkey or is_children and name or self._info.label
name = self:make_new{
label = name, code = lang, sc = sc,
raw = raw, args = self:substitute_template_specs_in_args(cat.args)
}
end
end
end
sortkey = sortkey or is_children and " " or self._info.label
ret[i] = {
name = name,
description = is_children and self:substitute_template_specs(cat.description) or nil,
sort = self:new_sortkey(sortkey)
}
end
return ret
end
function Category:getParents()
local is_umbrella, ret = not self._lang and not self._info.raw
if self._sc then
local parent1 = self:make_new{code = self._info.code, label = "Perkataan dalam tulisan " .. self._sc:getCanonicalName()}
local parent2 = self:make_new{code = self._info.code, label = self._info.label, raw = self._info.raw, args = self._info.args}
ret = {
{name = parent1, sort = self._sc:getCanonicalName()},
{name = parent2, sort = self._sc:getCanonicalName()},
}
else
local parents, fallback_sort_key, fallback_sort_base
if is_umbrella then
parents = self._data.umbrella and self._data.umbrella.parents or self._data.umbrella_parents
fallback_sort_key = self._data.umbrella and self._data.umbrella.breadcrumb_and_first_sort_key or nil
fallback_sort_base = self._data.umbrella and self._data.umbrella.breadcrumb_and_first_sort_base or nil
else
parents = self._data.parents
fallback_sort_key = self._data.breadcrumb_and_first_sort_key
fallback_sort_base = self._data.breadcrumb_and_first_sort_base
end
ret = self:canonicalize_parents_children(parents, nil, fallback_sort_key, fallback_sort_base)
if not ret then
return nil
end
end
local self_cat = self:getCategoryName()
for _, parent in ipairs(ret) do
local parent_cat = parent.name.getCategoryName and parent.name:getCategoryName()
if self_cat == parent_cat then
internal_error(("Infinite loop would occur, as parent category '%s' is the same as the child category"):format(self_cat))
end
end
return ret
end
function Category:getChildren()
local is_umbrella = not self._lang and not self._info.raw
local children = self._data.children
local ret = {}
if not is_umbrella and children then
for _, child in ipairs(children) do
child = mw.clone(child)
if type(child) ~= "table" then
child = {name = child}
end
if not child.sort then
child.sort = child.name
end
-- FIXME, is preserving the script correct?
child.name = self:make_new{code = self._info.code, label = child.name, raw = child.raw, sc = self._info.sc}
insert(ret, child)
end
end
local extra_children
if is_umbrella then
extra_children = self._data.umbrella and self._data.umbrella.extra_children
else
extra_children = self._data.extra_children
end
extra_children = self:canonicalize_parents_children(extra_children, "children")
if extra_children then
for _, child in ipairs(extra_children) do
insert(ret, child)
end
end
return #ret > 0 and ret or nil
end
function Category:getUmbrella()
local umbrella = self._data.umbrella
if umbrella == false or self._info.raw or not self._lang or self._sc then
return nil
end
-- If `umbrella` is a string, use that; otherwise, use the label.
return self:make_new({label = type(umbrella) == "string" and umbrella or self._info.label})
end
function Category:getAppendix()
-- FIXME, this should be customizable.
local lang, label = self._lang, self._info.label
if self._info.raw or not (lang and label) then
return nil
end
local appendix = make_title(100, label .. " bahasa " .. lang:getCanonicalName())
return appendix.exists and appendix.fullText or nil
end
function Category:getCatfixInfo()
if self._lang or self._sc or self._info.raw then
local langcode, sccode = self._data.catfix, self._data.catfix_sc
local lang, sc
if langcode then
langcode = self:substitute_template_specs(langcode)
lang = get_lang(langcode, nil, true)
elseif langcode == nil then -- not false
lang = self._lang
end
if sccode then
sccode = self:substitute_template_specs(sccode)
sc = get_script(sccode)
elseif sccode == nil then -- not false
sc = self._sc
end
if lang then
lang = lang:getFull()
end
return lang, sc
elseif not self._data.umbrella then
return
end
-- umbrella
local langcode, sccode = self._data.umbrella.catfix, self._data.umbrella.catfix_sc
local lang, sc
if langcode then
langcode = self:substitute_template_specs(langcode)
lang = get_lang(langcode, nil, true)
end
if sccode then
sccode = self:substitute_template_specs(sccode)
sc = get_script(sccode)
end
if lang then
lang = lang:getFull()
end
return lang, sc
end
function Category:getTOCTemplateName()
-- This should only be invoked if getTOC() returns true, meaning to do the default algorithm, but getTOC()
-- implements its own default algorithm.
internal_error("This should never get called")
end
local export = {}
function export.main(info)
local self = setmetatable({_info = info}, Category)
self:initCommon()
return self._data and self or nil
end
export.new = Category.new
return export
gxo4owc3d3mxrvau4oifgp70e2xk6b5
Modul:category tree/topic/Culture
828
11524
342795
335858
2026-05-16T11:50:06Z
Hakimi97
2668
342795
Scribunto
text/plain
local labels = {}
labels["budaya"] = {
type = "berkenaan",
description = "default",
parents = {"masyarakat"},
}
labels["A Christmas Carol"] = {
type = "berkenaan",
wikidata = 62879,
displaytitle = "''A Christmas Carol''",
description = "{{{langname}}} terms that are used in the context of the tale ''{{w|A Christmas Carol}}'', by {{w|Charles Dickens}}, such as the names of its characters or author.",
parents = {"cereka British", "Charles Dickens"},
}
labels["A Song of Ice and Fire"] = {
type = "berkenaan",
wikidata = 45875,
displaytitle = "''A Song of Ice and Fire''",
description = "{{{langname}}} terms used in context of the ''{{w|Song of Ice and Fire}}'' novel series and its television adaptation ''{{w|Game of Thrones}}''.",
parents = {"cereka Amerika", "fantasi", "kesusasteraan"},
}
labels["lakonan"] = {
type = "berkenaan",
description = "default",
parents = {"seni"},
}
labels["alternate history"] = {
type = "berkenaan",
description = "default",
parents = {"cereka spekulatif", "history"},
}
labels["cereka Amerika"] = {
type = "berkenaan",
description = "=works of American fiction",
parents = {"cereka", "Amerika Syarikat"},
}
labels["animasi"] = {
type = "berkenaan",
description = "default",
parents = {"media massa"},
}
labels["Arabic fiction"] = {
type = "berkenaan",
description = "=works of [[fiction]] of [[Arabic]] origin",
parents = {"cereka"},
}
labels["dewa Arab"] = {
type = "nama",
description = "default",
parents = {"dewa", "mitologi Arab"},
}
labels["mitologi Arab"] = {
type = "berkenaan",
description = "default",
parents = {"mitologi"},
}
labels["mitologi Armenia"] = {
type = "berkenaan",
description = "default",
parents = {"mitologi", "Armenia"},
}
labels["seni"] = {
type = "berkenaan",
description = "default",
parents = {"budaya"},
}
labels["Arthurian mythology"] = {
type = "berkenaan",
description = "default",
parents = {"mitologi", "United Kingdom"},
}
labels["karya seni"] = {
type = "nama,jenis",
description = "default",
parents = {"seni"},
}
labels["astrobiologi"] = {
type = "berkenaan",
description = "default",
parents = {"astronomi", "biologi", "geologi"},
}
labels["astrologi"] = {
type = "berkenaan",
description = "default",
parents = {"penilikan", "pseudosains", "teori saintifik lapuk"},
}
labels["Asturian mythology"] = {
type = "berkenaan",
description = "default",
parents = {"mitologi", "Asturias, Spain"},
}
labels["Avatar: The Last Airbender"] = {
type = "berkenaan",
wikidata = 11572,
displaytitle = "''Avatar: The Last Airbender''",
description = "{{{langname}}} terms derived from and/or related to the animated television series ''{{w|Avatar: The Last Airbender}}'' and its spin-off ''{{w|The Legend of Korra}}''.",
parents = {"cereka Amerika", "animasi"},
}
labels["Australian Aboriginal mythology"] = {
type = "berkenaan",
description = "default",
parents = {"mitologi", "Australia"},
}
labels["ballet"] = {
type = "berkenaan",
description = "default",
parents = {"tarian"},
}
labels["Barbie"] = {
type = "berkenaan",
wikidata = 167447,
description = "=the {{w|Barbie}} fashion doll produced by Mattel",
parents = {"toys"},
}
labels["Batman"] = {
type = "berkenaan",
wikidata = 2695156,
description = "=the fictional [[superhero]] [[Batman]]",
parents = {"DC Comics", "watak cereka"},
}
labels["bibliography"] = {
type = "berkenaan",
description = "default",
parents = {"buku"},
}
labels["Bilibili"] = {
type = "berkenaan",
wikidata = 3077586,
description = "=the video-sharing website {{w|bilibili}}",
parents = {"media sosial", "World Wide Web"},
}
labels["blogging"] = {
type = "berkenaan",
description = "default",
parents = {"media sosial"},
}
labels["Bluesky"] = {
type = "berkenaan",
wikidata = 78194383,
description = "=the microblogging and social networking service {{w|Bluesky}}",
parents = {"media sosial", "World Wide Web"},
}
labels["body art"] = {
type = "berkenaan",
description = "default",
parents = {"seni", "fesyen"},
}
labels["Bollywood"] = {
type = "berkenaan",
wikidata = 93196,
description = "default",
parents = {"filem", "India"},
}
labels["buku"] = {
type = "berkenaan",
description = "default",
parents = {"media massa", "kesusasteraan"},
}
labels["books of the Poetic Edda"] = {
type = "nama",
displaytitle = "books of the ''Poetic Edda''",
description = "=[[book]]s of the ''[[Poetic Edda]]''",
parents = {"mitologi Norse"},
}
labels["budaya rakyat Brazil"] = {
type = "berkenaan",
description = "default",
parents = {"budaya rakyat", "Brazil"},
}
labels["cereka British"] = {
type = "berkenaan",
description = "=works of [[fiction]] of [[British]] origin",
parents = {"cereka", "United Kingdom"},
}
labels["Buffy the Vampire Slayer"] = {
type = "berkenaan",
wikidata = 183513,
displaytitle = "''Buffy the Vampire Slayer''",
description = "=the television series ''{{w|Buffy the Vampire Slayer}}'' (1997–2003)",
parents = {"cereka Amerika", "televisyen", "vampires"},
}
labels["cereka Kanada"] = {
type = "berkenaan",
description = "=works of [[fiction]] of [[Canada|Canadian]] origin",
parents = {"cereka", "Kanada"},
}
labels["seni khat"] = {
type = "berkenaan",
description = "default",
parents = {"seni", "penulisan"},
}
labels["cartomancy"] = {
type = "berkenaan",
description = "default",
parents = {"penilikan"},
}
labels["castells"] = {
type = "berkenaan",
description = "=[[castell]]s, the Catalan tradition of human tower building",
additional = "See {{w|castells}}.",
parents = {"budaya", "sports"},
}
labels["celestial inhabitants"] = {
type = "jenis",
description = "=inhabitants of known [[celestial body|celestial bodies]]",
parents = {"watak cereka", "cereka sains", "demonyms"},
}
labels["Celtic mythology"] = {
type = "berkenaan",
description = "default",
parents = {"mitologi", "Ireland", "Wales"},
}
labels["watak budaya rakyat"] = {
type = "berkenaan",
description = "default",
parents = {"watak cereka", "budaya rakyat"},
}
labels["cheerleading"] = {
type = "berkenaan",
description = "default",
parents = {"tarian", "gymnastics", "sports"},
}
labels["Church of England"] = {
type = "berkenaan",
description = "default with the",
parents = {"Anglicanism", "England"},
}
labels["cereka China"] = {
type = "berkenaan",
description = "=works of [[fiction]], including [[anime]]s, [[manhua]]s, [[novel]]s, [[series]] and [[video game]]s, whose origin is of [[China]]",
parents = {"cereka", "China"},
}
labels["mitologi Cina"] = {
type = "berkenaan",
description = "default",
parents = {"mitologi", "China"},
}
labels["sinematografi"] = {
type = "berkenaan",
description = "default",
parents = {"filem"},
}
labels["sarkas"] = {
type = "berkenaan",
description = "default no singularize",
parents = {"hiburan", "teater"},
}
labels["komedi"] = {
type = "berkenaan",
description = "default",
parents = {"drama"},
}
labels["komik"] = {
type = "berkenaan",
description = "default no singularize",
parents = {"kesusasteraan"},
}
-- Confucianism: see [[Module:category tree/topic/Philosophy]]
labels["conlanging"] = {
type = "berkenaan",
description = "=[[conlanging]] (the making of [[constructed language]]s)",
parents = {"language", "budaya"},
}
labels["teori konspirasi"] = {
type = "berkenaan,set",
description = "=[[conspiracy theory|conspiracy theories]] and theorists",
parents = {"budaya"},
}
labels["constellations in the zodiac"] = {
type = "nama",
description = "=the ring of [[constellations]] that line the [[ecliptic]], the apparent path of the [[Sun]] across the [[celestial sphere]] over the course of a year",
parents = {"constellations", "astrologi"},
}
labels["kosmetik"] = {
type = "berkenaan",
description = "default",
parents = {"kelengkapan dandanan diri", "fesyen"},
}
labels["cosplay"] = {
type = "berkenaan",
description = "default",
parents = {"fandom"},
}
labels["tarian"] = {
type = "berkenaan",
description = "default",
parents = {"seni", "rekreasi"},
}
labels["dances"] = {
type = "jenis",
description = "default",
parents = {"tarian"},
}
labels["DC Comics"] = {
type = "berkenaan",
wikidata = 2924461,
description = "={{w|DC Comics}}",
parents = {"cereka Amerika", "komik"},
}
labels["demoscene"] = {
type = "berkenaan",
description = "default",
parents = {"budaya", "computing"},
}
labels["reka bentuk"] = {
type = "berkenaan",
description = "default",
parents = {"seni"},
}
labels["dictionaries"] = {
type = "jenis,nama",
description = "default",
parents = {"reference works", "lexicography"},
}
labels["Disney"] = {
type = "berkenaan",
wikidata = 7414,
description = "=the properties of {{w|The Walt Disney Company}}",
additional = "This includes properties acquired jointly with or from other companies.",
parents = {"cereka Amerika", "komik", "filem", "televisyen"},
}
labels["penilikan"] = {
type = "jenis",
description = "default",
parents = {"okultisme"},
}
labels["Doctor Who"] = {
type = "berkenaan",
wikidata = 34316,
displaytitle = "''Doctor Who''",
description = "=the ''{{w|Doctor Who}}'' franchise",
parents = {"cereka British", "cereka sains", "televisyen"},
}
labels["Dracula"] = {
type = "berkenaan",
wikidata = 41542,
displaytitle = "''Dracula''",
description = "=the 1897 gothic horror novel ''{{w|Dracula}}'' by {{w|Bram Stoker}}, and its cultural derivations.",
parents = {"fantasi", "kesusasteraan", "vampires"},
}
labels["naga"] = {
type = "berkenaan,jenis",
description = "default",
parents = {"mythological creatures"},
}
labels["drama"] = {
type = "berkenaan",
description = "default",
parents = {"teater"},
}
labels["dewa Mesir"] = {
type = "nama",
description = "default",
parents = {"dewa", "mitologi Mesir"},
}
labels["mitologi Mesir"] = {
type = "berkenaan",
description = "default",
parents = {"mitologi", "Mesir Purba"},
}
labels["hiburan"] = {
type = "berkenaan",
description = "default",
parents = {"budaya"},
}
labels["erotic literature"] = {
type = "berkenaan",
description = "default",
parents = {"cereka", "genre kesusasteraan", "sex"},
}
labels["mitologi Etruria"] = {
type = "berkenaan",
description = "default",
parents = {"mitologi", "Etruria"},
}
labels["budaya rakyat Eropah"] = {
type = "berkenaan",
description = "default",
parents = {"budaya rakyat", "Eropah"},
}
labels["fairy tale"] = {
type = "berkenaan",
description = "=[[fairy tale]]s",
parents = {"cereka"},
}
labels["fairy tale characters"] = {
type = "nama",
description = "=[[fairy tale]] [[character]]s",
parents = {"watak cereka", "fairy tale"},
}
labels["fairy tales"] = {
type = "nama",
description = "default",
parents = {"fairy tale"},
}
labels["fan fiction"] = {
type = "berkenaan",
description = "default",
parents = {"cereka", "fandom", "kesusasteraan"},
}
labels["fandom"] = {
type = "berkenaan",
description = "{{{langname}}} terms arising from [[fandom]] culture.",
parents = {"budaya"},
}
labels["fantasi"] = {
type = "berkenaan",
description = "=the [[genre]] of [[fantasy]]",
parents = {"cereka", "cereka spekulatif"},
}
labels["fesyen"] = {
type = "berkenaan",
description = "default",
parents = {"budaya", "pakaian"},
}
labels["faster-than-light travel"] = {
type = "berkenaan",
description = "default",
parents = {"travel", "cereka sains", "astrofizik", "kerelatifan"},
}
labels["Fediverse"] = {
type = "berkenaan",
wikidata = 30325419,
description = "=the decentralised social networking services collectively known as the {{w|Fediverse}}",
parents = {"media sosial", "World Wide Web"},
}
labels["cereka"] = {
type = "berkenaan",
description = "=specific works of [[fiction]]",
parents = {"karya seni"},
}
labels["fictional abilities"] = {
type = "berkenaan,jenis",
description = "=fictional [[ability|abilities]] and [[superpower]]s",
parents = {"cereka", "cereka spekulatif"},
}
labels["watak cereka"] = {
type = "nama,jenis",
description = "default",
parents = {"cereka"},
}
labels["fictional locations"] = {
type = "nama,jenis",
description = "default",
parents = {"cereka"},
}
labels["fictional planets"] = {
type = "nama",
description = "default",
parents = {"fictional locations"},
}
labels["fictional universes"] = {
type = "nama,jenis",
description = "default",
parents = {"fictional locations"},
}
labels["filem"] = {
type = "berkenaan",
description = "default",
parents = {"media massa", "hiburan"},
}
labels["F/F ships (fandom)"] = {
type = "nama",
description = "{{{langname}}} names used in [[fandom]] for specific {{l|en|ship|ships|id=fandomnoun}} between two female characters.",
parents = {"LGBTQ", "ships (fandom) by relationship type"},
}
labels["film genres"] = {
type = "jenis,berkenaan",
description = "default",
parents = {"filem", "genre"},
}
labels["industri filem"] = {
type = "nama",
description = "default",
parents = {"filem"},
}
labels["Finnic mythology"] = {
type = "berkenaan",
description = "=the [[mythology]] of the [[Finnic]] peoples",
additional = "This includes (but is not limited to) [[Finnish]] and [[Estonian]] mythology.",
parents = {"mitologi", "Finland", "Estonia"},
}
labels["flamenco"] = {
type = "berkenaan",
description = "default",
parents = {"tarian"},
}
labels["budaya rakyat"] = {
type = "berkenaan",
description = "default",
parents = {"budaya"},
}
labels["furry fandom"] = {
type = "berkenaan",
description = "default",
parents = {"fandom", "subbudaya"},
}
labels["dewa Jermanik"] = {
type = "nama",
description = "default",
parents = {"dewa", "mitologi Jermanik"},
}
labels["mitologi Jermanik"] = {
type = "nama",
description = "=the [[mythology]] of the [[Germanic]] peoples",
parents = {"mitologi"},
}
labels["genre"] = {
type = "jenis,berkenaan",
description = "=[[genre]]s and genre classifications",
parents = {"hiburan"},
wpcat = true,
}
labels["hantu"] = {
type = "berkenaan",
description = "default",
parents = {"afterlife", "alam ghaib", "characters from folklore", "death", "fantasi", "horror", "mythological creatures", "okultisme"},
}
labels["Glee"] = {
type = "berkenaan",
wikidata = 152178,
description = "=siri televisyen, ''[[w:Glee (siri TV)|Glee]]'' (2009–2015)",
parents = {"cereka Amerika", "televisyen"},
}
labels["reka bentuk grafik"] = {
type = "berkenaan",
description = "default",
parents = {"reka bentuk"},
}
labels["dewa Yunani"] = {
type = "nama",
description = "default",
parents = {"dewa", "mitologi Yunani"},
}
labels["mitologi Yunani"] = {
type = "berkenaan",
description = "=[[mitologi]] masyarakat [[Yunani Purba]]",
parents = {"mitologi", "Yunani Purba"},
}
labels["Gulliver's Travels"] = {
type = "berkenaan",
wikidata = 181488,
displaytitle = "''Gulliver's Travels''",
description = "=''[[w:Gulliver's Travels|Gulliver’s Travels]]''",
parents = {"kesusasteraan"},
}
labels["Harry Potter"] = {
type = "berkenaan",
wikidata = 8337,
displaytitle = "''Harry Potter''",
description = "{{{langname}}} terms used in context of the ''{{w|Harry Potter}}'' franchise.",
parents = {"cereka British", "fantasi", "kesusasteraan", "watak cereka"},
}
labels["Hawaiian mythology"] = {
type = "berkenaan",
description = "default",
parents = {"mitologi", "Hawaii, USA"},
}
labels["F/M ships"] = {
type = "nama",
description = "{{{langname}}} names used in [[fandom]] for specific {{l|en|ship|ships|id=fandomnoun}} between female and male characters.",
parents = {"ships (fandom) by relationship type"},
}
labels["dewa Hindu"] = {
type = "nama",
description = "default",
parents = {"dewa", "mitologi Hindu"},
}
labels["mitologi Hindu"] = {
type = "berkenaan",
description = "default",
parents = {"mitologi", "Hinduisme"},
}
labels["Homestuck"] = {
type = "berkenaan",
displaytitle ="''Homestuck''",
wikidata = 2618713,
description = "=the ''{{w|Homestuck}}'' multimedia fiction series",
parents = {"cereka Amerika", "komik"},
}
labels["Hopi culture"] = {
type = "berkenaan",
description = "default",
parents = {"budaya", "United States"},
}
labels["horror"] = {
type = "berkenaan",
description = "=the [[horror]] [[genre]]",
parents = {"kesusasteraan", "cereka spekulatif"},
}
labels["humanities"] = {
type = "berkenaan",
description = "default no singularize",
parents = {"budaya"},
commonscat = true;
}
labels["incestuous ships (fandom)"] = {
type = "nama",
description = "{{{langname}}} names used in [[fandom]] for specific {{l|en|ship|ships|id=fandomnoun}} involving fictional incestuous relationships.",
parents = {"incest", "ships (fandom) by relationship type"},
}
labels["idol fandom"] = {
type = "berkenaan",
description = "default",
parents = {"fandom"},
}
labels["Instagram"] = {
type = "berkenaan",
wikidata = 209330,
description = "=the photo sharing and social networking service [[Instagram]]",
parents = {"photography", "media sosial", "World Wide Web"},
}
labels["Iranian mythology"] = {
type = "berkenaan",
description = "default",
parents = {"mitologi", "Iran"},
}
labels["Irish mythology"] = {
type = "berkenaan",
description = "default",
parents = {"Celtic mythology", "Ireland"},
}
labels["James Bond"] = {
type = "berkenaan",
wikidata = 844,
displaytitle = "''James Bond''",
description = "=the ''[[James Bond]]'' franchise",
parents = {"cereka British", "filem"},
}
labels["dewa Jepun"] = {
type = "nama",
description = "default",
parents = {"dewa", "mitologi Jepun"},
}
labels["cereka Jepun"] = {
type = "berkenaan",
description = "=bahan-bahan [[cereka]] Jepun, termasuk [[anime]], [[manga]], [[novel]], [[siri]] dan [[permainan video]]",
parents = {"cereka", "Jepun"},
}
labels["mitologi Jepun"] = {
type = "berkenaan",
description = "default",
parents = {"mitologi", "Jepun"},
}
labels["job titles in Romance of the Three Kingdoms"] = {
type = "jenis",
displaytitle = "job titles in ''Romance of the Three Kingdoms''",
description = "=job titles in ''{{w|Romance of the Three Kingdoms}}''",
parents = {"Romance of the Three Kingdoms", "titles"},
}
labels["kewartawanan"] = {
type = "berkenaan",
description = "default",
parents = {"penulisan"},
}
labels["Kachinas"] = {
type = "nama",
description = "default",
parents = {"budaya Hopi"},
}
labels["Komi mythology"] = {
type = "berkenaan",
description = "default",
parents = {"mitologi", "Komi, Russia"},
}
labels["cereka Korea"] = {
type = "berkenaan",
description = "=works of [[fiction]], including [[anime]]s, [[manhwa]]s, [[novel]]s, [[series]] and [[video game]]s, whose origin is of [[Korea]]",
parents = {"cereka", "Korea"},
}
labels["mitologi Korea"] = {
type = "berkenaan",
description = "default",
parents = {"mitologi", "Korea"},
}
labels["genre kesusasteraan"] = {
type = "jenis",
description = "{{{langname}}} terms for [[literary]] [[genre]]s.",
parents = {"kesusasteraan", "cereka", "genre"},
}
labels["kesusasteraan"] = {
type = "berkenaan",
description = "default",
parents = {"budaya", "hiburan", "penulisan"},
}
labels["Lost (TV series)"] = {
type = "berkenaan",
wikidata = 23567,
displaytitle = "''Lost'' (TV series)",
description = "=the television series ''{{w|Lost (2004 TV series)|Lost}}'' (2004–2010)",
parents = {"cereka Amerika", "cereka sains", "televisyen"},
}
labels["Lovecraftian horror"] = {
type = "berkenaan",
wikidata = 2448865,
description = "=the [[literature|literary]] works of {{w|H. P. Lovecraft}}",
parents = {"horror", "kesusasteraan", "cereka", "alam ghaib"},
}
labels["magic"] = {
type = "berkenaan",
description = "default",
parents = {"alam ghaib"},
}
labels["magic words"] = {
type = "set",
wikidata = 1135882,
description = "{{{langname}}} magic words; terms that serve the purpose of effectively or apparently triggering a [[magical]] or [[illusionist]] event.",
parents = {"plot devices", "cereka"},
}
labels["genre manga"] = {
type = "jenis",
description = "Istilah [[genre]] [[manga]] dalam bahasa {{{langname}}}.",
parents = {"genre kesusasteraan"},
}
labels["perkahwinan"] = {
type = "berkenaan",
description = "default",
parents = {"budaya", "keluarga"},
}
labels["Marvel Comics"] = {
type = "berkenaan",
wikidata = 173496,
description = "={{w|Marvel Comics}}",
parents = {"cereka Amerika", "komik"},
}
labels["media massa"] = {
type = "berkenaan",
description = "default",
parents = {"media", "budaya"},
}
labels["dewa Meitei"] = {
type = "nama",
description = "default",
parents = {"dewa", "mitologi Meitei"},
}
labels["mitologi Meitei"] = {
type = "berkenaan",
description = "default",
parents = {"mitologi", "Manipur, India"},
}
labels["merpeople"] = {
type = "berkenaan",
description = "default",
parents = {"mythological creatures"},
}
labels["dewa Mesopotamia"] = {
type = "nama",
description = "default",
parents = {"dewa", "mitologi Mesopotamia"},
}
labels["mitologi Mesopotamia"] = {
type = "berkenaan",
description = "=the [[mythology]] of ancient [[Mesopotamia]]",
parents = {"mitologi", "Timur Dekat Purba"},
}
labels["M/M ships (fandom)"] = {
type = "nama",
description = "{{{langname}}} names used in [[fandom]] for specific {{l|en|ship|ships|id=fandomnoun}} between two male characters.",
parents = {"LGBTQ", "ships (fandom) by relationship type"},
}
labels["seni moden"] = {
type = "berkenaan",
description = "default",
parents = {"seni"},
}
labels["Mongolian tribes"] = {
type = "nama",
description = "{{{langname}}} names for Mongolian tribes.",
parents = {"ethnonyms", "Mongolia"},
}
labels["misai"] = {
type = "jenis",
description = "default",
parents = {"muka", "fesyen", "rambut"},
}
labels["My Hero Academia"] = {
type = "berkenaan",
wikidata = 18047903,
displaytitle ="''My Hero Academia''",
description = "=the ''{{w|My Hero Academia}}'' series",
parents = {"cereka Jepun", "animasi", "komik"},
}
labels["My Little Pony"] = {
type = "berkenaan",
wikidata = 1071312,
displaytitle = "''My Little Pony''",
description = "=the ''{{w|My Little Pony}}'' franchise (which includes toys and animated series) and its fandom",
parents = {"cereka Amerika", "animasi", "toys"},
}
labels["mythological creatures"] = {
type = "jenis",
description = "default",
parents = {"mitologi", "fantasi"},
}
labels["mythological figures"] = {
type = "nama",
description = "default",
parents = {"mitologi"},
}
labels["mythological locations"] = {
type = "nama",
description = "default",
parents = {"mitologi"},
}
labels["mythological plants"] = {
type = "jenis,nama",
description = "default",
parents = {"mitologi", "plants"},
}
labels["mitologi"] = {
type = "berkenaan",
description = "default",
parents = {"budaya"},
}
labels["narratology"] = {
type = "berkenaan",
description = "default",
parents = {"kesusasteraan", "drama"},
}
labels["Navajo mythology"] = {
type = "berkenaan",
description = "default",
parents = {"mitologi"},
}
labels["akhbar"] = {
type = "nama",
description = "default",
parents = {"terbitan berkala"},
}
labels["Niconico"] = {
type = "berkenaan",
wikidata = 697233,
description = "=the video-sharing website {{w|Niconico}}",
parents = {"media sosial", "World Wide Web"},
}
labels["dewa Norse"] = {
type = "nama",
description = "default",
parents = {"dewa", "dewa Jermanik", "mitologi Norse"},
}
labels["mitologi Norse"] = {
type = "berkenaan",
description = "default",
parents = {"mitologi", "mitologi Jermanik"},
}
labels["okultisme"] = {
type = "berkenaan",
description = "default with the",
parents = {"alam ghaib", "paranormal"},
}
labels["omegaverse"] = {
type = "berkenaan",
wikidata = 96397374,
description = "=the [[omegaverse]] genre",
parents = {"erotic literature", "fan fiction", "cereka spekulatif"},
}
labels["Omori"] = {
type = "berkenaan",
wikidata = 105618699,
displaytitle ="''Omori''",
description = "=the ''{{w|Omori (video game)|Omori}}'' series",
parents = {"cereka Amerika", "permainan video"},
}
labels["Once Upon a Time"] = {
type = "berkenaan",
wikidata = 23673,
displaytitle = "''Once Upon a Time''",
description = "=the television series ''{{w|Once Upon a Time (TV series)|Once Upon a Time}}'' (2011–2018)",
parents = {"cereka Amerika", "Disney", "televisyen"},
}
labels["lukisan"] = {
type = "berkenaan",
description = "default",
parents = {"seni"},
}
labels["palmistry"] = {
type = "berkenaan",
description = "default",
parents = {"penilikan"},
}
labels["parti"] = {
type = "jenis,berkenaan",
description = "default",
parents = {"hiburan", "budaya"},
}
labels["people in Romance of the Three Kingdoms"] = {
type = "nama",
displaytitle = "people in ''Romance of the Three Kingdoms''",
description = "=people in ''{{w|Romance of the Three Kingdoms}}''",
parents = {"Romance of the Three Kingdoms"},
}
labels["minyak wangi"] = {
type = "jenis,set",
description = "default",
parents = {"fesyen", "scents", "perfumery"},
}
labels["terbitan berkala"] = {
type = "jenis,berkenaan",
description = "default",
parents = {"media massa", "kesusasteraan"},
}
labels["personifications"] = {
type = "nama",
description = "default",
parents = {"narratology"},
}
labels["places in Romance of the Three Kingdoms"] = {
type = "nama",
displaytitle = "places in ''Romance of the Three Kingdoms''",
description = "=places in ''{{w|Romance of the Three Kingdoms}}''",
parents = {"Romance of the Three Kingdoms", "China"},
}
labels["plot devices"] = {
type = "jenis",
description = "default",
parents = {"narratology", "cereka"},
}
labels["puisi"] = {
type = "berkenaan",
description = "default",
parents = {"kesusasteraan", "seni"},
}
labels["polyamorous ships (fandom)"] = {
type = "nama",
description = "{{{langname}}} names used in [[fandom]] for specific {{l|en|ship|ships|id=fandomnoun}} between three or more characters.",
parents = {"ships (fandom) by relationship type"},
}
labels["Private Eye"] = {
type = "berkenaan",
displaytitle = "''Private Eye''",
description = "=the ''{{w|Private Eye}}'' franchise",
parents = {"cereka British"},
}
labels["Reddit"] = {
type = "berkenaan",
wikidata = 2195701,
description = "=the social news aggregation and discussion website {{w|Reddit}}",
parents = {"media sosial", "World Wide Web"},
}
labels["reference works"] = {
type = "jenis",
description = "default",
parents = {"buku"},
}
labels["dewa Rom"] = {
type = "nama",
description = "default",
parents = {"dewa", "mitologi Rom"},
}
labels["mitologi Rom"] = {
type = "berkenaan",
description = "default",
parents = {"mitologi", "Rom Purba"},
}
labels["romance fiction"] = {
type = "berkenaan",
description = "default",
parents = {"genre kesusasteraan", "cinta"},
}
labels["Hikayat Tiga Kerajaan"] = {
type = "berkenaan",
wikidata = 70806,
displaytitle = "''Hikayat Tiga Kerajaan''",
description = "=''{{w|Hikayat Tiga Kerajaan}}''",
parents = {"cereka", "kesusasteraan", "China"},
}
labels["RPF ships (fandom)"] = {
type = "nama",
description = "{{{langname}}} names used in [[fandom]] for specific {{l|en|ship|ships|id=fandomnoun}} involving real people in a fictional relationship.",
additional = "For actual relationships between real people, see [[:Category:Couple nicknames]].",
parents = {"ships (fandom) by relationship type"},
}
labels["cereka sains"] = {
type = "berkenaan",
description = "default",
parents = {"cereka spekulatif", "cereka"},
}
labels["SCP Foundation"] = {
type = "berkenaan",
wikidata = 17439649,
description = "English terms related to the SCP Wiki collaborative writing website and its setting of the {{w|SCP Foundation}}.",
parents = {"fantasi", "cereka", "horror", "cereka sains", "alam ghaib"},
}
labels["arca"] = {
type = "berkenaan",
description = "default",
parents = {"seni"},
}
labels["Shahnameh"] = {
type = "berkenaan",
wikidata = 8279,
displaytitle = "''Shahnameh''",
description = "=''Shahnameh''",
parents = {"cereka", "puisi", "kesusasteraan", "Parsi"},
}
labels["Shahnameh characters"] = {
type = "nama",
description = "=characters in the [[Shahnameh]]",
parents = {"Shahnameh"},
}
labels["shapeshifters"] = {
type = "berkenaan,jenis",
description = "default",
parents = {"mythological creatures", "characters from folklore"},
}
labels["Sherlock Holmes"] = {
type = "berkenaan",
wikidata = 2316684,
description = "=the [[Sherlock Holmes]] stories by {{w|Arthur Conan Doyle}} and adaptations of them",
parents = {"cereka British", "kesusasteraan"},
}
labels["Sherlock (TV series)"] = {
type = "berkenaan",
wikidata = 192837,
displaytitle = "''Sherlock'' (TV series)",
description = "=the television series ''[[w:Sherlock (TV series)|Sherlock]]'' (2010–2017)",
parents = {"Sherlock Holmes", "televisyen"},
}
labels["shipping (fandom)"] = {
type = "berkenaan",
description = "={{l|en|ship|shipping|id=fandomverb}} (i.e., in [[fandom]], supporting a fictional romantic relationship between two characters)",
parents = {"fandom", "romance fiction"},
}
labels["ships (fandom)"] = {
type = "kumpulan",
description = "=names used in [[fandom]] for specific {{l|en|ship|ships|id=fandomnoun}} i.e., a fictional relationship between two fictional characters or real people)",
parents = {"shipping (fandom)"},
}
labels["ships (fandom) by relationship type"] = {
type = "kumpulan",
description = "={{l|en|ship|ship|id=fandomnoun}} names organized by the type of relationship (e.g, [[heterosexual]], [[homosexual]], etc.)",
parents = {"ships (fandom)"},
}
labels["shippers (fandom)"] = {
type = "jenis",
description = "=[[shipper]]s (i.e., people who support a romantic or sexual relationship between characters or real people)",
parents = {"shipping (fandom)"},
}
labels["dewa Slavik"] = {
type = "nama",
description = "default",
parents = {"dewa", "mitologi Slavik"},
}
labels["mitologi Slavik"] = {
type = "berkenaan",
description = "=[[mitologi]] masyarakat [[Slav]]",
parents = {"mitologi"},
}
labels["Smallville (TV series)"] = {
type = "berkenaan",
wikidata = 180228,
displaytitle = "''Smallville'' (TV series)",
description = "=the television series ''{{w|Smallville}}'' (2001–2011)",
parents = {"cereka Amerika", "Superman", "televisyen"},
}
labels["media sosial"] = {
type = "berkenaan",
wikidata = 202833,
description = "default",
parents = {"media massa", "Internet"},
}
labels["South Korean idol fandom"] = {
type = "berkenaan",
wikidata = 39086123,
description = "=[[South Korea|South Korean]] [[idol]] [[fandom]]",
parents = {"idol fandom", "South Korea"},
}
labels["South Park"] = {
type = "berkenaan",
wikidata = 16538,
displaytitle = "''South Park''",
description = "{{{langname}}} terms derived from and/or related to the animated television series ''{{w|South Park}}''.",
parents = {"cereka Amerika", "animasi"},
}
labels["Star Trek"] = {
type = "berkenaan",
wikidata = 1092,
displaytitle = "''Star Trek''",
description = "=the ''{{w|Star Trek}}'' franchise",
parents = {"cereka Amerika", "filem", "cereka sains", "televisyen"},
}
labels["Star Wars"] = {
type = "berkenaan",
wikidata = 462,
displaytitle = "''Star Wars''",
description = "=the ''{{w|Star Wars}}'' franchise",
parents = {"cereka Amerika", "filem", "cereka sains", "Disney"},
}
labels["Steven Universe"] = {
type = "berkenaan",
wikidata = 7615342,
displaytitle = "''Steven Universe''",
description = "=the animated television series ''{{w|Steven Universe}}''",
parents = {"cereka Amerika", "animasi"},
}
labels["stock characters"] = {
type = "jenis",
wikidata = 636497,
description = "default",
parents = {"watak cereka"},
}
labels["cereka spekulatif"] = {
type = "berkenaan",
wikidata = 9326077,
description = "default",
parents = {"cereka", "genre"},
}
labels["spider fighting"] = {
type = "berkenaan",
wikidata = 7577058,
description = "={{w|spider fighting}}",
parents = {"spiders", "human activity"},
}
labels["subbudaya"] = {
type = "berkenaan",
description = "default",
parents = {"budaya"},
}
labels["adiwira"] = {
type = "nama",
wikidata = 188784,
description = "=[[superhero]]es",
parents = {"watak cereka"},
}
labels["Superman"] = {
type = "berkenaan",
wikidata = 79015,
description = "=the fictional [[superhero]] [[Superman]]",
parents = {"DC Comics", "watak cereka"},
}
labels["alam ghaib"] = {
type = "berkenaan",
wikidata = 80837,
description = "default with the",
parents = {"budaya rakyat"},
}
labels["Supernatural (TV series)"] = {
type = "berkenaan",
wikidata = 130585,
displaytitle = "''Supernatural'' (TV series)",
description = "=the television series ''[[w:Supernatural (American TV series)|Supernatural]]'' (2005–2020)",
parents = {"cereka Amerika", "televisyen"},
}
labels["mitologi Tamil"] = {
type = "nama",
description = "default",
additional = "See [[w:Dravidian folk religion|Dravidian religion]] or [[w:Religion in ancient Tamilakam|Tamil region]] for more.",
parents = {"dewa", "dewa Hindu", "mitologi Tamil"},
}
labels["mitologi Tamil"] = {
type = "nama",
description = "default",
additional = "See [[w:Dravidian folk religion|Dravidian religion]] or [[w:Religion in ancient Tamilakam|Tamil region]] for more.",
parents = {"mitologi", "mitologi Hindu", "Tamil Nadu, India"},
}
labels["televisyen"] = {
type = "berkenaan",
wikidata = 289,
description = "default",
parents = {"media massa", "penyiaran"},
}
labels["The Handmaid's Tale"] = {
type = "berkenaan",
wikidata = 25207350,
displaytitle = "''The Handmaid's Tale''",
description = "=the 1985 novel ''{{w|The Handmaid's Tale}}'' by {{w|Margaret Atwood}} and its [[w:The Handmaid's Tale (TV series)|television adaptation]] (2017–)",
parents = {"Canadian fiction", "cereka utopia dan distopia", "kesusasteraan"},
}
labels["The Hunger Games"] = {
type = "berkenaan",
wikidata = 11679,
displaytitle = "''The Hunger Games''",
description = "=''{{w|The Hunger Games}}'' novel series by {{w|Suzanne Collins}} and its film adaptations",
parents = {"cereka Amerika", "cereka sains", "cereka utopia dan distopia", "kesusasteraan"},
}
labels["The Matrix"] = {
type = "berkenaan",
wikidata = 83495,
displaytitle = "''The Matrix''",
description = "=''{{w|The Matrix}}''",
parents = {"cereka Amerika", "cereka sains", "cereka utopia dan distopia"},
}
labels["The Simpsons"] = {
type = "berkenaan",
wikidata = 886,
displaytitle = "''The Simpsons''",
description = "{{{langname}}} terms derived from and/or related to the animated television series ''{{w|The Simpsons}}''.",
parents = {"cereka Amerika", "animasi", "Disney"},
}
labels["The Walking Dead"] = {
type = "berkenaan",
wikidata = 232737,
displaytitle = "''The Walking Dead''",
description = "=the television series ''[[w:The Walking Dead (TV series)|The Walking Dead]]'' (2010–2022) and the comic series from which it was adapted",
parents = {"cereka Amerika", "televisyen", "cereka utopia dan distopia", "zombies"},
}
labels["The Wizard of Oz"] = {
type = "berkenaan",
wikidata = 130295,
displaytitle = "''The Wizard of Oz''",
description = "=the fantasy novel ''{{w|The Wonderful Wizard of Oz}}'', subsequent books or films derived from it, such as the ''[[w:The Wizard of Oz (1939 film)|1939 film]]''.",
parents = {"cereka Amerika", "fantasi", "kesusasteraan"},
}
labels["The X-Files"] = {
type = "berkenaan",
wikidata = 2744,
displaytitle = "''The X-Files''",
description = "=the ''{{w|The X-Files}}'' franchise",
parents = {"cereka Amerika", "cereka sains", "televisyen"},
}
labels["teater"] = {
type = "berkenaan",
description = "default",
parents = {"seni", "hiburan"},
}
labels["Thracian deities"] = {
type = "nama",
description = "default",
parents = {"dewa"},
}
labels["TikTok"] = {
type = "berkenaan",
wikidata = 48938223,
description = "=the video-sharing and social-networking service {{w|TikTok}}",
parents = {"media sosial", "World Wide Web"},
}
labels["mitologi Tupi"] = {
type = "berkenaan",
description = "default",
parents = {"mitologi", "Brazil"},
}
labels["Twilight (novel series)"] = {
type = "berkenaan",
wikidata = 44523,
displaytitle = "''Twilight'' (novel series)",
description = "=the ''[[w:Twilight (series)|Twilight]]'' franchise",
parents = {"cereka Amerika", "fantasi", "kesusasteraan", "vampires"},
}
labels["Twitter"] = {
type = "berkenaan",
wikidata = 918,
description = "=the social networking and microblogging service {{w|Twitter}}",
parents = {"media sosial", "World Wide Web"},
}
labels["Tumblr"] = {
type = "berkenaan",
wikidata = 384060,
description = "=the microblogging and social networking service {{w|Tumblr}}",
parents = {"media sosial", "World Wide Web"},
}
labels["cereka utopia dan distopia"] = {
type = "berkenaan",
description = "default",
parents = {"cereka spekulatif"},
}
labels["vampires"] = {
type = "berkenaan,jenis",
description = "default",
parents = {"mythological creatures", "characters from folklore", "death", "horror", "blood"},
}
labels["vampire lifestyle"] = {
type = "berkenaan",
description = "={{w|vampire lifestyle|the vampire lifestyle}} (i.e., a subculture which roleplays the stereotypical habits of vampires)",
parents = {"subbudaya", "vampires"},
}
labels["Virtual YouTuber"] = {
type = "berkenaan",
wikidata = 55155641,
description = "=[[virtual YouTuber]]s ([[VTuber]]s)",
parents = {"YouTube", "hiburan"},
}
labels["web design"] = {
type = "berkenaan",
description = "default",
parents = {"reka bentuk", "World Wide Web"},
}
labels["werewolves"] = {
type = "berkenaan,jenis",
description = "default",
parents = {"mythological creatures", "characters from folklore", "shapeshifters", "horror"},
}
labels["worldbuilding"] = {
type = "berkenaan",
description = "default",
parents = {"narratology", "cereka spekulatif"},
}
labels["Xena: Warrior Princess"] = {
type = "berkenaan",
wikidata = 38497,
displaytitle = "''Xena: Warrior Princess''",
description = "=the television series ''{{w|Xena: Warrior Princess}}'' (1995–2001)",
parents = {"cereka Amerika", "fantasi", "televisyen"},
}
labels["YouTube"] = {
type = "berkenaan",
wikidata = 866,
description = "=the video-sharing website {{w|YouTube}}",
parents = {"media sosial", "World Wide Web", "Google"},
}
labels["YouTube Poop"] = {
type = "berkenaan",
wikidata = 16927904,
description = "default",
parents = {"YouTube", "Internet memes"},
}
labels["zombi"] = {
type = "berkenaan,jenis",
description = "default",
parents = {"mythological creatures", "characters from folklore", "death", "horror"},
}
return labels
hbha9wm157n52c51meu312qka1umghg
平仮名
0
11685
342790
245969
2026-05-16T11:46:13Z
Hakimi97
2668
342790
wikitext
text/x-wiki
{{wikipedia|Hiragana}}
==Bahasa Jepun==
{{ja-kanjitab|ひら|か|k2=が|な|r=y}}
===Etimologi===
Majmuk bagi {{compound|ja|平|tr1=hira|t1=rata, lembut|仮名|tr2=kana}}, yang menyuarakan untuk -''gana'' kerana [[w:Rendaku|pengakhiran]].
===Sebutan===
{{ja-pron|ひらがな|acc=3|acc2=h|acc3=o|acc_ref=NHK,DJR,SMK5|acc2_ref=NHK|acc3_ref=NHK}}
===Kata nama===
{{ja-noun|ひらがな}}
# skrip suku kata bahasa Jepun
#* {{RQ:Nippo Jisho|242}}
#*: '''Firagana'''. ヒラガナ (平仮名) 日本の文字の一種.
# (perbandingan dengan kanji kompleks) mudah
====Sinonim====
* {{ja-r|女手|おんなで}}
* {{ja-r|女文字|おんなもじ}}
* {{ja-r|草仮名|そうがな}}
===Lihat juga===
* {{ja-r|漢字|かんじ}}
* {{ja-r|片仮名|かたかな}}
* {{ja-r|万葉仮名|まんようがな}}
* {{ja-r|ローマ字|ローマじ}}
===Rujukan===
<references/>
* {{R:Nippo Jisho}}
[[Category:Perkataan asas bahasa Jepun|ひらがな]]
[[Category:ja:Sistem tulisan|ひらがな]]
h06o9fv7dm933rbm241jdcpu3v3ldgp
سبب نيلا ستيتيق، روسق سوسو سبلاڠا
0
11715
341961
239024
2026-05-15T13:56:28Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: === Takrifan ===
==== Peribahasa ==== → ===Peribahasa===, == Bahasa Melayu == → ==Bahasa Melayu== (4 menggunakan [[Project:AWB|AWB]]
341961
wikitext
text/x-wiki
{{Pautan Projek Wikimedia}}
==Bahasa Melayu==
===Peribahasa===
{{head|ms|peribahasa}}
# Kerana yang sedikit, rosak yang banyak.
===Sebutan===
* {{AFA|ms|/sə.bab ni.la sə.ti.tiʔ ro.saʔ su.su sə.bə.la.ŋa/}}
* {{rhymes|ms|ŋa}}
* {{penyempangan|ms|س|بب ني|لا س|تي|تيق، رو|سق سو|سو س|ب|لا|ڠا}}
===Tulisan Rumi===
{{l/ms|sebab nila setitik, rosak susu sebelanga}}
===Tesaurus===
; Sinonim : {{l|ms|ايکن سأيکور روسقکن ايکن ستاجاو|sc=Arab}}, {{l|ms|ايکن سکامبو روسق اوليه ايکن سأيکور|sc=Arab}}, {{l|ms|سبب نيلا ستيتيق، روسق سنتن سبلاڠا|sc=Arab}}.
ehuenm3vvkkwho17hxi4bwccvezavmd
ڤندرما
0
11794
342205
264914
2026-05-15T14:04:44Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: === Takrifan ===
==== Kata nama ==== → ===Kata nama===, == Bahasa Melayu == → ==Bahasa Melayu== (6) menggunakan [[Project:AWB|AWB]]
342205
wikitext
text/x-wiki
{{Pautan Projek Wikimedia}}
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama|jamak|اڠݢوتا دوناسي|penjodoh bilangan|اورڠ}}
# Orang yang menderma.
===Sebutan===
* {{dewan|pen|der|ma}}
* {{AFA|ms|/pən.dər.ma/}}
* {{rhymes|ms|ma|a}}
* {{penyempangan|ms|ڤن|در|ما|sc=Arab}}
===Tulisan Rumi===
{{l/ms|penderma}}
===Tesaurus===
; Sinonim: {{l|ms|دوناتير}}
===Lihat juga===
* {{l|ms|درماون}}
===Pautan luar===
* {{R:PRPM}}
fn3wsrrkrubxaxjv96fyk5xps779vl5
ديستيناسي
0
12222
341929
239105
2026-05-15T13:55:24Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: == Bahasa Melayu == → ==Bahasa Melayu== (3) menggunakan [[Project:AWB|AWB]]
341929
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# [[destinasi]]
===Etimologi===
====Bentuk lain====
* {{l|ms|destinasi}}
====Sebutan====
* {{IPA|ms|[déstinasi]}}
* {{rhymes|ms|nasi|asi|si}}
===Rujukan===
* {{R:BKKM}}
===Pautan luar===
* {{R:PRPM}}
mpvpkpkiv8y4s4sh32ugfbblexd4p05
سلامت مالم
0
12344
341967
190726
2026-05-15T13:56:41Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Frasa==== → ===Frasa=== menggunakan [[Project:AWB|AWB]]
341967
wikitext
text/x-wiki
{{Pautan Projek Wikimedia}}
==Bahasa Melayu==
===Frasa===
{{head|ms|frasa}}
# {{ms-jawi|selamat malam}}
===Pautan luar===
* {{R:PRPM}}
c2lyu10we2wzre49guz5mt6sdwz3vh7
وعليكم السلام
0
12757
342138
239207
2026-05-15T14:02:28Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: === Takrifan ===
====Kata seru==== → ===Kata seru===, == Bahasa Melayu == → ==Bahasa Melayu== (4) menggunakan [[Project:AWB|AWB]]
342138
wikitext
text/x-wiki
{{Pautan Projek Wikimedia}}
==Bahasa Melayu==
===Kata seru===
{{inti|ms|kata seru|ejaan Rumi|waalaikumussalam}}
# Dan selamat sejahtera kepada kamu juga.
===Etimologi===
Daripada {{etyl|ar|ms}} {{term|وعليكم السلام|lang=ar}}.
===Sebutan===
* {{dewan|wa|ʕa|lai|ku|mus|sa|lam}}
* {{AFA|ms|/wa.ʕa.lai.ku.mus.sa.laːm/}}
* {{rhymes|ms|laːm}}
* {{penyempangan|ms|و|ع|لي|كم|الس|لام}}
===Rujukan===
* {{R:BKKM}}
===Pautan luar===
* {{R:PRPM}}
==Bahasa Arab==
===Sebutan===
* {{audio|ar|Ar-وعليكم السلام.oga|Audio}}
===Kata seru===
{{ar-interj|[[على|وَعَلَيْكُمُ]] [[سلام|السَّلَامُ]]|tr=wa-ʿalaykumu s-salāmu}}
# Dan (semoga) ke [[atas]] [[kamu]] [[sejahtera]] {{non-gloss definition|(balasan bagi ucapan {{m|ar|السَّلَامُ عَلَيْكُمْ}})}}.
====Related terms====
* {{l|ar|وَعَلَيْكُمْ|tr=wa-ʿalaykum|gloss=dan ke atas kamu}}
====Keturunan====
* {{desc|hi|वालेकुम अस्सलाम|bor=1}}
====Lihat juga====
* {{l|ar|السَّلَامُ عَلَيْكُمْ}}
[[Kategori:Buku frasa bahasa Arab]]
[[Kategori:Frasa bahasa Arab]]
dya09m8piqblugk8yl28f7aegra0p1h
ڤڤريقساءن
0
12819
342230
264668
2026-05-15T14:05:36Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: === Takrifan ===
====Kata nama==== → ===Kata nama===, == Bahasa Melayu == → ==Bahasa Melayu== (4) menggunakan [[Project:AWB|AWB]]
342230
wikitext
text/x-wiki
{{Pautan Projek Wikimedia}}
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama|head=ڤڤريقسا<sup>ء</sup>ن}}
# [[ujian]] (untuk menentukan [[kebolehan]] atau [[kepandaian]] seseorang).
===Sebutan===
* {{dewan|pe|pe|rik|sa|an}}
* {{AFA|ms|/pə.pə.riʔ.sa.ʔan/}}
* {{rhymes|ms|ʔan|an}}
* {{penyempangan|ms|ڤ|ڤ|ريق|سا|<sup>ء</sup>ن}}
===Tulisan Rumi===
{{l|ms|peperiksaan}}
===Tesaurus===
====Sinonim====
* {{l|ms|ڤريقسا}} {{qualifier|bahasa percakapan}}
===Pautan luar===
* {{R:PRPM}}
edbhutgvp2je694vc799a046grtrrj9
جاوي ترکوروڠ سياڠ
0
13765
341897
239301
2026-05-15T13:54:13Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: === Takrifan ===
==== Peribahasa ==== → ===Peribahasa===, == Bahasa Melayu == → ==Bahasa Melayu== (3 menggunakan [[Project:AWB|AWB]]
341897
wikitext
text/x-wiki
{{Pautan Projek Wikimedia}}
==Bahasa Melayu==
===Peribahasa===
{{head|ms|peribahasa}}
# Orang yang tidak dapat bertindak sesuka hatinya kerana [[terkongkong]] oleh adat; sangat [[gelisah]].
===Etimologi===
Jawi atau lembu biasanya hanya dikurung pada waktu malam dan dibebaskan pada waktu siang.
===Sebutan===
* {{dewan|ja|wi||ter|ku|rung||siang}}
* {{AFA|ms|/d͡ʒa.wi tər.ku.ruŋ siaŋ/}}
* {{rhymes|ms|siaŋ}}
* {{penyempangan|ms|جا|وي||تر|کو|روڠ||سياڠ}}
===Tulisan Rumi===
{{l|ms|jawi terkurung siang}}
jl9hyhidajpv33osg7kzk41trn8nnar
۲
0
14312
342284
239403
2026-05-15T14:07:26Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Tanda baca==== → ===Tanda baca===, == Bahasa Melayu == → ==Bahasa Melayu== menggunakan [[Project:AWB|AWB]]
342284
wikitext
text/x-wiki
==Bahasa Melayu==
===Tanda baca===
{{inti|ms|tanda baca}}
# Tanda kata ganda penuh
#: {{ux|ms|ساتو٢|satu-satu}}
# {{lb|ms|ejaan lama}} Tanda sebarang jenis kata ganda
#: {{ux|ms|لوکيسن٢ڽ|lukisan-lukisannya}}
====Kata bilangan====
{{inti|ms|kata bilangan}}
# {{lb|ms|Brunei}} [[dua]], [[2]].
#: {{ux|ms|٢ جولاي|2 Julai}}
lsguwhhjxa2xcbp3hccbdxk66qw8vrg
Modul:category tree/lang
828
16803
342745
223254
2026-05-16T04:08:43Z
Hakimi97
2668
Mengemas kini mengikut padanan Wikikamus bahasa Inggeris (semakan [[en:Special:Diff/90127888|90127888]])
342745
Scribunto
text/plain
-- This module contains a list of languages with lang-specific modules.
local langs_with_modules = {
["acm"] = true,
["acw"] = true,
["acy"] = true,
["aeb"] = true,
["afb"] = true,
["aii"] = true,
["ajp"] = true,
["akk"] = true,
["akl"] = true,
["ang"] = true,
["apc"] = true,
["apd"] = true,
["ar"] = true,
["arn"] = true,
["ars"] = true,
["ary"] = true,
["arz"] = true,
["ayl"] = true,
["az"] = true,
["bbl"] = true,
["be"] = true,
["bcl"] = true,
["bg"] = true,
["bku"] = true,
["ca"] = true,
["cbk"] = true,
["ce"] = true,
["ceb"] = true,
["cpi"] = true,
["cs"] = true,
["csb"] = true,
["cu"] = true,
["cy"] = true,
["de"] = true,
["egy"] = true,
["el"] = true,
["en"] = true,
["enm"] = true,
["eo"] = true,
["es"] = true,
["et"] = true,
["eu"] = true,
["fa"] = true,
["fax"] = true,
["fi"] = true,
["fr"] = true,
["fro"] = true,
["fy"] = true,
["gl"] = true,
["gmh"] = true,
["goh"] = true,
["got"] = true,
["grk-pro"] = true,
["gmq-osw"] = true,
["gmw-pro"] = true,
["gu"] = true,
["gug"] = true,
["he"] = true,
["hi"] = true,
["hil"] = true,
["hnn"] = true,
["hrx"] = true,
["hsb"] = true,
["hu"] = true,
["id"] = true,
["ilo"] = true,
["inc-apa"] = true,
["inc-ash"] = true,
["ine-bsl-pro"] = true,
["ine-pro"] = true,
["ira-pro"] = true,
["is"] = true,
["it"] = true,
["ja"] = true,
["jbo"] = true,
["jv"] = true,
["ket"] = true,
["klj"] = true,
["kn"] = true,
["kne"] = true,
["ko"] = true,
["krj"] = true,
["ky"] = true,
["la"] = true,
["lo"] = true,
["mdh"] = true,
["mhr"] = true,
["mk"] = true,
["moh"] = true,
["mr"] = true,
["mrw"] = true,
["ms"] = true,
["mt"] = true,
["mul"] = true,
["mvi"] = true,
["mwl"] = true,
["nan-hbl"] = true,
["nb"] = true,
["ne"] = true,
["nl"] = true,
["nn"] = true,
["non"] = true,
["ny"] = true,
["odt"] = true,
["orv"] = true,
["osx"] = true,
["pag"] = true,
["pam"] = true,
["phl"] = true,
["pi"] = true,
["pl"] = true,
["pra"] = true,
["pt"] = true,
["ro"] = true,
["roa-opt"] = true,
["rsk"] = true,
["ru"] = true,
["rue"] = true,
["sa"] = true,
["sc"] = true,
["sd"] = true,
["sei"] = true,
["sga"] = true,
["sh"] = true,
["shn"] = true,
["shu"] = true,
["sk"] = true,
["skr"] = true,
["sw"] = true,
["syc"] = true,
["szl"] = true,
["te"] = true,
["tg"] = true,
["th"] = true,
["tl"] = true,
["tpw"] = true,
["tsg"] = true,
["uk"] = true,
["ulw"] = true,
["ur"] = true,
["vec"] = true,
["vep"] = true,
["vi"] = true,
["war"] = true,
["yrl"] = true,
["zhx"] = true,
["zle-ono"] = true,
["zle-ort"] = true,
["zlw-ocs"] = true,
}
return langs_with_modules
mzoxgt494umbm0vdse25cln2salqsc1
perkahwinan
0
23466
342307
340109
2026-05-15T14:23:13Z
Mirlim
8057
Nak panjang-panjang pergi sunting kat [[:wikipedia:Perkahwinan]] sedara
342307
wikitext
text/x-wiki
==Bahasa Melayu==
{{Wikipedia}}
===Kata nama===
{{ms-kn|j=ڤرکهوينن}}
# Perihal dan perbuatan [[kahwin]]
===Etimologi===
{{apitan|ms|per|kahwin|an}}
===Sebutan===
* {{dewan|per|kah|wi|nan}}
===Pautan luar===
* {{R:PRPM}}
{{C|ms|Perkahwinan}}
hqy9y5v8aayy8oflg3spugbxz44msuo
Modul:ja/data/range
828
34837
342768
179314
2026-05-16T06:00:35Z
Hakimi97
2668
Mengemas kini mengikut padanan Wikikamus bahasa Inggeris (semakan [[en:Special:Diff/86828539|86828539]])
342768
Scribunto
text/plain
local u = require("Module:string utilities").char
local range = {}
range.kanji =
u(0x2E80) .. "-" .. u(0x2FDF) .. -- CJK Unified Ideographs
u(0x4E00) .. "-" .. u(0x9FFF) .. -- CJK Unified Ideographs
u(0x3400) .. "-" .. u(0x4DBF) .. -- CJK Unified Ideographs Extension A
u(0xF900) .. "-" .. u(0xFAFF) .. -- CJK Compatibility Ideographs
u(0x20000) .. "-" .. u(0x2A6DF) .. -- CJK Unified Ideographs Extension B
u(0x2A700) .. "-" .. u(0x2EE5F) .. -- CJK Unified Ideographs Extension C-F & I
u(0x2F800) .. "-" .. u(0x2FA1F) .. -- CJK Compatibility Ideographs Supplement
u(0x30000) .. "-" .. u(0x323AF) .. -- CJK Unified Ideographs Extension C-F & I
u(0x323B0) .. "-" .. u(0x3347F) -- CJK Unified Ideographs Extension J
range.kana_combining_characters =
u(0x3099) .. "-" .. u(0x309C) .. -- Hiragana
u(0xFF9E) .. u(0xFF9F) .. -- Halfwidth and Fullwidth Forms
u(0x0305) .. u(0x0323) -- Combining Diacritical Marks
range.kana_overlap =
range.kana_combining_characters ..
"〰-〵" .. -- CJK Symbols and Punctuation
"ー" -- Katakana
local hiragana_exclusive =
"ぁ-ゖゝゞ" .. -- Hiragana
"𛀁𛀆𛄟" .. -- Kana Supplement + Kana Extended-A
"𛄲𛅐-𛅒" -- Small Kana Extension
range.hiragana = range.kana_overlap .. hiragana_exclusive
local katakana_exclusive =
"ァ-ヺヽヾ" .. -- Katakana
"ㇰ-ㇿ" .. -- Katakana Phonetic Extensions
u(0xFF66) .. "-" .. u(0xFF9D) .. -- Halfwidth and Fullwidth Forms
"𚿰-𚿾" .. -- Kana Extended-B
"𛀀𛄠-𛄢" .. -- Kana Supplement + Kana Extended-A
"𛅕𛅤-𛅧" -- Small Kana Extension
range.katakana = range.kana_overlap .. katakana_exclusive
range.hentaigana =
"𛀂-𛀅𛀇-𛄞" -- Kana Supplement + Kana Extended-A
range.kana = range.kana_overlap .. hiragana_exclusive .. katakana_exclusive .. range.hentaigana
-- Note: not other sutegana like っ, as they aren't submoraic.
range.submoraic_kana =
"ぁぃぅぇぉゃゅょゎ" .. -- Hiragana
"ァィゥェォャュョヮ" .. -- Katakana
"ァ-ョ" .. -- Halfwidth and Fullwidth Forms
"𛅐𛅑𛅒𛅤𛅥𛅦" -- Small Kana Extension
range.vowels = {
a = "ぁあかがさざただなはばぱまゃやらゎわァアカガサザタダナハバパマャヤラヮワヷ",
i = "ぃいきぎしじちぢにひびぴみ𛀆り𛅐ゐィイキギシジチヂニヒビピミ𛄠リ𛅤ヰヸ",
u = "ぅうゔくぐすずつづぬふぶぷむゅゆる𛄟ゥウヴクグスズツヅヌフブプムュユル𛄢",
e = "ぇえけげせぜてでねへべぺめ𛀁れ𛅑ゑェエ𛀀ケゲセゼテデネヘベペメ𛄡レ𛅥ヱヹ",
o = "ぉおこごそぞとどのほぼぽもょよろ𛅒をォオコゴソゾトドノホボポモョヨロ𛅦ヲヺ",
n = "んン"
}
range.ideograph =
"〃々-〇〱-〵〻〼" .. -- CJK Symbols and Punctuation
"㈠-㉟㊀-㋿" .. -- Enclosed CJK Letters and Months
"㍘-㏿" .. -- CJK Compatibility
"🈂-" -- Enclosed Ideographic Supplement
range.kana_graph =
"ゟヿ" .. -- Hiragana + Katakana
"㌀-㍗" .. -- CJK Compatibility
"🈀🈁" -- Enclosed Ideographic Supplement
range.punctuation =
" -。〈-】〔-〟〽" .. -- CJK Symbols and Punctuation
"゠・" .. -- Katakana
"!-/:-@[-`{-・¢-○" -- Halfwidth and Fullwidth Forms
range.latin = require("Module:scripts").getByCode("Latn"):getCharacters()
range.numbers =
"0-9" .. -- Basic Latin
"0-9" -- Halfwidth and Fullwidth Forms
return range
0akj99anu5qmk1fqilaviguuvbb3wyu
سلامت هاري راي
0
48064
341968
165916
2026-05-15T13:56:43Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Frasa==== → ===Frasa=== menggunakan [[Project:AWB|AWB]]
341968
wikitext
text/x-wiki
==Bahasa Melayu==
===Frasa===
{{head|ms|frasa}}
# {{ms-jawi|selamat hari raya}}
===Bacaan lanjut===
* {{R:PRPM}}
edj4hr5o47pqxr5nr9o1mcx82vt0gcj
ساي
0
48142
341960
166043
2026-05-15T13:56:26Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata ganti nama==== → ===Kata ganti nama=== menggunakan [[Project:AWB|AWB]]
341960
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata ganti nama===
{{head|ms|kata ganti nama}}
# {{ms-jawi|saya}}
===Bacaan lanjut===
* {{R:PRPM}}
al9qgjlhawn1t9ls6opp8cidpakti2n
يا
0
48230
342140
166149
2026-05-15T14:02:32Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata seru==== → ===Kata seru=== menggunakan [[Project:AWB|AWB]]
342140
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata seru===
{{head|ms|kata seru}}
# {{ms-jawi|ya}}
===Bacaan lanjut===
* {{R:PRPM}}
8ukfag30ly2wch0awolnnni1xjsop14
سموا
0
48323
341976
166246
2026-05-15T13:56:58Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: === Takrifan ===
==== Adverba ==== → ===Adverba===, == Bahasa Melayu == → ==Bahasa Melayu== menggunakan [[Project:AWB|AWB]]
341976
wikitext
text/x-wiki
==Bahasa Melayu==
===Adverba===
{{head|ms|adverba}}
# {{ms-jawi|semua}}
===Bacaan lanjut===
* {{R:PRPM}}
8yela95zi7ehixy542wl23pqkiia435
ليݢت
0
48374
342031
166366
2026-05-15T13:58:50Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342031
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{ms-ks|r=ligat}}
# {{lb|ms|Batu Bara}} [[cepat]]
# [[aktif]] beraktiviti
# [[rancak]]
====Kata keterangan====
{{inti|ms|kata keterangan}}
# dengan [[laju]]
===Etimologi===
Daripada (Barat) {{inh|ms|poz-pro|*liget}}.
===Sebutan===
* {{AFA|ms|/li.ɡat/}}
* {{rima|ms|at}}
* {{penyempangan|ms|لي|ݢت}}
===Kata terbitan===
* {{l|ms|دڤرليݢت}}
* {{l|ms|کليݢتن}}
* {{l|ms|مليݢت}}
* {{l|ms|ممڤرليݢت}}
* {{l|ms|ڤرليݢت}}
* {{l|ms|سليݢت}}
===Rujukan===
* {{R:KDP|2=1322}}
===Bacaan lanjut===
* {{R:PRPM}}
fne4mtd8869z23748ta8d5qq0a3mxe1
دوا
0
48671
341926
166859
2026-05-15T13:55:18Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata bilangan==== → ===Kata bilangan=== menggunakan [[Project:AWB|AWB]]
341926
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata bilangan===
{{head|ms|kata bilangan}}
# {{ms-jawi|dua}}
===Bacaan lanjut===
* {{R:PRPM}}
9i73umtrz9j3cih5cwz3aw6ejn4e8jc
ساتو
0
48672
341954
166860
2026-05-15T13:56:16Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata bilangan==== → ===Kata bilangan=== menggunakan [[Project:AWB|AWB]]
341954
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata bilangan===
{{head|ms|kata bilangan}}
# {{ms-jawi|satu}}
===Bacaan lanjut===
* {{R:PRPM}}
ja2qy24r1s1r7mhurf5rg6s2y3v6a4m
تيݢ
0
48673
341890
166861
2026-05-15T13:54:01Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata bilangan==== → ===Kata bilangan=== menggunakan [[Project:AWB|AWB]]
341890
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata bilangan===
{{head|ms|kata bilangan}}
# {{ms-jawi|tiga}}
===Bacaan lanjut===
* {{R:PRPM}}
80g7fnlgmunfzfrxkmh8jljihb2j9gg
ليم
0
48675
342030
166863
2026-05-15T13:58:47Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata bilangan==== → ===Kata bilangan=== menggunakan [[Project:AWB|AWB]]
342030
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata bilangan===
{{head|ms|kata bilangan}}
# {{ms-jawi|lima}}
===Bacaan lanjut===
* {{R:PRPM}}
pmjb0w60txc8b7iwyg9l2e5g4m2cigd
لاڤن
0
48678
342014
166866
2026-05-15T13:58:14Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata bilangan==== → ===Kata bilangan=== menggunakan [[Project:AWB|AWB]]
342014
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata bilangan===
{{head|ms|kata bilangan}}
# {{ms-jawi|lapan}}
===Bacaan lanjut===
* {{R:PRPM}}
8re2o3txgghjmiu8b5tfavxtvkj4h6o
سمبيلن
0
48679
341974
166867
2026-05-15T13:56:56Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata bilangan==== → ===Kata bilangan=== menggunakan [[Project:AWB|AWB]]
341974
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata bilangan===
{{head|ms|kata bilangan}}
# {{ms-jawi|sembilan}}
===Bacaan lanjut===
* {{R:PRPM}}
g8nnkhgzcu9lznf04dxhwxnai0ynv63
ڤولوه
0
48680
342210
166868
2026-05-15T14:04:55Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata bilangan==== → ===Kata bilangan=== menggunakan [[Project:AWB|AWB]]
342210
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata bilangan===
{{head|ms|kata bilangan}}
# {{ms-jawi|puluh}}
===Bacaan lanjut===
* {{R:PRPM}}
li029kz348173ztc4vje006mnjykw9m
راتوس
0
48681
341937
166869
2026-05-15T13:55:41Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata bilangan==== → ===Kata bilangan=== menggunakan [[Project:AWB|AWB]]
341937
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata bilangan===
{{head|ms|kata bilangan}}
# {{ms-jawi|ratus}}
===Bacaan lanjut===
* {{R:PRPM}}
gmw93f4l7m3bul2207e5i6ykpmrcokr
ريبو
0
48682
341947
166870
2026-05-15T13:56:02Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata bilangan==== → ===Kata bilangan=== menggunakan [[Project:AWB|AWB]]
341947
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata bilangan===
{{head|ms|kata bilangan}}
# {{ms-jawi|ribu}}
===Bacaan lanjut===
* {{R:PRPM}}
c4yv4y705oqvcemyf0tcynxha0v7291
جوتا
0
48683
341900
166871
2026-05-15T13:54:19Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata bilangan==== → ===Kata bilangan=== menggunakan [[Project:AWB|AWB]]
341900
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata bilangan===
{{head|ms|kata bilangan}}
# {{ms-jawi|juta}}
===Bacaan lanjut===
* {{R:PRPM}}
b53jj6u2y6sh9a8wre77hvfrdh8ayk8
يڠ
0
49399
342141
167841
2026-05-15T14:02:34Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata hubung==== → ===Kata hubung=== menggunakan [[Project:AWB|AWB]]
342141
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata hubung===
{{head|ms|kata hubung}}
# {{ms-jawi|yang}}
===Bacaan lanjut===
* {{R:PRPM}}
nhue6r1brgzr1q0f9x3e6edfggpjklo
سان
0
49539
341958
168045
2026-05-15T13:56:22Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata ganti nama==== → ===Kata ganti nama=== menggunakan [[Project:AWB|AWB]]
341958
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata ganti nama===
{{head|ms|kata ganti nama}}
# {{ms-jawi|sana}}
===Bacaan lanjut===
* {{R:PRPM}}
mlfku1wazyfd6wmpijsrgur4d7h4grf
تْرَے
0
53733
341891
175322
2026-05-15T13:54:03Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata bilangan==== → ===Kata bilangan=== menggunakan [[Project:AWB|AWB]]
341891
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata bilangan===
{{inti|ms|kata bilangan}}
# tiga
gmty8yhf159o0x0hqnfdg4trqquymhj
لمبب
0
55817
342019
210058
2026-05-15T13:58:24Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342019
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|lembab}}
d9lmbv0d5sehkxcwvz6juewm3wwtsxi
Modul:category tree/fam/jpx
828
55921
342746
281369
2026-05-16T04:09:00Z
Hakimi97
2668
Hakimi97 telah memindahkan laman [[Modul:category tree/lang/jpx]] ke [[Modul:category tree/fam/jpx]]
281369
Scribunto
text/plain
local labels = {}
local handlers = {}
local m_str_utils = require("Module:string utilities")
local concat = table.concat
local full_link = require("Module:links").full_link
local insert = table.insert
local Hani_sort = require("Module:Hani-sortkey").makeSortKey
local match = m_str_utils.match
local sort = table.sort
local tag_text = require("Module:script_utilities").tag_text
local ucfirst = m_str_utils.ucfirst
local Hira = require("Module:scripts").getByCode("Hira")
local Jpan = require("Module:scripts").getByCode("Jpan")
local kana_to_romaji = require("Module:Hrkt-translit").tr
local m_numeric = require("Module:ConvertNumeric")
local kana_capture = "([-" .. require("Module:ja/data/range").kana .. "・]+)"
local yomi_data = require("Module:kanjitab/data")
labels["adnominals"] = {
description = "{{{langname}}} adnominals, or {{ja-r|連%体%詞|れん%たい%し}}, which modify nouns, and do not conjugate or [[predicate#Verb|predicate]].",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Hiragana"] = {
description = "{{{langname}}} terms with hiragana {{mdash}} {{ja-r|平%仮%名|ひら%が%な}} {{mdash}} forms, sorted by conventional hiragana sequence. The hiragana form is a [[phonetic]] representation of that word. " ..
"Wiktionary represents {{{langname}}}-language segments in three ways: in normal form (with [[kanji]], if appropriate), in [[hiragana]] " ..
"form (this differs from kanji form only when the segment contains kanji), and in [[romaji]] form.",
additional = "''Lihat juga'' [[:Kategori:Katakana bahasa {{{langname}}}]]",
toc_template = "categoryTOC-hiragana",
parents = {
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Hiragana",
}
}
labels["historical hiragana"] = {
description = "{{{langname}}} historical [[hiragana]].",
additional = "''See also'' [[:Category:{{{langname}}} historical katakana]].",
toc_template = "categoryTOC-hiragana",
parents = {
"Hiragana",
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Hiragana",
}
}
labels["Katakana"] = {
description = "{{{langname}}} terms with katakana {{mdash}} {{ja-r|片%仮%名|かた%か%な}} {{mdash}} forms, sorted by conventional katakana sequence. Katakana is used primarily for transliterations of foreign words, including old Chinese hanzi not used in [[shinjitai]].",
additional = "''Lihat juga'' [[:Kategori:Hiragana bahasa {{{langname}}}]]",
toc_template = "categoryTOC-katakana",
parents = {
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Katakana",
}
}
labels["historical katakana"] = {
description = "{{{langname}}} historical [[katakana]].",
additional = "''See also'' [[:Category:{{{langname}}} historical hiragana]].",
toc_template = "categoryTOC-katakana",
parents = {
"Katakana",
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Katakana",
}
}
labels["Perkataan dieja dengan kana campuran"] = {
description = "{{{langname}}} terms which combine [[hiragana]] and [[katakana]] characters, potentially with [[kanji]] too.",
parents = {
{name = "{{{langcat}}}", raw = true},
"Hiragana",
"Katakana",
},
}
labels["Kanji"] = {
topright = "{{wp|Kanji}}",
description = "Simbol bahasa {{{langname}}} yang merupakan sebahagian daripada tulisan logogram Han, yang boleh mewakili bunyi atau menyampaikan makna secara langsung.",
toc_template = "Hani-categoryTOC",
umbrella = "Aksara Han",
parents = "Logogram",
}
labels["Kanji mengikut bacaan"] = {
description = "Kanji bahasa {{{langname}}} yang dikategorikan mengikut bacaan.",
parents = {{name = "Kanji", sort = "bacaan"}},
}
labels["Makurakotoba"] = {
topright = "{{wp|Makurakotoba}}",
description = "{{{langname}}} idioms used in poetry to introduce specific words.",
parents = {"Peribahasa"},
}
labels["Perkataan mengikut bacaan kanji"] = {
description = "Kategori bahasa {{{langname}}} yang dikumpulkan berdasarkan bacaan kanji yang dieja dengannya.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan mengikut pola bacaan"] = {
description = "Kategori bahasa {{{langname}}} dengan perkataan yang dikumpulkan berdasarkan corak bacaannya.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan mengikut bilangan aksara kanji"] = {
description = "Perkataan bahasa {{{langname}}} dikategorikan mengikut bilangan aksara kanji.",
parents = {"Perkataan mengikut sifat ortografi"},
}
local function handle_onyomi_list(category, category_type, cat_yomi_type)
local onyomi, seen = {}, {}
for _, yomi in pairs(yomi_data) do
if not seen[yomi] and yomi.onyomi then
local yomi_catname = yomi[category_type]
if yomi_catname ~= false then
local yomi_type = yomi.type
if yomi_type ~= "on'yomi" and yomi_type ~= cat_yomi_type then
insert(onyomi, "[[:Kategori:" .. category:gsub("{{{yomi_catname}}}", yomi_catname) .. " bahasa {{{langname}}}]]")
end
end
end
seen[yomi] = true
end
sort(onyomi)
return onyomi
end
local function add_yomi_category(category, category_type, parent, description)
for _, yomi in pairs(yomi_data) do
local yomi_catname = yomi[category_type]
if yomi_catname ~= false then
local yomi_type = yomi.type
local yomi_desc = yomi.link or yomi_catname
if yomi.description then
yomi_desc = yomi_desc .. "; " .. yomi.description
end
local label = {
description = description .. " " .. yomi_desc .. ".",
breadcrumb = yomi_type,
parents = {{name = parent, sort = yomi_catname}},
}
if yomi.onyomi then
local onyomi = handle_onyomi_list(category, category_type, yomi_type)
label.additional = "Kategori untuk perkataan dengan " ..
(yomi_type == "on'yomi" and "pelbagai lagi" or "lain-lain") ..
" jenis spesifik bacaan on'yomi boleh ditemukan pada kategori berikut:\n* " .. concat(onyomi, "\n* ")
if yomi_type ~= "on'yomi" then
insert(label.parents, 1, {
name = (category:gsub("{{{yomi_catname}}}", yomi_data.on[category_type])),
sort = yomi_catname
})
end
end
labels[category:gsub("{{{yomi_catname}}}", yomi_catname)] = label
end
end
end
add_yomi_category(
"Perkataan dengan bacaan {{{yomi_catname}}}",
"reading_category",
"Perkataan mengikut pola bacaan",
"Perkataan bahasa {{{langname}}} dengan bacaan"
)
add_yomi_category(
"Perkataan dieja dengan kanji dengan bacaan {{{yomi_catname}}}",
"kanji_category",
"Perkataan mengikut jenis bacaan kanji",
"Kategori bahasa {{{langname}}} dengan perkataan yang dieja dengan satu atau lebih banyak aksara kanji dengan bacaan"
)
labels["Perkataan kehilangan yomi"] = {
description = "Perkataan bahasa {{{langname}}} yang kehilangan satu atau lebih [[Lampiran:Glosari bahasa Jepun#yomi|yomi]] dalam {{tl|{{{langcode}}}-kanjitab}}.",
hidden = true,
can_be_empty = true,
parents = {"Penyelenggaraan entri"},
}
labels["terms with IPA pronunciation with pitch accent"] = {
description = "{{{langname}}} terms with pronunciations that have {{w|Japanese pitch accent|pitch accent}} specified.",
additional = "Pitch accent can be specified in {{tl|{{{langcode}}}-pron}} with the {{code|=acc=}} parameter.",
can_be_empty = true,
parents = {"Penyelenggaraan entri", "pitch accent"},
}
labels["terms with IPA pronunciation missing pitch accent"] = {
description = "{{{langname}}} terms with pronunciations that do not have a {{w|Japanese pitch accent|pitch accent}} specified.",
additional = "Pitch accent can be specified in {{tl|{{{langcode}}}-pron}} with the {{code|=acc=}} parameter.",
hidden = true,
can_be_empty = true,
parents = {"Penyelenggaraan entri"},
}
labels["pitch accent"] = {
description = "{{{langname}}} terms regarding {{w|Japanese pitch accent|pitch accent}} pronunciation.",
can_be_empty = true,
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["terms with Heiban pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[平板型|Heiban]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Atamadaka pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[頭高型|Atamadaka]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Nakadaka pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[中高型|Nakadaka]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Odaka pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[尾高型|Odaka]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["pitch accent deaccenting before の"] = {
description = "{{{langname}}} terms with {{w|Japanese pitch accent|pitch accent}} pronunciations that have exceptional deaccenting or lack thereof before の ({{ja-deaccenting-before-no}}).",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Odaka pitch accent not deaccented before の (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[尾高型|Odaka]] {{w|Japanese pitch accent|pitch accent}} and do not become deaccented before の ({{ja-deaccenting-before-no}}).",
can_be_empty = true,
parents = {"pitch accent deaccenting before の"}
}
labels["terms with Nakadaka pitch accent deaccented before の (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[中高型|Nakadaka]] {{w|Japanese pitch accent|pitch accent}} and become deaccented before の ({{ja-deaccenting-before-no}}).",
can_be_empty = true,
parents = {"pitch accent deaccenting before の"}
}
labels["Perkataan mengikut jenis bacaan kanji"] = {
description = "{{{langname}}} categories with terms grouped with regard to the types of readings of the kanji with which " ..
"they are spelled; broadly, those of Chinese origin, {{ja-r|音|おん}} readings, and those of non-Chinese origin, {{ja-r|訓|くん}} readings.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan dieja dengan ateji"] = {
topright = "{{wp|Ateji}}",
description = "{{{langname}}} terms containing one or more [[Appendix:Japanese glossary#ateji|ateji]] {{mdash}} {{ja-r|当て字|あてじ}} {{mdash}} which are [[kanji]] used to represent sounds rather than meanings (though meaning may have some influence on which kanji are chosen).",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan dieja dengan daiyōji"] = {
description = "Japanese terms spelled using [[Appendix:Japanese glossary#daiyouji|daiyōji]], categorized using {{temp|ja-daiyouji}}.",
parents = {"Perkataan mengikut etimologi"},
}
labels["Perkataan dieja dengan jukujikun"] = {
description = "{{{langname}}} terms containing one or more [[Appendix:Japanese glossary#jukujikun|jukujikun]] {{mdash}} {{ja-r|熟%字%訓|じゅく%じ%くん}} {{mdash}} which are [[kanji]] used to represent meanings rather than sounds.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
local function add_grade_categories(grade, desc, wp, only_one, parent, sort)
local grade_kanji = "Kanji " .. grade
local topright = wp and ("{{wp|%s}}"):format(ucfirst(grade_kanji)) or nil
labels[grade_kanji] = {
topright = topright,
description = "Kanji bahasa {{{langname}}} " .. desc,
toc_template = "Hani-categoryTOC",
parents = {{
name = parent and ("Kanji " .. parent) or "Kanji",
sort = sort or grade
}},
}
labels["Perkataan dieja dengan " .. grade_kanji:lower()] = {
topright = topright,
description = "Perkataan bahasa {{{langname}}} yang dieja dengan " .. (only_one and "sekurang-kurangnya satu " or "") .. " aksara kanji " .. desc,
parents = {{
name = parent and ("Perkataan dieja dengan kanji " .. parent) or "Perkataan mengikut sifat ortografi",
sort = sort or grade
}},
}
end
for i = 1, 6 do
local ord = m_numeric.ones_position_ord[i]
add_grade_categories(
"gred " .. ord,
"diajar dalam gred " .. ord .. " sekolah rendah, seperti yang ditetapkan oleh senarai rasmi {{ja-r|教%育 漢%字|きょう%いく かん%じ|sukatan pendidikan kanji}}.",
false,
false,
"kyōiku",
i
)
end
add_grade_categories(
"kyōiku",
"pada senarai rasmi {{ja-r|教%育 漢%字|きょう%いく かん%じ|sukatan pendidikan kanji}}.",
true,
false,
"jōyō"
)
add_grade_categories(
"sekolah menengah",
"pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}} yang secara umumnya diajar pada peringkat sekolah menengah.",
false,
false,
"jōyō"
)
add_grade_categories(
"jōyō",
"pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}}.",
true,
false
)
add_grade_categories(
"tōyō",
"pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}}, yang digunakan pada sekitar tahun 1946{{ndash}}1981 sehingga penerbitan senarai {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}}.",
true,
false
)
add_grade_categories(
"jinmeiyō",
"pada senarai rasmi {{ja-r|人%名%用 漢%字|じん%めい%-よう かん%じ|kanji untuk kegunaan nama peribadi}}.",
true,
true
)
add_grade_categories(
"hyōgai",
"tidak termasuk pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara kegunaan kerap}} atau {{ja-r|人%名%用 漢%字|じん%めい%-よう かん%じ|kanji untuk kegunaan nama peribadi}}, yang dikenali sebagai {{ja-r|表%外 漢%字|ひょう%がい かん%じ}} atau {{ja-r|表%外%字|ひょう%がい%じ|aksara tidak tersenarai}}.",
true,
true
)
labels["Perkataan dengan berbilang bacaan"] = {
description = "Perkataan bahasa {{{langname}}} dengan berbilang cara sebutan (maka juga sama dengan berbilang ejaan [[kana]]).",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Bacaan kanji mengikut bilangan mora"] = {
description = "Kategori-kategori bahasa {{{langname}}} dikumpulkan berdasarkan bilangan mora dalam bacaan kanji.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan kanji tunggal"] = {
description = "Perkataan {{{langname}}} yang ditulis dengan kanji tunggal.",
parents = {
"Perkataan mengikut sifat ortografi",
{name = "Perkataan dengan 1 aksara kanji", sort = " "},
},
}
labels["kanji with kun readings missing okurigana designation"] = {
breadcrumb = "Kanji missing okurigana designation",
description = "{{{langname}}} kanji entries in which one or more kun readings entered into {{tl|{{{langcode}}}-readings}} is missing a hyphen denoting okurigana.",
toc_template = "Hani-categoryTOC",
hidden = true,
can_be_empty = true,
parents = {"Penyelenggaraan entri"},
}
labels["Perkataan mengikut aksara individu dalam ejaan sejarah"] = {
breadcrumb = "Bersejarah",
description = "{{{langname}}} terms categorized by whether their spellings in the {{w|historical kana orthography}} included certain individual characters.",
parents = {{name = "Perkataan mengikut aksara individu", sort = " "}},
}
labels["Kata kerja tanpa ketransitifan"] = {
description = "{{{langname}}} verbs missing the {{code|=tr=}} parameter from their headword templates.",
hidden = true,
can_be_empty = true,
parents = {"Penyelenggaraan entri"},
}
labels["Yojijukugo"] = {
topright = "{{wp|Yojijukugo}}",
description = "{{{langname}}} four-[[kanji]] compound terms, {{ja-r|四%字 熟%語|よ%じ じゅく%ご}}, with idiomatic meanings; typically derived from Classical Chinese, Buddhist scripture or traditional Japanese proverbs.",
additional = "Compare Chinese {{w|chengyu}} and Korean {{w|sajaseong-eo}}.",
umbrella = "four-character idioms",
parents = {"Peribahasa"},
}
-- FIXME: Only works for 0 through 19.
local word_to_number = {}
for k, v in pairs(m_numeric.ones_position) do
word_to_number[v] = k
end
local periods = {
lama = true,
kuno = true,
}
local function get_period_text_and_reading_type_link(period, reading_type)
if period and not periods[period] then
return nil
end
local period_text = period and " " .. period or nil
-- Allow periods (historical or ancient) by themselves; they will parse as reading types.
if not period and periods[reading_type] then
return nil, reading_type
end
local reading_type_link = "[[Lampiran:Glosari bahasa Jepun#" .. reading_type .. "|" .. reading_type .. "]]"
return period_text, reading_type_link
end
local function get_sc(str)
return match(str:gsub("[%s%p]+", ""), "[^" .. Hira:getCharacters() .. "]") and Jpan or Hira
end
local function get_tagged_reading(reading, lang)
return tag_text(reading, lang, get_sc(reading))
end
local function get_reading_link(reading, lang, period, link)
local hist = periods[period]
reading = reading:gsub("[%.%-%s]+", "")
return full_link({
lang = lang,
sc = get_sc(reading),
term = link or reading:gsub("・", ""),
-- If we have okurigana, demarcate furigana.
alt = reading:gsub("^(.-)・", "<span style=\"border-top:1px solid;position:relative;padding:1px;\">%1<span style=\"position:absolute;top:0;bottom:67%%;right:0%%;border-right:1px solid;\"></span></span>"),
tr = kana_to_romaji((reading:gsub("・", ".")), lang:getCode(), nil, {keep_dot = true, hist = hist})
:gsub("^(.-)%.", "<u>%1</u>"),
pos = reading:find("・", 1, true) and get_tagged_reading((reading:gsub("^.-・", "~")), lang) or nil
}, "term")
end
local function is_on_subtype(reading_type)
return reading_type:find(".on$")
end
insert(handlers, function(data)
local n =data.label:match("^Perkataan dengan ([1-9]%d*) aksara kanji$")
if not n then
return
end
local sortkey = require("Module:category tree").numeral_sortkey(n, 2097152)
return {
breadcrumb = n,
description = ("Perkataan bahasa {{{langname}}} yang mengandungi tepat %d aksara kanji."):format(n),
-- TODO: implement this using the same mechanism used to implement parents (i.e. avoiding the need for raw categories).
-- umbrella = {
-- breadcrumb = ("%d kanji"):format(n),
-- parents = {{name = "terms by number of kanji subcategories by language", sort = sortkey}},
-- },
parents = {{name = ("Perkataan mengikut bilangan aksara kanji"), sort = sortkey}}
}
end)
insert(handlers, function(data)
local label_pref, kana = data.label:match("^(Perkataan yang mengikut sejarah dieja dengan )" .. kana_capture .. "$")
if not kana then
return
end
local lang = data.lang
return {
description = "Perkataan bahasa {{{langname}}} yang dieja dengan " .. get_reading_link(kana, lang, "bersejarah") .. " dalam {{w|ortografi kana sejarawi}}.",
displaytitle = label_pref .. get_tagged_reading(kana, lang) .. " bahasa {{{langname}}}",
breadcrumb = "sejarah",
parents = {
{name = "Perkataan dieja dengan " .. kana, sort = " "},
{name = "Perkataan mengikut aksara individu dalam ejaan sejarah", sort = lang:makeSortKey(kana)}
},
}
end)
insert(handlers, function(data)
local count, plural = data.label:match("^Bacaan kanji dengan (.+) mora$")
local num = word_to_number[count]
if not num then
return nil
end
return {
description = "Bacaan kanji bahasa {{{langname}}} yang mengandungi " .. count .. " mora.",
breadcrumb = num,
parents = {{name = "Bacaan kanji mengikut bilangan mora", sort = num}},
}
end)
insert(handlers, function(data)
local label_pref, period, reading_type, reading = match(data.label, "^(Kanji dengan bacaan ([a-z]-) ?([%a']+) )" .. kana_capture .. "$")
if not period then
return
end
period = period ~= "" and period or nil
local period_text, reading_type_link = get_period_text_and_reading_type_link(period, reading_type)
if not reading_type_link then
return
end
local lang = data.lang
-- Compute parents.
local parents, breadcrumb = {}
if reading:find("・", 1, true) then
local okurigana = reading:match("・(.*)")
insert(parents, {
name = "Kanji dengan bacaan" .. (period_text or "") .. " ".. reading_type .. " " .. reading:match("(.-)・"),
-- Sort by okurigana, since all coordinate categories will have the same furigana.
sort = (lang:makeSortKey(okurigana))
})
breadcrumb = "~" .. okurigana
else
insert(parents, {
name = "Kanji mengikut bacaan" .. (period_text or "") .. " " .. reading_type,
sort = (lang:makeSortKey(reading))
})
breadcrumb = reading
end
if is_on_subtype(reading_type) then
insert(parents, {name = "Kanji dengan bacaan" .. (period_text or "") .. " on " .. reading, sort = reading_type})
elseif period_text then
insert(parents, {name = "Kanji dengan bacaan" .. period_text .. " " .. reading, sort = reading_type})
end
if not period_text then
insert(parents, {name = "Kanji dibaca sebagai " .. reading, sort = reading_type})
end
return {
description = "Aksara [[kanji]] bahasa {{{langname}}} dengan bacaan " .. reading_type_link .. " " ..
get_reading_link(reading, lang, period or reading_type) .. ".",
displaytitle = "{{{langname}}} " .. label_pref .. get_tagged_reading(reading, lang),
breadcrumb = get_tagged_reading(breadcrumb, lang),
parents = parents,
}
end)
insert(handlers, function(data)
local period, reading_type = match(data.label, "^Kanji mengikut bacaan ([a-z]-) ?([%a']+)$")
if not period then
return
end
period = period ~= "" and period or nil
local period_text, reading_type_link = get_period_text_and_reading_type_link(period, reading_type)
if not reading_type_link then
return nil
end
-- Compute parents.
local parents = {
is_on_subtype(reading_type) and {name = "Kanji mengikut bacaan" .. (period_text or "") .. " on", sort = reading_type} or
period_text and {name = "Kanji mengikut bacaan " .. reading_type, sort = period} or
{name = "Kanji mengikut bacaan", sort = reading_type}
}
if period_text then
insert(parents, {name = "Kanji mengikut bacaan" .. period_text, sort = reading_type})
end
-- Compute description.
local description = "[[kanji|Kanji]] bahasa {{{langname}}} dikategorikan mengikat bacaan " .. (period_text or "") .. reading_type_link .. "."
return {
description = description,
breadcrumb = reading_type .. (period_text or ""),
parents = parents,
}
end)
insert(handlers, function(data)
local label_pref, reading = match(data.label, "^(Kanji dibaca sebagai )" .. kana_capture .. "$")
if not reading then
return
end
local args = require("Module:parameters").process(data.args, {
["histconsol"] = true,
})
local lang = data.lang
local parents, breadcrumb = {}
if reading:find("・", 1, true) then
local okurigana = reading:match("・(.*)")
insert(parents, {
name = "Kanji dibaca sebagai " .. reading:match("(.-)・"),
-- Sort by okurigana, since all coordinate categories will have the same furigana.
sort = (lang:makeSortKey(okurigana))
})
breadcrumb = "~" .. okurigana
else
insert(parents, {
name = "Kanji mengikut bacaan",
sort = (lang:makeSortKey(reading))
})
breadcrumb = reading
end
local addl
local period_text
if args.histconsol then
period_text = "lama"
addl = ("This is a [[Wikipedia:Historical kana orthography|historical]] [[Wikipedia:Kanazukai|reading]], now " ..
"consolidated with the [[Wikipedia:Modern kana usage|modern reading]] of " ..
get_reading_link(args.histconsol, lang, nil, ("Kategori:Kanji dibaca sebagai %s bahasa Jepun"):format(args.histconsol)) .. ".")
end
return {
description = "[[kanji|Kanji]] bahasa {{{langname}}} dibaca sebagai " .. get_reading_link(reading, lang, period_text) .. ".",
additional = addl,
displaytitle = label_pref .. get_tagged_reading(reading, lang) .. " bahasa {{{langname}}}" ,
breadcrumb = get_tagged_reading(breadcrumb, lang),
parents = parents,
}, true
end)
insert(handlers, function(data)
local label_pref, reading = match(data.label, "^(Perkataan dieja dengan kanji dibaca sebagai )" .. kana_capture .. "$")
if not reading then
return
end
-- Compute parents.
local lang = data.lang
local sort_key = (lang:makeSortKey(reading))
local mora_count = require("Module:ja").count_morae(reading)
local mora_count_words = m_numeric.spell_number(tostring(mora_count))
local parents = {
{name = "Perkataan mengikut bacaan kanji", sort = sort_key},
{name = "Bacaan kanji dengan " .. mora_count_words .. " mora", sort = sort_key},
{name = "Kanji dibaca sebagai " .. reading, sort = " "},
}
local tagged_reading = get_tagged_reading(reading, lang)
return {
description = "{{{langname}}} terms that contain kanji that exhibit a reading of " .. get_reading_link(reading, lang) ..
" in those terms prior to any sound changes.",
displaytitle = "{{{langname}}} " .. label_pref .. tagged_reading,
breadcrumb = tagged_reading,
parents = parents,
}
end)
insert(handlers, function(data)
local kanji, reading = match(data.label, "^Perkataan dieja dengan (.) dibaca sebagai " .. kana_capture .. "$")
if not kanji then
return nil
end
local args = require("Module:parameters").process(data.args, {
[1] = {list = true},
})
local lang = data.lang
if #args[1] == 0 then
error("Bagi kategori dalam bentuk \"" .. lang:getCanonicalName() ..
" terms spelled with KANJI dibaca sebagai READING\", at least one reading type (e.g. <code>kun</code> or <code>on</code>) must be specified using <code>1=</code>, <code>2=</code>, <code>3=</code>, etc.")
end
local yomi_types, parents = {}, {}
for _, yomi, category in ipairs(args[1]) do
local yomi_data = yomi_data[yomi]
if not yomi_data then
error("Jenis yomi \"" .. yomi .. "\" tidak sah.")
end
category = yomi_data.kanji_category
if not category then
error("Jenis yomi \"" .. yomi .. "\" tidak sah bagi jenis kategori ini.")
end
insert(yomi_types, yomi_data.link)
insert(parents, {
name = "Perkataan dieja dengan kanji dengan bacaan " .. category,
sort = (lang:makeSortKey(reading))
})
end
insert(parents, 1, {name = "Perkataan dieja dengan " .. kanji, sort = (lang:makeSortKey(reading))})
insert(parents, 2, {name = "Perkataan dieja dengan kanji dibaca sebagai " .. reading, sort = Hani_sort(kanji)})
yomi_types = (#yomi_types > 1 and "one of " or "") .. "its " ..
require("Module:table").serialCommaJoin(yomi_types, {conj = "or"}) ..
" reading" .. (#yomi_types > 1 and "s" or "")
local tagged_kanji = get_tagged_reading(kanji, lang)
local tagged_reading = get_tagged_reading(reading, lang)
return {
description = "{{{langname}}} terms spelled with {{l|{{{langcode}}}|" .. kanji .. "}} with " ..
yomi_types .. " of " .. get_reading_link(reading, lang) .. ".",
displaytitle = "{{{langname}}} terms spelled with " .. tagged_kanji .. " dibaca sebagai " .. tagged_reading,
breadcrumb = "dibaca sebagai " .. tagged_reading,
parents = parents,
}, true
end)
insert(handlers, function(data)
local affix, kanji, reading = data.label:match("^Perkataan dengan ([a-z]) (.+) dibaca sebagai " .. kana_capture .. "$")
if not affix or not kanji or not reading then
return nil
end
local args = require("Module:parameters").process(data.args, {
[1] = {list = true},
})
local lang = data.lang
if #args[1] == 0 then
error("For categories of the form \"" .. lang:getCanonicalName() ..
" terms AFFIXed with KANJI dibaca sebagai READING\", at least one reading type (e.g. <code>kun</code> or <code>on</code>) must be specified using <code>1=</code>, <code>2=</code>, <code>3=</code>, etc.")
end
local yomi_types = {}
for _, yomi, category in ipairs(args[1]) do
local yomi_data = yomi_data[yomi]
if not yomi_data then
error("The yomi type \"" .. yomi .. "\" is not recognized.")
end
category = yomi_data.kanji_category
if not category then
error("The yomi type \"" .. yomi .. "\" is not valid for this type of category.")
end
insert(yomi_types, yomi_data.link)
end
yomi_types = (#yomi_types > 1 and "one of " or "") .. "its " ..
require("Module:table").serialCommaJoin(yomi_types, {conj = "or"}) ..
" reading" .. (#yomi_types > 1 and "s" or "")
local tagged_kanji = get_tagged_reading(kanji, lang)
local tagged_reading = get_tagged_reading(reading, lang)
return {
description = "{{{langname}}} terms " .. affix .. "ed with {{l|{{{langcode}}}|" .. kanji .. "}} with " ..
yomi_types .. " of " .. get_reading_link(reading, lang) .. ".",
displaytitle = "{{{langname}}} terms " .. affix .. "ed with " .. tagged_kanji .. " dibaca sebagai " .. tagged_reading,
breadcrumb = "dibaca sebagai " .. reading,
parents = {
{name = "terms " .. affix .. "ed with " .. kanji, sort = (lang:makeSortKey(reading))},
--{name = "Perkataan dieja dengan " .. kanji .. " dibaca sebagai " .. reading, sort = (lang:makeSortKey(reading)), args=data.args}
},
}, true
end)
insert(handlers, function(data)
local kanji, daiyoji = match(data.label, "^Perkataan dengan (.) digantikan oleh daiyōji (.)$")
if not kanji then
return nil
end
local args = require("Module:parameters").process(data.args, {
["sort"] = true,
})
local lang = data.lang
if not args.sort then
error("For categories of the form \"" .. lang:getCanonicalName() ..
" terms with KANJI replaced by daiyōji DAIYOJI\", the sort key must be specified using sort=")
end
local tagged_kanji = get_tagged_reading(kanji, lang)
local tagged_daiyoji = get_tagged_reading(daiyoji, lang)
return {
description = "{{{langname}}} terms with {{l|{{{langcode}}}|" .. kanji .. "}} replaced by [[Appendix:Japanese glossary#daiyouji|daiyōji]] {{l|{{{langcode}}}|" .. daiyoji .. "}}.",
displaytitle = "{{{langname}}} terms with " .. tagged_kanji .. " replaced by daiyōji " .. tagged_daiyoji,
breadcrumb = tagged_kanji .. " replaced by daiyōji " .. tagged_daiyoji,
parents = {{name = "Perkataan dieja dengan daiyōji", sort = args.sort}},
}, true
end)
return {LABELS = labels, HANDLERS = handlers}
55nzh7armhc450zs6jk9i3eepl0t9es
342756
342746
2026-05-16T04:13:42Z
Hakimi97
2668
342756
Scribunto
text/plain
local labels = {}
local handlers = {}
local m_str_utils = require("Module:string utilities")
local concat = table.concat
local full_link = require("Module:links").full_link
local insert = table.insert
local Hani_sort = require("Module:Hani-sortkey").makeSortKey
local match = m_str_utils.match
local sort = table.sort
local tag_text = require("Module:script_utilities").tag_text
local ucfirst = m_str_utils.ucfirst
local Hira = require("Module:scripts").getByCode("Hira")
local Jpan = require("Module:scripts").getByCode("Jpan")
local kana_to_romaji = require("Module:Hrkt-translit").tr
local m_numeric = require("Module:ConvertNumeric")
local kana_capture = "([-" .. require("Module:ja/data/range").kana .. "・]+)"
local yomi_data = require("Module:kanjitab/data")
labels["adnominals"] = {
description = "{{{langname}}} adnominals, or {{ja-r|連%体%詞|れん%たい%し}}, which modify nouns, and do not conjugate or [[predicate#Verb|predicate]].",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Hiragana"] = {
description = "{{{langname}}} terms with hiragana {{mdash}} {{ja-r|平%仮%名|ひら%が%な}} {{mdash}} forms, sorted by conventional hiragana sequence. The hiragana form is a [[phonetic]] representation of that word. " ..
"Wiktionary represents {{{langname}}}-language segments in three ways: in normal form (with [[kanji]], if appropriate), in [[hiragana]] " ..
"form (this differs from kanji form only when the segment contains kanji), and in [[romaji]] form.",
additional = "''Lihat juga'' [[:Kategori:Katakana bahasa {{{langname}}}]]",
toc_template = "categoryTOC-hiragana",
parents = {
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Hiragana",
}
}
labels["historical hiragana"] = {
description = "{{{langname}}} historical [[hiragana]].",
additional = "''See also'' [[:Category:{{{langname}}} historical katakana]].",
toc_template = "categoryTOC-hiragana",
parents = {
"Hiragana",
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Hiragana",
}
}
labels["Katakana"] = {
description = "{{{langname}}} terms with katakana {{mdash}} {{ja-r|片%仮%名|かた%か%な}} {{mdash}} forms, sorted by conventional katakana sequence. Katakana is used primarily for transliterations of foreign words, including old Chinese hanzi not used in [[shinjitai]].",
additional = "''Lihat juga'' [[:Kategori:Hiragana bahasa {{{langname}}}]]",
toc_template = "categoryTOC-katakana",
parents = {
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Katakana",
}
}
labels["historical katakana"] = {
description = "{{{langname}}} historical [[katakana]].",
additional = "''See also'' [[:Category:{{{langname}}} historical hiragana]].",
toc_template = "categoryTOC-katakana",
parents = {
"Katakana",
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Katakana",
}
}
labels["Perkataan dieja dengan kana campuran"] = {
description = "{{{langname}}} terms which combine [[hiragana]] and [[katakana]] characters, potentially with [[kanji]] too.",
parents = {
{name = "{{{langcat}}}", raw = true},
"Hiragana",
"Katakana",
},
}
labels["Kanji"] = {
topright = "{{wp|Kanji}}",
description = "Simbol bahasa {{{langname}}} yang merupakan sebahagian daripada tulisan logogram Han, yang boleh mewakili bunyi atau menyampaikan makna secara langsung.",
toc_template = "Hani-categoryTOC",
umbrella = "Aksara Han",
parents = "Logogram",
}
labels["Kanji mengikut bacaan"] = {
description = "Kanji bahasa {{{langname}}} yang dikategorikan mengikut bacaan.",
parents = {{name = "Kanji", sort = "bacaan"}},
}
labels["Makurakotoba"] = {
topright = "{{wp|Makurakotoba}}",
description = "{{{langname}}} idioms used in poetry to introduce specific words.",
parents = {"Peribahasa"},
}
labels["Perkataan mengikut bacaan kanji"] = {
description = "Kategori bahasa {{{langname}}} yang dikumpulkan berdasarkan bacaan kanji yang dieja dengannya.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan mengikut pola bacaan"] = {
description = "Kategori bahasa {{{langname}}} dengan perkataan yang dikumpulkan berdasarkan corak bacaannya.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan mengikut bilangan aksara kanji"] = {
description = "Perkataan bahasa {{{langname}}} dikategorikan mengikut bilangan aksara kanji.",
parents = {"Perkataan mengikut sifat ortografi"},
}
local function handle_onyomi_list(category, category_type, cat_yomi_type)
local onyomi, seen = {}, {}
for _, yomi in pairs(yomi_data) do
if not seen[yomi] and yomi.onyomi then
local yomi_catname = yomi[category_type]
if yomi_catname ~= false then
local yomi_type = yomi.type
if yomi_type ~= "on'yomi" and yomi_type ~= cat_yomi_type then
insert(onyomi, "[[:Kategori:" .. category:gsub("{{{yomi_catname}}}", yomi_catname) .. " bahasa {{{langname}}}]]")
end
end
end
seen[yomi] = true
end
sort(onyomi)
return onyomi
end
local function add_yomi_category(category, category_type, parent, description)
for _, yomi in pairs(yomi_data) do
local yomi_catname = yomi[category_type]
if yomi_catname ~= false then
local yomi_type = yomi.type
local yomi_desc = yomi.link or yomi_catname
if yomi.description then
yomi_desc = yomi_desc .. "; " .. yomi.description
end
local label = {
description = description .. " " .. yomi_desc .. ".",
breadcrumb = yomi_type,
parents = {{name = parent, sort = yomi_catname}},
}
if yomi.onyomi then
local onyomi = handle_onyomi_list(category, category_type, yomi_type)
label.additional = "Kategori untuk perkataan dengan " ..
(yomi_type == "on'yomi" and "pelbagai lagi" or "lain-lain") ..
" jenis spesifik bacaan on'yomi boleh ditemukan pada kategori berikut:\n* " .. concat(onyomi, "\n* ")
if yomi_type ~= "on'yomi" then
insert(label.parents, 1, {
name = (category:gsub("{{{yomi_catname}}}", yomi_data.on[category_type])),
sort = yomi_catname
})
end
end
labels[category:gsub("{{{yomi_catname}}}", yomi_catname)] = label
end
end
end
add_yomi_category(
"Perkataan dengan bacaan {{{yomi_catname}}}",
"reading_category",
"Perkataan mengikut pola bacaan",
"Perkataan bahasa {{{langname}}} dengan bacaan"
)
add_yomi_category(
"Perkataan dieja dengan kanji dengan bacaan {{{yomi_catname}}}",
"kanji_category",
"Perkataan mengikut jenis bacaan kanji",
"Kategori bahasa {{{langname}}} dengan perkataan yang dieja dengan satu atau lebih banyak aksara kanji dengan bacaan"
)
labels["Perkataan kehilangan yomi"] = {
description = "Perkataan bahasa {{{langname}}} yang kehilangan satu atau lebih [[Lampiran:Glosari bahasa Jepun#yomi|yomi]] dalam {{tl|{{{langcode}}}-kanjitab}}.",
hidden = true,
can_be_empty = true,
parents = {"Penyelenggaraan entri"},
}
labels["terms with IPA pronunciation with pitch accent"] = {
description = "{{{langname}}} terms with pronunciations that have {{w|Japanese pitch accent|pitch accent}} specified.",
additional = "Pitch accent can be specified in {{tl|{{{langcode}}}-pron}} with the {{code|=acc=}} parameter.",
can_be_empty = true,
parents = {"Penyelenggaraan entri", "pitch accent"},
}
labels["terms with IPA pronunciation missing pitch accent"] = {
description = "{{{langname}}} terms with pronunciations that do not have a {{w|Japanese pitch accent|pitch accent}} specified.",
additional = "Pitch accent can be specified in {{tl|{{{langcode}}}-pron}} with the {{code|=acc=}} parameter.",
hidden = true,
can_be_empty = true,
parents = {"Penyelenggaraan entri"},
}
labels["pitch accent"] = {
description = "{{{langname}}} terms regarding {{w|Japanese pitch accent|pitch accent}} pronunciation.",
can_be_empty = true,
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["terms with Heiban pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[平板型|Heiban]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Atamadaka pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[頭高型|Atamadaka]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Nakadaka pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[中高型|Nakadaka]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Odaka pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[尾高型|Odaka]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["pitch accent deaccenting before の"] = {
description = "{{{langname}}} terms with {{w|Japanese pitch accent|pitch accent}} pronunciations that have exceptional deaccenting or lack thereof before の ({{ja-deaccenting-before-no}}).",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Odaka pitch accent not deaccented before の (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[尾高型|Odaka]] {{w|Japanese pitch accent|pitch accent}} and do not become deaccented before の ({{ja-deaccenting-before-no}}).",
can_be_empty = true,
parents = {"pitch accent deaccenting before の"}
}
labels["terms with Nakadaka pitch accent deaccented before の (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[中高型|Nakadaka]] {{w|Japanese pitch accent|pitch accent}} and become deaccented before の ({{ja-deaccenting-before-no}}).",
can_be_empty = true,
parents = {"pitch accent deaccenting before の"}
}
labels["Perkataan mengikut jenis bacaan kanji"] = {
description = "{{{langname}}} categories with terms grouped with regard to the types of readings of the kanji with which " ..
"they are spelled; broadly, those of Chinese origin, {{ja-r|音|おん}} readings, and those of non-Chinese origin, {{ja-r|訓|くん}} readings.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan dieja dengan ateji"] = {
topright = "{{wp|Ateji}}",
description = "{{{langname}}} terms containing one or more [[Appendix:Japanese glossary#ateji|ateji]] {{mdash}} {{ja-r|当て字|あてじ}} {{mdash}} which are [[kanji]] used to represent sounds rather than meanings (though meaning may have some influence on which kanji are chosen).",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan dieja dengan daiyōji"] = {
description = "Japanese terms spelled using [[Appendix:Japanese glossary#daiyouji|daiyōji]], categorized using {{temp|ja-daiyouji}}.",
parents = {"Perkataan mengikut etimologi"},
}
labels["Perkataan dieja dengan jukujikun"] = {
description = "{{{langname}}} terms containing one or more [[Appendix:Japanese glossary#jukujikun|jukujikun]] {{mdash}} {{ja-r|熟%字%訓|じゅく%じ%くん}} {{mdash}} which are [[kanji]] used to represent meanings rather than sounds.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
local function add_grade_categories(grade, desc, wp, only_one, parent, sort)
local grade_kanji = "Kanji " .. grade
local topright = wp and ("{{wp|%s}}"):format(ucfirst(grade_kanji)) or nil
labels[grade_kanji] = {
topright = topright,
description = "Kanji bahasa {{{langname}}} " .. desc,
toc_template = "Hani-categoryTOC",
parents = {{
name = parent and ("Kanji " .. parent) or "Kanji",
sort = sort or grade
}},
}
labels["Perkataan dieja dengan " .. grade_kanji:lower()] = {
topright = topright,
description = "Perkataan bahasa {{{langname}}} yang dieja dengan " .. (only_one and "sekurang-kurangnya satu " or "") .. " aksara kanji " .. desc,
parents = {{
name = parent and ("Perkataan dieja dengan kanji " .. parent) or "Perkataan mengikut sifat ortografi",
sort = sort or grade
}},
}
end
for i = 1, 6 do
local ord = m_numeric.ones_position_ord[i]
add_grade_categories(
"gred " .. ord,
"diajar dalam gred " .. ord .. " sekolah rendah, seperti yang ditetapkan oleh senarai rasmi {{ja-r|教%育 漢%字|きょう%いく かん%じ|sukatan pendidikan kanji}}.",
false,
false,
"kyōiku",
i
)
end
add_grade_categories(
"kyōiku",
"pada senarai rasmi {{ja-r|教%育 漢%字|きょう%いく かん%じ|sukatan pendidikan kanji}}.",
true,
false,
"jōyō"
)
add_grade_categories(
"sekolah menengah",
"pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}} yang secara umumnya diajar pada peringkat sekolah menengah.",
false,
false,
"jōyō"
)
add_grade_categories(
"jōyō",
"pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}}.",
true,
false
)
add_grade_categories(
"tōyō",
"pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}}, yang digunakan pada sekitar tahun 1946{{ndash}}1981 sehingga penerbitan senarai {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}}.",
true,
false
)
add_grade_categories(
"jinmeiyō",
"pada senarai rasmi {{ja-r|人%名%用 漢%字|じん%めい%-よう かん%じ|kanji untuk kegunaan nama peribadi}}.",
true,
true
)
add_grade_categories(
"hyōgai",
"tidak termasuk pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara kegunaan kerap}} atau {{ja-r|人%名%用 漢%字|じん%めい%-よう かん%じ|kanji untuk kegunaan nama peribadi}}, yang dikenali sebagai {{ja-r|表%外 漢%字|ひょう%がい かん%じ}} atau {{ja-r|表%外%字|ひょう%がい%じ|aksara tidak tersenarai}}.",
true,
true
)
labels["Perkataan dengan berbilang bacaan"] = {
description = "Perkataan bahasa {{{langname}}} dengan berbilang cara sebutan (maka juga sama dengan berbilang ejaan [[kana]]).",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Bacaan kanji mengikut bilangan mora"] = {
description = "Kategori-kategori bahasa {{{langname}}} dikumpulkan berdasarkan bilangan mora dalam bacaan kanji.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan kanji tunggal"] = {
description = "Perkataan {{{langname}}} yang ditulis dengan kanji tunggal.",
parents = {
"Perkataan mengikut sifat ortografi",
{name = "Perkataan dengan 1 aksara kanji", sort = " "},
},
}
labels["kanji with kun readings missing okurigana designation"] = {
breadcrumb = "Kanji missing okurigana designation",
description = "{{{langname}}} kanji entries in which one or more kun readings entered into {{tl|{{{langcode}}}-readings}} is missing a hyphen denoting okurigana.",
toc_template = "Hani-categoryTOC",
hidden = true,
can_be_empty = true,
parents = {"Penyelenggaraan entri"},
}
labels["Perkataan mengikut aksara individu dalam ejaan sejarah"] = {
breadcrumb = "Bersejarah",
description = "{{{langname}}} terms categorized by whether their spellings in the {{w|historical kana orthography}} included certain individual characters.",
parents = {{name = "Perkataan mengikut aksara individu", sort = " "}},
}
labels["Kata kerja tanpa ketransitifan"] = {
description = "{{{langname}}} verbs missing the {{code|=tr=}} parameter from their headword templates.",
hidden = true,
can_be_empty = true,
parents = {"Penyelenggaraan entri"},
}
labels["Yojijukugo"] = {
topright = "{{wp|Yojijukugo}}",
description = "{{{langname}}} four-[[kanji]] compound terms, {{ja-r|四%字 熟%語|よ%じ じゅく%ご}}, with idiomatic meanings; typically derived from Classical Chinese, Buddhist scripture or traditional Japanese proverbs.",
additional = "Compare Chinese {{w|chengyu}} and Korean {{w|sajaseong-eo}}.",
umbrella = "peribahasa empat aksara",
parents = {"Peribahasa"},
}
-- FIXME: Only works for 0 through 19.
local word_to_number = {}
for k, v in pairs(m_numeric.ones_position) do
word_to_number[v] = k
end
local periods = {
lama = true,
kuno = true,
}
local function get_period_text_and_reading_type_link(period, reading_type)
if period and not periods[period] then
return nil
end
local period_text = period and " " .. period or nil
-- Allow periods (historical or ancient) by themselves; they will parse as reading types.
if not period and periods[reading_type] then
return nil, reading_type
end
local reading_type_link = "[[Lampiran:Glosari bahasa Jepun#" .. reading_type .. "|" .. reading_type .. "]]"
return period_text, reading_type_link
end
local function get_sc(str)
return match(str:gsub("[%s%p]+", ""), "[^" .. Hira:getCharacters() .. "]") and Jpan or Hira
end
local function get_tagged_reading(reading, lang)
return tag_text(reading, lang, get_sc(reading))
end
local function get_reading_link(reading, lang, period, link)
local hist = periods[period]
reading = reading:gsub("[%.%-%s]+", "")
return full_link({
lang = lang,
sc = get_sc(reading),
term = link or reading:gsub("・", ""),
-- If we have okurigana, demarcate furigana.
alt = reading:gsub("^(.-)・", "<span style=\"border-top:1px solid;position:relative;padding:1px;\">%1<span style=\"position:absolute;top:0;bottom:67%%;right:0%%;border-right:1px solid;\"></span></span>"),
tr = kana_to_romaji((reading:gsub("・", ".")), lang:getCode(), nil, {keep_dot = true, hist = hist})
:gsub("^(.-)%.", "<u>%1</u>"),
pos = reading:find("・", 1, true) and get_tagged_reading((reading:gsub("^.-・", "~")), lang) or nil
}, "term")
end
local function is_on_subtype(reading_type)
return reading_type:find(".on$")
end
insert(handlers, function(data)
local n =data.label:match("^Perkataan dengan ([1-9]%d*) aksara kanji$")
if not n then
return
end
local sortkey = require("Module:category tree").numeral_sortkey(n, 2097152)
return {
breadcrumb = n,
description = ("Perkataan bahasa {{{langname}}} yang mengandungi tepat %d aksara kanji."):format(n),
-- TODO: implement this using the same mechanism used to implement parents (i.e. avoiding the need for raw categories).
-- umbrella = {
-- breadcrumb = ("%d kanji"):format(n),
-- parents = {{name = "terms by number of kanji subcategories by language", sort = sortkey}},
-- },
parents = {{name = ("Perkataan mengikut bilangan aksara kanji"), sort = sortkey}}
}
end)
insert(handlers, function(data)
local label_pref, kana = data.label:match("^(Perkataan yang mengikut sejarah dieja dengan )" .. kana_capture .. "$")
if not kana then
return
end
local lang = data.lang
return {
description = "Perkataan bahasa {{{langname}}} yang dieja dengan " .. get_reading_link(kana, lang, "bersejarah") .. " dalam {{w|ortografi kana sejarawi}}.",
displaytitle = label_pref .. get_tagged_reading(kana, lang) .. " bahasa {{{langname}}}",
breadcrumb = "sejarah",
parents = {
{name = "Perkataan dieja dengan " .. kana, sort = " "},
{name = "Perkataan mengikut aksara individu dalam ejaan sejarah", sort = lang:makeSortKey(kana)}
},
}
end)
insert(handlers, function(data)
local count, plural = data.label:match("^Bacaan kanji dengan (.+) mora$")
local num = word_to_number[count]
if not num then
return nil
end
return {
description = "Bacaan kanji bahasa {{{langname}}} yang mengandungi " .. count .. " mora.",
breadcrumb = num,
parents = {{name = "Bacaan kanji mengikut bilangan mora", sort = num}},
}
end)
insert(handlers, function(data)
local label_pref, period, reading_type, reading = match(data.label, "^(Kanji dengan bacaan ([a-z]-) ?([%a']+) )" .. kana_capture .. "$")
if not period then
return
end
period = period ~= "" and period or nil
local period_text, reading_type_link = get_period_text_and_reading_type_link(period, reading_type)
if not reading_type_link then
return
end
local lang = data.lang
-- Compute parents.
local parents, breadcrumb = {}
if reading:find("・", 1, true) then
local okurigana = reading:match("・(.*)")
insert(parents, {
name = "Kanji dengan bacaan" .. (period_text or "") .. " ".. reading_type .. " " .. reading:match("(.-)・"),
-- Sort by okurigana, since all coordinate categories will have the same furigana.
sort = (lang:makeSortKey(okurigana))
})
breadcrumb = "~" .. okurigana
else
insert(parents, {
name = "Kanji mengikut bacaan" .. (period_text or "") .. " " .. reading_type,
sort = (lang:makeSortKey(reading))
})
breadcrumb = reading
end
if is_on_subtype(reading_type) then
insert(parents, {name = "Kanji dengan bacaan" .. (period_text or "") .. " on " .. reading, sort = reading_type})
elseif period_text then
insert(parents, {name = "Kanji dengan bacaan" .. period_text .. " " .. reading, sort = reading_type})
end
if not period_text then
insert(parents, {name = "Kanji dibaca sebagai " .. reading, sort = reading_type})
end
return {
description = "Aksara [[kanji]] bahasa {{{langname}}} dengan bacaan " .. reading_type_link .. " " ..
get_reading_link(reading, lang, period or reading_type) .. ".",
displaytitle = "{{{langname}}} " .. label_pref .. get_tagged_reading(reading, lang),
breadcrumb = get_tagged_reading(breadcrumb, lang),
parents = parents,
}
end)
insert(handlers, function(data)
local period, reading_type = match(data.label, "^Kanji mengikut bacaan ([a-z]-) ?([%a']+)$")
if not period then
return
end
period = period ~= "" and period or nil
local period_text, reading_type_link = get_period_text_and_reading_type_link(period, reading_type)
if not reading_type_link then
return nil
end
-- Compute parents.
local parents = {
is_on_subtype(reading_type) and {name = "Kanji mengikut bacaan" .. (period_text or "") .. " on", sort = reading_type} or
period_text and {name = "Kanji mengikut bacaan " .. reading_type, sort = period} or
{name = "Kanji mengikut bacaan", sort = reading_type}
}
if period_text then
insert(parents, {name = "Kanji mengikut bacaan" .. period_text, sort = reading_type})
end
-- Compute description.
local description = "[[kanji|Kanji]] bahasa {{{langname}}} dikategorikan mengikat bacaan " .. (period_text or "") .. reading_type_link .. "."
return {
description = description,
breadcrumb = reading_type .. (period_text or ""),
parents = parents,
}
end)
insert(handlers, function(data)
local label_pref, reading = match(data.label, "^(Kanji dibaca sebagai )" .. kana_capture .. "$")
if not reading then
return
end
local args = require("Module:parameters").process(data.args, {
["histconsol"] = true,
})
local lang = data.lang
local parents, breadcrumb = {}
if reading:find("・", 1, true) then
local okurigana = reading:match("・(.*)")
insert(parents, {
name = "Kanji dibaca sebagai " .. reading:match("(.-)・"),
-- Sort by okurigana, since all coordinate categories will have the same furigana.
sort = (lang:makeSortKey(okurigana))
})
breadcrumb = "~" .. okurigana
else
insert(parents, {
name = "Kanji mengikut bacaan",
sort = (lang:makeSortKey(reading))
})
breadcrumb = reading
end
local addl
local period_text
if args.histconsol then
period_text = "lama"
addl = ("This is a [[Wikipedia:Historical kana orthography|historical]] [[Wikipedia:Kanazukai|reading]], now " ..
"consolidated with the [[Wikipedia:Modern kana usage|modern reading]] of " ..
get_reading_link(args.histconsol, lang, nil, ("Kategori:Kanji dibaca sebagai %s bahasa Jepun"):format(args.histconsol)) .. ".")
end
return {
description = "[[kanji|Kanji]] bahasa {{{langname}}} dibaca sebagai " .. get_reading_link(reading, lang, period_text) .. ".",
additional = addl,
displaytitle = label_pref .. get_tagged_reading(reading, lang) .. " bahasa {{{langname}}}" ,
breadcrumb = get_tagged_reading(breadcrumb, lang),
parents = parents,
}, true
end)
insert(handlers, function(data)
local label_pref, reading = match(data.label, "^(Perkataan dieja dengan kanji dibaca sebagai )" .. kana_capture .. "$")
if not reading then
return
end
-- Compute parents.
local lang = data.lang
local sort_key = (lang:makeSortKey(reading))
local mora_count = require("Module:ja").count_morae(reading)
local mora_count_words = m_numeric.spell_number(tostring(mora_count))
local parents = {
{name = "Perkataan mengikut bacaan kanji", sort = sort_key},
{name = "Bacaan kanji dengan " .. mora_count_words .. " mora", sort = sort_key},
{name = "Kanji dibaca sebagai " .. reading, sort = " "},
}
local tagged_reading = get_tagged_reading(reading, lang)
return {
description = "{{{langname}}} terms that contain kanji that exhibit a reading of " .. get_reading_link(reading, lang) ..
" in those terms prior to any sound changes.",
displaytitle = "{{{langname}}} " .. label_pref .. tagged_reading,
breadcrumb = tagged_reading,
parents = parents,
}
end)
insert(handlers, function(data)
local kanji, reading = match(data.label, "^Perkataan dieja dengan (.) dibaca sebagai " .. kana_capture .. "$")
if not kanji then
return nil
end
local args = require("Module:parameters").process(data.args, {
[1] = {list = true},
})
local lang = data.lang
if #args[1] == 0 then
error("Bagi kategori dalam bentuk \"" .. lang:getCanonicalName() ..
" terms spelled with KANJI dibaca sebagai READING\", at least one reading type (e.g. <code>kun</code> or <code>on</code>) must be specified using <code>1=</code>, <code>2=</code>, <code>3=</code>, etc.")
end
local yomi_types, parents = {}, {}
for _, yomi, category in ipairs(args[1]) do
local yomi_data = yomi_data[yomi]
if not yomi_data then
error("Jenis yomi \"" .. yomi .. "\" tidak sah.")
end
category = yomi_data.kanji_category
if not category then
error("Jenis yomi \"" .. yomi .. "\" tidak sah bagi jenis kategori ini.")
end
insert(yomi_types, yomi_data.link)
insert(parents, {
name = "Perkataan dieja dengan kanji dengan bacaan " .. category,
sort = (lang:makeSortKey(reading))
})
end
insert(parents, 1, {name = "Perkataan dieja dengan " .. kanji, sort = (lang:makeSortKey(reading))})
insert(parents, 2, {name = "Perkataan dieja dengan kanji dibaca sebagai " .. reading, sort = Hani_sort(kanji)})
yomi_types = (#yomi_types > 1 and "one of " or "") .. "its " ..
require("Module:table").serialCommaJoin(yomi_types, {conj = "or"}) ..
" reading" .. (#yomi_types > 1 and "s" or "")
local tagged_kanji = get_tagged_reading(kanji, lang)
local tagged_reading = get_tagged_reading(reading, lang)
return {
description = "{{{langname}}} terms spelled with {{l|{{{langcode}}}|" .. kanji .. "}} with " ..
yomi_types .. " of " .. get_reading_link(reading, lang) .. ".",
displaytitle = "{{{langname}}} terms spelled with " .. tagged_kanji .. " dibaca sebagai " .. tagged_reading,
breadcrumb = "dibaca sebagai " .. tagged_reading,
parents = parents,
}, true
end)
insert(handlers, function(data)
local affix, kanji, reading = data.label:match("^Perkataan dengan ([a-z]) (.+) dibaca sebagai " .. kana_capture .. "$")
if not affix or not kanji or not reading then
return nil
end
local args = require("Module:parameters").process(data.args, {
[1] = {list = true},
})
local lang = data.lang
if #args[1] == 0 then
error("For categories of the form \"" .. lang:getCanonicalName() ..
" terms AFFIXed with KANJI dibaca sebagai READING\", at least one reading type (e.g. <code>kun</code> or <code>on</code>) must be specified using <code>1=</code>, <code>2=</code>, <code>3=</code>, etc.")
end
local yomi_types = {}
for _, yomi, category in ipairs(args[1]) do
local yomi_data = yomi_data[yomi]
if not yomi_data then
error("The yomi type \"" .. yomi .. "\" is not recognized.")
end
category = yomi_data.kanji_category
if not category then
error("The yomi type \"" .. yomi .. "\" is not valid for this type of category.")
end
insert(yomi_types, yomi_data.link)
end
yomi_types = (#yomi_types > 1 and "one of " or "") .. "its " ..
require("Module:table").serialCommaJoin(yomi_types, {conj = "or"}) ..
" reading" .. (#yomi_types > 1 and "s" or "")
local tagged_kanji = get_tagged_reading(kanji, lang)
local tagged_reading = get_tagged_reading(reading, lang)
return {
description = "{{{langname}}} terms " .. affix .. "ed with {{l|{{{langcode}}}|" .. kanji .. "}} with " ..
yomi_types .. " of " .. get_reading_link(reading, lang) .. ".",
displaytitle = "{{{langname}}} terms " .. affix .. "ed with " .. tagged_kanji .. " dibaca sebagai " .. tagged_reading,
breadcrumb = "dibaca sebagai " .. reading,
parents = {
{name = "terms " .. affix .. "ed with " .. kanji, sort = (lang:makeSortKey(reading))},
--{name = "Perkataan dieja dengan " .. kanji .. " dibaca sebagai " .. reading, sort = (lang:makeSortKey(reading)), args=data.args}
},
}, true
end)
insert(handlers, function(data)
local kanji, daiyoji = match(data.label, "^Perkataan dengan (.) digantikan oleh daiyōji (.)$")
if not kanji then
return nil
end
local args = require("Module:parameters").process(data.args, {
["sort"] = true,
})
local lang = data.lang
if not args.sort then
error("For categories of the form \"" .. lang:getCanonicalName() ..
" terms with KANJI replaced by daiyōji DAIYOJI\", the sort key must be specified using sort=")
end
local tagged_kanji = get_tagged_reading(kanji, lang)
local tagged_daiyoji = get_tagged_reading(daiyoji, lang)
return {
description = "{{{langname}}} terms with {{l|{{{langcode}}}|" .. kanji .. "}} replaced by [[Appendix:Japanese glossary#daiyouji|daiyōji]] {{l|{{{langcode}}}|" .. daiyoji .. "}}.",
displaytitle = "{{{langname}}} terms with " .. tagged_kanji .. " replaced by daiyōji " .. tagged_daiyoji,
breadcrumb = tagged_kanji .. " replaced by daiyōji " .. tagged_daiyoji,
parents = {{name = "Perkataan dieja dengan daiyōji", sort = args.sort}},
}, true
end)
return {LABELS = labels, HANDLERS = handlers}
e4da8b691jmwdc8le9dh77il747bk54
342766
342756
2026-05-16T04:39:16Z
Hakimi97
2668
342766
Scribunto
text/plain
local labels = {}
local handlers = {}
local m_str_utils = require("Module:string utilities")
local concat = table.concat
local full_link = require("Module:links").full_link
local insert = table.insert
local Hani_sort = require("Module:Hani-sortkey").makeSortKey
local match = m_str_utils.match
local sort = table.sort
local tag_text = require("Module:script_utilities").tag_text
local ucfirst = m_str_utils.ucfirst
local Hira = require("Module:scripts").getByCode("Hira")
local Jpan = require("Module:scripts").getByCode("Jpan")
local kana_to_romaji = require("Module:Hrkt-translit").tr
local m_numeric = require("Module:ConvertNumeric")
local kana_capture = "([-" .. require("Module:ja/data/range").kana .. "・]+)"
local yomi_data = require("Module:kanjitab/data")
labels["adnominals"] = {
description = "{{{langname}}} adnominals, or {{ja-r|連%体%詞|れん%たい%し}}, which modify nouns, and do not conjugate or [[predicate#Verb|predicate]].",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Hiragana"] = {
description = "{{{langname}}} terms with hiragana {{mdash}} {{ja-r|平%仮%名|ひら%が%な}} {{mdash}} forms, sorted by conventional hiragana sequence. The hiragana form is a [[phonetic]] representation of that word. " ..
"Wiktionary represents {{{langname}}}-language segments in three ways: in normal form (with [[kanji]], if appropriate), in [[hiragana]] " ..
"form (this differs from kanji form only when the segment contains kanji), and in [[romaji]] form.",
additional = "''Lihat juga'' [[:Kategori:Katakana bahasa {{{langname}}}]]",
toc_template = "categoryTOC-hiragana",
parents = {
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Hiragana",
}
}
labels["historical hiragana"] = {
description = "{{{langname}}} historical [[hiragana]].",
additional = "''See also'' [[:Category:{{{langname}}} historical katakana]].",
toc_template = "categoryTOC-hiragana",
parents = {
"Hiragana",
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Hiragana",
}
}
labels["Katakana"] = {
description = "{{{langname}}} terms with katakana {{mdash}} {{ja-r|片%仮%名|かた%か%な}} {{mdash}} forms, sorted by conventional katakana sequence. Katakana is used primarily for transliterations of foreign words, including old Chinese hanzi not used in [[shinjitai]].",
additional = "''Lihat juga'' [[:Kategori:Hiragana bahasa {{{langname}}}]]",
toc_template = "categoryTOC-katakana",
parents = {
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Katakana",
}
}
labels["historical katakana"] = {
description = "{{{langname}}} historical [[katakana]].",
additional = "''See also'' [[:Category:{{{langname}}} historical hiragana]].",
toc_template = "categoryTOC-katakana",
parents = {
"Katakana",
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Katakana",
}
}
labels["Perkataan dieja dengan kana campuran"] = {
description = "{{{langname}}} terms which combine [[hiragana]] and [[katakana]] characters, potentially with [[kanji]] too.",
parents = {
{name = "{{{langcat}}}", raw = true},
"Hiragana",
"Katakana",
},
}
labels["Kanji"] = {
topright = "{{wp|Kanji}}",
description = "Simbol bahasa {{{langname}}} yang merupakan sebahagian daripada tulisan logogram Han, yang boleh mewakili bunyi atau menyampaikan makna secara langsung.",
toc_template = "Hani-categoryTOC",
umbrella = "Aksara Han",
parents = "Logogram",
}
labels["Kanji mengikut bacaan"] = {
description = "Kanji bahasa {{{langname}}} yang dikategorikan mengikut bacaan.",
parents = {{name = "Kanji", sort = "bacaan"}},
}
labels["Makurakotoba"] = {
topright = "{{wp|Makurakotoba}}",
description = "{{{langname}}} idioms used in poetry to introduce specific words.",
parents = {"Peribahasa"},
}
labels["Perkataan mengikut bacaan kanji"] = {
description = "Kategori bahasa {{{langname}}} yang dikumpulkan berdasarkan bacaan kanji yang dieja dengannya.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan mengikut pola bacaan"] = {
description = "Kategori bahasa {{{langname}}} dengan perkataan yang dikumpulkan berdasarkan corak bacaannya.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan mengikut bilangan aksara kanji"] = {
description = "Perkataan bahasa {{{langname}}} dikategorikan mengikut bilangan aksara kanji.",
parents = {"Perkataan mengikut sifat ortografi"},
}
local function handle_onyomi_list(category, category_type, cat_yomi_type)
local onyomi, seen = {}, {}
for _, yomi in pairs(yomi_data) do
if not seen[yomi] and yomi.onyomi then
local yomi_catname = yomi[category_type]
if yomi_catname ~= false then
local yomi_type = yomi.type
if yomi_type ~= "on'yomi" and yomi_type ~= cat_yomi_type then
insert(onyomi, "[[:Kategori:" .. category:gsub("{{{yomi_catname}}}", yomi_catname) .. " bahasa {{{langname}}}]]")
end
end
end
seen[yomi] = true
end
sort(onyomi)
return onyomi
end
local function add_yomi_category(category, category_type, parent, description)
for _, yomi in pairs(yomi_data) do
local yomi_catname = yomi[category_type]
if yomi_catname ~= false then
local yomi_type = yomi.type
local yomi_desc = yomi.link or yomi_catname
if yomi.description then
yomi_desc = yomi_desc .. "; " .. yomi.description
end
local label = {
description = description .. " " .. yomi_desc .. ".",
breadcrumb = yomi_type,
parents = {{name = parent, sort = yomi_catname}},
}
if yomi.onyomi then
local onyomi = handle_onyomi_list(category, category_type, yomi_type)
label.additional = "Kategori untuk perkataan dengan " ..
(yomi_type == "on'yomi" and "pelbagai lagi" or "lain-lain") ..
" jenis spesifik bacaan on'yomi boleh ditemukan pada kategori berikut:\n* " .. concat(onyomi, "\n* ")
if yomi_type ~= "on'yomi" then
insert(label.parents, 1, {
name = (category:gsub("{{{yomi_catname}}}", yomi_data.on[category_type])),
sort = yomi_catname
})
end
end
labels[category:gsub("{{{yomi_catname}}}", yomi_catname)] = label
end
end
end
add_yomi_category(
"Perkataan dengan bacaan {{{yomi_catname}}}",
"reading_category",
"Perkataan mengikut pola bacaan",
"Perkataan bahasa {{{langname}}} dengan bacaan"
)
add_yomi_category(
"Perkataan dieja dengan kanji dengan bacaan {{{yomi_catname}}}",
"kanji_category",
"Perkataan mengikut jenis bacaan kanji",
"Kategori bahasa {{{langname}}} dengan perkataan yang dieja dengan satu atau lebih banyak aksara kanji dengan bacaan"
)
labels["Perkataan kehilangan yomi"] = {
description = "Perkataan bahasa {{{langname}}} yang kehilangan satu atau lebih [[Lampiran:Glosari bahasa Jepun#yomi|yomi]] dalam {{tl|{{{langcode}}}-kanjitab}}.",
hidden = true,
can_be_empty = true,
parents = {"Penyelenggaraan entri"},
}
labels["terms with IPA pronunciation with pitch accent"] = {
description = "{{{langname}}} terms with pronunciations that have {{w|Japanese pitch accent|pitch accent}} specified.",
additional = "Pitch accent can be specified in {{tl|{{{langcode}}}-pron}} with the {{code|=acc=}} parameter.",
can_be_empty = true,
parents = {"Penyelenggaraan entri", "pitch accent"},
}
labels["terms with IPA pronunciation missing pitch accent"] = {
description = "{{{langname}}} terms with pronunciations that do not have a {{w|Japanese pitch accent|pitch accent}} specified.",
additional = "Pitch accent can be specified in {{tl|{{{langcode}}}-pron}} with the {{code|=acc=}} parameter.",
hidden = true,
can_be_empty = true,
parents = {"Penyelenggaraan entri"},
}
labels["pitch accent"] = {
description = "{{{langname}}} terms regarding {{w|Japanese pitch accent|pitch accent}} pronunciation.",
can_be_empty = true,
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["terms with Heiban pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[平板型|Heiban]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Atamadaka pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[頭高型|Atamadaka]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Nakadaka pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[中高型|Nakadaka]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Odaka pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[尾高型|Odaka]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["pitch accent deaccenting before の"] = {
description = "{{{langname}}} terms with {{w|Japanese pitch accent|pitch accent}} pronunciations that have exceptional deaccenting or lack thereof before の ({{ja-deaccenting-before-no}}).",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Odaka pitch accent not deaccented before の (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[尾高型|Odaka]] {{w|Japanese pitch accent|pitch accent}} and do not become deaccented before の ({{ja-deaccenting-before-no}}).",
can_be_empty = true,
parents = {"pitch accent deaccenting before の"}
}
labels["terms with Nakadaka pitch accent deaccented before の (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[中高型|Nakadaka]] {{w|Japanese pitch accent|pitch accent}} and become deaccented before の ({{ja-deaccenting-before-no}}).",
can_be_empty = true,
parents = {"pitch accent deaccenting before の"}
}
labels["Perkataan mengikut jenis bacaan kanji"] = {
description = "{{{langname}}} categories with terms grouped with regard to the types of readings of the kanji with which " ..
"they are spelled; broadly, those of Chinese origin, {{ja-r|音|おん}} readings, and those of non-Chinese origin, {{ja-r|訓|くん}} readings.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan dieja dengan ateji"] = {
topright = "{{wp|Ateji}}",
description = "{{{langname}}} terms containing one or more [[Appendix:Japanese glossary#ateji|ateji]] {{mdash}} {{ja-r|当て字|あてじ}} {{mdash}} which are [[kanji]] used to represent sounds rather than meanings (though meaning may have some influence on which kanji are chosen).",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan dieja dengan daiyōji"] = {
description = "Japanese terms spelled using [[Appendix:Japanese glossary#daiyouji|daiyōji]], categorized using {{temp|ja-daiyouji}}.",
parents = {"Perkataan mengikut etimologi"},
}
labels["Perkataan dieja dengan jukujikun"] = {
description = "{{{langname}}} terms containing one or more [[Appendix:Japanese glossary#jukujikun|jukujikun]] {{mdash}} {{ja-r|熟%字%訓|じゅく%じ%くん}} {{mdash}} which are [[kanji]] used to represent meanings rather than sounds.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
local function add_grade_categories(grade, desc, wp, only_one, parent, sort)
local grade_kanji = "Kanji " .. grade
local topright = wp and ("{{wp|%s}}"):format(ucfirst(grade_kanji)) or nil
labels[grade_kanji] = {
topright = topright,
description = "Kanji bahasa {{{langname}}} " .. desc,
toc_template = "Hani-categoryTOC",
parents = {{
name = parent and ("Kanji " .. parent) or "Kanji",
sort = sort or grade
}},
}
labels["Perkataan dieja dengan " .. grade_kanji:lower()] = {
topright = topright,
description = "Perkataan bahasa {{{langname}}} yang dieja dengan " .. (only_one and "sekurang-kurangnya satu " or "") .. " aksara kanji " .. desc,
parents = {{
name = parent and ("Perkataan dieja dengan kanji " .. parent) or "Perkataan mengikut sifat ortografi",
sort = sort or grade
}},
}
end
for i = 1, 6 do
local ord = m_numeric.ones_position_ord[i]
add_grade_categories(
"gred " .. ord,
"diajar dalam gred " .. ord .. " sekolah rendah, seperti yang ditetapkan oleh senarai rasmi {{ja-r|教%育 漢%字|きょう%いく かん%じ|sukatan pendidikan kanji}}.",
false,
false,
"kyōiku",
i
)
end
add_grade_categories(
"kyōiku",
"pada senarai rasmi {{ja-r|教%育 漢%字|きょう%いく かん%じ|sukatan pendidikan kanji}}.",
true,
false,
"jōyō"
)
add_grade_categories(
"sekolah menengah",
"pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}} yang secara umumnya diajar pada peringkat sekolah menengah.",
false,
false,
"jōyō"
)
add_grade_categories(
"jōyō",
"pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}}.",
true,
false
)
add_grade_categories(
"tōyō",
"pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}}, yang digunakan pada sekitar tahun 1946{{ndash}}1981 sehingga penerbitan senarai {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}}.",
true,
false
)
add_grade_categories(
"jinmeiyō",
"pada senarai rasmi {{ja-r|人%名%用 漢%字|じん%めい%-よう かん%じ|kanji untuk kegunaan nama peribadi}}.",
true,
true
)
add_grade_categories(
"hyōgai",
"tidak termasuk pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara kegunaan kerap}} atau {{ja-r|人%名%用 漢%字|じん%めい%-よう かん%じ|kanji untuk kegunaan nama peribadi}}, yang dikenali sebagai {{ja-r|表%外 漢%字|ひょう%がい かん%じ}} atau {{ja-r|表%外%字|ひょう%がい%じ|aksara tidak tersenarai}}.",
true,
true
)
labels["Perkataan dengan berbilang bacaan"] = {
description = "Perkataan bahasa {{{langname}}} dengan berbilang cara sebutan (maka juga sama dengan berbilang ejaan [[kana]]).",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Bacaan kanji mengikut bilangan mora"] = {
description = "Kategori-kategori bahasa {{{langname}}} dikumpulkan berdasarkan bilangan mora dalam bacaan kanji.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan kanji tunggal"] = {
description = "Perkataan {{{langname}}} yang ditulis dengan kanji tunggal.",
parents = {
"Perkataan mengikut sifat ortografi",
{name = "Perkataan dengan 1 aksara kanji", sort = " "},
},
}
labels["kanji with kun readings missing okurigana designation"] = {
breadcrumb = "Kanji missing okurigana designation",
description = "{{{langname}}} kanji entries in which one or more kun readings entered into {{tl|{{{langcode}}}-readings}} is missing a hyphen denoting okurigana.",
toc_template = "Hani-categoryTOC",
hidden = true,
can_be_empty = true,
parents = {"Penyelenggaraan entri"},
}
labels["Perkataan mengikut aksara individu dalam ejaan sejarah"] = {
breadcrumb = "Bersejarah",
description = "{{{langname}}} terms categorized by whether their spellings in the {{w|historical kana orthography}} included certain individual characters.",
parents = {{name = "Perkataan mengikut aksara individu", sort = " "}},
}
labels["Kata kerja tanpa ketransitifan"] = {
description = "{{{langname}}} verbs missing the {{code|=tr=}} parameter from their headword templates.",
hidden = true,
can_be_empty = true,
parents = {"Penyelenggaraan entri"},
}
labels["Yojijukugo"] = {
topright = "{{wp|Yojijukugo}}",
description = "{{{langname}}} four-[[kanji]] compound terms, {{ja-r|四%字 熟%語|よ%じ じゅく%ご}}, with idiomatic meanings; typically derived from Classical Chinese, Buddhist scripture or traditional Japanese proverbs.",
additional = "Compare Chinese {{w|chengyu}} and Korean {{w|sajaseong-eo}}.",
umbrella = "peribahasa empat aksara",
parents = {"Peribahasa"},
}
-- FIXME: Only works for 0 through 19.
local word_to_number = {}
for k, v in pairs(m_numeric.ones_position) do
word_to_number[v] = k
end
local periods = {
lama = true,
kuno = true,
}
local function get_period_text_and_reading_type_link(period, reading_type)
if period and not periods[period] then
return nil
end
local period_text = period and " " .. period or nil
-- Allow periods (historical or ancient) by themselves; they will parse as reading types.
if not period and periods[reading_type] then
return nil, reading_type
end
local reading_type_link = "[[Lampiran:Glosari bahasa Jepun#" .. reading_type .. "|" .. reading_type .. "]]"
return period_text, reading_type_link
end
local function get_sc(str)
return match(str:gsub("[%s%p]+", ""), "[^" .. Hira:getCharacters() .. "]") and Jpan or Hira
end
local function get_tagged_reading(reading, lang)
return tag_text(reading, lang, get_sc(reading))
end
local function get_reading_link(reading, lang, period, link)
local hist = periods[period]
reading = reading:gsub("[%.%-%s]+", "")
return full_link({
lang = lang,
sc = get_sc(reading),
term = link or reading:gsub("・", ""),
-- If we have okurigana, demarcate furigana.
alt = reading:gsub("^(.-)・", "<span style=\"border-top:1px solid;position:relative;padding:1px;\">%1<span style=\"position:absolute;top:0;bottom:67%%;right:0%%;border-right:1px solid;\"></span></span>"),
tr = kana_to_romaji((reading:gsub("・", ".")), lang:getCode(), nil, {keep_dot = true, hist = hist})
:gsub("^(.-)%.", "<u>%1</u>"),
pos = reading:find("・", 1, true) and get_tagged_reading((reading:gsub("^.-・", "~")), lang) or nil
}, "term")
end
local function is_on_subtype(reading_type)
return reading_type:find(".on$")
end
insert(handlers, function(data)
local n =data.label:match("Perkataan dengan ([1-9]%d*) aksara kanji$")
if not n then
return
end
local sortkey = require("Module:category tree").numeral_sortkey(n, 2097152)
return {
breadcrumb = n,
description = ("Perkataan bahasa {{{langname}}} yang mengandungi tepat %d aksara kanji."):format(n),
-- TODO: implement this using the same mechanism used to implement parents (i.e. avoiding the need for raw categories).
-- umbrella = {
-- breadcrumb = ("%d kanji"):format(n),
-- parents = {{name = "terms by number of kanji subcategories by language", sort = sortkey}},
-- },
parents = {{name = ("Perkataan mengikut bilangan aksara kanji"), sort = sortkey}}
}
end)
insert(handlers, function(data)
local label_pref, kana = data.label:match("^([Pp]erkataan yang mengikut sejarah dieja dengan )" .. kana_capture .. "$")
if not kana then
return
end
local lang = data.lang
return {
description = "Perkataan bahasa {{{langname}}} yang dieja dengan " .. get_reading_link(kana, lang, "bersejarah") .. " dalam {{w|ortografi kana sejarawi}}.",
displaytitle = label_pref .. get_tagged_reading(kana, lang) .. " bahasa {{{langname}}}",
breadcrumb = "sejarah",
parents = {
{name = "Perkataan dieja dengan " .. kana, sort = " "},
{name = "Perkataan mengikut aksara individu dalam ejaan sejarah", sort = lang:makeSortKey(kana)}
},
}
end)
insert(handlers, function(data)
local count, plural = data.label:match("^[Bb]acaan kanji dengan (.+) mora$")
local num = word_to_number[count]
if not num then
return nil
end
return {
description = "Bacaan kanji bahasa {{{langname}}} yang mengandungi " .. count .. " mora.",
breadcrumb = num,
parents = {{name = "Bacaan kanji mengikut bilangan mora", sort = num}},
}
end)
insert(handlers, function(data)
local label_pref, period, reading_type, reading = match(data.label, "^([Kk]anji dengan bacaan ([a-z]-) ?([%a']+) )" .. kana_capture .. "$")
if not period then
return
end
period = period ~= "" and period or nil
local period_text, reading_type_link = get_period_text_and_reading_type_link(period, reading_type)
if not reading_type_link then
return
end
local lang = data.lang
-- Compute parents.
local parents, breadcrumb = {}
if reading:find("・", 1, true) then
local okurigana = reading:match("・(.*)")
insert(parents, {
name = "Kanji dengan bacaan" .. (period_text or "") .. " ".. reading_type .. " " .. reading:match("(.-)・"),
-- Sort by okurigana, since all coordinate categories will have the same furigana.
sort = (lang:makeSortKey(okurigana))
})
breadcrumb = "~" .. okurigana
else
insert(parents, {
name = "Kanji mengikut bacaan" .. (period_text or "") .. " " .. reading_type,
sort = (lang:makeSortKey(reading))
})
breadcrumb = reading
end
if is_on_subtype(reading_type) then
insert(parents, {name = "Kanji dengan bacaan" .. (period_text or "") .. " on " .. reading, sort = reading_type})
elseif period_text then
insert(parents, {name = "Kanji dengan bacaan" .. period_text .. " " .. reading, sort = reading_type})
end
if not period_text then
insert(parents, {name = "Kanji dibaca sebagai " .. reading, sort = reading_type})
end
return {
description = "Aksara [[kanji]] bahasa {{{langname}}} dengan bacaan " .. reading_type_link .. " " ..
get_reading_link(reading, lang, period or reading_type) .. ".",
displaytitle = "{{{langname}}} " .. label_pref .. get_tagged_reading(reading, lang),
breadcrumb = get_tagged_reading(breadcrumb, lang),
parents = parents,
}
end)
insert(handlers, function(data)
local period, reading_type = match(data.label, "^[Kk]anji mengikut bacaan ([a-z]-) ?([%a']+)$")
if not period then
return
end
period = period ~= "" and period or nil
local period_text, reading_type_link = get_period_text_and_reading_type_link(period, reading_type)
if not reading_type_link then
return nil
end
-- Compute parents.
local parents = {
is_on_subtype(reading_type) and {name = "Kanji mengikut bacaan" .. (period_text or "") .. " on", sort = reading_type} or
period_text and {name = "Kanji mengikut bacaan " .. reading_type, sort = period} or
{name = "Kanji mengikut bacaan", sort = reading_type}
}
if period_text then
insert(parents, {name = "Kanji mengikut bacaan" .. period_text, sort = reading_type})
end
-- Compute description.
local description = "[[kanji|Kanji]] bahasa {{{langname}}} dikategorikan mengikat bacaan " .. (period_text or "") .. reading_type_link .. "."
return {
description = description,
breadcrumb = reading_type .. (period_text or ""),
parents = parents,
}
end)
insert(handlers, function(data)
local label_pref, reading = match(data.label, "^([Kk]anji dibaca sebagai )" .. kana_capture .. "$")
if not reading then
return
end
local args = require("Module:parameters").process(data.args, {
["histconsol"] = true,
})
local lang = data.lang
local parents, breadcrumb = {}
if reading:find("・", 1, true) then
local okurigana = reading:match("・(.*)")
insert(parents, {
name = "Kanji dibaca sebagai " .. reading:match("(.-)・"),
-- Sort by okurigana, since all coordinate categories will have the same furigana.
sort = (lang:makeSortKey(okurigana))
})
breadcrumb = "~" .. okurigana
else
insert(parents, {
name = "Kanji mengikut bacaan",
sort = (lang:makeSortKey(reading))
})
breadcrumb = reading
end
local addl
local period_text
if args.histconsol then
period_text = "lama"
addl = ("This is a [[Wikipedia:Historical kana orthography|historical]] [[Wikipedia:Kanazukai|reading]], now " ..
"consolidated with the [[Wikipedia:Modern kana usage|modern reading]] of " ..
get_reading_link(args.histconsol, lang, nil, ("Kategori:Kanji dibaca sebagai %s bahasa Jepun"):format(args.histconsol)) .. ".")
end
return {
description = "[[kanji|Kanji]] bahasa {{{langname}}} dibaca sebagai " .. get_reading_link(reading, lang, period_text) .. ".",
additional = addl,
displaytitle = label_pref .. get_tagged_reading(reading, lang) .. " bahasa {{{langname}}}" ,
breadcrumb = get_tagged_reading(breadcrumb, lang),
parents = parents,
}, true
end)
insert(handlers, function(data)
local label_pref, reading = match(data.label, "^([Pp]erkataan dieja dengan kanji dibaca sebagai )" .. kana_capture .. "$")
if not reading then
return
end
-- Compute parents.
local lang = data.lang
local sort_key = (lang:makeSortKey(reading))
local mora_count = require("Module:ja").count_morae(reading)
local mora_count_words = m_numeric.spell_number(tostring(mora_count))
local parents = {
{name = "Perkataan mengikut bacaan kanji", sort = sort_key},
{name = "Bacaan kanji dengan " .. mora_count_words .. " mora", sort = sort_key},
{name = "Kanji dibaca sebagai " .. reading, sort = " "},
}
local tagged_reading = get_tagged_reading(reading, lang)
return {
description = "{{{langname}}} terms that contain kanji that exhibit a reading of " .. get_reading_link(reading, lang) ..
" in those terms prior to any sound changes.",
displaytitle = "{{{langname}}} " .. label_pref .. tagged_reading,
breadcrumb = tagged_reading,
parents = parents,
}
end)
insert(handlers, function(data)
local kanji, reading = match(data.label, "^[Pp]erkataan dieja dengan (.) dibaca sebagai " .. kana_capture .. "$")
if not kanji then
return nil
end
local args = require("Module:parameters").process(data.args, {
[1] = {list = true},
})
local lang = data.lang
if #args[1] == 0 then
error("Bagi kategori dalam bentuk \"" .. lang:getCanonicalName() ..
" terms spelled with KANJI dibaca sebagai READING\", at least one reading type (e.g. <code>kun</code> or <code>on</code>) must be specified using <code>1=</code>, <code>2=</code>, <code>3=</code>, etc.")
end
local yomi_types, parents = {}, {}
for _, yomi, category in ipairs(args[1]) do
local yomi_data = yomi_data[yomi]
if not yomi_data then
error("Jenis yomi \"" .. yomi .. "\" tidak sah.")
end
category = yomi_data.kanji_category
if not category then
error("Jenis yomi \"" .. yomi .. "\" tidak sah bagi jenis kategori ini.")
end
insert(yomi_types, yomi_data.link)
insert(parents, {
name = "Perkataan dieja dengan kanji dengan bacaan " .. category,
sort = (lang:makeSortKey(reading))
})
end
insert(parents, 1, {name = "Perkataan dieja dengan " .. kanji, sort = (lang:makeSortKey(reading))})
insert(parents, 2, {name = "Perkataan dieja dengan kanji dibaca sebagai " .. reading, sort = Hani_sort(kanji)})
yomi_types = (#yomi_types > 1 and "one of " or "") .. "its " ..
require("Module:table").serialCommaJoin(yomi_types, {conj = "or"}) ..
" reading" .. (#yomi_types > 1 and "s" or "")
local tagged_kanji = get_tagged_reading(kanji, lang)
local tagged_reading = get_tagged_reading(reading, lang)
return {
description = "{{{langname}}} terms spelled with {{l|{{{langcode}}}|" .. kanji .. "}} with " ..
yomi_types .. " of " .. get_reading_link(reading, lang) .. ".",
displaytitle = "{{{langname}}} terms spelled with " .. tagged_kanji .. " dibaca sebagai " .. tagged_reading,
breadcrumb = "dibaca sebagai " .. tagged_reading,
parents = parents,
}, true
end)
insert(handlers, function(data)
local affix, kanji, reading = data.label:match("^[Pp]erkataan dengan ([a-z]) (.+) dibaca sebagai " .. kana_capture .. "$")
if not affix or not kanji or not reading then
return nil
end
local args = require("Module:parameters").process(data.args, {
[1] = {list = true},
})
local lang = data.lang
if #args[1] == 0 then
error("For categories of the form \"" .. lang:getCanonicalName() ..
" terms AFFIXed with KANJI dibaca sebagai READING\", at least one reading type (e.g. <code>kun</code> or <code>on</code>) must be specified using <code>1=</code>, <code>2=</code>, <code>3=</code>, etc.")
end
local yomi_types = {}
for _, yomi, category in ipairs(args[1]) do
local yomi_data = yomi_data[yomi]
if not yomi_data then
error("The yomi type \"" .. yomi .. "\" is not recognized.")
end
category = yomi_data.kanji_category
if not category then
error("The yomi type \"" .. yomi .. "\" is not valid for this type of category.")
end
insert(yomi_types, yomi_data.link)
end
yomi_types = (#yomi_types > 1 and "one of " or "") .. "its " ..
require("Module:table").serialCommaJoin(yomi_types, {conj = "or"}) ..
" reading" .. (#yomi_types > 1 and "s" or "")
local tagged_kanji = get_tagged_reading(kanji, lang)
local tagged_reading = get_tagged_reading(reading, lang)
return {
description = "{{{langname}}} terms " .. affix .. "ed with {{l|{{{langcode}}}|" .. kanji .. "}} with " ..
yomi_types .. " of " .. get_reading_link(reading, lang) .. ".",
displaytitle = "{{{langname}}} terms " .. affix .. "ed with " .. tagged_kanji .. " dibaca sebagai " .. tagged_reading,
breadcrumb = "dibaca sebagai " .. reading,
parents = {
{name = "terms " .. affix .. "ed with " .. kanji, sort = (lang:makeSortKey(reading))},
--{name = "Perkataan dieja dengan " .. kanji .. " dibaca sebagai " .. reading, sort = (lang:makeSortKey(reading)), args=data.args}
},
}, true
end)
insert(handlers, function(data)
local kanji, daiyoji = match(data.label, "^[Pp]erkataan dengan (.) digantikan oleh daiyōji (.)$")
if not kanji then
return nil
end
local args = require("Module:parameters").process(data.args, {
["sort"] = true,
})
local lang = data.lang
if not args.sort then
error("For categories of the form \"" .. lang:getCanonicalName() ..
" terms with KANJI replaced by daiyōji DAIYOJI\", the sort key must be specified using sort=")
end
local tagged_kanji = get_tagged_reading(kanji, lang)
local tagged_daiyoji = get_tagged_reading(daiyoji, lang)
return {
description = "{{{langname}}} terms with {{l|{{{langcode}}}|" .. kanji .. "}} replaced by [[Appendix:Japanese glossary#daiyouji|daiyōji]] {{l|{{{langcode}}}|" .. daiyoji .. "}}.",
displaytitle = "{{{langname}}} terms with " .. tagged_kanji .. " replaced by daiyōji " .. tagged_daiyoji,
breadcrumb = tagged_kanji .. " replaced by daiyōji " .. tagged_daiyoji,
parents = {{name = "Perkataan dieja dengan daiyōji", sort = args.sort}},
}, true
end)
return {LABELS = labels, HANDLERS = handlers}
7h0jisnzry3hhyetwxu8uf9z2feq5t3
342767
342766
2026-05-16T04:40:21Z
Hakimi97
2668
Membatalkan semakan [[Special:Diff/342766|342766]] oleh [[Special:Contributions/Hakimi97|Hakimi97]] ([[User talk:Hakimi97|bincang]])
342767
Scribunto
text/plain
local labels = {}
local handlers = {}
local m_str_utils = require("Module:string utilities")
local concat = table.concat
local full_link = require("Module:links").full_link
local insert = table.insert
local Hani_sort = require("Module:Hani-sortkey").makeSortKey
local match = m_str_utils.match
local sort = table.sort
local tag_text = require("Module:script_utilities").tag_text
local ucfirst = m_str_utils.ucfirst
local Hira = require("Module:scripts").getByCode("Hira")
local Jpan = require("Module:scripts").getByCode("Jpan")
local kana_to_romaji = require("Module:Hrkt-translit").tr
local m_numeric = require("Module:ConvertNumeric")
local kana_capture = "([-" .. require("Module:ja/data/range").kana .. "・]+)"
local yomi_data = require("Module:kanjitab/data")
labels["adnominals"] = {
description = "{{{langname}}} adnominals, or {{ja-r|連%体%詞|れん%たい%し}}, which modify nouns, and do not conjugate or [[predicate#Verb|predicate]].",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Hiragana"] = {
description = "{{{langname}}} terms with hiragana {{mdash}} {{ja-r|平%仮%名|ひら%が%な}} {{mdash}} forms, sorted by conventional hiragana sequence. The hiragana form is a [[phonetic]] representation of that word. " ..
"Wiktionary represents {{{langname}}}-language segments in three ways: in normal form (with [[kanji]], if appropriate), in [[hiragana]] " ..
"form (this differs from kanji form only when the segment contains kanji), and in [[romaji]] form.",
additional = "''Lihat juga'' [[:Kategori:Katakana bahasa {{{langname}}}]]",
toc_template = "categoryTOC-hiragana",
parents = {
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Hiragana",
}
}
labels["historical hiragana"] = {
description = "{{{langname}}} historical [[hiragana]].",
additional = "''See also'' [[:Category:{{{langname}}} historical katakana]].",
toc_template = "categoryTOC-hiragana",
parents = {
"Hiragana",
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Hiragana",
}
}
labels["Katakana"] = {
description = "{{{langname}}} terms with katakana {{mdash}} {{ja-r|片%仮%名|かた%か%な}} {{mdash}} forms, sorted by conventional katakana sequence. Katakana is used primarily for transliterations of foreign words, including old Chinese hanzi not used in [[shinjitai]].",
additional = "''Lihat juga'' [[:Kategori:Hiragana bahasa {{{langname}}}]]",
toc_template = "categoryTOC-katakana",
parents = {
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Katakana",
}
}
labels["historical katakana"] = {
description = "{{{langname}}} historical [[katakana]].",
additional = "''See also'' [[:Category:{{{langname}}} historical hiragana]].",
toc_template = "categoryTOC-katakana",
parents = {
"Katakana",
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Katakana",
}
}
labels["Perkataan dieja dengan kana campuran"] = {
description = "{{{langname}}} terms which combine [[hiragana]] and [[katakana]] characters, potentially with [[kanji]] too.",
parents = {
{name = "{{{langcat}}}", raw = true},
"Hiragana",
"Katakana",
},
}
labels["Kanji"] = {
topright = "{{wp|Kanji}}",
description = "Simbol bahasa {{{langname}}} yang merupakan sebahagian daripada tulisan logogram Han, yang boleh mewakili bunyi atau menyampaikan makna secara langsung.",
toc_template = "Hani-categoryTOC",
umbrella = "Aksara Han",
parents = "Logogram",
}
labels["Kanji mengikut bacaan"] = {
description = "Kanji bahasa {{{langname}}} yang dikategorikan mengikut bacaan.",
parents = {{name = "Kanji", sort = "bacaan"}},
}
labels["Makurakotoba"] = {
topright = "{{wp|Makurakotoba}}",
description = "{{{langname}}} idioms used in poetry to introduce specific words.",
parents = {"Peribahasa"},
}
labels["Perkataan mengikut bacaan kanji"] = {
description = "Kategori bahasa {{{langname}}} yang dikumpulkan berdasarkan bacaan kanji yang dieja dengannya.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan mengikut pola bacaan"] = {
description = "Kategori bahasa {{{langname}}} dengan perkataan yang dikumpulkan berdasarkan corak bacaannya.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan mengikut bilangan aksara kanji"] = {
description = "Perkataan bahasa {{{langname}}} dikategorikan mengikut bilangan aksara kanji.",
parents = {"Perkataan mengikut sifat ortografi"},
}
local function handle_onyomi_list(category, category_type, cat_yomi_type)
local onyomi, seen = {}, {}
for _, yomi in pairs(yomi_data) do
if not seen[yomi] and yomi.onyomi then
local yomi_catname = yomi[category_type]
if yomi_catname ~= false then
local yomi_type = yomi.type
if yomi_type ~= "on'yomi" and yomi_type ~= cat_yomi_type then
insert(onyomi, "[[:Kategori:" .. category:gsub("{{{yomi_catname}}}", yomi_catname) .. " bahasa {{{langname}}}]]")
end
end
end
seen[yomi] = true
end
sort(onyomi)
return onyomi
end
local function add_yomi_category(category, category_type, parent, description)
for _, yomi in pairs(yomi_data) do
local yomi_catname = yomi[category_type]
if yomi_catname ~= false then
local yomi_type = yomi.type
local yomi_desc = yomi.link or yomi_catname
if yomi.description then
yomi_desc = yomi_desc .. "; " .. yomi.description
end
local label = {
description = description .. " " .. yomi_desc .. ".",
breadcrumb = yomi_type,
parents = {{name = parent, sort = yomi_catname}},
}
if yomi.onyomi then
local onyomi = handle_onyomi_list(category, category_type, yomi_type)
label.additional = "Kategori untuk perkataan dengan " ..
(yomi_type == "on'yomi" and "pelbagai lagi" or "lain-lain") ..
" jenis spesifik bacaan on'yomi boleh ditemukan pada kategori berikut:\n* " .. concat(onyomi, "\n* ")
if yomi_type ~= "on'yomi" then
insert(label.parents, 1, {
name = (category:gsub("{{{yomi_catname}}}", yomi_data.on[category_type])),
sort = yomi_catname
})
end
end
labels[category:gsub("{{{yomi_catname}}}", yomi_catname)] = label
end
end
end
add_yomi_category(
"Perkataan dengan bacaan {{{yomi_catname}}}",
"reading_category",
"Perkataan mengikut pola bacaan",
"Perkataan bahasa {{{langname}}} dengan bacaan"
)
add_yomi_category(
"Perkataan dieja dengan kanji dengan bacaan {{{yomi_catname}}}",
"kanji_category",
"Perkataan mengikut jenis bacaan kanji",
"Kategori bahasa {{{langname}}} dengan perkataan yang dieja dengan satu atau lebih banyak aksara kanji dengan bacaan"
)
labels["Perkataan kehilangan yomi"] = {
description = "Perkataan bahasa {{{langname}}} yang kehilangan satu atau lebih [[Lampiran:Glosari bahasa Jepun#yomi|yomi]] dalam {{tl|{{{langcode}}}-kanjitab}}.",
hidden = true,
can_be_empty = true,
parents = {"Penyelenggaraan entri"},
}
labels["terms with IPA pronunciation with pitch accent"] = {
description = "{{{langname}}} terms with pronunciations that have {{w|Japanese pitch accent|pitch accent}} specified.",
additional = "Pitch accent can be specified in {{tl|{{{langcode}}}-pron}} with the {{code|=acc=}} parameter.",
can_be_empty = true,
parents = {"Penyelenggaraan entri", "pitch accent"},
}
labels["terms with IPA pronunciation missing pitch accent"] = {
description = "{{{langname}}} terms with pronunciations that do not have a {{w|Japanese pitch accent|pitch accent}} specified.",
additional = "Pitch accent can be specified in {{tl|{{{langcode}}}-pron}} with the {{code|=acc=}} parameter.",
hidden = true,
can_be_empty = true,
parents = {"Penyelenggaraan entri"},
}
labels["pitch accent"] = {
description = "{{{langname}}} terms regarding {{w|Japanese pitch accent|pitch accent}} pronunciation.",
can_be_empty = true,
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["terms with Heiban pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[平板型|Heiban]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Atamadaka pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[頭高型|Atamadaka]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Nakadaka pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[中高型|Nakadaka]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Odaka pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[尾高型|Odaka]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["pitch accent deaccenting before の"] = {
description = "{{{langname}}} terms with {{w|Japanese pitch accent|pitch accent}} pronunciations that have exceptional deaccenting or lack thereof before の ({{ja-deaccenting-before-no}}).",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Odaka pitch accent not deaccented before の (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[尾高型|Odaka]] {{w|Japanese pitch accent|pitch accent}} and do not become deaccented before の ({{ja-deaccenting-before-no}}).",
can_be_empty = true,
parents = {"pitch accent deaccenting before の"}
}
labels["terms with Nakadaka pitch accent deaccented before の (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[中高型|Nakadaka]] {{w|Japanese pitch accent|pitch accent}} and become deaccented before の ({{ja-deaccenting-before-no}}).",
can_be_empty = true,
parents = {"pitch accent deaccenting before の"}
}
labels["Perkataan mengikut jenis bacaan kanji"] = {
description = "{{{langname}}} categories with terms grouped with regard to the types of readings of the kanji with which " ..
"they are spelled; broadly, those of Chinese origin, {{ja-r|音|おん}} readings, and those of non-Chinese origin, {{ja-r|訓|くん}} readings.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan dieja dengan ateji"] = {
topright = "{{wp|Ateji}}",
description = "{{{langname}}} terms containing one or more [[Appendix:Japanese glossary#ateji|ateji]] {{mdash}} {{ja-r|当て字|あてじ}} {{mdash}} which are [[kanji]] used to represent sounds rather than meanings (though meaning may have some influence on which kanji are chosen).",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan dieja dengan daiyōji"] = {
description = "Japanese terms spelled using [[Appendix:Japanese glossary#daiyouji|daiyōji]], categorized using {{temp|ja-daiyouji}}.",
parents = {"Perkataan mengikut etimologi"},
}
labels["Perkataan dieja dengan jukujikun"] = {
description = "{{{langname}}} terms containing one or more [[Appendix:Japanese glossary#jukujikun|jukujikun]] {{mdash}} {{ja-r|熟%字%訓|じゅく%じ%くん}} {{mdash}} which are [[kanji]] used to represent meanings rather than sounds.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
local function add_grade_categories(grade, desc, wp, only_one, parent, sort)
local grade_kanji = "Kanji " .. grade
local topright = wp and ("{{wp|%s}}"):format(ucfirst(grade_kanji)) or nil
labels[grade_kanji] = {
topright = topright,
description = "Kanji bahasa {{{langname}}} " .. desc,
toc_template = "Hani-categoryTOC",
parents = {{
name = parent and ("Kanji " .. parent) or "Kanji",
sort = sort or grade
}},
}
labels["Perkataan dieja dengan " .. grade_kanji:lower()] = {
topright = topright,
description = "Perkataan bahasa {{{langname}}} yang dieja dengan " .. (only_one and "sekurang-kurangnya satu " or "") .. " aksara kanji " .. desc,
parents = {{
name = parent and ("Perkataan dieja dengan kanji " .. parent) or "Perkataan mengikut sifat ortografi",
sort = sort or grade
}},
}
end
for i = 1, 6 do
local ord = m_numeric.ones_position_ord[i]
add_grade_categories(
"gred " .. ord,
"diajar dalam gred " .. ord .. " sekolah rendah, seperti yang ditetapkan oleh senarai rasmi {{ja-r|教%育 漢%字|きょう%いく かん%じ|sukatan pendidikan kanji}}.",
false,
false,
"kyōiku",
i
)
end
add_grade_categories(
"kyōiku",
"pada senarai rasmi {{ja-r|教%育 漢%字|きょう%いく かん%じ|sukatan pendidikan kanji}}.",
true,
false,
"jōyō"
)
add_grade_categories(
"sekolah menengah",
"pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}} yang secara umumnya diajar pada peringkat sekolah menengah.",
false,
false,
"jōyō"
)
add_grade_categories(
"jōyō",
"pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}}.",
true,
false
)
add_grade_categories(
"tōyō",
"pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}}, yang digunakan pada sekitar tahun 1946{{ndash}}1981 sehingga penerbitan senarai {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}}.",
true,
false
)
add_grade_categories(
"jinmeiyō",
"pada senarai rasmi {{ja-r|人%名%用 漢%字|じん%めい%-よう かん%じ|kanji untuk kegunaan nama peribadi}}.",
true,
true
)
add_grade_categories(
"hyōgai",
"tidak termasuk pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara kegunaan kerap}} atau {{ja-r|人%名%用 漢%字|じん%めい%-よう かん%じ|kanji untuk kegunaan nama peribadi}}, yang dikenali sebagai {{ja-r|表%外 漢%字|ひょう%がい かん%じ}} atau {{ja-r|表%外%字|ひょう%がい%じ|aksara tidak tersenarai}}.",
true,
true
)
labels["Perkataan dengan berbilang bacaan"] = {
description = "Perkataan bahasa {{{langname}}} dengan berbilang cara sebutan (maka juga sama dengan berbilang ejaan [[kana]]).",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Bacaan kanji mengikut bilangan mora"] = {
description = "Kategori-kategori bahasa {{{langname}}} dikumpulkan berdasarkan bilangan mora dalam bacaan kanji.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan kanji tunggal"] = {
description = "Perkataan {{{langname}}} yang ditulis dengan kanji tunggal.",
parents = {
"Perkataan mengikut sifat ortografi",
{name = "Perkataan dengan 1 aksara kanji", sort = " "},
},
}
labels["kanji with kun readings missing okurigana designation"] = {
breadcrumb = "Kanji missing okurigana designation",
description = "{{{langname}}} kanji entries in which one or more kun readings entered into {{tl|{{{langcode}}}-readings}} is missing a hyphen denoting okurigana.",
toc_template = "Hani-categoryTOC",
hidden = true,
can_be_empty = true,
parents = {"Penyelenggaraan entri"},
}
labels["Perkataan mengikut aksara individu dalam ejaan sejarah"] = {
breadcrumb = "Bersejarah",
description = "{{{langname}}} terms categorized by whether their spellings in the {{w|historical kana orthography}} included certain individual characters.",
parents = {{name = "Perkataan mengikut aksara individu", sort = " "}},
}
labels["Kata kerja tanpa ketransitifan"] = {
description = "{{{langname}}} verbs missing the {{code|=tr=}} parameter from their headword templates.",
hidden = true,
can_be_empty = true,
parents = {"Penyelenggaraan entri"},
}
labels["Yojijukugo"] = {
topright = "{{wp|Yojijukugo}}",
description = "{{{langname}}} four-[[kanji]] compound terms, {{ja-r|四%字 熟%語|よ%じ じゅく%ご}}, with idiomatic meanings; typically derived from Classical Chinese, Buddhist scripture or traditional Japanese proverbs.",
additional = "Compare Chinese {{w|chengyu}} and Korean {{w|sajaseong-eo}}.",
umbrella = "peribahasa empat aksara",
parents = {"Peribahasa"},
}
-- FIXME: Only works for 0 through 19.
local word_to_number = {}
for k, v in pairs(m_numeric.ones_position) do
word_to_number[v] = k
end
local periods = {
lama = true,
kuno = true,
}
local function get_period_text_and_reading_type_link(period, reading_type)
if period and not periods[period] then
return nil
end
local period_text = period and " " .. period or nil
-- Allow periods (historical or ancient) by themselves; they will parse as reading types.
if not period and periods[reading_type] then
return nil, reading_type
end
local reading_type_link = "[[Lampiran:Glosari bahasa Jepun#" .. reading_type .. "|" .. reading_type .. "]]"
return period_text, reading_type_link
end
local function get_sc(str)
return match(str:gsub("[%s%p]+", ""), "[^" .. Hira:getCharacters() .. "]") and Jpan or Hira
end
local function get_tagged_reading(reading, lang)
return tag_text(reading, lang, get_sc(reading))
end
local function get_reading_link(reading, lang, period, link)
local hist = periods[period]
reading = reading:gsub("[%.%-%s]+", "")
return full_link({
lang = lang,
sc = get_sc(reading),
term = link or reading:gsub("・", ""),
-- If we have okurigana, demarcate furigana.
alt = reading:gsub("^(.-)・", "<span style=\"border-top:1px solid;position:relative;padding:1px;\">%1<span style=\"position:absolute;top:0;bottom:67%%;right:0%%;border-right:1px solid;\"></span></span>"),
tr = kana_to_romaji((reading:gsub("・", ".")), lang:getCode(), nil, {keep_dot = true, hist = hist})
:gsub("^(.-)%.", "<u>%1</u>"),
pos = reading:find("・", 1, true) and get_tagged_reading((reading:gsub("^.-・", "~")), lang) or nil
}, "term")
end
local function is_on_subtype(reading_type)
return reading_type:find(".on$")
end
insert(handlers, function(data)
local n =data.label:match("^Perkataan dengan ([1-9]%d*) aksara kanji$")
if not n then
return
end
local sortkey = require("Module:category tree").numeral_sortkey(n, 2097152)
return {
breadcrumb = n,
description = ("Perkataan bahasa {{{langname}}} yang mengandungi tepat %d aksara kanji."):format(n),
-- TODO: implement this using the same mechanism used to implement parents (i.e. avoiding the need for raw categories).
-- umbrella = {
-- breadcrumb = ("%d kanji"):format(n),
-- parents = {{name = "terms by number of kanji subcategories by language", sort = sortkey}},
-- },
parents = {{name = ("Perkataan mengikut bilangan aksara kanji"), sort = sortkey}}
}
end)
insert(handlers, function(data)
local label_pref, kana = data.label:match("^(Perkataan yang mengikut sejarah dieja dengan )" .. kana_capture .. "$")
if not kana then
return
end
local lang = data.lang
return {
description = "Perkataan bahasa {{{langname}}} yang dieja dengan " .. get_reading_link(kana, lang, "bersejarah") .. " dalam {{w|ortografi kana sejarawi}}.",
displaytitle = label_pref .. get_tagged_reading(kana, lang) .. " bahasa {{{langname}}}",
breadcrumb = "sejarah",
parents = {
{name = "Perkataan dieja dengan " .. kana, sort = " "},
{name = "Perkataan mengikut aksara individu dalam ejaan sejarah", sort = lang:makeSortKey(kana)}
},
}
end)
insert(handlers, function(data)
local count, plural = data.label:match("^Bacaan kanji dengan (.+) mora$")
local num = word_to_number[count]
if not num then
return nil
end
return {
description = "Bacaan kanji bahasa {{{langname}}} yang mengandungi " .. count .. " mora.",
breadcrumb = num,
parents = {{name = "Bacaan kanji mengikut bilangan mora", sort = num}},
}
end)
insert(handlers, function(data)
local label_pref, period, reading_type, reading = match(data.label, "^(Kanji dengan bacaan ([a-z]-) ?([%a']+) )" .. kana_capture .. "$")
if not period then
return
end
period = period ~= "" and period or nil
local period_text, reading_type_link = get_period_text_and_reading_type_link(period, reading_type)
if not reading_type_link then
return
end
local lang = data.lang
-- Compute parents.
local parents, breadcrumb = {}
if reading:find("・", 1, true) then
local okurigana = reading:match("・(.*)")
insert(parents, {
name = "Kanji dengan bacaan" .. (period_text or "") .. " ".. reading_type .. " " .. reading:match("(.-)・"),
-- Sort by okurigana, since all coordinate categories will have the same furigana.
sort = (lang:makeSortKey(okurigana))
})
breadcrumb = "~" .. okurigana
else
insert(parents, {
name = "Kanji mengikut bacaan" .. (period_text or "") .. " " .. reading_type,
sort = (lang:makeSortKey(reading))
})
breadcrumb = reading
end
if is_on_subtype(reading_type) then
insert(parents, {name = "Kanji dengan bacaan" .. (period_text or "") .. " on " .. reading, sort = reading_type})
elseif period_text then
insert(parents, {name = "Kanji dengan bacaan" .. period_text .. " " .. reading, sort = reading_type})
end
if not period_text then
insert(parents, {name = "Kanji dibaca sebagai " .. reading, sort = reading_type})
end
return {
description = "Aksara [[kanji]] bahasa {{{langname}}} dengan bacaan " .. reading_type_link .. " " ..
get_reading_link(reading, lang, period or reading_type) .. ".",
displaytitle = "{{{langname}}} " .. label_pref .. get_tagged_reading(reading, lang),
breadcrumb = get_tagged_reading(breadcrumb, lang),
parents = parents,
}
end)
insert(handlers, function(data)
local period, reading_type = match(data.label, "^Kanji mengikut bacaan ([a-z]-) ?([%a']+)$")
if not period then
return
end
period = period ~= "" and period or nil
local period_text, reading_type_link = get_period_text_and_reading_type_link(period, reading_type)
if not reading_type_link then
return nil
end
-- Compute parents.
local parents = {
is_on_subtype(reading_type) and {name = "Kanji mengikut bacaan" .. (period_text or "") .. " on", sort = reading_type} or
period_text and {name = "Kanji mengikut bacaan " .. reading_type, sort = period} or
{name = "Kanji mengikut bacaan", sort = reading_type}
}
if period_text then
insert(parents, {name = "Kanji mengikut bacaan" .. period_text, sort = reading_type})
end
-- Compute description.
local description = "[[kanji|Kanji]] bahasa {{{langname}}} dikategorikan mengikat bacaan " .. (period_text or "") .. reading_type_link .. "."
return {
description = description,
breadcrumb = reading_type .. (period_text or ""),
parents = parents,
}
end)
insert(handlers, function(data)
local label_pref, reading = match(data.label, "^(Kanji dibaca sebagai )" .. kana_capture .. "$")
if not reading then
return
end
local args = require("Module:parameters").process(data.args, {
["histconsol"] = true,
})
local lang = data.lang
local parents, breadcrumb = {}
if reading:find("・", 1, true) then
local okurigana = reading:match("・(.*)")
insert(parents, {
name = "Kanji dibaca sebagai " .. reading:match("(.-)・"),
-- Sort by okurigana, since all coordinate categories will have the same furigana.
sort = (lang:makeSortKey(okurigana))
})
breadcrumb = "~" .. okurigana
else
insert(parents, {
name = "Kanji mengikut bacaan",
sort = (lang:makeSortKey(reading))
})
breadcrumb = reading
end
local addl
local period_text
if args.histconsol then
period_text = "lama"
addl = ("This is a [[Wikipedia:Historical kana orthography|historical]] [[Wikipedia:Kanazukai|reading]], now " ..
"consolidated with the [[Wikipedia:Modern kana usage|modern reading]] of " ..
get_reading_link(args.histconsol, lang, nil, ("Kategori:Kanji dibaca sebagai %s bahasa Jepun"):format(args.histconsol)) .. ".")
end
return {
description = "[[kanji|Kanji]] bahasa {{{langname}}} dibaca sebagai " .. get_reading_link(reading, lang, period_text) .. ".",
additional = addl,
displaytitle = label_pref .. get_tagged_reading(reading, lang) .. " bahasa {{{langname}}}" ,
breadcrumb = get_tagged_reading(breadcrumb, lang),
parents = parents,
}, true
end)
insert(handlers, function(data)
local label_pref, reading = match(data.label, "^(Perkataan dieja dengan kanji dibaca sebagai )" .. kana_capture .. "$")
if not reading then
return
end
-- Compute parents.
local lang = data.lang
local sort_key = (lang:makeSortKey(reading))
local mora_count = require("Module:ja").count_morae(reading)
local mora_count_words = m_numeric.spell_number(tostring(mora_count))
local parents = {
{name = "Perkataan mengikut bacaan kanji", sort = sort_key},
{name = "Bacaan kanji dengan " .. mora_count_words .. " mora", sort = sort_key},
{name = "Kanji dibaca sebagai " .. reading, sort = " "},
}
local tagged_reading = get_tagged_reading(reading, lang)
return {
description = "{{{langname}}} terms that contain kanji that exhibit a reading of " .. get_reading_link(reading, lang) ..
" in those terms prior to any sound changes.",
displaytitle = "{{{langname}}} " .. label_pref .. tagged_reading,
breadcrumb = tagged_reading,
parents = parents,
}
end)
insert(handlers, function(data)
local kanji, reading = match(data.label, "^Perkataan dieja dengan (.) dibaca sebagai " .. kana_capture .. "$")
if not kanji then
return nil
end
local args = require("Module:parameters").process(data.args, {
[1] = {list = true},
})
local lang = data.lang
if #args[1] == 0 then
error("Bagi kategori dalam bentuk \"" .. lang:getCanonicalName() ..
" terms spelled with KANJI dibaca sebagai READING\", at least one reading type (e.g. <code>kun</code> or <code>on</code>) must be specified using <code>1=</code>, <code>2=</code>, <code>3=</code>, etc.")
end
local yomi_types, parents = {}, {}
for _, yomi, category in ipairs(args[1]) do
local yomi_data = yomi_data[yomi]
if not yomi_data then
error("Jenis yomi \"" .. yomi .. "\" tidak sah.")
end
category = yomi_data.kanji_category
if not category then
error("Jenis yomi \"" .. yomi .. "\" tidak sah bagi jenis kategori ini.")
end
insert(yomi_types, yomi_data.link)
insert(parents, {
name = "Perkataan dieja dengan kanji dengan bacaan " .. category,
sort = (lang:makeSortKey(reading))
})
end
insert(parents, 1, {name = "Perkataan dieja dengan " .. kanji, sort = (lang:makeSortKey(reading))})
insert(parents, 2, {name = "Perkataan dieja dengan kanji dibaca sebagai " .. reading, sort = Hani_sort(kanji)})
yomi_types = (#yomi_types > 1 and "one of " or "") .. "its " ..
require("Module:table").serialCommaJoin(yomi_types, {conj = "or"}) ..
" reading" .. (#yomi_types > 1 and "s" or "")
local tagged_kanji = get_tagged_reading(kanji, lang)
local tagged_reading = get_tagged_reading(reading, lang)
return {
description = "{{{langname}}} terms spelled with {{l|{{{langcode}}}|" .. kanji .. "}} with " ..
yomi_types .. " of " .. get_reading_link(reading, lang) .. ".",
displaytitle = "{{{langname}}} terms spelled with " .. tagged_kanji .. " dibaca sebagai " .. tagged_reading,
breadcrumb = "dibaca sebagai " .. tagged_reading,
parents = parents,
}, true
end)
insert(handlers, function(data)
local affix, kanji, reading = data.label:match("^Perkataan dengan ([a-z]) (.+) dibaca sebagai " .. kana_capture .. "$")
if not affix or not kanji or not reading then
return nil
end
local args = require("Module:parameters").process(data.args, {
[1] = {list = true},
})
local lang = data.lang
if #args[1] == 0 then
error("For categories of the form \"" .. lang:getCanonicalName() ..
" terms AFFIXed with KANJI dibaca sebagai READING\", at least one reading type (e.g. <code>kun</code> or <code>on</code>) must be specified using <code>1=</code>, <code>2=</code>, <code>3=</code>, etc.")
end
local yomi_types = {}
for _, yomi, category in ipairs(args[1]) do
local yomi_data = yomi_data[yomi]
if not yomi_data then
error("The yomi type \"" .. yomi .. "\" is not recognized.")
end
category = yomi_data.kanji_category
if not category then
error("The yomi type \"" .. yomi .. "\" is not valid for this type of category.")
end
insert(yomi_types, yomi_data.link)
end
yomi_types = (#yomi_types > 1 and "one of " or "") .. "its " ..
require("Module:table").serialCommaJoin(yomi_types, {conj = "or"}) ..
" reading" .. (#yomi_types > 1 and "s" or "")
local tagged_kanji = get_tagged_reading(kanji, lang)
local tagged_reading = get_tagged_reading(reading, lang)
return {
description = "{{{langname}}} terms " .. affix .. "ed with {{l|{{{langcode}}}|" .. kanji .. "}} with " ..
yomi_types .. " of " .. get_reading_link(reading, lang) .. ".",
displaytitle = "{{{langname}}} terms " .. affix .. "ed with " .. tagged_kanji .. " dibaca sebagai " .. tagged_reading,
breadcrumb = "dibaca sebagai " .. reading,
parents = {
{name = "terms " .. affix .. "ed with " .. kanji, sort = (lang:makeSortKey(reading))},
--{name = "Perkataan dieja dengan " .. kanji .. " dibaca sebagai " .. reading, sort = (lang:makeSortKey(reading)), args=data.args}
},
}, true
end)
insert(handlers, function(data)
local kanji, daiyoji = match(data.label, "^Perkataan dengan (.) digantikan oleh daiyōji (.)$")
if not kanji then
return nil
end
local args = require("Module:parameters").process(data.args, {
["sort"] = true,
})
local lang = data.lang
if not args.sort then
error("For categories of the form \"" .. lang:getCanonicalName() ..
" terms with KANJI replaced by daiyōji DAIYOJI\", the sort key must be specified using sort=")
end
local tagged_kanji = get_tagged_reading(kanji, lang)
local tagged_daiyoji = get_tagged_reading(daiyoji, lang)
return {
description = "{{{langname}}} terms with {{l|{{{langcode}}}|" .. kanji .. "}} replaced by [[Appendix:Japanese glossary#daiyouji|daiyōji]] {{l|{{{langcode}}}|" .. daiyoji .. "}}.",
displaytitle = "{{{langname}}} terms with " .. tagged_kanji .. " replaced by daiyōji " .. tagged_daiyoji,
breadcrumb = tagged_kanji .. " replaced by daiyōji " .. tagged_daiyoji,
parents = {{name = "Perkataan dieja dengan daiyōji", sort = args.sort}},
}, true
end)
return {LABELS = labels, HANDLERS = handlers}
e4da8b691jmwdc8le9dh77il747bk54
342769
342767
2026-05-16T06:03:15Z
Hakimi97
2668
Mengemas kini mengikut padanan Wikikamus bahasa Inggeris (semakan [[en:Special:Diff/86828539|86828539]])
342769
Scribunto
text/plain
local labels = {}
local handlers = {}
local m_str_utils = require("Module:string utilities")
local concat = table.concat
local full_link = require("Module:links").full_link
local insert = table.insert
local Hani_sort = require("Module:Hani-sortkey").makeSortKey
local match = m_str_utils.match
local sort = table.sort
local tag_text = require("Module:script_utilities").tag_text
local ucfirst = m_str_utils.ucfirst
local Hira = require("Module:scripts").getByCode("Hira")
local Jpan = require("Module:scripts").getByCode("Jpan")
local kana_to_romaji = require("Module:Hrkt-translit").tr
local m_numeric = require("Module:ConvertNumeric")
local kana_capture = "([-" .. require("Module:ja/data/range").kana .. "・]+)"
local yomi_data = require("Module:kanjitab/data")
labels["adnominals"] = {
description = "{{{langname}}} adnominals, or {{ja-r|連%体%詞|れん%たい%し}}, which modify nouns, and do not conjugate or [[predicate#Verb|predicate]].",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["hiragana"] = {
description = "{{{langname}}} terms with hiragana {{mdash}} {{ja-r|平%仮%名|ひら%が%な}} {{mdash}} forms, sorted by conventional hiragana sequence. The hiragana form is a [[phonetic]] representation of that word. " ..
"Wiktionary represents {{{langname}}}-language segments in three ways: in normal form (with [[kanji]], if appropriate), in [[hiragana]] " ..
"form (this differs from kanji form only when the segment contains kanji), and in [[romaji]] form.",
additional = "''Lihat juga'' [[:Kategori:Katakana bahasa {{{langname}}}]]",
toc_template = "Hira-categoryTOC",
toc_template_full = "Hira-categoryTOC/full",
parents = {
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Hiragana",
}
}
labels["historical hiragana"] = {
description = "{{{langname}}} historical [[hiragana]].",
additional = "''See also'' [[:Category:{{{langname}}} historical katakana]].",
toc_template = "Hira-categoryTOC",
toc_template_full = "Hira-categoryTOC/full",
parents = {
"hiragana",
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Hiragana",
}
}
labels["katakana"] = {
description = "{{{langname}}} terms with katakana {{mdash}} {{ja-r|片%仮%名|かた%か%な}} {{mdash}} forms, sorted by conventional katakana sequence. Katakana is used primarily for transliterations of foreign words, including old Chinese hanzi not used in [[shinjitai]].",
additional = "''Lihat juga'' [[:Kategori:Hiragana bahasa {{{langname}}}]]",
toc_template = "Kana-categoryTOC",
toc_template_full = "Kana-categoryTOC/full",
parents = {
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Katakana",
}
}
labels["historical katakana"] = {
description = "{{{langname}}} historical [[katakana]].",
additional = "''See also'' [[:Category:{{{langname}}} historical hiragana]].",
toc_template = "Kana-categoryTOC",
toc_template_full = "Kana-categoryTOC/full",
parents = {
"katakana",
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Katakana",
}
}
labels["perkataan dieja dengan kana campuran"] = {
description = "{{{langname}}} terms which combine [[hiragana]] and [[katakana]] characters, potentially with [[kanji]] too.",
parents = {
{name = "{{{langcat}}}", raw = true},
"hiragana",
"katakana",
},
}
labels["kanji"] = {
topright = "{{wp|Kanji}}",
description = "Simbol bahasa {{{langname}}} yang merupakan sebahagian daripada tulisan logogram Han, yang boleh mewakili bunyi atau menyampaikan makna secara langsung.",
toc_template = "Hani-categoryTOC",
umbrella = "aksara Han",
parents = "logogram",
}
labels["kanji mengikut bacaan"] = {
description = "Kanji bahasa {{{langname}}} yang dikategorikan mengikut bacaan.",
parents = {{name = "kanji", sort = "bacaan"}},
}
labels["makurakotoba"] = {
topright = "{{wp|Makurakotoba}}",
description = "{{{langname}}} idioms used in poetry to introduce specific words.",
parents = {"peribahasa"},
}
labels["perkataan mengikut bacaan kanji"] = {
description = "Kategori bahasa {{{langname}}} yang dikumpulkan berdasarkan bacaan kanji yang dieja dengannya.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["perkataan mengikut pola bacaan"] = {
description = "Kategori bahasa {{{langname}}} dengan perkataan yang dikumpulkan berdasarkan corak bacaannya.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["perkataan mengikut bilangan aksara kanji"] = {
description = "Perkataan bahasa {{{langname}}} dikategorikan mengikut bilangan aksara kanji.",
parents = {"perkataan mengikut sifat ortografi"},
}
local function handle_onyomi_list(category, category_type, cat_yomi_type)
local onyomi, seen = {}, {}
for _, yomi in pairs(yomi_data) do
if not seen[yomi] and yomi.onyomi then
local yomi_catname = yomi[category_type]
if yomi_catname ~= false then
local yomi_type = yomi.type
if yomi_type ~= "on'yomi" and yomi_type ~= cat_yomi_type then
insert(onyomi, "[[:Kategori:" .. category:gsub("{{{yomi_catname}}}", yomi_catname) .. " bahasa {{{langname}}}]]")
end
end
end
seen[yomi] = true
end
sort(onyomi)
return onyomi
end
local function add_yomi_category(category, category_type, parent, description)
for _, yomi in pairs(yomi_data) do
local yomi_catname = yomi[category_type]
if yomi_catname ~= false then
local yomi_type = yomi.type
local yomi_desc = yomi.link or yomi_catname
if yomi.description then
yomi_desc = yomi_desc .. "; " .. yomi.description
end
local label = {
description = description .. " " .. yomi_desc .. ".",
breadcrumb = yomi_type,
parents = {{name = parent, sort = yomi_catname}},
}
if yomi.onyomi then
local onyomi = handle_onyomi_list(category, category_type, yomi_type)
label.additional = "Kategori untuk perkataan dengan " ..
(yomi_type == "on'yomi" and "pelbagai lagi" or "lain-lain") ..
" jenis spesifik bacaan on'yomi boleh ditemukan pada kategori berikut:\n* " .. concat(onyomi, "\n* ")
if yomi_type ~= "on'yomi" then
insert(label.parents, 1, {
name = (category:gsub("{{{yomi_catname}}}", yomi_data.on[category_type])),
sort = yomi_catname
})
end
end
labels[category:gsub("{{{yomi_catname}}}", yomi_catname)] = label
end
end
end
add_yomi_category(
"perkataan dengan bacaan {{{yomi_catname}}}",
"reading_category",
"perkataan mengikut pola bacaan",
"Perkataan bahasa {{{langname}}} dengan bacaan"
)
add_yomi_category(
"perkataan dieja dengan kanji dengan bacaan {{{yomi_catname}}}",
"kanji_category",
"perkataan mengikut jenis bacaan kanji",
"Kategori bahasa {{{langname}}} dengan perkataan yang dieja dengan satu atau lebih banyak aksara kanji dengan bacaan"
)
labels["perkataan kehilangan yomi"] = {
description = "Perkataan bahasa {{{langname}}} yang kehilangan satu atau lebih [[Lampiran:Glosari bahasa Jepun#yomi|yomi]] dalam {{tl|{{{langcode}}}-kanjitab}}.",
hidden = true,
can_be_empty = true,
parents = {"penyelenggaraan entri"},
}
labels["terms with IPA pronunciation with pitch accent"] = {
description = "{{{langname}}} terms with pronunciations that have {{w|Japanese pitch accent|pitch accent}} specified.",
additional = "Pitch accent can be specified in {{tl|{{{langcode}}}-pron}} with the {{code|=acc=}} parameter.",
can_be_empty = true,
parents = {"penyelenggaraan entri", "pitch accent"},
}
labels["terms with IPA pronunciation missing pitch accent"] = {
description = "{{{langname}}} terms with pronunciations that do not have a {{w|Japanese pitch accent|pitch accent}} specified.",
additional = "Pitch accent can be specified in {{tl|{{{langcode}}}-pron}} with the {{code|=acc=}} parameter.",
hidden = true,
can_be_empty = true,
parents = {"penyelenggaraan entri"},
}
labels["pitch accent"] = {
description = "{{{langname}}} terms regarding {{w|Japanese pitch accent|pitch accent}} pronunciation.",
can_be_empty = true,
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["terms with Heiban pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[平板型|Heiban]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Atamadaka pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[頭高型|Atamadaka]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Nakadaka pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[中高型|Nakadaka]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Odaka pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[尾高型|Odaka]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with complex pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) complex {{w|Japanese pitch accent|pitch accent}}, as in having more than one {{m|ja|アクセント句}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["pitch accent deaccenting before の"] = {
description = "{{{langname}}} terms with {{w|Japanese pitch accent|pitch accent}} pronunciations that have exceptional deaccenting or lack thereof before の ({{ja-deaccenting-before-no}}).",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Odaka pitch accent not deaccented before の (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[尾高型|Odaka]] {{w|Japanese pitch accent|pitch accent}} and do not become deaccented before の ({{ja-deaccenting-before-no}}).\n\nTerms are placed in this category using {{tl|ja-odaka-deaccent-exception}}.",
can_be_empty = true,
parents = {"pitch accent deaccenting before の"}
}
labels["terms with Nakadaka pitch accent deaccented before の (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[中高型|Nakadaka]] {{w|Japanese pitch accent|pitch accent}} and become deaccented before の ({{ja-deaccenting-before-no}}).\n\nTerms are placed in this category using {{tl|ja-nakadaka-deaccent}}.",
can_be_empty = true,
parents = {"pitch accent deaccenting before の"}
}
labels["perkataan mengikut jenis bacaan kanji"] = {
description = "{{{langname}}} categories with terms grouped with regard to the types of readings of the kanji with which " ..
"they are spelled; broadly, those of Chinese origin, {{ja-r|音|おん}} readings, and those of non-Chinese origin, {{ja-r|訓|くん}} readings.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["perkataan dieja dengan ateji"] = {
topright = "{{wp|Ateji}}",
description = "{{{langname}}} terms containing one or more [[Appendix:Japanese glossary#ateji|ateji]] {{mdash}} {{ja-r|当て字|あてじ}} {{mdash}} which are [[kanji]] used to represent sounds rather than meanings (though meaning may have some influence on which kanji are chosen).",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["perkataan dieja dengan daiyōji"] = {
description = "Japanese terms spelled using [[Appendix:Japanese glossary#daiyouji|daiyōji]], categorized using {{temp|ja-daiyouji}}.",
parents = {"perkataan mengikut etimologi"},
}
labels["perkataan dieja dengan jukujikun"] = {
description = "{{{langname}}} terms containing one or more [[Appendix:Japanese glossary#jukujikun|jukujikun]] {{mdash}} {{ja-r|熟%字%訓|じゅく%じ%くん}} {{mdash}} which are [[kanji]] used to represent meanings rather than sounds.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
local function add_grade_categories(grade, desc, wp, only_one, parent, sort)
local grade_kanji = "kanji " .. grade
local topright = wp and ("{{wp|%s}}"):format(ucfirst(grade_kanji)) or nil
labels[grade_kanji] = {
topright = topright,
description = "Kanji bahasa {{{langname}}} " .. desc,
toc_template = "Hani-categoryTOC",
parents = {{
name = parent and ("kanji " .. parent) or "kanji",
sort = sort or grade
}},
}
labels["perkataan dieja dengan " .. grade_kanji:lower()] = {
topright = topright,
description = "Perkataan bahasa {{{langname}}} yang dieja dengan " .. (only_one and "sekurang-kurangnya satu " or "") .. " aksara kanji " .. desc,
parents = {{
name = parent and ("perkataan dieja dengan kanji " .. parent) or "perkataan mengikut sifat ortografi",
sort = sort or grade
}},
}
end
for i = 1, 6 do
local ord = m_numeric.ones_position_ord[i]
add_grade_categories(
"gred " .. ord,
"diajar dalam gred " .. ord .. " sekolah rendah, seperti yang ditetapkan oleh senarai rasmi {{ja-r|教%育 漢%字|きょう%いく かん%じ|sukatan pendidikan kanji}}.",
false,
false,
"kyōiku",
i
)
end
add_grade_categories(
"kyōiku",
"pada senarai rasmi {{ja-r|教%育 漢%字|きょう%いく かん%じ|sukatan pendidikan kanji}}.",
true,
false,
"jōyō"
)
add_grade_categories(
"sekolah menengah",
"pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}} yang secara umumnya diajar pada peringkat sekolah menengah.",
false,
false,
"jōyō"
)
add_grade_categories(
"jōyō",
"pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}}.",
true,
false
)
add_grade_categories(
"tōyō",
"pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}}, yang digunakan pada sekitar tahun 1946{{ndash}}1981 sehingga penerbitan senarai {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}}.",
true,
false
)
add_grade_categories(
"jinmeiyō",
"pada senarai rasmi {{ja-r|人%名%用 漢%字|じん%めい%-よう かん%じ|kanji untuk kegunaan nama peribadi}}.",
true,
true
)
add_grade_categories(
"hyōgai",
"tidak termasuk pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara kegunaan kerap}} atau {{ja-r|人%名%用 漢%字|じん%めい%-よう かん%じ|kanji untuk kegunaan nama peribadi}}, yang dikenali sebagai {{ja-r|表%外 漢%字|ひょう%がい かん%じ}} atau {{ja-r|表%外%字|ひょう%がい%じ|aksara tidak tersenarai}}.",
true,
true
)
labels["perkataan dengan berbilang bacaan"] = {
description = "Perkataan bahasa {{{langname}}} dengan berbilang cara sebutan (maka juga sama dengan berbilang ejaan [[kana]]).",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["bacaan kanji mengikut bilangan mora"] = {
description = "Kategori-kategori bahasa {{{langname}}} dikumpulkan berdasarkan bilangan mora dalam bacaan kanji.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["perkataan kanji tunggal"] = {
description = "Perkataan {{{langname}}} yang ditulis dengan kanji tunggal.",
parents = {
"perkataan mengikut sifat ortografi",
{name = "perkataan dengan 1 aksara kanji", sort = " "},
},
}
labels["kanji with kun readings missing okurigana designation"] = {
breadcrumb = "Kanji missing okurigana designation",
description = "{{{langname}}} kanji entries in which one or more kun readings entered into {{tl|{{{langcode}}}-readings}} is missing a hyphen denoting okurigana.",
toc_template = "Hani-categoryTOC",
hidden = true,
can_be_empty = true,
parents = {"penyelenggaraan entri"},
}
labels["perkataan mengikut aksara individu dalam ejaan sejarah"] = {
breadcrumb = "Bersejarah",
description = "{{{langname}}} terms categorized by whether their spellings in the {{w|historical kana orthography}} included certain individual characters.",
parents = {{name = "perkataan mengikut aksara individu", sort = " "}},
}
labels["kata kerja tanpa ketransitifan"] = {
description = "{{{langname}}} verbs missing the {{code|=tr=}} parameter from their headword templates.",
hidden = true,
can_be_empty = true,
parents = {"penyelenggaraan entri"},
}
labels["yojijukugo"] = {
topright = "{{wp|Yojijukugo}}",
description = "{{{langname}}} four-[[kanji]] compound terms, {{ja-r|四%字 熟%語|よ%じ じゅく%ご}}, with idiomatic meanings; typically derived from Classical Chinese, Buddhist scripture or traditional Japanese proverbs.",
additional = "Compare Chinese {{w|chengyu}} and Korean {{w|sajaseong-eo}}.",
umbrella = "peribahasa empat aksara",
parents = {"peribahasa"},
}
-- FIXME: Only works for 0 through 19.
local word_to_number = {}
for k, v in pairs(m_numeric.ones_position) do
word_to_number[v] = k
end
local periods = {
lama = true,
kuno = true,
}
local function get_period_text_and_reading_type_link(period, reading_type)
if period and not periods[period] then
return nil
end
local period_text = period and " " .. period or nil
-- Allow periods (historical or ancient) by themselves; they will parse as reading types.
if not period and periods[reading_type] then
return nil, reading_type
end
local reading_type_link = "[[Lampiran:Glosari bahasa Jepun#" .. reading_type .. "|" .. reading_type .. "]]"
return period_text, reading_type_link
end
local function get_sc(str)
return match(str:gsub("[%s%p]+", ""), "[^" .. Hira:getCharacters() .. "]") and Jpan or Hira
end
local function get_tagged_reading(reading, lang)
return tag_text(reading, lang, get_sc(reading))
end
local function get_reading_link(reading, lang, period, link)
local hist = periods[period]
reading = reading:gsub("[%.%-%s]+", "")
return full_link({
lang = lang,
sc = get_sc(reading),
term = link or reading:gsub("・", ""),
-- If we have okurigana, demarcate furigana.
alt = reading:gsub("^(.-)・", "<span style=\"border-top:1px solid;position:relative;padding:1px;\">%1<span style=\"position:absolute;top:0;bottom:67%%;right:0%%;border-right:1px solid;\"></span></span>"),
tr = kana_to_romaji((reading:gsub("・", ".")), lang:getCode(), nil, {keep_dot = true, hist = hist})
:gsub("^(.-)%.", "<u>%1</u>"),
pos = reading:find("・", 1, true) and get_tagged_reading((reading:gsub("^.-・", "~")), lang) or nil
}, "term")
end
local function is_on_subtype(reading_type)
return reading_type:find(".on$")
end
insert(handlers, function(data)
local n =data.label:match("^perkataan dengan ([1-9]%d*) aksara kanji$")
if not n then
return
end
local sortkey = require("Module:category tree").numeral_sortkey(n, 2097152)
return {
breadcrumb = n,
description = ("Perkataan bahasa {{{langname}}} yang mengandungi tepat %d aksara kanji."):format(n),
-- TODO: implement this using the same mechanism used to implement parents (i.e. avoiding the need for raw categories).
-- umbrella = {
-- breadcrumb = ("%d kanji"):format(n),
-- parents = {{name = "terms by number of kanji subcategories by language", sort = sortkey}},
-- },
parents = {{name = ("perkataan mengikut bilangan aksara kanji"), sort = sortkey}}
}
end)
insert(handlers, function(data)
local label_pref, kana = data.label:match("^(perkataan yang mengikut sejarah dieja dengan )" .. kana_capture .. "$")
if not kana then
return
end
local lang = data.lang
return {
description = "Perkataan bahasa {{{langname}}} yang dieja dengan " .. get_reading_link(kana, lang, "bersejarah") .. " dalam {{w|ortografi kana sejarawi}}.",
displaytitle = label_pref .. get_tagged_reading(kana, lang) .. " bahasa {{{langname}}}",
breadcrumb = "sejarah",
parents = {
{name = "perkataan dieja dengan " .. kana, sort = " "},
{name = "perkataan mengikut aksara individu dalam ejaan sejarah", sort = lang:makeSortKey(kana)}
},
umbrella = false,
}
end)
insert(handlers, function(data)
local count, plural = data.label:match("^bacaan kanji dengan (.+) mora$")
local num = word_to_number[count]
if not num then
return nil
end
return {
description = "Bacaan kanji bahasa {{{langname}}} yang mengandungi " .. count .. " mora.",
breadcrumb = num,
parents = {{name = "bacaan kanji mengikut bilangan mora", sort = num}},
umbrella = false,
}
end)
insert(handlers, function(data)
local label_pref, period, reading_type, reading = match(data.label, "^(kanji dengan bacaan ([a-z]-) ?([%a']+) )" .. kana_capture .. "$")
if not period then
return
end
period = period ~= "" and period or nil
local period_text, reading_type_link = get_period_text_and_reading_type_link(period, reading_type)
if not reading_type_link then
return
end
local lang = data.lang
-- Compute parents.
local parents, breadcrumb = {}
if reading:find("・", 1, true) then
local okurigana = reading:match("・(.*)")
insert(parents, {
name = "kanji dengan bacaan" .. (period_text or "") .. " ".. reading_type .. " " .. reading:match("(.-)・"),
-- Sort by okurigana, since all coordinate categories will have the same furigana.
sort = (lang:makeSortKey(okurigana))
})
breadcrumb = "~" .. okurigana
else
insert(parents, {
name = "kanji mengikut bacaan" .. (period_text or "") .. " " .. reading_type,
sort = (lang:makeSortKey(reading))
})
breadcrumb = reading
end
if is_on_subtype(reading_type) then
insert(parents, {name = "kanji dengan bacaan" .. (period_text or "") .. " on " .. reading, sort = reading_type})
elseif period_text then
insert(parents, {name = "kanji dengan bacaan" .. period_text .. " " .. reading, sort = reading_type})
end
if not period_text then
insert(parents, {name = "kanji dibaca sebagai " .. reading, sort = reading_type})
end
return {
description = "Aksara [[kanji]] bahasa {{{langname}}} dengan bacaan " .. reading_type_link .. " " ..
get_reading_link(reading, lang, period or reading_type) .. ".",
displaytitle = "{{{langname}}} " .. label_pref .. get_tagged_reading(reading, lang),
breadcrumb = get_tagged_reading(breadcrumb, lang),
parents = parents,
umbrella = false,
}
end)
insert(handlers, function(data)
local period, reading_type = match(data.label, "^kanji mengikut bacaan ([a-z]-) ?([%a']+)$")
if not period then
return
end
period = period ~= "" and period or nil
local period_text, reading_type_link = get_period_text_and_reading_type_link(period, reading_type)
if not reading_type_link then
return nil
end
-- Compute parents.
local parents = {
is_on_subtype(reading_type) and {name = "kanji mengikut bacaan" .. (period_text or "") .. " on", sort = reading_type} or
period_text and {name = "kanji mengikut bacaan " .. reading_type, sort = period} or
{name = "kanji mengikut bacaan", sort = reading_type}
}
if period_text then
insert(parents, {name = "kanji mengikut bacaan" .. period_text, sort = reading_type})
end
-- Compute description.
local description = "[[kanji|Kanji]] bahasa {{{langname}}} dikategorikan mengikat bacaan " .. (period_text or "") .. reading_type_link .. "."
return {
description = description,
breadcrumb = reading_type .. (period_text or ""),
parents = parents,
umbrella = false,
}
end)
insert(handlers, function(data)
local label_pref, reading = match(data.label, "^(kanji dibaca sebagai )" .. kana_capture .. "$")
if not reading then
return
end
local args = require("Module:parameters").process(data.args, {
["histconsol"] = true,
})
local lang = data.lang
local parents, breadcrumb = {}
if reading:find("・", 1, true) then
local okurigana = reading:match("・(.*)")
insert(parents, {
name = "kanji dibaca sebagai " .. reading:match("(.-)・"),
-- Sort by okurigana, since all coordinate categories will have the same furigana.
sort = (lang:makeSortKey(okurigana))
})
breadcrumb = "~" .. okurigana
else
insert(parents, {
name = "kanji mengikut bacaan",
sort = (lang:makeSortKey(reading))
})
breadcrumb = reading
end
local addl
local period_text
if args.histconsol then
period_text = "lama"
addl = ("This is a [[Wikipedia:Historical kana orthography|historical]] [[Wikipedia:Kanazukai|reading]], now " ..
"consolidated with the [[Wikipedia:Modern kana usage|modern reading]] of " ..
get_reading_link(args.histconsol, lang, nil, ("Kategori:Kanji dibaca sebagai %s bahasa Jepun"):format(args.histconsol)) .. ".")
end
return {
description = "[[kanji|Kanji]] bahasa {{{langname}}} dibaca sebagai " .. get_reading_link(reading, lang, period_text) .. ".",
additional = addl,
displaytitle = label_pref .. get_tagged_reading(reading, lang) .. " bahasa {{{langname}}}" ,
breadcrumb = get_tagged_reading(breadcrumb, lang),
parents = parents,
umbrella = false,
}, true
end)
insert(handlers, function(data)
local label_pref, reading = match(data.label, "^(perkataan dieja dengan kanji dibaca sebagai )" .. kana_capture .. "$")
if not reading then
return
end
-- Compute parents.
local lang = data.lang
local sort_key = (lang:makeSortKey(reading))
local mora_count = require("Module:ja").count_morae(reading)
local mora_count_words = m_numeric.spell_number(tostring(mora_count))
local parents = {
{name = "perkataan mengikut bacaan kanji", sort = sort_key},
{name = "bacaan kanji dengan " .. mora_count_words .. " mora", sort = sort_key},
{name = "kanji dibaca sebagai " .. reading, sort = " "},
}
local tagged_reading = get_tagged_reading(reading, lang)
return {
description = "{{{langname}}} terms that contain kanji that exhibit a reading of " .. get_reading_link(reading, lang) ..
" in those terms prior to any sound changes.",
displaytitle = "{{{langname}}} " .. label_pref .. tagged_reading,
breadcrumb = tagged_reading,
parents = parents,
umbrella = false,
}
end)
insert(handlers, function(data)
local kanji, reading = match(data.label, "^perkataan dieja dengan (.) dibaca sebagai " .. kana_capture .. "$")
if not kanji then
return nil
end
local args = require("Module:parameters").process(data.args, {
[1] = {list = true},
})
local lang = data.lang
if #args[1] == 0 then
error("Bagi kategori dalam bentuk \"" .. lang:getCanonicalName() ..
" terms spelled with KANJI dibaca sebagai READING\", at least one reading type (e.g. <code>kun</code> or <code>on</code>) must be specified using <code>1=</code>, <code>2=</code>, <code>3=</code>, etc.")
end
local yomi_types, parents = {}, {}
for _, yomi, category in ipairs(args[1]) do
local yomi_data = yomi_data[yomi]
if not yomi_data then
error("Jenis yomi \"" .. yomi .. "\" tidak sah.")
end
category = yomi_data.kanji_category
if not category then
error("Jenis yomi \"" .. yomi .. "\" tidak sah bagi jenis kategori ini.")
end
insert(yomi_types, yomi_data.link)
insert(parents, {
name = "perkataan dieja dengan kanji dengan bacaan " .. category,
sort = (lang:makeSortKey(reading))
})
end
insert(parents, 1, {name = "perkataan dieja dengan " .. kanji, sort = (lang:makeSortKey(reading))})
insert(parents, 2, {name = "perkataan dieja dengan kanji dibaca sebagai " .. reading, sort = Hani_sort(kanji)})
yomi_types = (#yomi_types > 1 and "one of " or "") .. "its " ..
require("Module:table").serialCommaJoin(yomi_types, {conj = "or"}) ..
" reading" .. (#yomi_types > 1 and "s" or "")
local tagged_kanji = get_tagged_reading(kanji, lang)
local tagged_reading = get_tagged_reading(reading, lang)
return {
description = "{{{langname}}} terms spelled with {{l|{{{langcode}}}|" .. kanji .. "}} with " ..
yomi_types .. " of " .. get_reading_link(reading, lang) .. ".",
displaytitle = "{{{langname}}} terms spelled with " .. tagged_kanji .. " dibaca sebagai " .. tagged_reading,
breadcrumb = "dibaca sebagai " .. tagged_reading,
parents = parents,
umbrella = false,
}, true
end)
insert(handlers, function(data)
local affix, kanji, reading = data.label:match("^perkataan dengan ([a-z]+fix) (.+) dibaca sebagai " .. kana_capture .. "$")
if not affix or not kanji or not reading then
return nil
end
local args = require("Module:parameters").process(data.args, {
[1] = {list = true},
})
local lang = data.lang
if #args[1] == 0 then
error("Bagi kategori dalam bentuk \"" .. lang:getCanonicalName() ..
" perkataan dengan AFFIX KANJI dibaca sebagai READING\", at least one reading type (e.g. <code>kun</code> or <code>on</code>) must be specified using <code>1=</code>, <code>2=</code>, <code>3=</code>, etc.")
end
local yomi_types = {}
for _, yomi, category in ipairs(args[1]) do
local yomi_data = yomi_data[yomi]
if not yomi_data then
error("Jenis yomi \"" .. yomi .. "\" tidak sah.")
end
category = yomi_data.kanji_category
if not category then
error("Jenis yomi \"" .. yomi .. "\" tidak sah bagi jenis kategori ini.")
end
insert(yomi_types, yomi_data.link)
end
yomi_types = (#yomi_types > 1 and "one of " or "") .. "its " ..
require("Module:table").serialCommaJoin(yomi_types, {conj = "or"}) ..
" reading" .. (#yomi_types > 1 and "s" or "")
local description = "{{{langname}}} terms " .. affix .. "ed with {{l|{{{langcode}}}|" .. kanji .. "}} with " ..
yomi_types .. " of " .. get_reading_link(reading, lang) .. "."
local ok, what_categorizes = pcall(require, "Module:category tree/fam/jpx/what-categorizes-msg")
if ok and what_categorizes.get_what_categorizes_msg then
local what_categorizes_msg = what_categorizes.get_what_categorizes_msg(kanji, reading, affix)
if what_categorizes_msg then
description = description .. "\n\n" .. what_categorizes_msg
end
end
local parents = {}
table.insert(parents, {name = "perkataan dengan " .. affix .. " " .. kanji, sort = (lang:makeSortKey(reading))})
if mw.title.new("Kategori:perkataan dieja dengan " .. kanji .. " dibaca sebagai " .. reading .. " bahasa " .. lang:getCanonicalName()).exists then
table.insert(parents, {name = "perkataan dieja dengan " .. kanji .. " dibaca sebagai " .. reading, sort = (lang:makeSortKey(reading)), args=data.args})
end
local tagged_kanji = get_tagged_reading(kanji, lang)
local tagged_reading = get_tagged_reading(reading, lang)
return {
description = description,
displaytitle = "{{{langname}}} terms " .. affix .. "ed with " .. tagged_kanji .. " dibaca sebagai " .. tagged_reading,
breadcrumb = "dibaca sebagai " .. reading,
parents = parents,
umbrella = false,
}, true
end)
insert(handlers, function(data)
local kanji, daiyoji = match(data.label, "^perkataan dengan (.) digantikan oleh daiyōji (.)$")
if not kanji then
return nil
end
local args = require("Module:parameters").process(data.args, {
["sort"] = true,
})
local lang = data.lang
if not args.sort then
error("For categories of the form \"" .. lang:getCanonicalName() ..
" terms with KANJI replaced by daiyōji DAIYOJI\", the sort key must be specified using sort=")
end
local tagged_kanji = get_tagged_reading(kanji, lang)
local tagged_daiyoji = get_tagged_reading(daiyoji, lang)
return {
description = "{{{langname}}} terms with {{l|{{{langcode}}}|" .. kanji .. "}} replaced by [[Appendix:Japanese glossary#daiyouji|daiyōji]] {{l|{{{langcode}}}|" .. daiyoji .. "}}.",
displaytitle = "{{{langname}}} terms with " .. tagged_kanji .. " replaced by daiyōji " .. tagged_daiyoji,
breadcrumb = tagged_kanji .. " replaced by daiyōji " .. tagged_daiyoji,
parents = {{name = "perkataan dieja dengan daiyōji", sort = args.sort}},
umbrella = false,
}, true
end)
return {LABELS = labels, HANDLERS = handlers}
kfuptjvwyd5aqs81giukji809i1cdns
342776
342769
2026-05-16T08:09:26Z
Hakimi97
2668
342776
Scribunto
text/plain
local labels = {}
local handlers = {}
local m_str_utils = require("Module:string utilities")
local concat = table.concat
local full_link = require("Module:links").full_link
local insert = table.insert
local Hani_sort = require("Module:Hani-sortkey").makeSortKey
local match = m_str_utils.match
local sort = table.sort
local tag_text = require("Module:script_utilities").tag_text
local ucfirst = m_str_utils.ucfirst
local Hira = require("Module:scripts").getByCode("Hira")
local Jpan = require("Module:scripts").getByCode("Jpan")
local kana_to_romaji = require("Module:Hrkt-translit").tr
local m_numeric = require("Module:ConvertNumeric")
local kana_capture = "([-" .. require("Module:ja/data/range").kana .. "・]+)"
local yomi_data = require("Module:kanjitab/data")
labels["adnominals"] = {
description = "{{{langname}}} adnominals, or {{ja-r|連%体%詞|れん%たい%し}}, which modify nouns, and do not conjugate or [[predicate#Verb|predicate]].",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Hiragana"] = {
description = "{{{langname}}} terms with hiragana {{mdash}} {{ja-r|平%仮%名|ひら%が%な}} {{mdash}} forms, sorted by conventional hiragana sequence. The hiragana form is a [[phonetic]] representation of that word. " ..
"Wiktionary represents {{{langname}}}-language segments in three ways: in normal form (with [[kanji]], if appropriate), in [[hiragana]] " ..
"form (this differs from kanji form only when the segment contains kanji), and in [[romaji]] form.",
additional = "''Lihat juga'' [[:Kategori:Katakana bahasa {{{langname}}}]]",
toc_template = "Hira-categoryTOC",
toc_template_full = "Hira-categoryTOC/full",
parents = {
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Hiragana",
}
}
labels["historical hiragana"] = {
description = "{{{langname}}} historical [[hiragana]].",
additional = "''See also'' [[:Category:{{{langname}}} historical katakana]].",
toc_template = "Hira-categoryTOC",
toc_template_full = "Hira-categoryTOC/full",
parents = {
"Hiragana",
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Hiragana",
}
}
labels["Katakana"] = {
description = "{{{langname}}} terms with katakana {{mdash}} {{ja-r|片%仮%名|かた%か%な}} {{mdash}} forms, sorted by conventional katakana sequence. Katakana is used primarily for transliterations of foreign words, including old Chinese hanzi not used in [[shinjitai]].",
additional = "''Lihat juga'' [[:Kategori:Hiragana bahasa {{{langname}}}]]",
toc_template = "Kana-categoryTOC",
toc_template_full = "Kana-categoryTOC/full",
parents = {
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Katakana",
}
}
labels["historical katakana"] = {
description = "{{{langname}}} historical [[katakana]].",
additional = "''See also'' [[:Category:{{{langname}}} historical hiragana]].",
toc_template = "Kana-categoryTOC",
toc_template_full = "Kana-categoryTOC/full",
parents = {
"Katakana",
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Katakana",
}
}
labels["Perkataan dieja dengan kana campuran"] = {
description = "{{{langname}}} terms which combine [[hiragana]] and [[katakana]] characters, potentially with [[kanji]] too.",
parents = {
{name = "{{{langcat}}}", raw = true},
"Hiragana",
"Katakana",
},
}
labels["Kanji"] = {
topright = "{{wp|Kanji}}",
description = "Simbol bahasa {{{langname}}} yang merupakan sebahagian daripada tulisan logogram Han, yang boleh mewakili bunyi atau menyampaikan makna secara langsung.",
toc_template = "Hani-categoryTOC",
umbrella = "Aksara Han",
parents = "Logogram",
}
labels["Kanji mengikut bacaan"] = {
description = "Kanji bahasa {{{langname}}} yang dikategorikan mengikut bacaan.",
parents = {{name = "Kanji", sort = "bacaan"}},
}
labels["Makurakotoba"] = {
topright = "{{wp|Makurakotoba}}",
description = "{{{langname}}} idioms used in poetry to introduce specific words.",
parents = {"Peribahasa"},
}
labels["Perkataan mengikut bacaan kanji"] = {
description = "Kategori bahasa {{{langname}}} yang dikumpulkan berdasarkan bacaan kanji yang dieja dengannya.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan mengikut pola bacaan"] = {
description = "Kategori bahasa {{{langname}}} dengan perkataan yang dikumpulkan berdasarkan corak bacaannya.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan mengikut bilangan aksara kanji"] = {
description = "Perkataan bahasa {{{langname}}} dikategorikan mengikut bilangan aksara kanji.",
parents = {"Perkataan mengikut sifat ortografi"},
}
local function handle_onyomi_list(category, category_type, cat_yomi_type)
local onyomi, seen = {}, {}
for _, yomi in pairs(yomi_data) do
if not seen[yomi] and yomi.onyomi then
local yomi_catname = yomi[category_type]
if yomi_catname ~= false then
local yomi_type = yomi.type
if yomi_type ~= "on'yomi" and yomi_type ~= cat_yomi_type then
insert(onyomi, "[[:Kategori:" .. category:gsub("{{{yomi_catname}}}", yomi_catname) .. " bahasa {{{langname}}}]]")
end
end
end
seen[yomi] = true
end
sort(onyomi)
return onyomi
end
local function add_yomi_category(category, category_type, parent, description)
for _, yomi in pairs(yomi_data) do
local yomi_catname = yomi[category_type]
if yomi_catname ~= false then
local yomi_type = yomi.type
local yomi_desc = yomi.link or yomi_catname
if yomi.description then
yomi_desc = yomi_desc .. "; " .. yomi.description
end
local label = {
description = description .. " " .. yomi_desc .. ".",
breadcrumb = yomi_type,
parents = {{name = parent, sort = yomi_catname}},
}
if yomi.onyomi then
local onyomi = handle_onyomi_list(category, category_type, yomi_type)
label.additional = "Kategori untuk perkataan dengan " ..
(yomi_type == "on'yomi" and "pelbagai lagi" or "lain-lain") ..
" jenis spesifik bacaan on'yomi boleh ditemukan pada kategori berikut:\n* " .. concat(onyomi, "\n* ")
if yomi_type ~= "on'yomi" then
insert(label.parents, 1, {
name = (category:gsub("{{{yomi_catname}}}", yomi_data.on[category_type])),
sort = yomi_catname
})
end
end
labels[category:gsub("{{{yomi_catname}}}", yomi_catname)] = label
end
end
end
add_yomi_category(
"Perkataan dengan bacaan {{{yomi_catname}}}",
"reading_category",
"Perkataan mengikut pola bacaan",
"Perkataan bahasa {{{langname}}} dengan bacaan"
)
add_yomi_category(
"Perkataan dieja dengan kanji dengan bacaan {{{yomi_catname}}}",
"kanji_category",
"Perkataan mengikut jenis bacaan kanji",
"Kategori bahasa {{{langname}}} dengan perkataan yang dieja dengan satu atau lebih banyak aksara kanji dengan bacaan"
)
labels["Perkataan kehilangan yomi"] = {
description = "Perkataan bahasa {{{langname}}} yang kehilangan satu atau lebih [[Lampiran:Glosari bahasa Jepun#yomi|yomi]] dalam {{tl|{{{langcode}}}-kanjitab}}.",
hidden = true,
can_be_empty = true,
parents = {"Penyelenggaraan entri"},
}
labels["terms with IPA pronunciation with pitch accent"] = {
description = "{{{langname}}} terms with pronunciations that have {{w|Japanese pitch accent|pitch accent}} specified.",
additional = "Pitch accent can be specified in {{tl|{{{langcode}}}-pron}} with the {{code|=acc=}} parameter.",
can_be_empty = true,
parents = {"Penyelenggaraan entri", "pitch accent"},
}
labels["terms with IPA pronunciation missing pitch accent"] = {
description = "{{{langname}}} terms with pronunciations that do not have a {{w|Japanese pitch accent|pitch accent}} specified.",
additional = "Pitch accent can be specified in {{tl|{{{langcode}}}-pron}} with the {{code|=acc=}} parameter.",
hidden = true,
can_be_empty = true,
parents = {"Penyelenggaraan entri"},
}
labels["pitch accent"] = {
description = "{{{langname}}} terms regarding {{w|Japanese pitch accent|pitch accent}} pronunciation.",
can_be_empty = true,
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["terms with Heiban pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[平板型|Heiban]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Atamadaka pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[頭高型|Atamadaka]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Nakadaka pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[中高型|Nakadaka]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Odaka pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[尾高型|Odaka]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with complex pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) complex {{w|Japanese pitch accent|pitch accent}}, as in having more than one {{m|ja|アクセント句}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["pitch accent deaccenting before の"] = {
description = "{{{langname}}} terms with {{w|Japanese pitch accent|pitch accent}} pronunciations that have exceptional deaccenting or lack thereof before の ({{ja-deaccenting-before-no}}).",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Odaka pitch accent not deaccented before の (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[尾高型|Odaka]] {{w|Japanese pitch accent|pitch accent}} and do not become deaccented before の ({{ja-deaccenting-before-no}}).\n\nTerms are placed in this category using {{tl|ja-odaka-deaccent-exception}}.",
can_be_empty = true,
parents = {"pitch accent deaccenting before の"}
}
labels["terms with Nakadaka pitch accent deaccented before の (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[中高型|Nakadaka]] {{w|Japanese pitch accent|pitch accent}} and become deaccented before の ({{ja-deaccenting-before-no}}).\n\nTerms are placed in this category using {{tl|ja-nakadaka-deaccent}}.",
can_be_empty = true,
parents = {"pitch accent deaccenting before の"}
}
labels["Perkataan mengikut jenis bacaan kanji"] = {
description = "{{{langname}}} categories with terms grouped with regard to the types of readings of the kanji with which " ..
"they are spelled; broadly, those of Chinese origin, {{ja-r|音|おん}} readings, and those of non-Chinese origin, {{ja-r|訓|くん}} readings.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan dieja dengan ateji"] = {
topright = "{{wp|Ateji}}",
description = "{{{langname}}} terms containing one or more [[Appendix:Japanese glossary#ateji|ateji]] {{mdash}} {{ja-r|当て字|あてじ}} {{mdash}} which are [[kanji]] used to represent sounds rather than meanings (though meaning may have some influence on which kanji are chosen).",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan dieja dengan daiyōji"] = {
description = "Japanese terms spelled using [[Appendix:Japanese glossary#daiyouji|daiyōji]], categorized using {{temp|ja-daiyouji}}.",
parents = {"Perkataan mengikut etimologi"},
}
labels["Perkataan dieja dengan jukujikun"] = {
description = "{{{langname}}} terms containing one or more [[Appendix:Japanese glossary#jukujikun|jukujikun]] {{mdash}} {{ja-r|熟%字%訓|じゅく%じ%くん}} {{mdash}} which are [[kanji]] used to represent meanings rather than sounds.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
local function add_grade_categories(grade, desc, wp, only_one, parent, sort)
local grade_kanji = "Kanji " .. grade
local topright = wp and ("{{wp|%s}}"):format(ucfirst(grade_kanji)) or nil
labels[grade_kanji] = {
topright = topright,
description = "Kanji bahasa {{{langname}}} " .. desc,
toc_template = "Hani-categoryTOC",
parents = {{
name = parent and ("Kanji " .. parent) or "Kanji",
sort = sort or grade
}},
}
labels["Perkataan dieja dengan " .. grade_kanji:lower()] = {
topright = topright,
description = "Perkataan bahasa {{{langname}}} yang dieja dengan " .. (only_one and "sekurang-kurangnya satu " or "") .. " aksara kanji " .. desc,
parents = {{
name = parent and ("Perkataan dieja dengan kanji " .. parent) or "Perkataan mengikut sifat ortografi",
sort = sort or grade
}},
}
end
for i = 1, 6 do
local ord = m_numeric.ones_position_ord[i]
add_grade_categories(
"gred " .. ord,
"diajar dalam gred " .. ord .. " sekolah rendah, seperti yang ditetapkan oleh senarai rasmi {{ja-r|教%育 漢%字|きょう%いく かん%じ|sukatan pendidikan kanji}}.",
false,
false,
"kyōiku",
i
)
end
add_grade_categories(
"kyōiku",
"pada senarai rasmi {{ja-r|教%育 漢%字|きょう%いく かん%じ|sukatan pendidikan kanji}}.",
true,
false,
"jōyō"
)
add_grade_categories(
"sekolah menengah",
"pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}} yang secara umumnya diajar pada peringkat sekolah menengah.",
false,
false,
"jōyō"
)
add_grade_categories(
"jōyō",
"pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}}.",
true,
false
)
add_grade_categories(
"tōyō",
"pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}}, yang digunakan pada sekitar tahun 1946{{ndash}}1981 sehingga penerbitan senarai {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}}.",
true,
false
)
add_grade_categories(
"jinmeiyō",
"pada senarai rasmi {{ja-r|人%名%用 漢%字|じん%めい%-よう かん%じ|kanji untuk kegunaan nama peribadi}}.",
true,
true
)
add_grade_categories(
"hyōgai",
"tidak termasuk pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara kegunaan kerap}} atau {{ja-r|人%名%用 漢%字|じん%めい%-よう かん%じ|kanji untuk kegunaan nama peribadi}}, yang dikenali sebagai {{ja-r|表%外 漢%字|ひょう%がい かん%じ}} atau {{ja-r|表%外%字|ひょう%がい%じ|aksara tidak tersenarai}}.",
true,
true
)
labels["Perkataan dengan berbilang bacaan"] = {
description = "Perkataan bahasa {{{langname}}} dengan berbilang cara sebutan (maka juga sama dengan berbilang ejaan [[kana]]).",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Bacaan kanji mengikut bilangan mora"] = {
description = "Kategori-kategori bahasa {{{langname}}} dikumpulkan berdasarkan bilangan mora dalam bacaan kanji.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan kanji tunggal"] = {
description = "Perkataan {{{langname}}} yang ditulis dengan kanji tunggal.",
parents = {
"Perkataan mengikut sifat ortografi",
{name = "Perkataan dengan 1 aksara kanji", sort = " "},
},
}
labels["kanji with kun readings missing okurigana designation"] = {
breadcrumb = "Kanji missing okurigana designation",
description = "{{{langname}}} kanji entries in which one or more kun readings entered into {{tl|{{{langcode}}}-readings}} is missing a hyphen denoting okurigana.",
toc_template = "Hani-categoryTOC",
hidden = true,
can_be_empty = true,
parents = {"Penyelenggaraan entri"},
}
labels["Perkataan mengikut aksara individu dalam ejaan sejarah"] = {
breadcrumb = "Bersejarah",
description = "{{{langname}}} terms categorized by whether their spellings in the {{w|historical kana orthography}} included certain individual characters.",
parents = {{name = "Perkataan mengikut aksara individu", sort = " "}},
}
labels["Kata kerja tanpa ketransitifan"] = {
description = "{{{langname}}} verbs missing the {{code|=tr=}} parameter from their headword templates.",
hidden = true,
can_be_empty = true,
parents = {"Penyelenggaraan entri"},
}
labels["Yojijukugo"] = {
topright = "{{wp|Yojijukugo}}",
description = "{{{langname}}} four-[[kanji]] compound terms, {{ja-r|四%字 熟%語|よ%じ じゅく%ご}}, with idiomatic meanings; typically derived from Classical Chinese, Buddhist scripture or traditional Japanese proverbs.",
additional = "Compare Chinese {{w|chengyu}} and Korean {{w|sajaseong-eo}}.",
umbrella = "peribahasa empat aksara",
parents = {"Peribahasa"},
}
-- FIXME: Only works for 0 through 19.
local word_to_number = {}
for k, v in pairs(m_numeric.ones_position) do
word_to_number[v] = k
end
local periods = {
lama = true,
kuno = true,
}
local function get_period_text_and_reading_type_link(period, reading_type)
if period and not periods[period] then
return nil
end
local period_text = period and " " .. period or nil
-- Allow periods (historical or ancient) by themselves; they will parse as reading types.
if not period and periods[reading_type] then
return nil, reading_type
end
local reading_type_link = "[[Lampiran:Glosari bahasa Jepun#" .. reading_type .. "|" .. reading_type .. "]]"
return period_text, reading_type_link
end
local function get_sc(str)
return match(str:gsub("[%s%p]+", ""), "[^" .. Hira:getCharacters() .. "]") and Jpan or Hira
end
local function get_tagged_reading(reading, lang)
return tag_text(reading, lang, get_sc(reading))
end
local function get_reading_link(reading, lang, period, link)
local hist = periods[period]
reading = reading:gsub("[%.%-%s]+", "")
return full_link({
lang = lang,
sc = get_sc(reading),
term = link or reading:gsub("・", ""),
-- If we have okurigana, demarcate furigana.
alt = reading:gsub("^(.-)・", "<span style=\"border-top:1px solid;position:relative;padding:1px;\">%1<span style=\"position:absolute;top:0;bottom:67%%;right:0%%;border-right:1px solid;\"></span></span>"),
tr = kana_to_romaji((reading:gsub("・", ".")), lang:getCode(), nil, {keep_dot = true, hist = hist})
:gsub("^(.-)%.", "<u>%1</u>"),
pos = reading:find("・", 1, true) and get_tagged_reading((reading:gsub("^.-・", "~")), lang) or nil
}, "term")
end
local function is_on_subtype(reading_type)
return reading_type:find(".on$")
end
insert(handlers, function(data)
local n =data.label:match("^Perkataan dengan ([1-9]%d*) aksara kanji$")
if not n then
return
end
local sortkey = require("Module:category tree").numeral_sortkey(n, 2097152)
return {
breadcrumb = n,
description = ("Perkataan bahasa {{{langname}}} yang mengandungi tepat %d aksara kanji."):format(n),
-- TODO: implement this using the same mechanism used to implement parents (i.e. avoiding the need for raw categories).
-- umbrella = {
-- breadcrumb = ("%d kanji"):format(n),
-- parents = {{name = "terms by number of kanji subcategories by language", sort = sortkey}},
-- },
parents = {{name = ("Perkataan mengikut bilangan aksara kanji"), sort = sortkey}}
}
end)
insert(handlers, function(data)
local label_pref, kana = data.label:match("^(Perkataan yang mengikut sejarah dieja dengan )" .. kana_capture .. "$")
if not kana then
return
end
local lang = data.lang
return {
description = "Perkataan bahasa {{{langname}}} yang dieja dengan " .. get_reading_link(kana, lang, "bersejarah") .. " dalam {{w|ortografi kana sejarawi}}.",
displaytitle = label_pref .. get_tagged_reading(kana, lang) .. " bahasa {{{langname}}}",
breadcrumb = "sejarah",
parents = {
{name = "Perkataan dieja dengan " .. kana, sort = " "},
{name = "Perkataan mengikut aksara individu dalam ejaan sejarah", sort = lang:makeSortKey(kana)}
},
}
end)
insert(handlers, function(data)
local count, plural = data.label:match("^Bacaan kanji dengan (.+) mora$")
local num = word_to_number[count]
if not num then
return nil
end
return {
description = "Bacaan kanji bahasa {{{langname}}} yang mengandungi " .. count .. " mora.",
breadcrumb = num,
parents = {{name = "Bacaan kanji mengikut bilangan mora", sort = num}},
}
end)
insert(handlers, function(data)
local label_pref, period, reading_type, reading = match(data.label, "^(Kanji dengan bacaan ([a-z]-) ?([%a']+) )" .. kana_capture .. "$")
if not period then
return
end
period = period ~= "" and period or nil
local period_text, reading_type_link = get_period_text_and_reading_type_link(period, reading_type)
if not reading_type_link then
return
end
local lang = data.lang
-- Compute parents.
local parents, breadcrumb = {}
if reading:find("・", 1, true) then
local okurigana = reading:match("・(.*)")
insert(parents, {
name = "Kanji dengan bacaan" .. (period_text or "") .. " ".. reading_type .. " " .. reading:match("(.-)・"),
-- Sort by okurigana, since all coordinate categories will have the same furigana.
sort = (lang:makeSortKey(okurigana))
})
breadcrumb = "~" .. okurigana
else
insert(parents, {
name = "Kanji mengikut bacaan" .. (period_text or "") .. " " .. reading_type,
sort = (lang:makeSortKey(reading))
})
breadcrumb = reading
end
if is_on_subtype(reading_type) then
insert(parents, {name = "Kanji dengan bacaan" .. (period_text or "") .. " on " .. reading, sort = reading_type})
elseif period_text then
insert(parents, {name = "Kanji dengan bacaan" .. period_text .. " " .. reading, sort = reading_type})
end
if not period_text then
insert(parents, {name = "Kanji dibaca sebagai " .. reading, sort = reading_type})
end
return {
description = "Aksara [[kanji]] bahasa {{{langname}}} dengan bacaan " .. reading_type_link .. " " ..
get_reading_link(reading, lang, period or reading_type) .. ".",
displaytitle = "{{{langname}}} " .. label_pref .. get_tagged_reading(reading, lang),
breadcrumb = get_tagged_reading(breadcrumb, lang),
parents = parents,
}
end)
insert(handlers, function(data)
local period, reading_type = match(data.label, "^Kanji mengikut bacaan ([a-z]-) ?([%a']+)$")
if not period then
return
end
period = period ~= "" and period or nil
local period_text, reading_type_link = get_period_text_and_reading_type_link(period, reading_type)
if not reading_type_link then
return nil
end
-- Compute parents.
local parents = {
is_on_subtype(reading_type) and {name = "Kanji mengikut bacaan" .. (period_text or "") .. " on", sort = reading_type} or
period_text and {name = "Kanji mengikut bacaan " .. reading_type, sort = period} or
{name = "Kanji mengikut bacaan", sort = reading_type}
}
if period_text then
insert(parents, {name = "Kanji mengikut bacaan" .. period_text, sort = reading_type})
end
-- Compute description.
local description = "[[kanji|Kanji]] bahasa {{{langname}}} dikategorikan mengikat bacaan " .. (period_text or "") .. reading_type_link .. "."
return {
description = description,
breadcrumb = reading_type .. (period_text or ""),
parents = parents,
umbrella = false,
}
end)
insert(handlers, function(data)
local label_pref, reading = match(data.label, "^(Kanji dibaca sebagai )" .. kana_capture .. "$")
if not reading then
return
end
local args = require("Module:parameters").process(data.args, {
["histconsol"] = true,
})
local lang = data.lang
local parents, breadcrumb = {}
if reading:find("・", 1, true) then
local okurigana = reading:match("・(.*)")
insert(parents, {
name = "Kanji dibaca sebagai " .. reading:match("(.-)・"),
-- Sort by okurigana, since all coordinate categories will have the same furigana.
sort = (lang:makeSortKey(okurigana))
})
breadcrumb = "~" .. okurigana
else
insert(parents, {
name = "Kanji mengikut bacaan",
sort = (lang:makeSortKey(reading))
})
breadcrumb = reading
end
local addl
local period_text
if args.histconsol then
period_text = "lama"
addl = ("This is a [[Wikipedia:Historical kana orthography|historical]] [[Wikipedia:Kanazukai|reading]], now " ..
"consolidated with the [[Wikipedia:Modern kana usage|modern reading]] of " ..
get_reading_link(args.histconsol, lang, nil, ("Kategori:Kanji dibaca sebagai %s bahasa Jepun"):format(args.histconsol)) .. ".")
end
return {
description = "[[kanji|Kanji]] bahasa {{{langname}}} dibaca sebagai " .. get_reading_link(reading, lang, period_text) .. ".",
additional = addl,
displaytitle = label_pref .. get_tagged_reading(reading, lang) .. " bahasa {{{langname}}}" ,
breadcrumb = get_tagged_reading(breadcrumb, lang),
parents = parents,
}, true
end)
insert(handlers, function(data)
local label_pref, reading = match(data.label, "^(Perkataan dieja dengan kanji dibaca sebagai )" .. kana_capture .. "$")
if not reading then
return
end
-- Compute parents.
local lang = data.lang
local sort_key = (lang:makeSortKey(reading))
local mora_count = require("Module:ja").count_morae(reading)
local mora_count_words = m_numeric.spell_number(tostring(mora_count))
local parents = {
{name = "Perkataan mengikut bacaan kanji", sort = sort_key},
{name = "Bacaan kanji dengan " .. mora_count_words .. " mora", sort = sort_key},
{name = "Kanji dibaca sebagai " .. reading, sort = " "},
}
local tagged_reading = get_tagged_reading(reading, lang)
return {
description = "{{{langname}}} terms that contain kanji that exhibit a reading of " .. get_reading_link(reading, lang) ..
" in those terms prior to any sound changes.",
displaytitle = "{{{langname}}} " .. label_pref .. tagged_reading,
breadcrumb = tagged_reading,
parents = parents,
}
end)
insert(handlers, function(data)
local kanji, reading = match(data.label, "^Perkataan dieja dengan (.) dibaca sebagai " .. kana_capture .. "$")
if not kanji then
return nil
end
local args = require("Module:parameters").process(data.args, {
[1] = {list = true},
})
local lang = data.lang
if #args[1] == 0 then
error("Bagi kategori dalam bentuk \"" .. lang:getCanonicalName() ..
" terms spelled with KANJI dibaca sebagai READING\", at least one reading type (e.g. <code>kun</code> or <code>on</code>) must be specified using <code>1=</code>, <code>2=</code>, <code>3=</code>, etc.")
end
local yomi_types, parents = {}, {}
for _, yomi, category in ipairs(args[1]) do
local yomi_data = yomi_data[yomi]
if not yomi_data then
error("Jenis yomi \"" .. yomi .. "\" tidak sah.")
end
category = yomi_data.kanji_category
if not category then
error("Jenis yomi \"" .. yomi .. "\" tidak sah bagi jenis kategori ini.")
end
insert(yomi_types, yomi_data.link)
insert(parents, {
name = "Perkataan dieja dengan kanji dengan bacaan " .. category,
sort = (lang:makeSortKey(reading))
})
end
insert(parents, 1, {name = "Perkataan dieja dengan " .. kanji, sort = (lang:makeSortKey(reading))})
insert(parents, 2, {name = "Perkataan dieja dengan kanji dibaca sebagai " .. reading, sort = Hani_sort(kanji)})
yomi_types = (#yomi_types > 1 and "one of " or "") .. "its " ..
require("Module:table").serialCommaJoin(yomi_types, {conj = "or"}) ..
" reading" .. (#yomi_types > 1 and "s" or "")
local tagged_kanji = get_tagged_reading(kanji, lang)
local tagged_reading = get_tagged_reading(reading, lang)
return {
description = "{{{langname}}} terms spelled with {{l|{{{langcode}}}|" .. kanji .. "}} with " ..
yomi_types .. " of " .. get_reading_link(reading, lang) .. ".",
displaytitle = "{{{langname}}} terms spelled with " .. tagged_kanji .. " dibaca sebagai " .. tagged_reading,
breadcrumb = "dibaca sebagai " .. tagged_reading,
parents = parents,
umbrella = false,
}, true
end)
insert(handlers, function(data)
local affix, kanji, reading = data.label:match("^Perkataan dengan ([a-z]) (.+) dibaca sebagai " .. kana_capture .. "$")
if not affix or not kanji or not reading then
return nil
end
local args = require("Module:parameters").process(data.args, {
[1] = {list = true},
})
local lang = data.lang
if #args[1] == 0 then
error("Bagi kategori dalam bentuk \"" .. lang:getCanonicalName() ..
" perkataan dengan AFFIX KANJI dibaca sebagai READING\", at least one reading type (e.g. <code>kun</code> or <code>on</code>) must be specified using <code>1=</code>, <code>2=</code>, <code>3=</code>, etc.")
end
local yomi_types = {}
for _, yomi, category in ipairs(args[1]) do
local yomi_data = yomi_data[yomi]
if not yomi_data then
error("Jenis yomi \"" .. yomi .. "\" tidak sah.")
end
category = yomi_data.kanji_category
if not category then
error("Jenis yomi \"" .. yomi .. "\" tidak sah bagi jenis kategori ini.")
end
insert(yomi_types, yomi_data.link)
end
yomi_types = (#yomi_types > 1 and "one of " or "") .. "its " ..
require("Module:table").serialCommaJoin(yomi_types, {conj = "or"}) ..
" reading" .. (#yomi_types > 1 and "s" or "")
local description = "{{{langname}}} terms " .. affix .. "ed with {{l|{{{langcode}}}|" .. kanji .. "}} with " ..
yomi_types .. " of " .. get_reading_link(reading, lang) .. "."
local ok, what_categorizes = pcall(require, "Module:category tree/fam/jpx/what-categorizes-msg")
if ok and what_categorizes.get_what_categorizes_msg then
local what_categorizes_msg = what_categorizes.get_what_categorizes_msg(kanji, reading, affix)
if what_categorizes_msg then
description = description .. "\n\n" .. what_categorizes_msg
end
end
local parents = {}
table.insert(parents, {name = "Perkataan dengan " .. affix .. " " .. kanji, sort = (lang:makeSortKey(reading))})
if mw.title.new("Kategori:Perkataan dieja dengan " .. kanji .. " dibaca sebagai " .. reading .. " bahasa " .. lang:getCanonicalName()).exists then
table.insert(parents, {name = "Perkataan dieja dengan " .. kanji .. " dibaca sebagai " .. reading, sort = (lang:makeSortKey(reading)), args=data.args})
end
local tagged_kanji = get_tagged_reading(kanji, lang)
local tagged_reading = get_tagged_reading(reading, lang)
return {
description = description,
displaytitle = "{{{langname}}} terms " .. affix .. "ed with " .. tagged_kanji .. " dibaca sebagai " .. tagged_reading,
breadcrumb = "dibaca sebagai " .. reading,
parents = parents,
umbrella = false,
}, true
end)
insert(handlers, function(data)
local kanji, daiyoji = match(data.label, "^Perkataan dengan (.) digantikan oleh daiyōji (.)$")
if not kanji then
return nil
end
local args = require("Module:parameters").process(data.args, {
["sort"] = true,
})
local lang = data.lang
if not args.sort then
error("For categories of the form \"" .. lang:getCanonicalName() ..
" terms with KANJI replaced by daiyōji DAIYOJI\", the sort key must be specified using sort=")
end
local tagged_kanji = get_tagged_reading(kanji, lang)
local tagged_daiyoji = get_tagged_reading(daiyoji, lang)
return {
description = "{{{langname}}} terms with {{l|{{{langcode}}}|" .. kanji .. "}} replaced by [[Appendix:Japanese glossary#daiyouji|daiyōji]] {{l|{{{langcode}}}|" .. daiyoji .. "}}.",
displaytitle = "{{{langname}}} terms with " .. tagged_kanji .. " replaced by daiyōji " .. tagged_daiyoji,
breadcrumb = tagged_kanji .. " replaced by daiyōji " .. tagged_daiyoji,
parents = {{name = "Perkataan dieja dengan daiyōji", sort = args.sort}},
umbrella = false,
}, true
end)
return {LABELS = labels, HANDLERS = handlers}
curgfjitjzlxo27fqvyp2ynjc72u7gj
342784
342776
2026-05-16T09:38:41Z
Hakimi97
2668
342784
Scribunto
text/plain
local labels = {}
local handlers = {}
local m_str_utils = require("Module:string utilities")
local concat = table.concat
local full_link = require("Module:links").full_link
local insert = table.insert
local Hani_sort = require("Module:Hani-sortkey").makeSortKey
local match = m_str_utils.match
local sort = table.sort
local tag_text = require("Module:script_utilities").tag_text
local ucfirst = m_str_utils.ucfirst
local Hira = require("Module:scripts").getByCode("Hira")
local Jpan = require("Module:scripts").getByCode("Jpan")
local kana_to_romaji = require("Module:Hrkt-translit").tr
local m_numeric = require("Module:ConvertNumeric")
local kana_capture = "([-" .. require("Module:ja/data/range").kana .. "・]+)"
local yomi_data = require("Module:kanjitab/data")
labels["adnominals"] = {
description = "{{{langname}}} adnominals, or {{ja-r|連%体%詞|れん%たい%し}}, which modify nouns, and do not conjugate or [[predicate#Verb|predicate]].",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Hiragana"] = {
description = "{{{langname}}} terms with hiragana {{mdash}} {{ja-r|平%仮%名|ひら%が%な}} {{mdash}} forms, sorted by conventional hiragana sequence. The hiragana form is a [[phonetic]] representation of that word. " ..
"Wiktionary represents {{{langname}}}-language segments in three ways: in normal form (with [[kanji]], if appropriate), in [[hiragana]] " ..
"form (this differs from kanji form only when the segment contains kanji), and in [[romaji]] form.",
additional = "''Lihat juga'' [[:Kategori:Katakana bahasa {{{langname}}}]]",
toc_template = "Hira-categoryTOC",
toc_template_full = "Hira-categoryTOC/full",
parents = {
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Hiragana",
}
}
labels["historical hiragana"] = {
description = "{{{langname}}} historical [[hiragana]].",
additional = "''See also'' [[:Category:{{{langname}}} historical katakana]].",
toc_template = "Hira-categoryTOC",
toc_template_full = "Hira-categoryTOC/full",
parents = {
"Hiragana",
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Hiragana",
}
}
labels["Katakana"] = {
description = "{{{langname}}} terms with katakana {{mdash}} {{ja-r|片%仮%名|かた%か%な}} {{mdash}} forms, sorted by conventional katakana sequence. Katakana is used primarily for transliterations of foreign words, including old Chinese hanzi not used in [[shinjitai]].",
additional = "''Lihat juga'' [[:Kategori:Hiragana bahasa {{{langname}}}]]",
toc_template = "Kana-categoryTOC",
toc_template_full = "Kana-categoryTOC/full",
parents = {
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Katakana",
}
}
labels["historical katakana"] = {
description = "{{{langname}}} historical [[katakana]].",
additional = "''See also'' [[:Category:{{{langname}}} historical hiragana]].",
toc_template = "Kana-categoryTOC",
toc_template_full = "Kana-categoryTOC/full",
parents = {
"Katakana",
{name = "{{{langcat}}}", raw = true},
"Kategori:Aksara Tulisan Katakana",
}
}
labels["Perkataan dieja dengan kana campuran"] = {
description = "{{{langname}}} terms which combine [[hiragana]] and [[katakana]] characters, potentially with [[kanji]] too.",
parents = {
{name = "{{{langcat}}}", raw = true},
"Hiragana",
"Katakana",
},
}
labels["Kanji"] = {
topright = "{{wp|Kanji}}",
description = "Simbol bahasa {{{langname}}} yang merupakan sebahagian daripada tulisan logogram Han, yang boleh mewakili bunyi atau menyampaikan makna secara langsung.",
toc_template = "Hani-categoryTOC",
umbrella = "Aksara Han",
parents = "Logogram",
}
labels["Kanji mengikut bacaan"] = {
description = "Kanji bahasa {{{langname}}} yang dikategorikan mengikut bacaan.",
parents = {{name = "Kanji", sort = "bacaan"}},
}
labels["Makurakotoba"] = {
topright = "{{wp|Makurakotoba}}",
description = "{{{langname}}} idioms used in poetry to introduce specific words.",
parents = {"Peribahasa"},
}
labels["Perkataan mengikut bacaan kanji"] = {
description = "Kategori bahasa {{{langname}}} yang dikumpulkan berdasarkan bacaan kanji yang dieja dengannya.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan mengikut pola bacaan"] = {
description = "Kategori bahasa {{{langname}}} dengan perkataan yang dikumpulkan berdasarkan corak bacaannya.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan mengikut bilangan aksara kanji"] = {
description = "Perkataan bahasa {{{langname}}} dikategorikan mengikut bilangan aksara kanji.",
parents = {"Perkataan mengikut sifat ortografi"},
}
local function handle_onyomi_list(category, category_type, cat_yomi_type)
local onyomi, seen = {}, {}
for _, yomi in pairs(yomi_data) do
if not seen[yomi] and yomi.onyomi then
local yomi_catname = yomi[category_type]
if yomi_catname ~= false then
local yomi_type = yomi.type
if yomi_type ~= "on'yomi" and yomi_type ~= cat_yomi_type then
insert(onyomi, "[[:Kategori:" .. category:gsub("{{{yomi_catname}}}", yomi_catname) .. " bahasa {{{langname}}}]]")
end
end
end
seen[yomi] = true
end
sort(onyomi)
return onyomi
end
local function add_yomi_category(category, category_type, parent, description)
for _, yomi in pairs(yomi_data) do
local yomi_catname = yomi[category_type]
if yomi_catname ~= false then
local yomi_type = yomi.type
local yomi_desc = yomi.link or yomi_catname
if yomi.description then
yomi_desc = yomi_desc .. "; " .. yomi.description
end
local label = {
description = description .. " " .. yomi_desc .. ".",
breadcrumb = yomi_type,
parents = {{name = parent, sort = yomi_catname}},
}
if yomi.onyomi then
local onyomi = handle_onyomi_list(category, category_type, yomi_type)
label.additional = "Kategori untuk perkataan dengan " ..
(yomi_type == "on'yomi" and "pelbagai lagi" or "lain-lain") ..
" jenis spesifik bacaan on'yomi boleh ditemukan pada kategori berikut:\n* " .. concat(onyomi, "\n* ")
if yomi_type ~= "on'yomi" then
insert(label.parents, 1, {
name = (category:gsub("{{{yomi_catname}}}", yomi_data.on[category_type])),
sort = yomi_catname
})
end
end
labels[category:gsub("{{{yomi_catname}}}", yomi_catname)] = label
end
end
end
add_yomi_category(
"Perkataan dengan bacaan {{{yomi_catname}}}",
"reading_category",
"Perkataan mengikut pola bacaan",
"Perkataan bahasa {{{langname}}} dengan bacaan"
)
add_yomi_category(
"Perkataan dieja dengan kanji dengan bacaan {{{yomi_catname}}}",
"kanji_category",
"Perkataan mengikut jenis bacaan kanji",
"Kategori bahasa {{{langname}}} dengan perkataan yang dieja dengan satu atau lebih banyak aksara kanji dengan bacaan"
)
labels["Perkataan kehilangan yomi"] = {
description = "Perkataan bahasa {{{langname}}} yang kehilangan satu atau lebih [[Lampiran:Glosari bahasa Jepun#yomi|yomi]] dalam {{tl|{{{langcode}}}-kanjitab}}.",
hidden = true,
can_be_empty = true,
parents = {"Penyelenggaraan entri"},
}
labels["terms with IPA pronunciation with pitch accent"] = {
description = "{{{langname}}} terms with pronunciations that have {{w|Japanese pitch accent|pitch accent}} specified.",
additional = "Pitch accent can be specified in {{tl|{{{langcode}}}-pron}} with the {{code|=acc=}} parameter.",
can_be_empty = true,
parents = {"Penyelenggaraan entri", "pitch accent"},
}
labels["terms with IPA pronunciation missing pitch accent"] = {
description = "{{{langname}}} terms with pronunciations that do not have a {{w|Japanese pitch accent|pitch accent}} specified.",
additional = "Pitch accent can be specified in {{tl|{{{langcode}}}-pron}} with the {{code|=acc=}} parameter.",
hidden = true,
can_be_empty = true,
parents = {"Penyelenggaraan entri"},
}
labels["pitch accent"] = {
description = "{{{langname}}} terms regarding {{w|Japanese pitch accent|pitch accent}} pronunciation.",
can_be_empty = true,
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["terms with Heiban pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[平板型|Heiban]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Atamadaka pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[頭高型|Atamadaka]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Nakadaka pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[中高型|Nakadaka]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Odaka pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[尾高型|Odaka]] {{w|Japanese pitch accent|pitch accent}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with complex pitch accent (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) complex {{w|Japanese pitch accent|pitch accent}}, as in having more than one {{m|ja|アクセント句}}.",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["pitch accent deaccenting before の"] = {
description = "{{{langname}}} terms with {{w|Japanese pitch accent|pitch accent}} pronunciations that have exceptional deaccenting or lack thereof before の ({{ja-deaccenting-before-no}}).",
can_be_empty = true,
parents = {"pitch accent"}
}
labels["terms with Odaka pitch accent not deaccented before の (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[尾高型|Odaka]] {{w|Japanese pitch accent|pitch accent}} and do not become deaccented before の ({{ja-deaccenting-before-no}}).\n\nTerms are placed in this category using {{tl|ja-odaka-deaccent-exception}}.",
can_be_empty = true,
parents = {"pitch accent deaccenting before の"}
}
labels["terms with Nakadaka pitch accent deaccented before の (Tōkyō)"] = {
description = "{{{langname}}} terms with pronunciations that are (Tōkyō) [[中高型|Nakadaka]] {{w|Japanese pitch accent|pitch accent}} and become deaccented before の ({{ja-deaccenting-before-no}}).\n\nTerms are placed in this category using {{tl|ja-nakadaka-deaccent}}.",
can_be_empty = true,
parents = {"pitch accent deaccenting before の"}
}
labels["Perkataan mengikut jenis bacaan kanji"] = {
description = "{{{langname}}} categories with terms grouped with regard to the types of readings of the kanji with which " ..
"they are spelled; broadly, those of Chinese origin, {{ja-r|音|おん}} readings, and those of non-Chinese origin, {{ja-r|訓|くん}} readings.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan dieja dengan ateji"] = {
topright = "{{wp|Ateji}}",
description = "{{{langname}}} terms containing one or more [[Appendix:Japanese glossary#ateji|ateji]] {{mdash}} {{ja-r|当て字|あてじ}} {{mdash}} which are [[kanji]] used to represent sounds rather than meanings (though meaning may have some influence on which kanji are chosen).",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan dieja dengan daiyōji"] = {
description = "Japanese terms spelled using [[Appendix:Japanese glossary#daiyouji|daiyōji]], categorized using {{temp|ja-daiyouji}}.",
parents = {"Perkataan mengikut etimologi"},
}
labels["Perkataan dieja dengan jukujikun"] = {
description = "{{{langname}}} terms containing one or more [[Appendix:Japanese glossary#jukujikun|jukujikun]] {{mdash}} {{ja-r|熟%字%訓|じゅく%じ%くん}} {{mdash}} which are [[kanji]] used to represent meanings rather than sounds.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
local function add_grade_categories(grade, desc, wp, only_one, parent, sort)
local grade_kanji = "Kanji " .. grade
local topright = wp and ("{{wp|%s}}"):format(ucfirst(grade_kanji)) or nil
labels[grade_kanji] = {
topright = topright,
description = "Kanji bahasa {{{langname}}} " .. desc,
toc_template = "Hani-categoryTOC",
parents = {{
name = parent and ("Kanji " .. parent) or "Kanji",
sort = sort or grade
}},
}
labels["Perkataan dieja dengan " .. grade_kanji:lower()] = {
topright = topright,
description = "Perkataan bahasa {{{langname}}} yang dieja dengan " .. (only_one and "sekurang-kurangnya satu " or "") .. " aksara kanji " .. desc,
parents = {{
name = parent and ("Perkataan dieja dengan kanji " .. parent) or "Perkataan mengikut sifat ortografi",
sort = sort or grade
}},
}
end
for i = 1, 6 do
local ord = m_numeric.ones_position_ord[i]
add_grade_categories(
"gred " .. ord,
"diajar dalam gred " .. ord .. " sekolah rendah, seperti yang ditetapkan oleh senarai rasmi {{ja-r|教%育 漢%字|きょう%いく かん%じ|sukatan pendidikan kanji}}.",
false,
false,
"kyōiku",
i
)
end
add_grade_categories(
"kyōiku",
"pada senarai rasmi {{ja-r|教%育 漢%字|きょう%いく かん%じ|sukatan pendidikan kanji}}.",
true,
false,
"jōyō"
)
add_grade_categories(
"sekolah menengah",
"pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}} yang secara umumnya diajar pada peringkat sekolah menengah.",
false,
false,
"jōyō"
)
add_grade_categories(
"jōyō",
"pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}}.",
true,
false
)
add_grade_categories(
"tōyō",
"pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}}, yang digunakan pada sekitar tahun 1946{{ndash}}1981 sehingga penerbitan senarai {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara penggunaan biasa}}.",
true,
false
)
add_grade_categories(
"jinmeiyō",
"pada senarai rasmi {{ja-r|人%名%用 漢%字|じん%めい%-よう かん%じ|kanji untuk kegunaan nama peribadi}}.",
true,
true
)
add_grade_categories(
"hyōgai",
"tidak termasuk pada senarai rasmi {{ja-r|常%用 漢%字|じょう%よう かん%じ|aksara kegunaan kerap}} atau {{ja-r|人%名%用 漢%字|じん%めい%-よう かん%じ|kanji untuk kegunaan nama peribadi}}, yang dikenali sebagai {{ja-r|表%外 漢%字|ひょう%がい かん%じ}} atau {{ja-r|表%外%字|ひょう%がい%じ|aksara tidak tersenarai}}.",
true,
true
)
labels["Perkataan dengan berbilang bacaan"] = {
description = "Perkataan bahasa {{{langname}}} dengan berbilang cara sebutan (maka juga sama dengan berbilang ejaan [[kana]]).",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Bacaan kanji mengikut bilangan mora"] = {
description = "Kategori-kategori bahasa {{{langname}}} dikumpulkan berdasarkan bilangan mora dalam bacaan kanji.",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["Perkataan kanji tunggal"] = {
description = "Perkataan {{{langname}}} yang ditulis dengan kanji tunggal.",
parents = {
"Perkataan mengikut sifat ortografi",
{name = "Perkataan dengan 1 aksara kanji", sort = " "},
},
}
labels["kanji with kun readings missing okurigana designation"] = {
breadcrumb = "Kanji missing okurigana designation",
description = "{{{langname}}} kanji entries in which one or more kun readings entered into {{tl|{{{langcode}}}-readings}} is missing a hyphen denoting okurigana.",
toc_template = "Hani-categoryTOC",
hidden = true,
can_be_empty = true,
parents = {"Penyelenggaraan entri"},
}
labels["Perkataan mengikut aksara individu dalam ejaan sejarah"] = {
breadcrumb = "Bersejarah",
description = "{{{langname}}} terms categorized by whether their spellings in the {{w|historical kana orthography}} included certain individual characters.",
parents = {{name = "Perkataan mengikut aksara individu", sort = " "}},
}
labels["Kata kerja tanpa ketransitifan"] = {
description = "{{{langname}}} verbs missing the {{code|=tr=}} parameter from their headword templates.",
hidden = true,
can_be_empty = true,
parents = {"Penyelenggaraan entri"},
}
labels["Yojijukugo"] = {
topright = "{{wp|Yojijukugo}}",
description = "{{{langname}}} four-[[kanji]] compound terms, {{ja-r|四%字 熟%語|よ%じ じゅく%ご}}, with idiomatic meanings; typically derived from Classical Chinese, Buddhist scripture or traditional Japanese proverbs.",
additional = "Compare Chinese {{w|chengyu}} and Korean {{w|sajaseong-eo}}.",
umbrella = "peribahasa empat aksara",
parents = {"Peribahasa"},
}
-- FIXME: Only works for 0 through 19.
local word_to_number = {}
for k, v in pairs(m_numeric.ones_position) do
word_to_number[v] = k
end
local periods = {
lama = true,
kuno = true,
}
local function get_period_text_and_reading_type_link(period, reading_type)
if period and not periods[period] then
return nil
end
local period_text = period and " " .. period or nil
-- Allow periods (historical or ancient) by themselves; they will parse as reading types.
if not period and periods[reading_type] then
return nil, reading_type
end
local reading_type_link = "[[Lampiran:Glosari bahasa Jepun#" .. reading_type .. "|" .. reading_type .. "]]"
return period_text, reading_type_link
end
local function get_sc(str)
return match(str:gsub("[%s%p]+", ""), "[^" .. Hira:getCharacters() .. "]") and Jpan or Hira
end
local function get_tagged_reading(reading, lang)
return tag_text(reading, lang, get_sc(reading))
end
local function get_reading_link(reading, lang, period, link)
local hist = periods[period]
reading = reading:gsub("[%.%-%s]+", "")
return full_link({
lang = lang,
sc = get_sc(reading),
term = link or reading:gsub("・", ""),
-- If we have okurigana, demarcate furigana.
alt = reading:gsub("^(.-)・", "<span style=\"border-top:1px solid;position:relative;padding:1px;\">%1<span style=\"position:absolute;top:0;bottom:67%%;right:0%%;border-right:1px solid;\"></span></span>"),
tr = kana_to_romaji((reading:gsub("・", ".")), lang:getCode(), nil, {keep_dot = true, hist = hist})
:gsub("^(.-)%.", "<u>%1</u>"),
pos = reading:find("・", 1, true) and get_tagged_reading((reading:gsub("^.-・", "~")), lang) or nil
}, "term")
end
local function is_on_subtype(reading_type)
return reading_type:find(".on$")
end
insert(handlers, function(data)
local n =data.label:match("^Perkataan dengan ([1-9]%d*) aksara kanji$")
if not n then
return
end
local sortkey = require("Module:category tree").numeral_sortkey(n, 2097152)
return {
breadcrumb = n,
description = ("Perkataan bahasa {{{langname}}} yang mengandungi tepat %d aksara kanji."):format(n),
-- TODO: implement this using the same mechanism used to implement parents (i.e. avoiding the need for raw categories).
-- umbrella = {
-- breadcrumb = ("%d kanji"):format(n),
-- parents = {{name = "terms by number of kanji subcategories by language", sort = sortkey}},
-- },
parents = {{name = ("Perkataan mengikut bilangan aksara kanji"), sort = sortkey}}
}
end)
insert(handlers, function(data)
local label_pref, kana = data.label:match("^(Perkataan yang mengikut sejarah dieja dengan )" .. kana_capture .. "$")
if not kana then
return
end
local lang = data.lang
return {
description = "Perkataan bahasa {{{langname}}} yang dieja dengan " .. get_reading_link(kana, lang, "bersejarah") .. " dalam {{w|ortografi kana sejarawi}}.",
displaytitle = label_pref .. get_tagged_reading(kana, lang) .. " bahasa {{{langname}}}",
breadcrumb = "sejarah",
parents = {
{name = "Perkataan dieja dengan " .. kana, sort = " "},
{name = "Perkataan mengikut aksara individu dalam ejaan sejarah", sort = lang:makeSortKey(kana)}
},
umbrella = false,
}
end)
insert(handlers, function(data)
local count, plural = data.label:match("^Bacaan kanji dengan (.+) mora$")
local num = word_to_number[count]
if not num then
return nil
end
return {
description = "Bacaan kanji bahasa {{{langname}}} yang mengandungi " .. count .. " mora.",
breadcrumb = num,
parents = {{name = "Bacaan kanji mengikut bilangan mora", sort = num}},
umbrella = false,
}
end)
insert(handlers, function(data)
local label_pref, period, reading_type, reading = match(data.label, "^(Kanji dengan bacaan ([a-z]-) ?([%a']+) )" .. kana_capture .. "$")
if not period then
return
end
period = period ~= "" and period or nil
local period_text, reading_type_link = get_period_text_and_reading_type_link(period, reading_type)
if not reading_type_link then
return
end
local lang = data.lang
-- Compute parents.
local parents, breadcrumb = {}
if reading:find("・", 1, true) then
local okurigana = reading:match("・(.*)")
insert(parents, {
name = "Kanji dengan bacaan" .. (period_text or "") .. " ".. reading_type .. " " .. reading:match("(.-)・"),
-- Sort by okurigana, since all coordinate categories will have the same furigana.
sort = (lang:makeSortKey(okurigana))
})
breadcrumb = "~" .. okurigana
else
insert(parents, {
name = "Kanji mengikut bacaan" .. (period_text or "") .. " " .. reading_type,
sort = (lang:makeSortKey(reading))
})
breadcrumb = reading
end
if is_on_subtype(reading_type) then
insert(parents, {name = "Kanji dengan bacaan" .. (period_text or "") .. " on " .. reading, sort = reading_type})
elseif period_text then
insert(parents, {name = "Kanji dengan bacaan" .. period_text .. " " .. reading, sort = reading_type})
end
if not period_text then
insert(parents, {name = "Kanji dibaca sebagai " .. reading, sort = reading_type})
end
return {
description = "Aksara [[kanji]] bahasa {{{langname}}} dengan bacaan " .. reading_type_link .. " " ..
get_reading_link(reading, lang, period or reading_type) .. ".",
displaytitle = "{{{langname}}} " .. label_pref .. get_tagged_reading(reading, lang),
breadcrumb = get_tagged_reading(breadcrumb, lang),
parents = parents,
umbrella = false,
}
end)
insert(handlers, function(data)
local period, reading_type = match(data.label, "^Kanji mengikut bacaan ([a-z]-) ?([%a']+)$")
if not period then
return
end
period = period ~= "" and period or nil
local period_text, reading_type_link = get_period_text_and_reading_type_link(period, reading_type)
if not reading_type_link then
return nil
end
-- Compute parents.
local parents = {
is_on_subtype(reading_type) and {name = "Kanji mengikut bacaan" .. (period_text or "") .. " on", sort = reading_type} or
period_text and {name = "Kanji mengikut bacaan " .. reading_type, sort = period} or
{name = "Kanji mengikut bacaan", sort = reading_type}
}
if period_text then
insert(parents, {name = "Kanji mengikut bacaan" .. period_text, sort = reading_type})
end
-- Compute description.
local description = "[[kanji|Kanji]] bahasa {{{langname}}} dikategorikan mengikat bacaan " .. (period_text or "") .. reading_type_link .. "."
return {
description = description,
breadcrumb = reading_type .. (period_text or ""),
parents = parents,
umbrella = false,
}
end)
insert(handlers, function(data)
local label_pref, reading = match(data.label, "^(Kanji dibaca sebagai )" .. kana_capture .. "$")
if not reading then
return
end
local args = require("Module:parameters").process(data.args, {
["histconsol"] = true,
})
local lang = data.lang
local parents, breadcrumb = {}
if reading:find("・", 1, true) then
local okurigana = reading:match("・(.*)")
insert(parents, {
name = "Kanji dibaca sebagai " .. reading:match("(.-)・"),
-- Sort by okurigana, since all coordinate categories will have the same furigana.
sort = (lang:makeSortKey(okurigana))
})
breadcrumb = "~" .. okurigana
else
insert(parents, {
name = "Kanji mengikut bacaan",
sort = (lang:makeSortKey(reading))
})
breadcrumb = reading
end
local addl
local period_text
if args.histconsol then
period_text = "lama"
addl = ("This is a [[Wikipedia:Historical kana orthography|historical]] [[Wikipedia:Kanazukai|reading]], now " ..
"consolidated with the [[Wikipedia:Modern kana usage|modern reading]] of " ..
get_reading_link(args.histconsol, lang, nil, ("Kategori:Kanji dibaca sebagai %s bahasa Jepun"):format(args.histconsol)) .. ".")
end
return {
description = "[[kanji|Kanji]] bahasa {{{langname}}} dibaca sebagai " .. get_reading_link(reading, lang, period_text) .. ".",
additional = addl,
displaytitle = label_pref .. get_tagged_reading(reading, lang) .. " bahasa {{{langname}}}" ,
breadcrumb = get_tagged_reading(breadcrumb, lang),
parents = parents,
umbrella = false,
}, true
end)
insert(handlers, function(data)
local label_pref, reading = match(data.label, "^(Perkataan dieja dengan kanji dibaca sebagai )" .. kana_capture .. "$")
if not reading then
return
end
-- Compute parents.
local lang = data.lang
local sort_key = (lang:makeSortKey(reading))
local mora_count = require("Module:ja").count_morae(reading)
local mora_count_words = m_numeric.spell_number(tostring(mora_count))
local parents = {
{name = "Perkataan mengikut bacaan kanji", sort = sort_key},
{name = "Bacaan kanji dengan " .. mora_count_words .. " mora", sort = sort_key},
{name = "Kanji dibaca sebagai " .. reading, sort = " "},
}
local tagged_reading = get_tagged_reading(reading, lang)
return {
description = "{{{langname}}} terms that contain kanji that exhibit a reading of " .. get_reading_link(reading, lang) ..
" in those terms prior to any sound changes.",
displaytitle = "{{{langname}}} " .. label_pref .. tagged_reading,
breadcrumb = tagged_reading,
parents = parents,
umbrella = false,
}
end)
insert(handlers, function(data)
local kanji, reading = match(data.label, "^Perkataan dieja dengan (.) dibaca sebagai " .. kana_capture .. "$")
if not kanji then
return nil
end
local args = require("Module:parameters").process(data.args, {
[1] = {list = true},
})
local lang = data.lang
if #args[1] == 0 then
error("Bagi kategori dalam bentuk \"" .. lang:getCanonicalName() ..
" terms spelled with KANJI dibaca sebagai READING\", at least one reading type (e.g. <code>kun</code> or <code>on</code>) must be specified using <code>1=</code>, <code>2=</code>, <code>3=</code>, etc.")
end
local yomi_types, parents = {}, {}
for _, yomi, category in ipairs(args[1]) do
local yomi_data = yomi_data[yomi]
if not yomi_data then
error("Jenis yomi \"" .. yomi .. "\" tidak sah.")
end
category = yomi_data.kanji_category
if not category then
error("Jenis yomi \"" .. yomi .. "\" tidak sah bagi jenis kategori ini.")
end
insert(yomi_types, yomi_data.link)
insert(parents, {
name = "Perkataan dieja dengan kanji dengan bacaan " .. category,
sort = (lang:makeSortKey(reading))
})
end
insert(parents, 1, {name = "Perkataan dieja dengan " .. kanji, sort = (lang:makeSortKey(reading))})
insert(parents, 2, {name = "Perkataan dieja dengan kanji dibaca sebagai " .. reading, sort = Hani_sort(kanji)})
yomi_types = (#yomi_types > 1 and "one of " or "") .. "its " ..
require("Module:table").serialCommaJoin(yomi_types, {conj = "or"}) ..
" reading" .. (#yomi_types > 1 and "s" or "")
local tagged_kanji = get_tagged_reading(kanji, lang)
local tagged_reading = get_tagged_reading(reading, lang)
return {
description = "{{{langname}}} terms spelled with {{l|{{{langcode}}}|" .. kanji .. "}} with " ..
yomi_types .. " of " .. get_reading_link(reading, lang) .. ".",
displaytitle = "{{{langname}}} terms spelled with " .. tagged_kanji .. " dibaca sebagai " .. tagged_reading,
breadcrumb = "dibaca sebagai " .. tagged_reading,
parents = parents,
umbrella = false,
}, true
end)
insert(handlers, function(data)
local affix, kanji, reading = data.label:match("^Perkataan dengan ([a-z]) (.+) dibaca sebagai " .. kana_capture .. "$")
if not affix or not kanji or not reading then
return nil
end
local args = require("Module:parameters").process(data.args, {
[1] = {list = true},
})
local lang = data.lang
if #args[1] == 0 then
error("Bagi kategori dalam bentuk \"" .. lang:getCanonicalName() ..
" perkataan dengan AFFIX KANJI dibaca sebagai READING\", at least one reading type (e.g. <code>kun</code> or <code>on</code>) must be specified using <code>1=</code>, <code>2=</code>, <code>3=</code>, etc.")
end
local yomi_types = {}
for _, yomi, category in ipairs(args[1]) do
local yomi_data = yomi_data[yomi]
if not yomi_data then
error("Jenis yomi \"" .. yomi .. "\" tidak sah.")
end
category = yomi_data.kanji_category
if not category then
error("Jenis yomi \"" .. yomi .. "\" tidak sah bagi jenis kategori ini.")
end
insert(yomi_types, yomi_data.link)
end
yomi_types = (#yomi_types > 1 and "one of " or "") .. "its " ..
require("Module:table").serialCommaJoin(yomi_types, {conj = "or"}) ..
" reading" .. (#yomi_types > 1 and "s" or "")
local description = "{{{langname}}} terms " .. affix .. "ed with {{l|{{{langcode}}}|" .. kanji .. "}} with " ..
yomi_types .. " of " .. get_reading_link(reading, lang) .. "."
local ok, what_categorizes = pcall(require, "Module:category tree/fam/jpx/what-categorizes-msg")
if ok and what_categorizes.get_what_categorizes_msg then
local what_categorizes_msg = what_categorizes.get_what_categorizes_msg(kanji, reading, affix)
if what_categorizes_msg then
description = description .. "\n\n" .. what_categorizes_msg
end
end
local parents = {}
table.insert(parents, {name = "Perkataan dengan " .. affix .. " " .. kanji, sort = (lang:makeSortKey(reading))})
if mw.title.new("Kategori:Perkataan dieja dengan " .. kanji .. " dibaca sebagai " .. reading .. " bahasa " .. lang:getCanonicalName()).exists then
table.insert(parents, {name = "Perkataan dieja dengan " .. kanji .. " dibaca sebagai " .. reading, sort = (lang:makeSortKey(reading)), args=data.args})
end
local tagged_kanji = get_tagged_reading(kanji, lang)
local tagged_reading = get_tagged_reading(reading, lang)
return {
description = description,
displaytitle = "{{{langname}}} terms " .. affix .. "ed with " .. tagged_kanji .. " dibaca sebagai " .. tagged_reading,
breadcrumb = "dibaca sebagai " .. reading,
parents = parents,
umbrella = false,
}, true
end)
insert(handlers, function(data)
local kanji, daiyoji = match(data.label, "^Perkataan dengan (.) digantikan oleh daiyōji (.)$")
if not kanji then
return nil
end
local args = require("Module:parameters").process(data.args, {
["sort"] = true,
})
local lang = data.lang
if not args.sort then
error("For categories of the form \"" .. lang:getCanonicalName() ..
" terms with KANJI replaced by daiyōji DAIYOJI\", the sort key must be specified using sort=")
end
local tagged_kanji = get_tagged_reading(kanji, lang)
local tagged_daiyoji = get_tagged_reading(daiyoji, lang)
return {
description = "{{{langname}}} terms with {{l|{{{langcode}}}|" .. kanji .. "}} replaced by [[Appendix:Japanese glossary#daiyouji|daiyōji]] {{l|{{{langcode}}}|" .. daiyoji .. "}}.",
displaytitle = "{{{langname}}} terms with " .. tagged_kanji .. " replaced by daiyōji " .. tagged_daiyoji,
breadcrumb = tagged_kanji .. " replaced by daiyōji " .. tagged_daiyoji,
parents = {{name = "Perkataan dieja dengan daiyōji", sort = args.sort}},
umbrella = false,
}, true
end)
return {LABELS = labels, HANDLERS = handlers}
3pf46mymnl7rvosl7uej3qsgorh94nu
Modul:category tree/fam/zhx
828
57727
342748
247474
2026-05-16T04:09:16Z
Hakimi97
2668
Hakimi97 telah memindahkan laman [[Modul:category tree/lang/zhx]] ke [[Modul:category tree/fam/zhx]]
247474
Scribunto
text/plain
local labels = {}
local handlers = {}
labels["Hanzi"] = {
topright = "{{wp|Aksara Cina}}",
description = "{{{langname}}} symbols of the Han logographic script, which can represent sounds or convey meanings directly.",
umbrella = "Aksara Han",
parents = "Logogram",
}
labels["Chengyu"] = {
topright = "{{wp|Chengyu}}",
description = "{{{langname}}} traditional idiomatic expressions, usually consisting of four [[hanzi]]; typically derived from [[Classical Chinese]].",
additional = "Compare Japanese {{w|yojijukugo}} and Korean {{w|sajaseong-eo}}.",
umbrella = "four-character idioms",
parents = "Peribahasa",
}
for _, source in ipairs {
"Mencius",
"the Analects",
"the Book of Documents",
"the Book of Rites",
"the Classic of Poetry",
"the Han Feizi",
"the I Ching",
"the Zhuangzi",
"the Zuo Zhuan",
} do
local book = source:match("^the (.*)$")
local sort_key = book or source
local italicized = book and "the ''" .. book .. "''" or source
labels["terms derived from " .. source] = {
displaytitle = book and "{{{langname}}} terms derived from " .. italicized or nil,
parents = {{name = "terms attributed to a specific source", sort = sort_key}},
description = "{{{langname}}} terms derived from " .. italicized .. ".",
breadcrumb = italicized,
}
labels["chengyu derived from " .. source] = {
displaytitle = book and "{{{langname}}} chengyu derived from " .. italicized or nil,
parents = {{name = "chengyu", sort = sort_key}, "terms derived from " .. source},
description = "{{{langname}}} chengyu ([[chengyu]]) derived from " .. italicized .. ".",
breadcrumb = "derived from " .. italicized,
}
end
return {LABELS = labels, HANDLERS = handlers}
i5uq139ci5ilsd259tljagktez7y3w6
مالو
0
58114
342038
185392
2026-05-15T13:59:06Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342038
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# malu
fsvm2931bl7mcogifl6ko3bn8jrntfx
ما س
0
58115
342032
185393
2026-05-15T13:58:52Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342032
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# masa
pjwrayhjude081a4xk4tjuhrogn4org
کسليساءن
0
58116
342253
185394
2026-05-15T14:06:22Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342253
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# keselesaan
1dl19pujk8wmnu4tl8yq4dzoap8s1ld
لمبت
0
58117
342020
185395
2026-05-15T13:58:26Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata Adverba==== → ===Kata Adverba=== menggunakan [[Project:AWB|AWB]]
342020
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata Adverba===
{{inti|ms|kata nama}}
# لمبت
slac5q0ptvryraic51leiglu8kwcqxl
چينچين
0
58118
342147
185396
2026-05-15T14:02:46Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342147
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# cincin
9334sfcxlifne4px894gdt3cktb0vn2
کتاوا
0
58119
342241
185398
2026-05-15T14:05:58Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342241
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[ketawa]]
gcmv9uxip1gc8lza5ryd3cpni2lcoy1
راج
0
58120
341938
185618
2026-05-15T13:55:43Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341938
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|raja}}
rw3jwm0ghe48p3zc9crqvs6upp9cs69
مانيس
0
58122
342040
185401
2026-05-15T13:59:10Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342040
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# manis
g5ykyw0drgfhdc5y3hspm209c4ldab2
ڤکن
0
58123
342232
185402
2026-05-15T14:05:40Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342232
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# ڤکن
2ueizfpn2f4vkrx18ikw47wl8tnrinp
ماسين
0
58125
342037
185404
2026-05-15T13:59:03Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342037
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# masin
ao1necc6jck9jx4kmv6084x3abcdqbk
دودوق
0
58126
341928
185405
2026-05-15T13:55:22Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
341928
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[duduk]]
5lw15w81sgutayzf2ay953nrkg2xzlk
لمه
0
58128
342021
185407
2026-05-15T13:58:28Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342021
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# لمه
kg431q8x5mzu4b9ck5g5kbnxjhbt3kc
ڤرݢولقن
0
58129
342182
185408
2026-05-15T14:03:58Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342182
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# pergolakan
gyy3dy1fpzl2623gkrkjoi589iniudt
ڤاهيت
0
58130
342156
185409
2026-05-15T14:03:04Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342156
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# pahit
mbhfdna0z4u4o8fiu0nn72g5e5vpwv1
هيدوڤ
0
58131
342133
185410
2026-05-15T14:02:18Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342133
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[hidup]]
4ehnx03bdtxw21c6p9fe354uy9d8gbw
مڽيمڤن
0
58132
342114
185411
2026-05-15T14:01:39Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342114
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# Menyimpan
8fwhngmz4oawufytxsg0dzicc58go2l
ڤدس
0
58133
342159
185412
2026-05-15T14:03:10Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342159
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# pedas
93kbaj39ka60qqf75p55itfd1jheuq4
مليهت
0
58134
342054
185413
2026-05-15T13:59:44Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342054
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# Melihat
23ff8cg6lh2kpu2a2g5gcyzzqwzafse
ماتي
0
58135
342035
185414
2026-05-15T13:58:58Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342035
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[mati]]
jc4o13oayu3hrshhpbatvkaqei945fa
ݢرق
0
58136
342291
202090
2026-05-15T14:07:38Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342291
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# {{ms-jawi|gerak}}
===Bacaan lanjut===
* {{R:PRPM}}
7idd09n13u9kknvnxa0jgndxl4l9u3y
مان
0
58138
342039
185417
2026-05-15T13:59:08Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342039
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# مان
hwogmrh18c527028fu07wyfmg7ht11o
ماءوڠ
0
58140
342034
185419
2026-05-15T13:58:56Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342034
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# maung
s7fx46c0aiyi2nts30r3z2wopbtrgqg
ملابور
0
58141
342051
185420
2026-05-15T13:59:36Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342051
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[melabur]]
cb72z13ca6sxhwwcxyb7fxv00471ko5
واجه
0
58142
342134
185421
2026-05-15T14:02:20Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342134
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# واجه
enwqye391athtaxvi30q0izwlt4ex78
مڽرتاءي
0
58143
342109
185423
2026-05-15T14:01:29Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342109
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# Menyertai
fustiovrnhy3qsp5i09244oq4c0fie2
کمس
0
58144
342261
185424
2026-05-15T14:06:38Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342261
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# kemas
4bgxdlahkml7eg3ta14s860sgsm4hu2
ڤروسيديڠ
0
58145
342172
185425
2026-05-15T14:03:38Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342172
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# prosiding
qpz1d10c4gts0eh15xsllgcz0x08bp7
مڠڤيت
0
58148
342104
185428
2026-05-15T14:01:19Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342104
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# Mengepit
6sxl22q7b0ahe1sgkbwkioes86zy6cr
سمبرونو
0
58150
341973
185430
2026-05-15T13:56:54Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
341973
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# sembrono
kqaxb5aotrkyq0c7s9f17m0awqpgmbu
ݢاسيغ
0
58151
342288
185431
2026-05-15T14:07:34Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342288
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# ݢاسيغ
ktskbfk3jqlhf4w1psmmmmiypu2kx8v
موک
0
58154
342091
185434
2026-05-15T14:00:55Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342091
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# muka
czs1dym2mixenaoppsz80e4lk4gg2p8
چاري
0
58155
342142
185435
2026-05-15T14:02:36Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342142
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[cari]]
j4cm36y1v9ues2ok38x69zlymrcifr5
چڤت
0
58157
342149
185437
2026-05-15T14:02:50Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342149
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[cepat]]
scfwy2zkooirzayd7n5ysv71z83llxf
مڠهولورکن
0
58159
342100
185441
2026-05-15T14:01:13Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342100
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# Menghulurkan
cyz0hnn6g1ffs0vmrog1ayotnkqzkh6
کاموس
0
58160
342237
185442
2026-05-15T14:05:50Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342237
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# کاموس
krxopu4ki30fbxka7mloon1xhol4c2z
کولتوس
0
58161
342270
185443
2026-05-15T14:06:57Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342270
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# kultus
qm87m9dg409g2tfi1umbesmehmmveso
کنل
0
58162
342263
185444
2026-05-15T14:06:42Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342263
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# kenal
ddf9hu6xdzsojiv3kbtkz2vjfjplqjd
ڤادت
0
58163
342152
185445
2026-05-15T14:02:56Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata Adjektif==== → ===Kata Adjektif===, Kata Adjektif → kata sifat, =kata sifat= menggunakan [[Project:AWB|AWB]]
342152
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata nama}}
# ڤادت
dovvn7f3h8pzc435cnvb5tdt8kfft9g
مندالم
0
58164
342076
185446
2026-05-15T14:00:25Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342076
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[mendalam]]
82t4a225vmfqwt95jsgfdv9zqmpaobz
ککورڠن
0
58165
342277
185447
2026-05-15T14:07:11Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342277
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[kekurangan]]
0gdttxfhftixswt348dg2oogsc549y7
مڽقسيکن
0
58166
342111
185448
2026-05-15T14:01:33Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342111
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# Menyaksikan
bnh8tmcb9tmzcjaztylcnocik3pcfib
سوده
0
58167
341982
185449
2026-05-15T13:57:08Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
341982
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# sudah
gh0dutxppvad1pa69w1axkw7tvoxwof
ماءنسياوي
0
58168
342033
185450
2026-05-15T13:58:54Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342033
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# manusiawi
nna0gs4z6gt9c5be6yl29sdxaenl7ez
کورڠ
0
58169
342268
185451
2026-05-15T14:06:52Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342268
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[kurang]]
qlbux626jbj2inb5iy5bv57qx5cqdl5
رسه
0
58170
341943
185454
2026-05-15T13:55:53Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata Adjektif==== → ===Kata Adjektif===, Kata Adjektif → kata sifat, =kata sifat= menggunakan [[Project:AWB|AWB]]
341943
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata nama}}
# resah
qlwo181tlhp201dlmnsq314lcant92m
کسن
0
58173
342254
185456
2026-05-15T14:06:24Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342254
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# kesan
q325ddjoovjdqe65hbsltxbvi0d0xhw
ساتو ڤڤر ساتو
0
58175
341955
185458
2026-05-15T13:56:18Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341955
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# satu per satu
isnm9zctl5e8v13g4dzdav5yinwny2a
مرانچڠ
0
58176
342044
185459
2026-05-15T13:59:18Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342044
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# Merancang
j0vldsel637d13m0rxjbklh6m5qx8oi
ݢڠݢوان
0
58177
342297
185460
2026-05-15T14:07:51Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342297
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[gangguan]]
bq9hkfoq45ky1ftcp1o987n5ufemfmk
کباکرن
0
58179
342240
185462
2026-05-15T14:05:56Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342240
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[kebakaran]]
ta1ft28o2gbvo6dsrgyz2a9azr3ubsa
ڠنتيق
0
58180
342151
185463
2026-05-15T14:02:54Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342151
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# cantik
pjr823ldenc51v1rcz32s4fkfdhmkaj
ممڤرتاهنکن
0
58182
342071
185465
2026-05-15T14:00:15Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342071
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# Mempertahankan
lrqt0q6gd2wpfcxotx7jg7i8l88ziai
سکلي ݢوس
0
58183
341996
185466
2026-05-15T13:57:40Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341996
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# sekali gus
ja2kh0bl7ggbslub6uonx3iq678fg6z
هودوه
0
58184
342131
185467
2026-05-15T14:02:14Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342131
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# hodoh
l43922is8w9xa67vay1yv4mx9lp9fyz
رعيت
0
58185
341944
185468
2026-05-15T13:55:55Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341944
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[rakyat]]
hlubdr9k54ettfl3f9z1p2m2cbmi3s7
سماڠت
0
58186
341972
185469
2026-05-15T13:56:52Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341972
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# semangat سماڠت
nf1tu6afaz2budxom5rr37kf5iz8v7y
کونفليک
0
58187
342274
185470
2026-05-15T14:07:05Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342274
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# konflik
861uvo9ba7b0lqt75m5ycyb26024awe
سمڠك
0
58188
341977
185471
2026-05-15T13:57:00Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341977
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# semangka سمڠك
egjlu9mcbclthyphk0ru1kkjxaxst74
دکت
0
58189
341933
185472
2026-05-15T13:55:33Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
341933
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# dekat
mgec602kiuktw87ymbyrk23x1l4su30
جاءوه
0
58190
341893
185474
2026-05-15T13:54:07Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
341893
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# jauh
74jklwji62st3y38jkfsg6394e7qar7
ڤنربڠن
0
58191
342206
185475
2026-05-15T14:04:46Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342206
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# penerbangan
1abbckn19gzdy3x2gqdjt44s28guic7
ورتاون
0
58193
342137
185477
2026-05-15T14:02:26Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342137
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# wartawan
cyxvx63jbrbc3at6gg1jxn6zwb1aqm5
سليسا
0
58194
341969
185478
2026-05-15T13:56:46Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
341969
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# selesa
gac6qh8qjt1s2o9lsoga97rnjfiv9ia
لاکر
0
58195
342015
185479
2026-05-15T13:58:16Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342015
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata nama}}
# لاکر lakar
fd4w2y8t6vegl2ikafvmxks0in9iu0b
کتيک
0
58196
342244
185480
2026-05-15T14:06:04Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342244
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# ketika
r2oz3y3pqz71rjipubtd3d6ahnals2h
ديموکراسي
0
58197
341930
185482
2026-05-15T13:55:26Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341930
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[demokrasi]]
dn8b5c8n2qpeei4auqwm01lo069xag7
ممڤڠاروهي
0
58198
342073
185483
2026-05-15T14:00:19Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342073
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata kerja}}
# mempengaruhi
6kyjn3iuvnkv8m3z4d6t9qcpe0e0sgc
سيڠکت
0
58199
341993
185484
2026-05-15T13:57:33Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
341993
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# singkat
fsxf89hwbyzlur1215zattqclab45xs
ڤيليهن
0
58200
342213
185485
2026-05-15T14:05:02Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342213
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[pilihan]]
npv831vsupre35bmv7skefjepq8168n
ديوان
0
58204
341931
185489
2026-05-15T13:55:28Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341931
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[dewan]]
l7yd6mb3h6siv010vtvpck6ffry0vg1
مليريت
0
58205
342053
185490
2026-05-15T13:59:42Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342053
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# meleret
iepkix9w0wa3sal6ar5qu3rye8le5a5
ديڤلوماتيک
0
58206
341932
185491
2026-05-15T13:55:30Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama===, kata adjektif → kata sifat menggunakan [[Project:AWB|AWB]]
341932
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata sifat}}
# diplomatik
b3pxhqifxom38jbiti4rlb4hi2ehj2x
هلامن
0
58207
342128
185492
2026-05-15T14:02:08Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342128
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[halaman]]
hityc3nfir357c7iuxpwn99cuirslnj
مڽيمڤولکن
0
58208
342115
185493
2026-05-15T14:01:41Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342115
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# Menyimpulkan
fnj4fabbqw2gw9vwn9wutf2t9wiuruv
ليسن
0
58211
342029
185496
2026-05-15T13:58:44Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342029
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# lisan
1myewcrcblxhjcg6wstvapv75dipwrb
لوت
0
58213
342026
185498
2026-05-15T13:58:38Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342026
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# لوت {{ms-jawi|lewat}}
lh26uorsf7qzpghph5wghxhyi5co86b
مڠوݢوت
0
58215
342101
185500
2026-05-15T14:01:15Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342101
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata kerja}}
# mengugut
7mfh645usy60uzvaoclkgywmkxf2baz
ݢدوڠ
0
58216
342290
185501
2026-05-15T14:07:36Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342290
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[gedung]]
pw80630l64nyufpgbri6mw2549m216v
لاوت
0
58217
342012
185556
2026-05-15T13:58:10Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342012
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata nama}}
# {{ms-jawi|lawat}}
1hkvhrsrbg8a6rmwko05vibwopzct70
موزيوم
0
58220
342089
185505
2026-05-15T14:00:51Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342089
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[muzium]]
pf5ghg55qi10bm6mmrdsvkgt2gkntr9
کنڠ
0
58221
342266
185507
2026-05-15T14:06:48Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342266
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# kenang
ckmx3288fi30s8lrvgqt5xubfustu99
کريتا
0
58222
342250
185508
2026-05-15T14:06:16Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342250
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[kereta]]
7wip89sx9rhz6ggbnglz5zo00ipxy27
صلةالرهمي
0
58223
342000
185509
2026-05-15T13:57:48Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342000
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# silaturahmi
a6576z5tkjduihzv5ysxdcgla69c2fp
کرباو
0
58224
342246
185510
2026-05-15T14:06:08Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342246
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[kerbau]]
jl9xx40c0enruq1sohxli84pjubka5q
ڤسن
0
58225
342184
185511
2026-05-15T14:04:02Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342184
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata nama}}
# ڤسن {{ms-jawi|pesan}}
jo5t1gil93j9qzhkhk11udx4006ty4i
کنيڠ
0
58226
342264
185512
2026-05-15T14:06:44Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342264
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# kening
lskhj5do2wtcl0k5c7c71leiyanqw4l
ڤسچنيلاي
0
58227
342185
185513
2026-05-15T14:04:04Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342185
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# pascanilai
8k5vugttpy6fzn30ru4w3f69bu00r88
لندق
0
58229
342025
185515
2026-05-15T13:58:36Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342025
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# landak
sl75vj4qewwv3orbvochjtdczfrwnpt
مودا
0
58230
342084
185516
2026-05-15T14:00:42Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342084
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[muda]]
p6hvfsdioqq0oyfc74ziixbldbohbic
چوڤيڠ
0
58231
342146
185517
2026-05-15T14:02:44Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342146
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# cuping
ioqw9k74oqreytrjetqys680en1vnyy
ناسيونل
0
58235
342117
185521
2026-05-15T14:01:46Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342117
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
nasional
a278y41wzurtzqfdu1mgkrazd2kpu19
کتورونن
0
58237
342243
185524
2026-05-15T14:06:02Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342243
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[keturunan]]
eyi2zycy5voapendujha5gahnmvfxwm
ريرواي
0
58238
341948
185526
2026-05-15T13:56:04Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341948
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# reruai
19in67kjjgjp0vcu92hx3ikrqoiax47
ممڤرکنلکن
0
58239
342072
185527
2026-05-15T14:00:17Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342072
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata kerja}}
# memperkenalkan
aukw1mj0wbakygdsrbshbao6weyg6is
ڤروجيک
0
58240
342171
185528
2026-05-15T14:03:36Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342171
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[projek]]
i9jqmmqulnx1v3gk5xl07rmdvcrwfcp
ڤڠالمن
0
58241
342217
185529
2026-05-15T14:05:10Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342217
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[pengalaman]]
79a97s7c6yc5qw6njax9cqkw0ni47mg
ڤرنياݢاءن
0
58243
342169
185666
2026-05-15T14:03:30Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342169
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[perniagaan]]
k74rdbjk8j3an0aczongstzhm4fuh0t
کافي سيبير
0
58244
342236
185532
2026-05-15T14:05:48Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342236
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# kafe siber
9c7w8baa48pq4ludjvpeedz2zwqiz1m
ڤکرجان
0
58245
342231
185533
2026-05-15T14:05:38Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342231
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# pekerjaan
rqtoa7wdl399yj4chahu7xhrj6cq4zt
کراجاءن
0
58247
342245
185535
2026-05-15T14:06:06Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342245
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[kerajaan]]
qy7yg2of06vv0r6eauhvfyj74qob99j
سليويڠ
0
58249
341970
185537
2026-05-15T13:56:48Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341970
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata kerja}}
# seleweng
pbdz8paa37esb9v5mqvjozrk8lthkpd
نݢري
0
58250
342122
185538
2026-05-15T14:01:56Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342122
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[negeri]]
7hknsrr0jhnyaxczwo9jrmverrw7c82
داءيره
0
58251
341917
185539
2026-05-15T13:54:55Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341917
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[daerah]]
kpevbcq9bt8ghswn1z832z87ibl1b47
ولايه
0
58252
342139
185540
2026-05-15T14:02:30Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342139
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[wilayah]]
gupuynzw0wytgyy8rlnavb1j29van7b
رومڤون
0
58253
341946
185541
2026-05-15T13:55:59Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341946
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# rumpun
82mfbbsv6z3skr2u3kz8jkhyx1p6y0v
حاصيل
0
58255
341913
185543
2026-05-15T13:54:47Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341913
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[hasil]]
snf5svd33w1gyalww62i4aqqtk9jkbp
ڤنداڤتن
0
58256
342204
185544
2026-05-15T14:04:42Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342204
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[pendapatan]]
rvgpa304n9zwt9utn5tclsoi6s853vm
منمني
0
58257
342080
185545
2026-05-15T14:00:33Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342080
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata nama}}
# منمني {{ms-jawi|menemani}}
hoqpmnrt7gv418ty5fm1cvlgint23wj
کليلي
0
58258
342258
185546
2026-05-15T14:06:32Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342258
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# kelili
2qf7mo66nw19wrmlkju2fd4pxm15nuy
جومله
0
58259
341911
185547
2026-05-15T13:54:39Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341911
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[jumlah]]
0fva4h7gc6zmjrnv0o27n1x7x148uz5
کوسوت
0
58260
342269
185548
2026-05-15T14:06:55Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342269
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# kusut
9geflh6q9cgz5gx7day1kz9kswjgpe2
ڬاسيڠ
0
58261
342281
185549
2026-05-15T14:07:19Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342281
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# ڬاسيڠ
28i1bmyeji7zr5ztfluk4gciuy8m6ai
کروسقن
0
58262
342248
185550
2026-05-15T14:06:12Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342248
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[kerosakan]]
1u49smz84aivauvzfr3maytatl2y4zt
ممباوا
0
58263
342058
185551
2026-05-15T13:59:52Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342058
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[membawa]]
lxn40s9a23jm0i5g4w73ijkji1n0czj
مڠڠکوت
0
58264
342103
185552
2026-05-15T14:01:17Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342103
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[mengangkut]]
8vgxshre1pq6ojk8saeomjmjvgp6ayd
ڤڠهالا
0
58265
342224
185553
2026-05-15T14:05:24Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342224
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# penghala
99xs0ibol0k2t1nlx8i07qguc5o6oap
مسين
0
58312
342048
185615
2026-05-15T13:59:25Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342048
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|mesin}}
crorkfs13fbh7jsyw5fgm7l6ptymwmk
ڬاي
0
58313
342282
185616
2026-05-15T14:07:22Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342282
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|gaya}}
psi32r50i4l54bznh8ry2shdap5j40c
هاروم
0
58314
342125
185617
2026-05-15T14:02:02Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342125
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|harum}}
4hodn9owhdysqxvy4zp388zi7z4xz75
لاكر
0
58315
342008
185619
2026-05-15T13:58:02Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342008
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata nama}}
# {{ms-jawi|lakar}}
5c6d1qfvouwrv6gky914eq16o4apniy
منچاري
0
58319
342082
185623
2026-05-15T14:00:37Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342082
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|mencari}}
ig3du2b929yzoenv1vzbl151txlmvdb
منداڤت
0
58321
342077
185625
2026-05-15T14:00:27Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342077
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|mendapat}}
2uik7wg5ne0fb22po5afegl9whrvtdc
ڬاري
0
58323
342280
185630
2026-05-15T14:07:17Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342280
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# {{ms-jawi|gari}}
0t8ybf43efyg4irndxprh53qj5hcg3w
ڠري
0
58325
342150
185631
2026-05-15T14:02:52Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342150
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|ngeri}}
7pdie0xkh4q8kac0o1v4rtj208c4yjq
صحابت
0
58326
341999
185632
2026-05-15T13:57:46Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341999
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|sahabat}}
0afi3t5wwzn64nxsu73954udz36r9sr
سنيمن
0
58338
341978
185646
2026-05-15T13:57:02Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341978
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[seniman]]
o6s8r3q6en7d7wz4l930uw8tlkl3gze
سنيواتي
0
58339
341979
185647
2026-05-15T13:57:04Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341979
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[seniwati]]
sthx9fr7cdd7jly2joo0xs0n918dy9p
جورواءوديت
0
58344
341902
185652
2026-05-15T13:54:23Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341902
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[juruaudit]]
22bi0t2ntzsza6tclie5aahwckwfnif
جوروهيبه
0
58345
341907
185653
2026-05-15T13:54:33Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341907
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[juruhebah]]
49o5te4xef7azam4ycsdn9udvdzybvh
ڤلوکيس
0
58348
342189
185656
2026-05-15T14:04:12Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342189
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[pelukis]]
lpq2z8fgqsj8ikcuxqxqqi4ci99dbf6
ڤنجاݢا
0
58350
342200
185658
2026-05-15T14:04:34Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342200
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[penjaga]]
kn2tsc7r9m78q9bgkmingvjdq4pzi5q
ڤمبوات
0
58351
342193
185659
2026-05-15T14:04:20Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342193
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[pembuat]]
cf587oivitr8rfyqtldf7vu2or5a5z5
روتي
0
58352
341945
185660
2026-05-15T13:55:57Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341945
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[roti]]
4zb884nug2dhlipk4ykk9h98vbh5y42
ݢونتيڠ
0
58354
342295
185662
2026-05-15T14:07:47Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342295
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[gunting]]
8nkc4trv5djjxx10pwlbrrha8vpyvyb
جوروسوليق
0
58355
341905
185663
2026-05-15T13:54:29Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341905
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[jurusolek]]
hlxxtixzaui55vy5c1o1daidtekld6j
ڤندايوڠ
0
58357
342203
185665
2026-05-15T14:04:40Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342203
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[pendayung]]
k8dx2c8ijer8fc0e26tk5g261mn2jno
ڤنجوال
0
58358
342201
185667
2026-05-15T14:04:36Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342201
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[penjual]]
sqoivd2w9lu40btogfm809iaeki3rah
داݢيڠ
0
58359
341922
185668
2026-05-15T13:55:10Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341922
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[daging]]
5cf0c7otje480xm34nxtkr2ee4thgid
کايو
0
58360
342239
185669
2026-05-15T14:05:54Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342239
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[kayu]]
b09qhere64kq4c3m0ey9xyzho454f2y
جوروکاميرا
0
58361
341909
185670
2026-05-15T13:54:37Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341909
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[jurukamera]]
1q6qjt46g33aa5q4gxblg1pbvalvgim
جوروواڠ
0
58362
341908
185671
2026-05-15T13:54:35Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341908
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[juruwang]]
ntfp0t1rhnncbhxblwfssbywd5de79k
چوچي
0
58363
342145
185672
2026-05-15T14:02:42Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342145
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[cuci]]
i1h5qhrjrf22k0cay404iodramh7ng9
فيشن
0
58364
342004
185673
2026-05-15T13:57:54Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342004
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[fesyen]]
3r6xnf05ynls3q46dwpg7np88k28uvw
کݢمرن
0
58365
342279
185674
2026-05-15T14:07:15Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342279
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[kegemaran]]
7b89zhdmf7djrypsorqjie23cossyhj
ڤڠاره
0
58366
342216
185675
2026-05-15T14:05:08Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342216
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[pengarah]]
6n0r1um9x84ix6vqorwz61ndyj9e2bx
موديل
0
58368
342086
185677
2026-05-15T14:00:46Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342086
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[model]]
3vbxzqswcwfa0uol2g8x9y6ku5kgpgs
ڤݢاواي
0
58369
342233
185678
2026-05-15T14:05:42Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342233
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[pegawai]]
6ug4cnctziaz8wr4apm1x5ttg29dyf9
کستم
0
58370
342252
185679
2026-05-15T14:06:20Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342252
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[kastam]]
9356wxg3e1pc38ja770efxlneatzwlr
ڤريک
0
58371
342177
185680
2026-05-15T14:03:48Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342177
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[pereka]]
fsfw8f32bz3bu2nmcg9qrdllufl17nr
ڤناري
0
58372
342196
185681
2026-05-15T14:04:26Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342196
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[penari]]
85zhre1rjlagnctiks1ngw5uiz2pl3k
نلاين
0
58373
342119
185682
2026-05-15T14:01:50Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342119
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[nelayan]]
0nqhmzqtfgwzryaqqkn6vboae7jr239
جوروترا
0
58374
341903
185686
2026-05-15T13:54:25Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341903
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[jurutera]]
korqkjger9atrh192vzo4htg4o63h26
جوروسلم
0
58375
341904
185687
2026-05-15T13:54:27Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341904
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[juruselam]]
c2tfzqb2ajxvssq6kfwaabmmj82y0zr
کاءونتر
0
58389
342234
185707
2026-05-15T14:05:44Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342234
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[kaunter]]
1laeze75gbsywh9zrdw04vwnvjghz4y
ڤيل
0
58390
342212
185708
2026-05-15T14:05:00Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342212
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[pil]]
7oqjatz3st57jrnyje6v6aw8hae416e
ڤريسکريڤسي
0
58391
342174
185709
2026-05-15T14:03:42Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342174
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[preskripsi]]
6v5997lk1s1kskbxxepqhqekomilms7
راوتن
0
58392
341940
185710
2026-05-15T13:55:47Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
341940
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[rawatan]]
q0r7k3b3ofgsi82kv4eusbdexmfu630
لمڤين
0
58393
342023
185711
2026-05-15T13:58:32Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342023
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[lampin]]
6uxrc8gg1z3vvju9gdzxyr1richv2ij
ستيتوسکوڤ
0
58396
341964
185714
2026-05-15T13:56:35Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341964
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[stetoskop]]
tt6g8yg6r7s9l2uxlal7qrqkszgzqhr
ڤلستر
0
58397
342188
185715
2026-05-15T14:04:10Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342188
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[plaster]]
itrckp71kbzxtgz7jyielgyrao1vfln
لاروتن
0
58398
342007
185716
2026-05-15T13:58:00Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342007
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[larutan]]
agb3aob52yi16om1xf7elzt4ydv3a5j
ڤڠوسوڠ
0
58399
342226
185717
2026-05-15T14:05:28Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342226
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[pengusung]]
eg52jt7a5zpg5pv84zuoajb1c4zmk4g
ججنتس
0
58401
341898
185719
2026-05-15T13:54:15Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341898
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[jejantas]]
t29kmh2f6qn6yhibhaaz41tes1kfckm
سيمين
0
58442
341992
185764
2026-05-15T13:57:30Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341992
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[simen]]
3aqjfsk7wjzkafz76ho9mp5l9ctz1fe
ڤنيڠ
0
58444
342207
185766
2026-05-15T14:04:48Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342207
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[pening]]
rv2kmue7iedy82ea1e12ddh2jmoc60i
کڤالا
0
58445
342276
185767
2026-05-15T14:07:09Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342276
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[kepala]]
pvss3f2p2xfddq7ajirrx6eettjbv3o
ساون
0
58447
341959
185769
2026-05-15T13:56:24Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341959
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[sawan]]
roqaog78vjvp6lvsfs797opco1xja3k
چيچق
0
58455
342148
185777
2026-05-15T14:02:48Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342148
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[cicak]]
ekh635lar2kwalop1yx119kqayula8w
ريڤتيليا
0
58456
341952
185778
2026-05-15T13:56:12Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341952
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[reptilia]]
lc4rmpfkz6y0wh1bgn6grp4yg6iaht2
ڤنجڠ
0
58457
342202
185779
2026-05-15T14:04:38Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342202
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[panjang]]
6235lvbof1x5lpsszvh6ludmsidiql4
ڤينديق
0
58460
342214
185782
2026-05-15T14:05:04Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342214
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[pendek]]
mb7g4zhqu1bx605h0ujmd25z28lw1dk
ريڠکس
0
58462
341951
185784
2026-05-15T13:56:10Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
341951
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[ringkas]]
ls1g826mkbwkejg4duec08ph849weup
تݢس
0
58466
341892
185788
2026-05-15T13:54:05Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
341892
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[tegas]]
rj04l72buf1xdi8zaf7q99jycngx73c
کومڤولن
0
58518
342273
185873
2026-05-15T14:07:03Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342273
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[kumpulan]]
if34l1a0aonuylw0vd3vtoz1kezv0hd
کلومڤوق
0
58519
342257
185874
2026-05-15T14:06:30Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342257
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[kelompok]]
ornkrrrjl00hfgpoe0w3xsb339ilpib
کتوا
0
58522
342242
185877
2026-05-15T14:06:00Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342242
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[ketua]]
7blwu4tykdajk68jgo9mtzay2t4gnne
جوروماسق
0
58523
341906
185878
2026-05-15T13:54:31Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341906
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[jurumasak]]
0v2jg8hhh6sxz046gqyw1sf21htwdnc
منواڠ
0
58525
342081
185880
2026-05-15T14:00:35Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342081
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[menuang]]
o0ah5qsikise2ee251ej02y6u0zlqi1
ملبور
0
58526
342052
185881
2026-05-15T13:59:39Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342052
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[melebur]]
imi5m95ecfmx82hipbc3om91sok42su
ڤرومهن
0
58529
342173
185885
2026-05-15T14:03:40Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342173
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[perumahan]]
3tog1imfpl5dwgbdbhuegb6sp394b6e
کامڤوڠ
0
58530
342238
185886
2026-05-15T14:05:52Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342238
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[kampung]]
dn2dtjc611h3i8tgl33bokmq0izhorj
ڤراموݢاري
0
58532
342162
185888
2026-05-15T14:03:16Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342162
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[pramugari]]
1a9ijy6xe1fn9j8tqyww9mn5ul0lpff
ڤراموݢارا
0
58533
342161
185889
2026-05-15T14:03:14Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342161
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[pramugara]]
9qt0w06n5lm1n1zs4gfpad8liqduxnv
ڤلاين
0
58534
342186
185890
2026-05-15T14:04:06Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342186
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[pelayan]]
pjfuzc6tlpc6xk711knw87yzozh84v6
سکوله
0
58535
341997
185891
2026-05-15T13:57:42Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341997
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[sekolah]]
39tmzphybt7qx4i7cn620ck90nxunj3
موريد
0
58536
342088
185892
2026-05-15T14:00:48Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342088
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[murid]]
a88d23zsfev08lbrxh94n1f8bvjum6x
مکتب
0
58537
342107
185893
2026-05-15T14:01:25Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342107
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[maktab]]
suco4u5udouorefwfsozc54418kjdph
معلومت
0
58595
342049
186053
2026-05-15T13:59:27Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342049
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[maklumat]]
pxhl2ss8e1ohl9reewzul6aeezxnkt0
چارين\
0
58596
342143
186054
2026-05-15T14:02:38Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342143
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[carian]]
ccgq9q4go1gdw9fchfz3c2erjv7fae7
کومونيتي
0
58597
342271
186055
2026-05-15T14:06:59Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342271
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[komuniti]]
mz1d0khvv4izu98hhcy50p7pm7cpb67
علمون
0
58598
342002
186056
2026-05-15T13:57:52Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342002
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[ilmuwan]]
b4upurs64jpj0hvgshdvek4r6tw1uhe
تيڠݢي
0
58600
341889
186058
2026-05-15T13:53:59Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
341889
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[tinggi]]
1otfwrjmp0ljo0o8w44kgaozeuvvor5
لنتاي
0
58602
342024
186060
2026-05-15T13:58:34Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342024
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[lantai]]
1exi83hzla0xycewi166yefuf7qng2c
ڤراهو
0
58603
342165
186061
2026-05-15T14:03:22Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342165
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[perahu]]
ds97zin7dpuneon58phk9shvy6qnrs0
جاريڠ
0
58604
341895
186062
2026-05-15T13:54:09Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341895
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[jaring]]
7cprc14v1iod4olht6z8gevm1c8a2o8
لاما
0
58605
342009
186063
2026-05-15T13:58:04Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342009
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[lama]]
d9lsnxb4tpgrfy1qzj4r76a7rf2r62o
مودن
0
58606
342085
186064
2026-05-15T14:00:44Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342085
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[moden]]
skmuo2x1fv6f8hrw3uuzoszocmogtkq
عالم
0
58608
342001
186066
2026-05-15T13:57:50Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342001
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[alam]]
794w4xwyj635e5n5qe3ac976zxr121y
سکيتر
0
58609
341998
186067
2026-05-15T13:57:44Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341998
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[sekitar]]
314ff87npyqarsvnnlggwpfws6zicjc
ݢاجي
0
58610
342285
186068
2026-05-15T14:07:28Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342285
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[gaji]]
8tbb29axlodruk72r3hxo1l9dgve78c
ممباير
0
58611
342059
186069
2026-05-15T13:59:54Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342059
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[membayar]]
0iw86vba1yegequpkq2dps5sn8lwiub
ممبري
0
58612
342060
186070
2026-05-15T13:59:56Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342060
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[memberi]]
0qml96u69w0lo474h9o37egq4cenvi3
سونتيڠ
0
58614
341989
186072
2026-05-15T13:57:23Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
341989
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[sunting]]
1kk3rnz3eb3vgkxn451fobixtb8448y
ڤرهياسن
0
58615
342170
186073
2026-05-15T14:03:33Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342170
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[perhiasan]]
eqh2enmqjch2i72udip7txvow6qy281
جومڤا
0
58616
341912
186074
2026-05-15T13:54:43Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
341912
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[berjumpa]]
8qc4pp1jgwwsvghh9fpqbh0zxwzesrp
داتڠ
0
58617
341918
186075
2026-05-15T13:54:58Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
341918
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[datang]]
fel82jvp0q3k9p527wjfxkgui3dwcby
ريڠن
0
58622
341950
186086
2026-05-15T13:56:08Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
341950
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[ringan]]
pjtl1rstupmmqr5uswysaeeiynhon46
کربوهيدرت
0
58623
342247
186087
2026-05-15T14:06:10Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342247
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[karbohidrat]]
7kgi5pa5nw85k7cc9x66mnq05oqd2i3
نصيحت
0
58624
342118
186088
2026-05-15T14:01:48Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342118
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[nasihat]]
ndxbh8c0k18rwjlotifhizeclt0yx4z
جورنل
0
58625
341901
186095
2026-05-15T13:54:21Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341901
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[jurnal]]
ietlyensybp1tu5dquy7eof2pip94z5
ميڠݢوان
0
58626
342094
186096
2026-05-15T14:01:01Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342094
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[mingguan]]
r9d41k3k7y9iro9wozjbcvd4nucw38a
هارين
0
58627
342126
186097
2026-05-15T14:02:04Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342126
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[harian]]
08o7jr99jy1ftvff71tz8dnsw1wp88k
ڤنتاو
0
58629
342198
186099
2026-05-15T14:04:30Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342198
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[pantau]]
hlbk8tn3y2nunrn0lmwaqlh5n9p1hhq
لاءوتن
0
58630
342006
186100
2026-05-15T13:57:58Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342006
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[lautan]]
oj8dtw1av4ih0n8xhqwikazmmhhoglt
خط الاستواء
0
58632
341916
186103
2026-05-15T13:54:53Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341916
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[khatulistiwa]]
hibjqzb9sr67k6gw25v8t35g2bryx37
ڤتا
0
58633
342157
186104
2026-05-15T14:03:06Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342157
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[peta]]
n9ue842a16sbb0kxqw0nqkufw29k3hw
ملڠکوڠ
0
58635
342055
186106
2026-05-15T13:59:46Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342055
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[melengkung]]
k6xe3dv95zw8yaz486odtur1btme02g
ممبيڠکوق
0
58636
342064
186107
2026-05-15T14:00:02Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342064
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[membengkok]]
b2kovl1c67as43fu5ohx0itl86ah7pl
لبت
0
58637
342016
186108
2026-05-15T13:58:18Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342016
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[lebat]]
34s01hmybqympg0ryaulfge23cv4i0l
ڤماره
0
58638
342190
186109
2026-05-15T14:04:14Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342190
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[pemarah]]
ihgz0sbpucnxgagxvjvbi5f3uzgbxy1
ڤمالو
0
58639
342191
186110
2026-05-15T14:04:16Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342191
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[pemalu]]
pp0ll5g5ln9sj28le1pa7wm5ubzsmku
سوليت
0
58644
341987
186115
2026-05-15T13:57:18Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
341987
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[sulit]]
ptclohvkeula2a9fphicm3v7kgl59yt
حرام
0
58645
341914
186116
2026-05-15T13:54:49Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
341914
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[haram]]
pd492ybvhwr1qoyy9w24s0rr94htqr8
حکوم
0
58646
341915
186117
2026-05-15T13:54:51Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
341915
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[hukum]]
n8kogu5yl08ky2g0tzgq7lyj6e7qk1j
کواس
0
58647
342267
186119
2026-05-15T14:06:50Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342267
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[kuasa]]
itfeqkzprpott5371ps9gw6vcmlbo39
مموتوڠ
0
58648
342069
186120
2026-05-15T14:00:11Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342069
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[memotong]]
khpdahzgt39uepe6m4jyg1kscsi5epr
ڤويسي
0
58659
342211
186248
2026-05-15T14:04:58Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342211
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[puisi]]
hmngahig81c8yzgwtuluc31oid5kbu1
کارڠن
0
58660
342235
186249
2026-05-15T14:05:46Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342235
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[karangan]]
l9utpypkjg7nqpnpfre9oiu3gl16dlq
نوۏل
0
58661
342121
186250
2026-05-15T14:01:54Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342121
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[novel]]
3ihm07sggtxl2a7ljsn11fe321k88jf
سوسيال
0
58662
341986
186251
2026-05-15T13:57:16Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341986
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[sosial]]
5aghkbovo9rr0li50vw2hz5ye2uz92u
لامر
0
58721
342011
186406
2026-05-15T13:58:08Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342011
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# lamar
sv6ckzlaj04wbmkqvyhmnh7c2aninmb
ݢاريس
0
58723
342286
186408
2026-05-15T14:07:30Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342286
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# garis
evv8ym4bnq8mjsqszu6as3y4fsay4zk
سرومڤون
0
58724
341966
186409
2026-05-15T13:56:39Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341966
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# serumpun
r2dzjpoir4fufxrd8zjanvao44ah5kv
ڤرکاس
0
58725
342181
186410
2026-05-15T14:03:56Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342181
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# perkasa
ndfgic8izn4j7i3qmt3uyvwotwz8z19
سامن
0
58726
341956
186411
2026-05-15T13:56:20Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341956
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# saman
eelnk2s2pru5f9822w0eoalgtdkan0d
سراي
0
58727
341965
186412
2026-05-15T13:56:37Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341965
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# serai
0te3milwh43ix3sjq2hncb66b99ygw4
سورقن
0
58728
341984
186413
2026-05-15T13:57:12Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341984
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# sorakan
1zl4t8es2qsmtsw7h7ys1jttxptqv1p
وارس
0
58729
342135
186414
2026-05-15T14:02:22Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342135
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# waras
4melxszpyb46ghkkn20iq8kwyd6t97o
ڤنت
0
58730
342197
186415
2026-05-15T14:04:28Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342197
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# penat
cndmmqkhcxlwj0b1cxs4xz1b0nkghw7
دامڤق
0
58731
341921
186416
2026-05-15T13:55:08Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341921
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# dampak
8adu3sc5h8glgko4e6n9g6l8zazmrag
دريا
0
58732
341925
186417
2026-05-15T13:55:16Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341925
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|deria}}
pixlu7z5kudvhzx915zh3a9l6lfkihk
ݢولا
0
58733
342293
186418
2026-05-15T14:07:42Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342293
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# gula
pplxayqg99hj1tt57raboskoe336dnk
ݢاريسن
0
58734
342287
186419
2026-05-15T14:07:32Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342287
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# garisan
eahvl96apn24qgwh38i1jyr35puuxz4
محکمه
0
58781
342042
186669
2026-05-15T13:59:14Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342042
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[mahkamah]]
b6tpqajo2ealn18yd7tb8ch32m7aug1
ڤرماتڠ
0
58782
342168
186670
2026-05-15T14:03:28Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342168
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[permatang]]
43rfubit1bi4w0gos4ku2tnv7szt56a
ليريڠ
0
58783
342028
186671
2026-05-15T13:58:42Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342028
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[lereng]]
p8k0ukn2ybwpenldiehrljze43go0wp
جرم
0
58784
341899
186672
2026-05-15T13:54:17Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341899
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[jeram]]
6ddpj40c72catr4tllipw6800zm3kc0
ممبينچڠکن
0
58795
342063
186790
2026-05-15T14:00:00Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342063
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[membincangkan]]
a9xllcbo7rd3vj7r4ar1ubivb4nnngf
کروݢين
0
58796
342249
186792
2026-05-15T14:06:14Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342249
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[kerugian]]
66h73ff1aypa4xdbzywnd6lk6pevska
مندريتا
0
58797
342078
186793
2026-05-15T14:00:29Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342078
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[menderita]]
5dcnups5a9ab6jt18vd0cgz56kawtvp
کساکيتن
0
58798
342251
186794
2026-05-15T14:06:18Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342251
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[kesakitan]]
5kcsitjijlr6sj7cdkpnclcajg0s1jv
کسوسهن
0
58799
342255
186796
2026-05-15T14:06:26Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342255
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[kesusahan]]
t1zwndenpgsb3oqzkf2ryzv3t6ga91v
کڽڠ
0
58802
342278
186800
2026-05-15T14:07:13Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342278
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[kenyang]]
no3tzue6h274uo044yboa0hqnwx1maq
مڽرڤ
0
58803
342110
186801
2026-05-15T14:01:31Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342110
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[menyerap]]
twfmxolvv2c7nkjfoxz6l8e3v7mqgqw
مڠاندوڠي
0
58804
342097
186802
2026-05-15T14:01:07Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342097
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[mengandungi]]
1s619algx556sgyv5nkjhyltgj3juxq
مموات
0
58805
342067
186804
2026-05-15T14:00:09Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342067
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[memuat]]
8qj3m28k7th9z1lcqo0upafrfe0eoci
مميکول
0
58806
342070
186806
2026-05-15T14:00:13Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342070
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[memikul]]
1qg6o6k95vyp93by650djbjb8oeyhh3
مڽمڤايکن
0
58838
342112
186894
2026-05-15T14:01:35Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342112
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[menyampaikan]]
adah0rq4ncob9nltarzz3euhrnzmzdq
مڽيدايکن
0
58839
342113
186895
2026-05-15T14:01:37Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342113
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[menyidaikan]]
jdj38htjrg7ic8my3833he3jc9s3yrx
ذره
0
58841
341934
186897
2026-05-15T13:55:35Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341934
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[zarah]]
cjnp37lw36kznldacr06ah2uw4ey713
هابوق
0
58842
342123
186898
2026-05-15T14:01:58Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342123
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[habuk]]
jh0zkz5avuogh36jpzbmsdddkrhpzo1
والاو
0
58848
342136
186919
2026-05-15T14:02:24Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342136
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# walau
70wzc5ll0nrajvv2tf2yasqm5lnzg1j
کلمارين
0
59034
342256
187246
2026-05-15T14:06:28Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342256
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[kelmarin]]
f0u9mwid28864aq0xhtfskgjw9znw1d
سمالم
0
59035
341971
187247
2026-05-15T13:56:50Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341971
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[semalam]]
td1xb7jtzzd8grtynef7g1clqnvndnf
هادڤن
0
59036
342124
187248
2026-05-15T14:02:00Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342124
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[hadapan]]
6glgrj611dvav66pbgnmr35omdaduak
سبله
0
59038
341962
187250
2026-05-15T13:56:31Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
341962
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# [[sebelah]]
lbac2stcb5bhxyay7hy4l7a6amxqnxo
مڠحاصيلکن
0
59070
342099
187350
2026-05-15T14:01:11Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342099
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[menghasilkan]]
sp979ydwmw65p1kbbmarr7hp23ykfuw
منربيتکن
0
59071
342079
187349
2026-05-15T14:00:31Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342079
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[menerbitkan]]
0aqx1mkri6eq8ede5duhempu5s1pcvt
ممبڠکيتکن
0
59072
342065
187348
2026-05-15T14:00:04Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342065
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[membangkitkan]]
dafcvi9h42hnt4b4unpdcuk58ph3mm7
ممنتاو
0
59073
342066
187347
2026-05-15T14:00:06Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342066
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[memantau]]
fjrwyjkescxozxukejiwpy9t4o8k33v
مناهن
0
59074
342074
187351
2026-05-15T14:00:21Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342074
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[menahan]]
g0gwfoot9hilufql2kqcmjm4jpkkt8n
جاوهاري
0
59118
341896
187452
2026-05-15T13:54:11Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341896
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# jauhari
1amo9jsq71jner2efz5vrxeq6ka5189
ريستورن
0
59442
341949
210061
2026-05-15T13:56:06Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341949
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|restoran}}
mpsqjhwskszxvocis9ayq3dbbc5vwzq
ڤڠݢوناءن
0
60019
342229
191573
2026-05-15T14:05:34Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342229
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[penggunaan]]
birddczdih19hqaihu88a1q2ohu13ul
ڤراوسهاءن
0
60023
342166
191570
2026-05-15T14:03:24Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342166
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[perusahaan]]
0plp2at1hmiqjnpyddq41kvkh4dd17r
ڤرينتيس
0
60027
342175
191576
2026-05-15T14:03:44Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342175
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[perintis]]
2e4k3wv9nahvdm5xj6qap8ymmdg9axe
کمرديکاءن
0
60029
342260
191578
2026-05-15T14:06:36Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342260
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[kemerdekaan]]
npdllpim5eru3tp2walzoc9uha1kvu6
ڤرانقن
0
60225
342164
192109
2026-05-15T14:03:20Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342164
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[peranakan]]
3bxq9q6v5j468xgqqorsy8das0bu7vm
ذوريت
0
60226
341935
192110
2026-05-15T13:55:37Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341935
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[zuriat]]
maoh5tbo4p54p3rx5dikm3avizjpjhg
منچمرکن
0
60228
342083
192112
2026-05-15T14:00:39Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342083
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[mencemarkan]]
30102qd9ujvk2egni78f2637t1ss3dv
ممبواڠ
0
60229
342061
192113
2026-05-15T13:59:58Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342061
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# [[membuang]]
9wnfd0my3ol7ilytfop4nohob4deby9
ڤاليڠ
0
66199
342154
201728
2026-05-15T14:03:00Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Adverba==== → ===Adverba=== menggunakan [[Project:AWB|AWB]]
342154
wikitext
text/x-wiki
==Bahasa Melayu==
===Adverba===
{{inti|ms|adverba}}
# {{ms-jawi|paling}}
===Sebutan===
* {{penyempangan|ms|ڤا|ليڠ}}
===Bacaan lanjut===
* {{R:PRPM}}
i7zregxfq4hwb94egnnu1hk7olphriy
لمڤيرن
0
66406
342022
202071
2026-05-15T13:58:30Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342022
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|lampiran}}
===Bacaan lanjut===
* {{R:PRPM}}
pnhd32t49k4jep3nm08zyzde9pqagkc
ڤريوق
0
66408
342176
202073
2026-05-15T14:03:46Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342176
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|periuk}}
===Bacaan lanjut===
* {{R:PRPM}}
qp92uyizqokzxkvfz38ulzxh16blrxl
لاون
0
66409
342013
202068
2026-05-15T13:58:12Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342013
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{head|ms|kata kerja}}
# {{ms-jawi|lawan}}
===Bacaan lanjut===
* {{R:PRPM}}
cbn9v0hwt2ktdgwkdsr77oq0rsnnyil
ڤرلاونن
0
66411
342167
202075
2026-05-15T14:03:26Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342167
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|perlawanan}}
===Bacaan lanjut===
* {{R:PRPM}}
8doyqgdcq6t4l165sqpsl8rjczgt1s6
ممباداي
0
66413
342057
202077
2026-05-15T13:59:50Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342057
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{head|ms|kata kerja}}
# {{ms-jawi|membadai}}
===Bacaan lanjut===
* {{R:PRPM}}
g9s78ef33mbzly4w238dpr8xyzdycc3
ڤڠروڤيڠن
0
66414
342220
202079
2026-05-15T14:05:16Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342220
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|pengerupingan}}
===Bacaan lanjut===
* {{R:PRPM}}
m801s9yp4jztv2dgb2bfvnylvh9bcqr
ماکن-ماکنن
0
66415
342041
202080
2026-05-15T13:59:12Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342041
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|makan-makanan}}
===Bacaan lanjut===
* {{R:PRPM}}
li9pbjsm8jn9q5njyppc17niw3o7ra1
مماکن
0
66416
342056
202081
2026-05-15T13:59:48Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342056
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{head|ms|kata kerja}}
# {{ms-jawi|memakan}}
===Bacaan lanjut===
* {{R:PRPM}}
rrab4szey60xg7rux5tfnqz9wf0unky
ڤماکن
0
66417
342192
202082
2026-05-15T14:04:18Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342192
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|pemakan}}
===Bacaan lanjut===
* {{R:PRPM}}
6931tfhxx9uago5xgcg2726ngcsiu7r
ڤمرديکاءن
0
66421
342195
202088
2026-05-15T14:04:24Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342195
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|pemerdekaan}}
===Bacaan lanjut===
* {{R:PRPM}}
nl5gmhrf9mkymk5ytlglx5ic4gwadnv
مڠݢولوق
0
66589
342106
202334
2026-05-15T14:01:23Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342106
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{head|ms|kata kerja}}
# {{ms-jawi|menggolok}}
===Bacaan lanjut===
* {{R:PRPM}}
86i41lnw3c1bkxfgmkcone4pm1b6z1x
راکن
0
67466
341942
203782
2026-05-15T13:55:51Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341942
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|rakan}}
===Pautan Luar===
* {{R:PRPM}}
i1ohzbu121091g9ar40onkq8vnwa2a4
مڠکت
0
67467
342105
203785
2026-05-15T14:01:21Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342105
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{head|ms|kata kerja}}
# {{ms-jawi|mangkat}}
===Pautan Luar===
* {{R:PRPM}}
lsk7g1wl4i06r7q56xhtzoh7thmbcdi
مڠادوق-ادوق
0
67470
342096
203790
2026-05-15T14:01:05Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342096
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{head|ms|kata kerja}}
# {{ms-jawi|mengaduk-aduk}}
===Pautan Luar===
* {{R:PRPM}}
nxoezhz5oznbwkq7a9c5g4z14sndvii
مڠبجدکن
0
67478
342098
203801
2026-05-15T14:01:09Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342098
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{head|ms|kata kerja}}
# {{ms-jawi|mengabjadkan}}
===Pautan Luar===
* {{R:PRPM}}
a12i064l8r8ra48cdkeyu0lw1dgd620
ڤڠببجدن
0
67479
342219
203803
2026-05-15T14:05:14Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342219
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|pengabjadan}}
===Pautan Luar===
* {{R:PRPM}}
0kc160qk1o2hlfbxkhf4hn85dqbjed9
ڤجابت
0
68473
342158
205504
2026-05-15T14:03:08Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342158
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# [[pejabat]]
8s0xy1jz8wkjapg3actqby9ahlhwgfj
سکرو
0
68564
341995
205714
2026-05-15T13:57:38Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341995
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|skru}}
===Pautan Luar===
* {{R:PRPM}}
b55juneq4twxbs8endm0t2u6kaabu1k
هبلور
0
68565
342127
205716
2026-05-15T14:02:06Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342127
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|hablur}}
===Pautan Luar===
* {{R:PRPM}}
lz86qommqf9ckpqo4zmog7zai16vroc
ڤريݢي
0
68566
342178
205718
2026-05-15T14:03:50Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342178
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|perigi}}
===Pautan Luar===
* {{R:PRPM}}
7ppnzbd9lw72s6w8qnjbi6fcxk2jny5
معمل
0
68567
342050
205720
2026-05-15T13:59:29Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342050
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|makmal}}
===Pautan Luar===
* {{R:PRPM}}
84xebx0409yno03eqrhfmnmlltmz1yu
ڤڠساڤوري
0
68568
342221
205725
2026-05-15T14:05:18Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342221
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|pangsapuri}}
===Pautan Luar===
* {{R:PRPM}}
aaqsos32iy9p2n20n24diyipy1zrknz
سوراو
0
68569
341983
205727
2026-05-15T13:57:10Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341983
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|surau}}
===Pautan Luar===
* {{R:PRPM}}
8ea4t2tgoh1u0dw5b8d47e46v4s73qb
ڤرڤوستاکاٴن
0
68570
342180
205730
2026-05-15T14:03:54Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342180
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|perpustakaan}}
tbhgpeuyx791k1b0tsh0jq33ugcbbmp
ڤرڤوستاکاءن
0
68571
342179
205731
2026-05-15T14:03:52Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342179
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|perpustakaan}}
===Pautan Luar===
* {{R:PRPM}}
b2cl8ucrhexwh8tjuo2zes7xmanpdne
مسلم
0
68573
342047
205736
2026-05-15T13:59:23Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342047
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|Muslim}}
===Pautan Luar===
* {{R:PRPM}}
l5kh6xrz2tj0t5wd9orce0ghs23hwl9
کونۏوکيشن
0
68574
342275
205739
2026-05-15T14:07:07Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342275
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|konvokesyen}}
===Pautan Luar===
* {{R:PRPM}}
1c7xbtibqi76b2lqk4qhhr6e5xdirid
ڤاسر
0
68575
342153
205742
2026-05-15T14:02:58Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342153
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|pasar}}
===Pautan Luar===
* {{R:PRPM}}
l0qbv5d76z4zu0oz80i9h2j1cg5yaii
دوبي
0
68576
341927
205744
2026-05-15T13:55:20Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341927
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|dobi}}
===Pautan Luar===
* {{R:PRPM}}
i7dhyjauffs6bvjxly17kqm4mtd3qmw
ڤڠوروسن
0
68580
342225
205758
2026-05-15T14:05:26Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342225
wikitext
text/x-wiki
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|pengurusan}}
===Pautan Luar===
* {{R:PRPM}}
h8bj39j18y9b1y497om8krcmkeh4273
ڤڠاول
0
68588
342218
205769
2026-05-15T14:05:12Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342218
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|pengawal}}
===Pautan Luar===
* {{R:PRPM}}
h08iqwxlstgem6zzt7pvjvde6oig8gu
ميکرو
0
68589
342095
205770
2026-05-15T14:01:03Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342095
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{head|ms|kata sifat}}
# {{ms-jawi|mikro}}
===Pautan Luar===
* {{R:PRPM}}
kd9h9lq9kvczm8bq5wbviqb8v85e91n
کميجا
0
68616
342262
205829
2026-05-15T14:06:40Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342262
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|kemeja}}
===Pautan Luar===
* {{R:PRPM}}
4au2rkssnby0q7fy77ckmc69xkkzede
ڤچوت
0
68619
342215
205838
2026-05-15T14:05:06Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342215
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|pecut}}
===Pautan Luar===
* {{R:PRPM}}
s46xe96xlnr66g5gn9bil4hilmvnqbl
دالم
0
68620
341919
205842
2026-05-15T13:55:00Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sendi nama==== → ===Kata sendi nama=== menggunakan [[Project:AWB|AWB]]
341919
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sendi nama===
{{head|ms|kata sendi nama}}
# {{ms-jawi|dalam}}
===Pautan Luar===
* {{R:PRPM}}
g8xldr43kvx1mf0qbx5u9rflwntg8ff
هوتيل
0
68621
342130
205845
2026-05-15T14:02:12Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342130
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|hotel}}
===Pautan Luar===
* {{R:PRPM}}
3hxf1o3bmprml0mc8gm9at4twv7rlml
ستاديوم
0
68623
341963
205848
2026-05-15T13:56:33Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341963
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|stadium}}
===Pautan Luar===
* {{R:PRPM}}
qn8pjuba0pu633ah1ix92llopelx45x
درماون
0
68628
341924
205854
2026-05-15T13:55:14Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341924
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|dermawan}}
===Pautan Luar===
* {{R:PRPM}}
5e7q2anvn9wdqi8hsslu7ygt1ubi0m4
درما
0
68646
341923
205876
2026-05-15T13:55:12Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341923
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{head|ms|kata nama}}
# {{ms-jawi|derma}}
===Pautan Luar===
* {{R:PRPM}}
f3dpowjm692r30rzq2ec9c7r56cc6u9
ڤستور
0
68675
342183
205931
2026-05-15T14:04:00Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342183
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|pastor}}
===Bacaan lanjut===
* {{R:PRPM}}
cupy45s7a5wy83cnuemmcaprazk8r3l
سوءالن
0
68678
341981
205943
2026-05-15T13:57:06Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341981
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|soalan}}
===Bacaan lanjut===
* {{R:PRPM}}
2sitn56lepl6q4cmafx2pd3sshoopa0
سيمبڠ
0
68679
341991
205945
2026-05-15T13:57:27Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
341991
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# {{ms-jawi|sembang}}
===Bacaan lanjut===
* {{R:PRPM}}
ormsrpctwasjn8ny72iqkauw240p4su
کماهوان
0
68680
342259
205946
2026-05-15T14:06:34Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342259
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|kemahuan}}
===Bacaan lanjut===
* {{R:PRPM}}
na8qaejd1kig9hen0o4q2f6zw0nfcmr
کنچيڠ
0
68685
342265
205957
2026-05-15T14:06:46Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342265
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# {{ms-jawi|kencing}}
===Bacaan lanjut===
* {{R:PRPM}}
8223m7e7llc1zrb2mn8r8xgk501zg00
ساءينتيس
0
68706
341953
206014
2026-05-15T13:56:14Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341953
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|saintis}}
===Bacaan lanjut===
* {{R:PRPM}}
2ofelhm6u0wbfmi2x58iwuqex3twv3t
نوتيس
0
68707
342120
206015
2026-05-15T14:01:52Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342120
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|notis}}
===Bacaan lanjut===
* {{R:PRPM}}
sxk3kv7khuiujjgqw57mdsxhgffzfbc
سومبوڠ
0
68708
341988
206017
2026-05-15T13:57:20Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
341988
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# {{ms-jawi|sombong}}
===Bacaan lanjut===
* {{R:PRPM}}
cim1xapne63lhq4jgccsjedga13br4h
ڤنتس
0
68709
342199
206021
2026-05-15T14:04:32Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342199
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|pentas}}
===Bacaan lanjut===
* {{R:PRPM}}
gynx76w8uq7tk2rrb82nilz6qsjiovp
ڤانتس
0
68710
342155
206020
2026-05-15T14:03:02Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342155
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# {{ms-jawi|pantas}}
===Bacaan lanjut===
* {{R:PRPM}}
tfgm8p7tnivyi84e5e7fwedwld4qxte
سوچي
0
68711
341990
206022
2026-05-15T13:57:25Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
341990
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# {{ms-jawi|suci}}
===Bacaan lanjut===
* {{R:PRPM}}
i1rkyjlakk4w7bzke36an4v5ftzjo82
ڤمبيذاءن
0
68723
342194
206065
2026-05-15T14:04:22Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342194
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|pembezaan}}
===Bacaan lanjut===
* {{R:PRPM}}
p2ssb35jwjmi1ftcovh9bb3u1unbozy
لماو
0
68724
342018
206069
2026-05-15T13:58:22Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342018
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{head|ms|kata sifat}}
# {{ms-jawi|lemau}}
===Pautan Luar===
* {{R:PRPM}}
[[Kategori:Tulisan Jawi]]
q1iii2lvtvbh4kdwp52wpjoulbaqwuk
ڤڠيرا
0
68897
342227
206651
2026-05-15T14:05:30Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342227
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|pengira}}
===Bacaan lanjut===
* {{R:PRPM}}
gzxuercwcvzderraupidwr3gcglghg4
ڤڠيراءن
0
68898
342228
206652
2026-05-15T14:05:32Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342228
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|pengiraan}}
===Bacaan lanjut===
* {{R:PRPM}}
iy56od3kbbo5og29gzvhxpcp68ye5az
راءوڠن
0
72580
341936
211992
2026-05-15T13:55:39Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341936
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|raungan}}
===Bacaan lanjut===
* {{R:PRPM}}
7t58f0n4ff1u1zamelqudtkuvkgw66a
مراءوڠ
0
72582
342043
211995
2026-05-15T13:59:16Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342043
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# {{ms-jawi|meraung}}
===Bacaan lanjut===
* {{R:PRPM}}
rbxygixe2euxvb3uq03u1bbnjsxt742
ڤواس
0
72598
342208
212212
2026-05-15T14:04:50Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342208
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# {{ms-jawi|puas}}
===Bacaan lanjut===
* {{R:PRPM}}
hu7lxqd5akyuf09cfg91203huaebbu6
مناڠيس
0
72601
342075
212216
2026-05-15T14:00:23Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342075
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# {{ms-jawi|menangis}}
===Bacaan lanjut===
* {{R:PRPM}}
jwy2j5tmcs4z4ya5ncxgd6px2nfaypd
چبيس
0
72613
342144
212262
2026-05-15T14:02:40Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342144
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|cebis}}
===Bacaan lanjut===
* {{R:PRPM}}
kcn8gk10pot9zvxjwhbhztcrcb6q4hx
ميموري
0
72619
342092
212270
2026-05-15T14:00:57Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342092
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|memori}}
===Bacaan lanjut===
* {{R:PRPM}}
16t57lz9tb015e130ccykbfyxqihs9a
ماره
0
72624
342036
212302
2026-05-15T13:59:00Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342036
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# {{ms-jawi|marah}}
===Bacaan lanjut===
* {{R:PRPM}}
dztticsxci162sos2vmt8jzw3ez2tpz
ڤڠنتارا
0
72631
342222
212362
2026-05-15T14:05:20Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342222
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|pengantara}}
===Bacaan lanjut===
* {{R:PRPM}}
1043wsfjtf23nkgexyy1148o6t0nwq9
ڤڠنتاراءن
0
72633
342223
212366
2026-05-15T14:05:22Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342223
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|pengantaraan}}
===Bacaan lanjut===
* {{R:PRPM}}
qwgwzzxbtniw4a745a34sippipnf94e
ڤرانتارا
0
72635
342163
212368
2026-05-15T14:03:18Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342163
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|perantara}}
===Bacaan lanjut===
* {{R:PRPM}}
tlwp72la6dg0kvgfpvpzcpq2upwuwgp
رايو
0
72640
341941
212373
2026-05-15T13:55:49Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
341941
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# {{ms-jawi|rayu}}
===Bacaan lanjut===
* {{R:PRPM}}
7ye8tvq42i68xlspm6qxgrcx5y48b48
ڤوجوق
0
72642
342209
212375
2026-05-15T14:04:53Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342209
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# {{ms-jawi|pujuk}}
===Bacaan lanjut===
* {{R:PRPM}}
bwjtkz1l2csjd83rs8q39wj3u2x1u3q
ݢينچو
0
72644
342296
212377
2026-05-15T14:07:49Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342296
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|gincu}}
===Bacaan lanjut===
* {{R:PRPM}}
i7mvjc2vvfheb70xafhd660gk517ptq
لوڤا
0
72646
342027
212379
2026-05-15T13:58:40Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342027
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# {{ms-jawi|lupa}}
===Bacaan lanjut===
* {{R:PRPM}}
bx0d30i1favl9jw2y9jr8ztimtprdf7
موڠکير
0
72649
342090
212392
2026-05-15T14:00:53Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata kerja==== → ===Kata kerja=== menggunakan [[Project:AWB|AWB]]
342090
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata kerja===
{{inti|ms|kata kerja}}
# {{ms-jawi|mungkir}}
===Bacaan lanjut===
* {{R:PRPM}}
dik742vu5pw8vm0rz138wr1u81luogq
ݢونا٢
0
72654
342294
212399
2026-05-15T14:07:45Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342294
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|guna-guna}}
===Pautan luar===
{{R:PRPM}}
njcnodnnk9yzfcgda0gaaajpx5qb0as
ڤرامه
0
72749
342160
212632
2026-05-15T14:03:12Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342160
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|peramah}}
===Pautan luar===
{{R:PRPM}}
exlm3cnli84qb7ckmxl1u2eiz9kvj71
مسرا
0
72751
342045
212634
2026-05-15T13:59:21Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
342045
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# {{ms-jawi|mesra}}
===Pautan luar===
{{R:PRPM}}
bzonchq6vo3veby5oa6n9vecu8cplpm
هنداي
0
72753
342129
212636
2026-05-15T14:02:10Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342129
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|handai}}
===Pautan luar===
{{R:PRPM}}
bwxl5ajulbyv3lttxnxi5sy3cg45egf
لامبڠ
0
72796
342010
212694
2026-05-15T13:58:06Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342010
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|lambang}}
===Pautan luar===
{{R:PRPM}}
gmarws140euhpa8jcnnu8vvaw2jzbz4
سوسه
0
72835
341985
212777
2026-05-15T13:57:14Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata sifat==== → ===Kata sifat=== menggunakan [[Project:AWB|AWB]]
341985
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata sifat===
{{inti|ms|kata sifat}}
# {{ms-jawi|susah}}
===Pautan luar===
{{R:PRPM}}
dbrjjg1phqtjnz88lmh121lkrs5vur3
مينيموم
0
72927
342093
212945
2026-05-15T14:00:59Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342093
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|minimum}}
===Pautan luar===
{{R:PRPM}}
jjxgq5gna90h32c7580fgcc75y9sqqz
مکسيموم
0
72928
342108
212946
2026-05-15T14:01:27Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342108
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|maksimum}}
===Pautan luar===
{{R:PRPM}}
sfajt8gbxw9wfn5m6wv5x8zr7323c1s
راسيسمى
0
72930
341939
212948
2026-05-15T13:55:45Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341939
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|rasisme}}
===Pautan luar===
{{R:PRPM}}
bl1z6dzslpyv94t6qchu6snqxclo8o3
ڤلاݢيات
0
72933
342187
212951
2026-05-15T14:04:08Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342187
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|plagiat}}
===Pautan luar===
{{R:PRPM}}
nrdomw3apzzkte5jlnng5205md2qc5q
ناسيوناليسمى
0
72934
342116
212952
2026-05-15T14:01:43Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342116
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|nasionalisme}}
===Pautan luar===
{{R:PRPM}}
r60kehmqn3b0i34b0ylziyoo0mvvxwv
هيدونيسمى
0
72935
342132
212953
2026-05-15T14:02:16Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342132
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|hedonisme}}
===Pautan luar===
{{R:PRPM}}
g3wkmpsg1d6zkajwb6nrhp2zphdow3e
ۏن
0
72936
342283
212954
2026-05-15T14:07:24Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342283
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|van}}
===Pautan luar===
{{R:PRPM}}
28kpn45xlqmdfzfsmy3hhbitmtbk6kl
کومونيکاسي
0
72952
342272
213033
2026-05-15T14:07:01Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342272
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|komunikasi}}
===Pautan luar===
{{R:PRPM}}
ndpntp6w15ux1rq2ijn9map5e4ag51g
سڤيکتروم
0
72954
341994
213035
2026-05-15T13:57:35Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
341994
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|kata nama}}
# {{ms-jawi|spektrum}}
===Pautan luar===
{{R:PRPM}}
atfym9mmv0dmrtydc5cl551oromkr2b
hilal
0
74813
342794
337491
2026-05-16T11:48:31Z
Hakimi97
2668
342794
wikitext
text/x-wiki
==Bahasa Melayu==
{{Wikipedia}} <!-- Kalau ada -->
===Kata nama===
{{ms-kn|j=هلال}}
# Fasa pertama [[Bulan]] ketika mana Bulan berada segaris di antara [[Matahari]] dan [[Bumi]]; [[anak bulan]].
===Etimologi===
{{bor+|ms|ar|هِلَال}}.
===Sebutan===
* {{penyempangan|ms|hi|lal}}
===Pautan luar===
* {{R:PRPM}}
{{C|ms|Astronomi|Jasad cakerawala}}
==Bahasa Indonesia==
{{Wikipedia|lang=id}} <!-- Kalau ada -->
===Kata nama===
{{id-kn}}
# Fasa pertama [[Bulan]] ketika mana Bulan berada segaris di antara [[Matahari]] dan [[Bumi]]; [[anak bulan]].
===Etimologi===
{{bor+|id|ar|هِلَال}}.
===Sebutan===
* {{id-pr}}
===Pautan luar===
* {{R:KBBI Daring}}
{{C|id|Astronomi|Jasad cakerawala}}
peb0jfbea6fx4exi6iup0tuew4vctxk
قهوة
0
75607
342005
222213
2026-05-15T13:57:56Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata nama==== → ===Kata nama=== menggunakan [[Project:AWB|AWB]]
342005
wikitext
text/x-wiki
==Bahasa arab==
===Kata nama===
{{inti|ms|kata nama}}
# kopi
#: {{cp|ms|انا أشرب القهوة.|saya sedang minum kopi.}}
n8zo1api94s4llyjb9w8ebbfi53rm2w
ݢمڤڠ
0
104082
342292
268758
2026-05-15T14:07:40Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: Kata Nama → Kata nama (2) menggunakan [[Project:AWB|AWB]]
342292
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{ms-noun}}
# {{ms-jawi|gampang}}
===Kata sifat===
{{ms-adj}}
# {{ms-jawi|gampang}}
====Kata nama====
{{inti|ms|adverba}}
# {{ms-jawi|gampang}}
===Sebutan===
* {{penyempangan|ms|ݢمڤڠ}}
# {{ms-jawi|gampang}}
===Bacaan lanjut===
* {{R:PRPM}}
0enzm06w7hnvbs7c0kqz7txvbvruuen
لبيه
0
104083
342017
268756
2026-05-15T13:58:20Z
Mirlim
8057
clean up per [[Wikikamus:Kedai_Kopi/Arkib_2025#h-Cadangan_kemaskini_format_lema-20251005022500|vote]], replaced: ===Takrifan===
====Kata Nama==== → ===Kata Nama===, Kata Nama → Kata nama menggunakan [[Project:AWB|AWB]]
342017
wikitext
text/x-wiki
==Bahasa Melayu==
===Kata nama===
{{inti|ms|adverba}}
# {{ms-jawi|lebih}}
===Sebutan===
* {{penyempangan|ms|لبيه}}
# {{ms-jawi|lebih}}
===Kata sifat===
{{ms-adj}}
# {{ms-jawi|lebih}}
===Bacaan lanjut===
* {{R:PRPM}}
kg91uiyqvno5nsxvgnvcti4v6qmide3
Kategori:fa:Jasad cakerawala
14
112560
342785
278750
2026-05-16T10:33:33Z
Hakimi97
2668
Hakimi97 telah memindahkan laman [[Kategori:fa:Badan samawi]] ke [[Kategori:fa:Jasad cakerawala]]
278750
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Inggeris diterbitkan daripada bahasa Bahasa-bahasa Samiah
14
114557
342788
280941
2026-05-16T11:41:32Z
Hakimi97
2668
342788
wikitext
text/x-wiki
{{delete|telah digantikan dengan [[:Kategori:Perkataan bahasa Inggeris diterbitkan daripada bahasa-bahasa Samiah]]}}
rqgf1bkcqobtabn2tkoqxcit4nl2e34
Kategori:Perkataan bahasa Inggeris diterbitkan daripada bahasa Hindustan
14
114570
342789
280954
2026-05-16T11:42:32Z
Hakimi97
2668
342789
wikitext
text/x-wiki
{{delete|telah digantikan dengan [[:Kategori:Perkataan bahasa Inggeris diterbitkan daripada bahasa-bahasa Hindustan]]}}
ne2zka9bytjah5k5z7e5yvdrtzskwp6
Kategori:Perkataan bahasa Inggeris diterbitkan daripada bahasa Abenaki-Penobscot
14
114684
342787
281083
2026-05-16T11:40:46Z
Hakimi97
2668
342787
wikitext
text/x-wiki
{{delete|telah digantikan dengan [[:Kategori:Perkataan bahasa Inggeris diterbitkan daripada bahasa-bahasa Abenaki-Penobscot]]}}
4ok20dtddtc93mjddht21m1vuc7ux70
Kategori:ja:Sistem tulisan
14
115579
342791
282156
2026-05-16T11:46:32Z
Hakimi97
2668
Hakimi97 telah memindahkan laman [[Kategori:ja:Sistem penulisan]] ke [[Kategori:ja:Sistem tulisan]]
282156
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Wikikamus:tmw/Ajih apak kabar
4
116541
342323
283420
2026-05-15T14:34:56Z
Zreeeeeee
10698
342323
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} awak apa khabar
mf0x13repm34coo07f9amiujxurrpwy
Wikikamus:tmw/selamat pagik
4
116543
342299
283415
2026-05-15T14:09:39Z
Haqifaz
9982
342299
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}}selamat pagi {{cp|tmw|}}
8ywilelatpd0b2t59qkf25cngzvyvdv
Wikikamus:tmw/tengok
4
116551
341886
283424
2026-05-15T13:48:33Z
Haqifaz
9982
341886
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
#{{label|tmw|dialek|Bukit Lagong}}
{{cp|tmw|}}
4j6g10irtiy0jeiayx0qrt004blr5uj
Wikikamus:tmw/gendui
4
116554
342386
283427
2026-05-15T15:17:11Z
Azrifrb
9991
342386
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# nenek{{cp|tmw|}}
10fh1ggnjnv2n8xeoomorakuzr8y70q
342398
342386
2026-05-15T15:24:38Z
Khalifah5156
9987
342398
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}nenek{{cp|tmw|}}
icjlyqhgl9r3r0nv56oe3mhddpsv9yh
Wikikamus:tmw/ajih
4
116555
342357
335822
2026-05-15T14:58:43Z
Khalifah5156
9987
342357
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
ajih
# {{label|tmw|Dialek|Bukit Lagong}}awak{{cp|tmw|}}
naxn7gm13lqysixrpw9kg84tore9fos
Wikikamus:tmw/Gek
4
116559
341920
283507
2026-05-15T13:55:08Z
Elléarden
9981
341920
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}} Abang
74oau7caqjc3tzdpv69tqx7o9m3bnkg
342501
341920
2026-05-16T02:28:54Z
Kembojalini
10746
342501
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}} Abang {{cp|tmw|'''Gek''' akuk kejak jauh}}
4fr54zlurhbewil2ymt2vbj36xuw54b
342505
342501
2026-05-16T02:30:08Z
Kembojalini
10746
342505
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}} Abang {{cp|tmw|'''Gek''' akuk kejak jauh|'''Abang''' saya kerja jauh}}
2bkllej69qz7gpyib78ef419m3o83uo
Wikikamus:tmw/hapo
4
116567
342395
283440
2026-05-15T15:22:51Z
Azrifrb
9991
342395
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# mungkin{{cp|tmw|}}
9ykoez39u2zgdv1f07e9jndudk6ymh8
342404
342395
2026-05-15T15:42:21Z
Khalifah5156
9987
342404
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|Dialek|Bukit Lagong}}mungkin{{cp|tmw|}}
clskl8xbgg7qd4au1hgkpz6cili7co6
342761
342404
2026-05-16T04:21:18Z
Khalifah5156
9987
342761
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|Dialek|Bukit Lagong}}mungkin{{cp|tmw|Inap adak di sanak '''hapo'''|Makcik ada di sana '''mungkin'''}}
1ob5ydzcgqozpo45tsa4pznkfb6owlg
Wikikamus:tmw/lempen
4
116574
342314
283459
2026-05-15T14:29:27Z
Khalifah5156
9987
342314
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} leper{{cp|tmw|}}
1ruse5qaysl15q0g7w1i76lj4kqmstu
342545
342314
2026-05-16T02:45:13Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Lempen]] ke [[Wikikamus:tmw/lempen]]
342314
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} leper{{cp|tmw|}}
1ruse5qaysl15q0g7w1i76lj4kqmstu
342547
342545
2026-05-16T02:45:33Z
Kentangputarr
10725
342547
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}}leper{{cp|tmw|}}
nkbwzraqrbcaqnp1a5orvtp410srxxu
Wikikamus:tmw/didi
4
116577
341882
283451
2026-05-15T13:44:29Z
Elléarden
9981
341882
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}} mereka {{cp|tmw|}}
gt52j31jwee4szntlvbw260jg4tu5kj
342467
341882
2026-05-16T02:17:36Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Didi]] ke [[Wikikamus:tmw/didi]]: Tajuk salah eja
341882
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}} mereka {{cp|tmw|}}
gt52j31jwee4szntlvbw260jg4tu5kj
342600
342467
2026-05-16T03:09:07Z
Barbiemaripossa
9985
342600
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}} mereka{{cp|tmw|'''Didi''' jalan ke utan pagi tai|'''Mereka''' berjalan ke hutan pagi tadi}}
suy1k7v84ourvb8kj8piq4666gi6wq4
Wikikamus:tmw/kate
4
116579
342301
283453
2026-05-15T14:12:12Z
Elléarden
9981
342301
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Temuan}} kereta {{cp|tmw|}}
idallllbmnuz7psfqc2hs6zsbdw5iy2
342530
342301
2026-05-16T02:41:02Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Kate]] ke [[Wikikamus:tmw/kate]]: Tajuk salah eja
342301
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Temuan}} kereta {{cp|tmw|}}
idallllbmnuz7psfqc2hs6zsbdw5iy2
342621
342530
2026-05-16T03:19:29Z
Kembojalini
10746
342621
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Temuan}} kereta {{cp|tmw|Akuk hap '''kate'''|Saya takde '''kereta'''}}
0qjikbr5f5oelc9a3o5bu5701s4gn5i
Wikikamus:tmw/gandui
4
116580
342387
283541
2026-05-15T15:17:46Z
Khalifah5156
9987
342387
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
genui
# {{label|1=tmw|2=Dialek|3=Bukit Lagong}} nenek{{cp|tmw|}}
lo6u88hd3eji8ok65tuov3y4nc3omxh
Wikikamus:tmw/tika
4
116582
341878
283456
2026-05-15T13:39:43Z
Haqifaz
9982
341878
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# tikar {{cp|tmw|}}
4pb2p2eepndotn4oux27ndc7fawet2c
Wikikamus:tmw/ninik
4
116584
342352
283458
2026-05-15T14:55:33Z
Haqifaz
9982
342352
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}}Atok {{cp|tmw|}}
6s39k57kowze6dx511gi92jb5r298yx
342601
342352
2026-05-16T03:09:21Z
Kentangputarr
10725
342601
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}}atok {{cp|tmw|}}
mxrjmvltfktjhudoh2q94kdu4309hl5
342641
342601
2026-05-16T03:28:18Z
Faizz315891
10774
342641
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}}atok {{cp|tmw|'''ninik''' ituk sudah tuak.|'''atok''' itu sudah tua.}}
mkes0o3ij68ik5jfencpvlfuxus5kyl
Wikikamus:tmw/cucik
4
116585
342383
283460
2026-05-15T15:15:14Z
Khalifah5156
9987
342383
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|tmw|Dialek|Bukit Lagong}}mencuci{{cp|tmw|}}
nty83zd5j9gv2l62wvsv29og3r2ezxq
Wikikamus:tmw/Gendui
4
116586
342550
283461
2026-05-16T02:49:16Z
Kembojalini
10746
342550
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}}Nenek {{cp|tmw|'''Gendui''' diak dah matik|'''Nenek''' dia sudah meninggal}}
qv11ydtmrqi1iwzfi5agxu8y43rflii
Wikikamus:tmw/Mamak
4
116589
342324
283464
2026-05-15T14:35:29Z
Khalifah5156
9987
342324
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}Pakcik{{cp|tmw|}}
pzcrfh4kba4bjfyaysjjgcyhfqzpcyk
342562
342324
2026-05-16T02:53:48Z
Kentangputarr
10725
342562
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}pakcik{{cp|tmw|}}
pncpadfl2bcevivltstqbrwg4xol9ix
Wikikamus:tmw/Pegik
4
116594
342341
332959
2026-05-15T14:49:55Z
Khalifah5156
9987
342341
wikitext
text/x-wiki
pergi
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|Dialek|Bukit Lagong}}pergi{{cp|tmw|}}
pwl62mby7g0lr8m3gheosfem1ldmnld
Wikikamus:tmw/pegik nun
4
116595
342322
283546
2026-05-15T14:34:32Z
Haqifaz
9982
342322
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}}pergi sana {{cp|tmw|}}
ge5bir9gkeih8ejolpmcebnzcmsp0aw
Wikikamus:tmw/mak
4
116596
342321
283472
2026-05-15T14:33:57Z
Khalifah5156
9987
342321
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|Dialek|Bukit Lagong}}Mak{{cp|tmw|}}
c9f2nvqsh75ncakkim2nlngxyxlghaw
342557
342321
2026-05-16T02:52:31Z
Kentangputarr
10725
342557
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|Dialek|Bukit Lagong}}mak{{cp|tmw|}}
mwy59c399s7ww4twyv4p2ujvwlzssxs
342559
342557
2026-05-16T02:52:44Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Mak]] ke [[Wikikamus:tmw/mak]]
342557
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|Dialek|Bukit Lagong}}mak{{cp|tmw|}}
mwy59c399s7ww4twyv4p2ujvwlzssxs
Wikikamus:tmw/Ayah
4
116598
341867
283475
2026-05-15T13:27:25Z
Elléarden
9981
341867
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# Ayah {{cp|tmw|}}
kool3ixmkk0av60ll093p3l0rpudqm0
342454
341867
2026-05-16T02:06:15Z
Kembojalini
10746
342454
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# Ayah {{cp|tmw|'''Ayah''' akuk sakit |'''Ayah''' saya sakit}}
55cn7feixtjolaa8dfr2urlwcfjnobr
Wikikamus:tmw/buah diyan
4
116599
342375
283539
2026-05-15T15:09:44Z
Khalifah5156
9987
342375
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
buah deyan
# {{label|tmw|Dialek|Bukit Lagong}}durian{{cp|tmw|}}
9f1652ophd7cw4f6do3p3wdw9zy2hff
Wikikamus:tmw/apak
4
116600
342363
335824
2026-05-15T15:02:22Z
Khalifah5156
9987
342363
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|Dialek|Bukit Lagong}}apa{{cp|tmw|}}
qnd4u8l1uvsjzldqas46h6qwfz0xsjn
342718
342363
2026-05-16T03:57:51Z
Khalifah5156
9987
342718
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|Dialek|Bukit Lagong}}apa{{cp|tmw|'''Apak''' yang diak buat deket situk? |'''Apa''' yang dia lakukan di situ? }}
b4vfww3stowltnu5kwxcwdfc7xxnkmw
Wikikamus:tmw/Inak
4
116601
342046
283478
2026-05-15T13:59:22Z
Elléarden
9981
342046
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}} makcik {{cp|tmw|}}
lq52dj08jo9qfv33i53ivug794lckxk
342578
342046
2026-05-16T02:59:49Z
Kembojalini
10746
342578
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}} makcik {{cp|tmw|'''Inak''' diak deket hospital |'''Makcik''' dia dekat hospital }}
sjkuocwc9htq22k3oq0eue0d6sgqvxu
Wikikamus:tmw/buah niyu
4
116602
342377
283479
2026-05-15T15:11:09Z
Khalifah5156
9987
342377
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}buah kelapa{{cp|tmw|}}
pn39twbei6ie0gl3rq0jao4tkztxsa9
Wikikamus:tmw/Kamin
4
116603
342614
335826
2026-05-16T03:14:09Z
Kembojalini
10746
342614
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# kami{{cp|tmw|'''Kamin''' nak pegi ke pasa|'''Kami''' nak pergi ke pasar }}
f9q28llw089ngu7pllq7u82bbzyurvl
Wikikamus:tmw/nala
4
116605
342361
283482
2026-05-15T15:01:12Z
Haqifaz
9982
342361
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|tmw|dialek|Bukit Lagong}}selalu{{cp|tmw|}}
jcjiengm9sn8p4ug88phwi2pgwmfr5v
Wikikamus:tmw/akuk
4
116607
342360
283484
2026-05-15T15:00:35Z
Khalifah5156
9987
342360
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}saya{{cp|tmw|}}
mlvt51m3lstahcywcrcehdw8vzaij52
Wikikamus:tmw/semomok
4
116609
342343
283489
2026-05-15T14:51:39Z
Khalifah5156
9987
342343
wikitext
text/x-wiki
Daun kunyit
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|Dialek|Bukit Lagong}}Daun kunyit{{cp|tmw|}}
3ta83rgc56a8v9fihahgehwab56iww0
342617
342343
2026-05-16T03:17:35Z
Kentangputarr
10725
342617
wikitext
text/x-wiki
Daun kunyit
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|Dialek|Bukit Lagong}}daun kunyit{{cp|tmw|}}
nmx0il1ie0vvozyslmlwgvjyqm3iucg
342618
342617
2026-05-16T03:17:48Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Semomok]] ke [[Wikikamus:tmw/semomok]]
342617
wikitext
text/x-wiki
Daun kunyit
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|Dialek|Bukit Lagong}}daun kunyit{{cp|tmw|}}
nmx0il1ie0vvozyslmlwgvjyqm3iucg
Wikikamus:tmw/balik
4
116610
342368
283487
2026-05-15T15:05:56Z
Khalifah5156
9987
342368
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|tmw|Dialek|Bukit Lagong}}balik
qee5qwe67rrsl4qh72r968jwaxlap3l
342369
342368
2026-05-15T15:06:19Z
Khalifah5156
9987
342369
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|tmw|Dialek|Bukit Lagong}}balik{{cp|tmw|}}
r1wbhsvqjbn2yrrjou0v1n9lmt9smzf
Wikikamus:tmw/hap
4
116611
342392
283488
2026-05-15T15:19:46Z
Azrifrb
9991
342392
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# tiada{{cp|tmw|}}
1ztzhfhk2kf4hzgqkg8fuf3dfqivu6r
342403
342392
2026-05-15T15:39:31Z
Khalifah5156
9987
342403
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|Dialek|Bukit Lagong}}tiada{{cp|tmw|}}
ma935sozshsste0y6pj2b55sij8ghn6
342528
342403
2026-05-16T02:39:52Z
Faizz315891
10774
342528
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|Dialek|Bukit Lagong}}tiada{{cp|tmw|Kampung ituk '''hap''' bendak air.|Kampung itu '''tiada''' air.}}
fbxbwv7ztg6x0bue3axg7di8muubmz2
Wikikamus:tmw/Manik
4
116612
342325
283490
2026-05-15T14:37:50Z
Khalifah5156
9987
342325
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|Dialek|Bukit Lagong}}mandi{{cp|tmw|}}
nyf4jsi8eiq7a60fvq8evnylr0i1hem
342635
342325
2026-05-16T03:26:54Z
Haqifaz
9982
342635
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|Dialek|Bukit Lagong}}mandi{{cp|tmw|Jangan "'manik''' sungai|Jangan mandi sungai}}
6gi2bhjd95fk5yx4xyu395c27l4b42k
Wikikamus:tmw/ke’ejak
4
116613
342419
283545
2026-05-15T15:54:57Z
Khalifah5156
9987
342419
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
Kejak
# {{label|tmw|Dialek|Bukit Lagong}}Bekerja{{cp|tmw|}}
jfx530swu2gzzk6r7ounvrk9q09otna
342696
342419
2026-05-16T03:49:10Z
Kentangputarr
10725
342696
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
Kejak
# {{label|tmw|Dialek|Bukit Lagong}}bekerja{{cp|tmw|}}
mbeul7tkz4vrd06lpv8vzg00shyoj3c
Wikikamus:tmw/niak
4
116614
342358
283492
2026-05-15T14:59:21Z
Haqifaz
9982
342358
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}}tiada {{cp|tmw|}}
fxcet2kgt3m599xakntmx6eo2hgu2z6
Wikikamus:tmw/nyap elok
4
116616
342340
283494
2026-05-15T14:49:23Z
Haqifaz
9982
342340
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|tmw|dialek|Bukit Lagong}}tidak elok {{cp|tmw|}}
2g6vchwhf4inibjvl4cg2jujpycypzr
Wikikamus:tmw/inih
4
116617
342068
283495
2026-05-15T14:00:11Z
Elléarden
9981
342068
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}} ini {{cp|tmw|}}
ackc5tej6e2ensao9v0quz125ag97yh
342518
342068
2026-05-16T02:35:53Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Inih]] ke [[Wikikamus:tmw/inih]]: Tajuk salah eja
342068
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}} ini {{cp|tmw|}}
ackc5tej6e2ensao9v0quz125ag97yh
342520
342518
2026-05-16T02:36:25Z
Kentangputarr
10725
342520
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}}ini {{cp|tmw|}}
7biyncw3u03ifmcnvn49oqb2vgx6sot
342624
342520
2026-05-16T03:22:35Z
Haqifaz
9982
342624
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}}ini {{cp|tmw|'''Inih'' tempat tinggal akuk|'''Ini''' tempat tinggal saya}}
6kefc6z7lm7glqqxd6q4smkqnfmee8c
Wikikamus:tmw/pucuk hubik
4
116618
342309
283496
2026-05-15T14:25:44Z
Haqifaz
9982
342309
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}} pucuk ubi {{cp|tmw|}}
pa7vy2duj7u1w4kqh6wkhefwo4qoebh
Wikikamus:tmw/ayi
4
116619
342365
283497
2026-05-15T15:04:13Z
Khalifah5156
9987
342365
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}air{{cp|tmw|}}
1udylyu7873gth89ktzglxmqek61fua
342728
342365
2026-05-16T04:01:05Z
Khalifah5156
9987
342728
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}air{{cp|tmw|Adik nak minum '''ayi'''|Adik mahu minum '''air'''}}
eqfupab239zjcphg2arhghv95woic4w
Wikikamus:tmw/ngael
4
116620
342332
283498
2026-05-15T14:43:56Z
Khalifah5156
9987
342332
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|tmw|Dialek|Bukit Lagong}}mengail{{cp|tmw|}}
0qkp94ezgkj2pfyep1305sozepjfpsy
342593
342332
2026-05-16T03:04:55Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Ngael]] ke [[Wikikamus:tmw/ngael]]
342332
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|tmw|Dialek|Bukit Lagong}}mengail{{cp|tmw|}}
0qkp94ezgkj2pfyep1305sozepjfpsy
Wikikamus:tmw/Ninik
4
116621
342335
283499
2026-05-15T14:46:47Z
Khalifah5156
9987
342335
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|Dialek|Bukit Lagong}}atuk{{cp|tmw|}}
rnr6sqekcaylxwxn05t623pkog766ok
Wikikamus:tmw/ladak
4
116622
342423
283500
2026-05-15T15:58:10Z
Khalifah5156
9987
342423
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}cili{{cp|tmw|"ladak" ini sangat pedas}}
exq0e3pk9k8cfbngukkjdcrnb5m4b2h
342427
342423
2026-05-15T15:59:52Z
Haqifaz
9982
342427
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}cili{{cp|tmw|"'ladak"' ini sangat pedas}}
3emm1zgh676qka8xs5abntwpzl23orn
342428
342427
2026-05-15T16:00:26Z
Haqifaz
9982
342428
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}cili{{cp|tmw|'''ladak''' ini sangat pedas}}
18vid0t0qtml7ycd23ljkezk5fle6cl
Wikikamus:tmw/Ampai kain
4
116623
341866
283501
2026-05-15T13:24:20Z
Elléarden
9981
341866
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Temuan}} ampai baju {{cp|tmw|}}
8ff35w2nx2gzjxsbafjow3zpflggo31
Wikikamus:tmw/apen
4
116624
342364
283502
2026-05-15T15:03:04Z
Khalifah5156
9987
342364
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}monyet{{cp|tmw|}}
ot6r1ctbryhcse48oovf91940lgpq41
342723
342364
2026-05-16T03:59:36Z
Khalifah5156
9987
342723
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}monyet{{cp|tmw|Eee, adak '''apen''' deket atas pokok|Eee, ada '''monyet''' atas pokok}}
ftu9tqi0itlafm76i3r28jilqjj0uw6
Wikikamus:tmw/ong
4
116625
342336
283503
2026-05-15T14:47:04Z
Haqifaz
9982
342336
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}}kau{{cp|tmw|}}
i8zxox3c93v1690ia7qrpqt17znz512
Wikikamus:tmw/gauk
4
116626
341894
283504
2026-05-15T13:54:07Z
Elléarden
9981
341894
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}} Kakak {{cp|tmw|}}
eocapewuhs2k7twkj9wgi9k25nfz4c7
342478
341894
2026-05-16T02:20:30Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Gauk]] ke [[Wikikamus:tmw/gauk]]: Tajuk salah eja
341894
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}} Kakak {{cp|tmw|}}
eocapewuhs2k7twkj9wgi9k25nfz4c7
342481
342478
2026-05-16T02:20:55Z
Kentangputarr
10725
342481
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}} kakak {{cp|tmw|}}
gsf041i17jf9hpd74nvma26m1h45n8b
342482
342481
2026-05-16T02:21:23Z
Kentangputarr
10725
342482
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}}kakak {{cp|tmw|}}
p5533ngq646x8bbkjvps4bej8ojsai2
Wikikamus:tmw/buah mikai
4
116627
342376
283505
2026-05-15T15:10:26Z
Khalifah5156
9987
342376
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}buah tembikai{{cp|tmw|}}
l7ev78mqhtefu0gjq3t3pbudsh098m1
Wikikamus:tmw/gaok
4
116628
341888
283506
2026-05-15T13:51:58Z
Elléarden
9981
341888
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}} Kakak {{cp|tmw|}}
lumxqj9vcdl1kqxg1szp2ri7df490jm
342471
341888
2026-05-16T02:19:00Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Gaok]] ke [[Wikikamus:tmw/gaok]]: Tajuk salah eja
341888
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}} Kakak {{cp|tmw|}}
lumxqj9vcdl1kqxg1szp2ri7df490jm
342474
342471
2026-05-16T02:19:48Z
Kentangputarr
10725
342474
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}} kakak {{cp|tmw|}}
br65yy2rcnzz93id2xuz0t3hctt7ohq
342484
342474
2026-05-16T02:21:55Z
Kentangputarr
10725
342484
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}}kakak {{cp|tmw|}}
gzn2bambm5vh96y7d774eauncuu9w9b
342489
342484
2026-05-16T02:24:49Z
Kembojalini
10746
342489
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}}kakak {{cp|tmw|Nin '''gaok''' akuk}}
r7y5tnmcq9q5mx3m3s24bv4r3bjpacr
Wikikamus:tmw/kejak
4
116629
342304
283508
2026-05-15T14:13:42Z
Elléarden
9981
342304
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}} Kerja {{cp|tmw|}}
0nu2baq7oxca8d2pb5cvow4ck5i1ivm
342532
342304
2026-05-16T02:41:38Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Kejak]] ke [[Wikikamus:tmw/kejak]]: Tajuk salah eja
342304
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}} Kerja {{cp|tmw|}}
0nu2baq7oxca8d2pb5cvow4ck5i1ivm
342535
342532
2026-05-16T02:42:05Z
Kentangputarr
10725
342535
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}}kerja {{cp|tmw|}}
slghm5u1mk51ol9bogd1co48g54oz7e
342592
342535
2026-05-16T03:04:50Z
Faizz315891
10774
342592
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}}kerja {{cp|tmw|Akuk tengah '''kejak'''.|Aku tengah '''kerja'''.}}
rs6lw5zogyl9blmjm3oeqomzimuped8
Wikikamus:tmw/pegik manak
4
116630
342329
283509
2026-05-15T14:40:59Z
Haqifaz
9982
342329
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}}pergi mana {{cp|tmw|}}
rm1nityz4azi8sb7nc1hc9elsd4okol
Wikikamus:tmw/pagik
4
116631
342326
283510
2026-05-15T14:38:53Z
Zreeeeeee
10698
342326
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# pagi, selamat pagik{{cp|tmw|}}
c7ew5daa4nx32dkrlz33glot1gu3bz8
Wikikamus:tmw/kamin
4
116633
342414
283512
2026-05-15T15:50:16Z
Khalifah5156
9987
342414
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
#{{label|tmw|Dialek|Bukit Lagong}}kami
{{cp|tmw|}}
mnx63172g2npei8hg5vvxr5hlr223no
Wikikamus:tmw/gelap
4
116634
341957
283513
2026-05-15T13:56:22Z
Elléarden
9981
341957
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}} Malam {{cp|tmw|}}
n3wgpsgjemr0okstayvexc0tr5hl0zf
342498
341957
2026-05-16T02:27:58Z
Kentangputarr
10725
342498
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}}malam {{cp|tmw|}}
b01mb3vw4efizsbsgzpjidogmslbkt4
342499
342498
2026-05-16T02:28:23Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Gelap]] ke [[Wikikamus:tmw/gelap]]: Tajuk salah eja
342498
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}}malam {{cp|tmw|}}
b01mb3vw4efizsbsgzpjidogmslbkt4
342529
342499
2026-05-16T02:40:23Z
Barbiemaripossa
9985
342529
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}} malam{{cp|tmw|Aik nak '''gelap''' dah|Hari sudah '''malam'''}}{{cp|tmw|}}
qmuwlptmx28z8j2ancrdl5zilu605d5
342540
342529
2026-05-16T02:43:40Z
Kembojalini
10746
342540
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}} malam{{cp|tmw|Aik nak '''gelap''' dah|Hari sudah '''malam'''}}
iqmqbc4xxjemtk87cns7lx3x4t8tcwb
Wikikamus:tmw/genui
4
116636
342399
283515
2026-05-15T15:25:49Z
Khalifah5156
9987
342399
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}nenek{{cp|tmw|}}
icjlyqhgl9r3r0nv56oe3mhddpsv9yh
Wikikamus:tmw/pegik
4
116638
342331
283517
2026-05-15T14:43:08Z
Haqifaz
9982
342331
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|tmw|dialek|Bukit Lagong}}pergi{{cp|tmw|}}
4selmih06lb21gth0eozzw57vd33o9r
Wikikamus:tmw/mamak
4
116639
342397
283518
2026-05-15T15:24:08Z
Haqifaz
9982
342397
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}}pakcik {{cp|tmw|}}
0v0ge3ur234cgz1oul19d7h682r49d1
Wikikamus:tmw/nyayik
4
116640
342339
283519
2026-05-15T14:48:58Z
Khalifah5156
9987
342339
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|Dialek|Bukit Lagong}}Menyanyi{{cp|tmw|}}
awwyz4x6c8ku1v85y1zucvayvdkhm84
342606
342339
2026-05-16T03:11:07Z
Kentangputarr
10725
342606
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|Dialek|Bukit Lagong}}menyanyi{{cp|tmw|}}
hr0rl87a588s1kfieaxzj0w8zax5xa9
342608
342606
2026-05-16T03:11:25Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Nyayik]] ke [[Wikikamus:tmw/nyayik]]
342606
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|Dialek|Bukit Lagong}}menyanyi{{cp|tmw|}}
hr0rl87a588s1kfieaxzj0w8zax5xa9
Wikikamus:tmw/inak
4
116641
342407
283520
2026-05-15T15:44:23Z
Khalifah5156
9987
342407
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}makcik{{cp|tmw|}}
hrvy3kr0b1uax4ro7euahie6gyfzk4y
Wikikamus:tmw/kelobok
4
116643
342413
283522
2026-05-15T15:49:41Z
Azrifrb
9991
342413
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# rama rama{{cp|tmw|}}
hh2c4j6iyzecc1vxw66sag1lj6e277m
342416
342413
2026-05-15T15:52:11Z
Khalifah5156
9987
342416
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}rama rama{{cp|tmw|}}
e1hqspdzlmmkjjrdzho1utvq73p5svg
342763
342416
2026-05-16T04:23:58Z
Khalifah5156
9987
342763
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}rama rama{{cp|tmw|'''Kelobok''' ituk lawa|Rama-rama itu lawa}}
cfkvzjocz4g96c9iicipme2jq8r6kjn
342764
342763
2026-05-16T04:24:19Z
Khalifah5156
9987
342764
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}rama rama{{cp|tmw|'''Kelobok''' ituk lawa|'''Rama-rama''' itu lawa}}
fckt5u4bnnu34z4o0nvngznkxa989zr
Wikikamus:tmw/pokok ladak
4
116646
342311
283525
2026-05-15T14:27:54Z
Haqifaz
9982
342311
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}} pokok cili{{cp|tmw|}}
n6wiwf7yd34wlrli8a3jb5bcjl6mquz
Wikikamus:tmw/Lupak
4
116648
342320
283527
2026-05-15T14:32:57Z
Khalifah5156
9987
342320
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|Dialek|Bukit Lagong}}Lupa{{cp|tmw|}}
bn59p517ig8gvyggrm57geskodt2n57
342554
342320
2026-05-16T02:51:17Z
Kentangputarr
10725
342554
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|Dialek|Bukit Lagong}}lupa{{cp|tmw|}}
luph2afjjxqz6ednop2erso2ogbdgvh
Wikikamus:tmw/ikan semelak
4
116650
342406
283529
2026-05-15T15:43:39Z
Khalifah5156
9987
342406
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}ikan keli{{cp|tmw|}}
mqp4ko9g3bheygfzick717iocsc6bjv
Wikikamus:tmw/rimau
4
116651
342306
283530
2026-05-15T14:20:01Z
Haqifaz
9982
342306
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}}harimau {{cp|tmw|}}
oqs1hwf2krdnhrb2pfeh71o4c7tg5wu
Wikikamus:tmw/gek
4
116653
342390
283538
2026-05-15T15:18:53Z
Khalifah5156
9987
342390
wikitext
text/x-wiki
abang ipar
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}}abang Ipar{{cp|tmw|}}
nvnrsw3cq6h6fuc21druam0i0azazjf
342496
342390
2026-05-16T02:27:24Z
Kentangputarr
10725
342496
wikitext
text/x-wiki
abang ipar
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}}abang ipar{{cp|tmw|}}
2lfm65n0oymzumbssxvv9gu4ajwq4s1
Wikikamus:tmw/misan
4
116654
342382
283534
2026-05-15T15:14:22Z
Haqifaz
9982
342382
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}}madu {{cp|tmw|}}
k2lv4je1t29bkp699kw2t1g8v81joq2
Wikikamus:tmw/herbak
4
116655
342396
283536
2026-05-15T15:23:33Z
Azrifrb
9991
342396
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# herba{{cp|tmw|}}
6zk9k00we0djum4zql4sqplirthk1pw
342405
342396
2026-05-15T15:42:54Z
Khalifah5156
9987
342405
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}herba{{cp|tmw|}}
rordz4cnzezxsd9g2dhteqn41ljaafp
Wikikamus:tmw/mimpi nyahat
4
116656
342569
283537
2026-05-16T02:56:16Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Mimpi nyahat]] ke [[Wikikamus:tmw/mimpi nyahat]]: Tajuk salah eja
283537
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# Mimi buruk
1q2sg82bgggcgqw29ygnijcniaobdli
342575
342569
2026-05-16T02:58:53Z
Kentangputarr
10725
342575
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}}mimpi buruk
3zuudx2h2z9iswpqzvvkggv56caijtt
342577
342575
2026-05-16T02:59:45Z
Kentangputarr
10725
342577
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}}mimpi buruk {{cp|tmw|}}
m9cy500d97ymzmts94ejglxt06onxfd
Wikikamus:tmw/temiang
4
116657
341910
283540
2026-05-15T13:54:39Z
Haqifaz
9982
341910
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}} sumpit {{cp|tmw|}}
c0iw51drev5er92yum77pg20tmog1ej
Wikikamus:tmw/tidu
4
116658
341883
283542
2026-05-15T13:45:19Z
Haqifaz
9982
341883
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}} tidur {{cp|tmw|}}
27vuug6nox2hs2xdfchxr7rmjb7g4tn
342517
341883
2026-05-16T02:35:50Z
Faizz315891
10774
342517
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}} tidur {{cp|tmw|akuk tengah '''tidu''' di ruang tamuk.|aku tengah '''tidur''' di ruang tamu.}}
p43rah3s1bwc4yobn81zngarys3gdkp
Wikikamus:tmw/jaras
4
116663
342410
283549
2026-05-15T15:47:31Z
Khalifah5156
9987
342410
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}bakul{{cp|tmw|}}
3rqltt1ky147voi7ui9qkluyp5idz38
Wikikamus:tmw/memancing
4
116671
342385
283566
2026-05-15T15:16:53Z
Haqifaz
9982
342385
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
ngail
# {{label|tmw|dialek|Bukit Lagong}}memancing {{cp|tmw|}}
fv6ss2pt10bj8dh2h5k57m4irbe6uo2
Wikikamus:tmw/jandak
4
116674
342408
283562
2026-05-15T15:45:10Z
Khalifah5156
9987
342408
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}janda{{cp|tmw|}}
pf977e55hmix9l6fbferi00j7znopqg
Wikikamus:tmw/budak kecin
4
116680
341877
283569
2026-05-15T13:39:26Z
Elléarden
9981
341877
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# bayi {{cp|tmw|}}
4kkoa8nzkv2kjyadn5eil8rlm5y4675
342486
341877
2026-05-16T02:24:30Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Budak kecin]] ke [[Wikikamus:tmw/budak kecin]]: Tajuk salah eja
341877
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# bayi {{cp|tmw|}}
4kkoa8nzkv2kjyadn5eil8rlm5y4675
Wikikamus:tmw/budak babel
4
116684
341875
283573
2026-05-15T13:36:27Z
Elléarden
9981
341875
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# Budak nakal {{cp|tmw|}}
18w2ujwth4grl1mq3p7vjc6l1rtn96b
342490
341875
2026-05-16T02:25:06Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Budak babel]] ke [[Wikikamus:tmw/budak babel]]: Tajuk salah eja
341875
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# Budak nakal {{cp|tmw|}}
18w2ujwth4grl1mq3p7vjc6l1rtn96b
342492
342490
2026-05-16T02:25:48Z
Kentangputarr
10725
342492
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# budak nakal {{cp|tmw|}}
h3es9og16zsx1ndw2up60em01q0mr42
Wikikamus:tmw/Jobok
4
116686
342300
283575
2026-05-15T14:11:21Z
Elléarden
9981
342300
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}} Melayu {{cp|tmw|}}
547pti56u1jwz6fcssip0bggibcg0v0
342607
342300
2026-05-16T03:11:16Z
Kembojalini
10746
342607
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}} Melayu {{cp|tmw|Diak tuk oang '''jobok'''|Dia tu orang '''Melayu'''}}
rvsajimxurez37fyv1yxx58p9bbnnji
Wikikamus:tmw/ghebung
4
116689
342389
283578
2026-05-15T15:18:42Z
Azrifrb
9991
342389
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# rebung{{cp|tmw|}}
8vuiv3ytlyr9mzuxddb1tcfzbya3exq
342400
342389
2026-05-15T15:27:46Z
Khalifah5156
9987
342400
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}rebung{{cp|tmw|}}
amh7tjifwufondt7raglnqdjlki5v0w
Wikikamus:tmw/nyap
4
116694
342344
283583
2026-05-15T14:51:49Z
Haqifaz
9982
342344
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|tmw|dialek|Bukit Lagong}}tidak {{cp|tmw|}}
7bchkwswuptox38mt368hvbm50cmlb9
Wikikamus:tmw/mutan
4
116697
342366
283586
2026-05-15T15:04:16Z
Haqifaz
9982
342366
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}}buah rambutan {{cp|tmw|}}
j94u632i8eez6a2qzth799uoedwfd15
342622
342366
2026-05-16T03:20:19Z
Faizz315891
10774
342622
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}}buah rambutan {{cp|tmw|'''mutan''' ituk manis.|'''buah rambutan''' itu manis.}}
sz9em7eh1td81k5bumda68mtqw33lup
Wikikamus:tmw/yibut
4
116701
341869
283590
2026-05-15T13:28:39Z
Haqifaz
9982
341869
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# ribut {{cp|tmw|}}
hddacx8dg0bmyo679gorwwddw67rxe2
341885
341869
2026-05-15T13:46:39Z
Haqifaz
9982
341885
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}}ribut {{cp|tmw|}}
5g3o16gxruc9hh1u4r52bzwopdh1j8s
342494
341885
2026-05-16T02:26:48Z
Faizz315891
10774
342494
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}}ribut {{cp|tmw|Kampung itu bendak '''yibut'''.|Kampung itu dilanda '''ribut'''.}}
getgkwwsvdn5ktog1z2710refhyp1a2
Wikikamus:tmw/bantai
4
116703
342371
283592
2026-05-15T15:07:07Z
Khalifah5156
9987
342371
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|tmw|Dialek|Bukit Lagong}}Potong lauk (contoh: ayam){{cp|tmw|}}
hco2ow547xi82ocg13cpdid7kwc5ilb
Wikikamus:tmw/tempuyak
4
116717
341887
283606
2026-05-15T13:49:44Z
Haqifaz
9982
341887
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}}tempoyak
pcgvgukp1j1oyjdk7gzvevjledcy173
Wikikamus:tmw/kaba
4
116721
342412
283610
2026-05-15T15:48:32Z
Khalifah5156
9987
342412
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|tmw|Dialek|Bukit Lagong}}cakap{{cp|tmw|}}
pzbszfosbfcfsb2f9ck4ucggyfvfo3q
Wikikamus:tmw/air latak
4
116724
342356
283613
2026-05-15T14:57:50Z
Khalifah5156
9987
342356
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}air terjun{{cp|tmw|}}
k08cwiupuk29foc0tsx40efan4x6ep3
342702
342356
2026-05-16T03:51:06Z
Khalifah5156
9987
342702
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}air terjun{{cp|tmw|Akuk bahuk lepas mandik '''air latak'''|Saya baru lepas mandi '''air terjun'''}}
lpysv50xtedhx1pjmtum5ara8p0lw3s
Wikikamus:tmw/lapa
4
116734
342424
283623
2026-05-15T15:58:23Z
Haqifaz
9982
342424
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|tmw|dialek|Bukit Lagong}}lapar {{cp|tmw|}}
fdys0kud6f63fko7y18l473fy2pjrug
Wikikamus:tmw/pelahang
4
116737
342319
283626
2026-05-15T14:32:42Z
Haqifaz
9982
342319
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|tmw|dialek|Bukit Lagong}}penipu {{cp|tmw|}}
e7mgf27mxhj4dfe7kjryxzcmnnjeeur
Wikikamus:tmw/bungak
4
116743
342378
335843
2026-05-15T15:12:14Z
Khalifah5156
9987
342378
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}bunga {{cp|tmw|}}
9sj4rwteccca2u9rxknmhodpmsuk97o
Wikikamus:tmw/anying
4
116749
342362
283638
2026-05-15T15:01:38Z
Khalifah5156
9987
342362
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}anjing{{cp|tmw|}}
bnma02b1xnk9puvkg2ey90dflnvykrc
342566
342362
2026-05-16T02:55:27Z
Barbiemaripossa
9985
342566
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}} anjing{{cp|tmw|Anying itu '''lawa''' nah|'''Anjing''' itu sangat comel}}
bfx9wjho6hi8lxrko18d00fzhcih11f
Wikikamus:tmw/haik muyang
4
116760
342402
283649
2026-05-15T15:29:15Z
Khalifah5156
9987
342402
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} hari moyang{{cp|tmw|}}
eh8iau00q9ywijjfwj1nfmwozx7c33f
Wikikamus:tmw/habat
4
116761
342391
283650
2026-05-15T15:19:13Z
Azrifrb
9991
342391
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# hati hati{{cp|tmw|}}
rgjxpp2occdqzwpwbgeudjb1iyovccp
342401
342391
2026-05-15T15:28:25Z
Khalifah5156
9987
342401
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|tmw|Dialek|Bukit Lagong}}hati hati{{cp|tmw|}}
a4h3boin0qnni4d6n9dyfx4y2tob3rs
342682
342401
2026-05-16T03:41:18Z
Kentangputarr
10725
342682
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|tmw|Dialek|Bukit Lagong}}hati-hati{{cp|tmw|}}
ciwqm6j5k64hpmkeof2583gnlz1a3bu
Wikikamus:tmw/sayu
4
116770
342302
283659
2026-05-15T14:12:47Z
Haqifaz
9982
342302
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}}sayur {{cp|tmw|}}
86291hyrj2gg7czbq9c2ayv99nsedkg
Wikikamus:tmw/lening
4
116789
342415
283678
2026-05-15T15:51:10Z
Haqifaz
9982
342415
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|tmw|dialek|Bukit Lagong}}baling {{cp|tmw|}}
50aejfjnah1ep3akjophpzetrs1ohmc
Wikikamus:tmw/aka ulan
4
116790
342359
283679
2026-05-15T14:59:28Z
Khalifah5156
9987
342359
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}akar untuk merawat luka{{cp|tmw|}}
0eii5b16w5h0uykapg7nntqi5bscbko
342710
342359
2026-05-16T03:54:42Z
Khalifah5156
9987
342710
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}akar untuk merawat luka{{cp|tmw|Ninik caik '''aka ulan''' di hutan|Atuk pergi mencari '''akar ulan''' di hutan}}
72hva5e43mdp21b9adl7j6hacz8mprj
Wikikamus:tmw/wang tuhik
4
116794
342661
283683
2026-05-16T03:33:40Z
Kentangputarr
10725
342661
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# orang tua
bww1zz5rtrgpiscwjfu29v29sj1c2n1
342663
342661
2026-05-16T03:33:56Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Wang tuhik maen maen]] ke [[Wikikamus:tmw/wang tuhik]]
342661
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# orang tua
bww1zz5rtrgpiscwjfu29v29sj1c2n1
Wikikamus:tmw/celau
4
116801
342381
283690
2026-05-15T15:14:16Z
Khalifah5156
9987
342381
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}ribut membawa bencana{{cp|tmw|}}
4pef4zyax5t9rxfzdu342rjg3vhr7iq
342757
342381
2026-05-16T04:14:40Z
Khalifah5156
9987
342757
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}ribut membawa bencana{{cp|tmw|Jangan main, kelak '''celau'''|Jangan main, nanti kena '''ribut bala'''}}
cbi0qulvb0kj4hvsn7ipao5yxr057ca
Kategori:id:Badan samawi
14
117160
342793
297711
2026-05-16T11:48:06Z
Hakimi97
2668
342793
wikitext
text/x-wiki
{{delete|digantikan dengan [[:Kategori:id:Jasad cakerawala]]}}
6r41lqvks7ssc3f3r3mx6oujsvttbra
Wikikamus:tmw/diak
4
117504
341881
313922
2026-05-15T13:42:29Z
Elléarden
9981
341881
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} dia {{cp|tmw|}}
6t2lhf5owubwcqhamir0lmb8x23rr2u
342460
341881
2026-05-16T02:12:42Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Diak]] ke [[Wikikamus:tmw/diak]]: Tajuk salah eja
341881
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} dia {{cp|tmw|}}
6t2lhf5owubwcqhamir0lmb8x23rr2u
Wikikamus:tmw/lenik
4
117505
342317
332952
2026-05-15T14:31:26Z
Khalifah5156
9987
342317
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|tmw|dialek|Bukit Lagong}}baling
inzlw21t5e1nwq6ex57eh1mp4yu9rk9
342318
342317
2026-05-15T14:31:57Z
Khalifah5156
9987
342318
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|tmw|dialek|Bukit Lagong}}baling{{cp|tmw|}}
25gplwal7u2dv1f9a1t1a8eparz0a4f
342552
342318
2026-05-16T02:50:23Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Lenik]] ke [[Wikikamus:tmw/lenik]]
342318
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|tmw|dialek|Bukit Lagong}}baling{{cp|tmw|}}
25gplwal7u2dv1f9a1t1a8eparz0a4f
Wikikamus:tmw/Nun
4
117506
342338
314018
2026-05-15T14:48:07Z
Khalifah5156
9987
342338
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} sana{{cp|tmw|}}
lxaxpvkws7ns1rpz70i8y2sb12y4bxp
Wikikamus:tmw/tanuk
4
117507
342351
314021
2026-05-15T14:55:05Z
Khalifah5156
9987
342351
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} tanduk{{cp|tmw|}}
sa7mqtvlz2i7t1beccznyqkwtwef6ni
342644
342351
2026-05-16T03:30:21Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Tanuk]] ke [[Wikikamus:tmw/tanuk]]
342351
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} tanduk{{cp|tmw|}}
sa7mqtvlz2i7t1beccznyqkwtwef6ni
342647
342644
2026-05-16T03:30:45Z
Kentangputarr
10725
342647
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}}tanduk{{cp|tmw|}}
52xahoaxacx8fb5g69h45qoh269kuir
Wikikamus:tmw/Lemuk
4
117508
342315
314022
2026-05-15T14:30:00Z
Khalifah5156
9987
342315
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} lembu{{cp|tmw|}}
o4rgylyh2h7048eurk75gqaf4fc5k00
342548
342315
2026-05-16T02:47:23Z
Kentangputarr
10725
342548
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}}lembu{{cp|tmw|}}
f3tziebtgjz80lfdeq65rvc12t3irfw
Wikikamus:tmw/lada
4
117509
342308
314023
2026-05-15T14:23:29Z
Khalifah5156
9987
342308
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} cili{{cp|tmw|}}
o45ge31b9xvwggyqnj2l43kf6v8p3fn
342538
342308
2026-05-16T02:42:40Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Lada]] ke [[Wikikamus:tmw/lada]]
342308
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} cili{{cp|tmw|}}
o45ge31b9xvwggyqnj2l43kf6v8p3fn
Wikikamus:tmw/letih
4
117593
342411
326283
2026-05-15T15:48:17Z
Haqifaz
9982
342411
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} penat {{cp|tmw|}}
pdu28pnwduoei8h6chrcawz0ia80l2h
342646
342411
2026-05-16T03:30:21Z
Faizz315891
10774
342646
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} penat {{cp|tmw|akuk dah '''letih'''.|aku dah '''penat'''.}}
ptn8u0v7qnlgwi0pl7y1cx8rnvadn6y
Wikikamus:tmw/taek
4
118230
342346
332956
2026-05-15T14:52:56Z
Khalifah5156
9987
342346
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|tmw|Dialek|Bukit Lagong}}Tarik{{cp|tmw|}}
tehmyofq5k6y3mupxqqjvetge83vuvo
342630
342346
2026-05-16T03:25:47Z
Kentangputarr
10725
342630
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|tmw|Dialek|Bukit Lagong}}tarik{{cp|tmw|}}
0iynphbx64nnua0gs4ibzbocic3dz8t
342631
342630
2026-05-16T03:26:07Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Taek]] ke [[Wikikamus:tmw/taek]]
342630
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|tmw|Dialek|Bukit Lagong}}tarik{{cp|tmw|}}
0iynphbx64nnua0gs4ibzbocic3dz8t
Wikikamus:tmw/Genui
4
118231
341980
332957
2026-05-15T13:57:05Z
Elléarden
9981
341980
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} nenek {{cp|tmw|}}
pweps2yyqu9kkw7lxlr9iv50ckqkhxg
Wikikamus:tmw/Menyeler
4
118232
342327
332961
2026-05-15T14:39:53Z
Khalifah5156
9987
342327
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} {{cp|tmw|jangan menyeler tengah waktuk hujan kelak sakit.}}
5lis0s98warjjicpryucru5atlvll9x
Wikikamus:tmw/gosok gigik
4
118233
342506
332960
2026-05-16T02:30:12Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Gosok gigik]] ke [[Wikikamus:tmw/gosok gigik]]: Tajuk salah eja
332960
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} gosok gigik
podxnevce8ogpwubxw8f5vzsfpdm20i
342511
342506
2026-05-16T02:31:43Z
Kentangputarr
10725
342511
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}}gosok gigik
# {{cp|tmw|}}
mkwdj6gd8zm5nyr3hlhbis8rjbo8cs4
342565
342511
2026-05-16T02:55:13Z
Kembojalini
10746
342565
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}}gosok gigik
# {{cp|tmw|'''Gosok gigik''' sampai gigik lukak|'''Gosok gigi''' sampai gigi terluka }}
m6c38dsbo7asu5394py1mjy90x0iev2
Wikikamus:tmw/tali dendan
4
118234
342348
332962
2026-05-15T14:53:49Z
Khalifah5156
9987
342348
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} tali dendan{{cp|tmw|}}
pixoybg0cat9kdva8pcs09gywpczhru
342634
342348
2026-05-16T03:26:54Z
Kentangputarr
10725
342634
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}}tali dendan{{cp|tmw|}}
cejvjtjk2n81xxj9556qszq1116nt92
342636
342634
2026-05-16T03:27:09Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Tali dendan]] ke [[Wikikamus:tmw/tali dendan]]
342634
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}}tali dendan{{cp|tmw|}}
cejvjtjk2n81xxj9556qszq1116nt92
Wikikamus:tmw/tungkih
4
118235
342353
332963
2026-05-15T14:56:05Z
Khalifah5156
9987
342353
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|Dialek|Bukit Lagong}}Tolak{{cp|tmw|}}
gykow66a6fany49a552hyjjzzwlks9f
342649
342353
2026-05-16T03:31:15Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Tungkih]] ke [[Wikikamus:tmw/tungkih]]
342353
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|Dialek|Bukit Lagong}}Tolak{{cp|tmw|}}
gykow66a6fany49a552hyjjzzwlks9f
342651
342649
2026-05-16T03:31:29Z
Kentangputarr
10725
342651
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|Dialek|Bukit Lagong}}tolak{{cp|tmw|}}
iri3cniwmwetqwnngmrld7ezqdh725n
Wikikamus:tmw/krusik
4
118236
342420
332964
2026-05-15T15:55:20Z
Khalifah5156
9987
342420
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} kerusi{{cp|tmw|}}
dm7yih9s1bmmle7gz0gtm6ijbvawcvs
Wikikamus:tmw/Busuk
4
118237
341879
332965
2026-05-15T13:40:21Z
Elléarden
9981
341879
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} busuk {{cp|tmw|}}
buxjkhlweth413bbyp3egxkof37o33v
Wikikamus:tmw/lego
4
118238
342312
332973
2026-05-15T14:28:08Z
Khalifah5156
9987
342312
wikitext
text/x-wiki
merayap
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} merayap{{cp|tmw|}}
fwv9lkeiffxy8yzzrq3c21abns7zqp5
342541
342312
2026-05-16T02:44:24Z
Kentangputarr
10725
342541
wikitext
text/x-wiki
merayap
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}}merayap{{cp|tmw|}}
jazpjtyaurptcl70g3i1y6xa15kl7nk
342542
342541
2026-05-16T02:44:36Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Lego]] ke [[Wikikamus:tmw/lego]]
342541
wikitext
text/x-wiki
merayap
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}}merayap{{cp|tmw|}}
jazpjtyaurptcl70g3i1y6xa15kl7nk
Wikikamus:tmw/jaghas
4
118239
342522
332970
2026-05-16T02:37:44Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Jala]] ke [[Wikikamus:tmw/jala]]
332970
wikitext
text/x-wiki
Jaghas
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} contoh jaghas
nmni2xx83wnqkzs0i5295wbmqej7i5d
342525
342522
2026-05-16T02:38:29Z
Kentangputarr
10725
342525
wikitext
text/x-wiki
Jaghas
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}}jaghas{{cp|tmw|}}
679z6gr72vqie1w0xpo1c7uer17xqqx
342690
342525
2026-05-16T03:45:38Z
Kentangputarr
10725
342690
wikitext
text/x-wiki
Jaghas
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}}jala{{cp|tmw|}}
rh6j1i9jnb1wmi815tsywwlzbfvjy5n
342691
342690
2026-05-16T03:45:47Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/jala]] ke [[Wikikamus:tmw/jaghas]]
342690
wikitext
text/x-wiki
Jaghas
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}}jala{{cp|tmw|}}
rh6j1i9jnb1wmi815tsywwlzbfvjy5n
Wikikamus:tmw/Lawa
4
118240
342310
332968
2026-05-15T14:25:45Z
Khalifah5156
9987
342310
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} cantik{{cp|tmw|}}
so35bj419leunlfc4ebh7c5rd9k2lic
Wikikamus:tmw/Niak
4
118241
342334
332975
2026-05-15T14:45:52Z
Khalifah5156
9987
342334
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} Tiada{{cp|tmw|}}
09jr18rmq88v5sn8z69zzrh95efdxvc
342595
342334
2026-05-16T03:05:37Z
Kentangputarr
10725
342595
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}}tiada{{cp|tmw|}}
sej7vxcouheivi4tkkf4jsvlbunng8i
Wikikamus:tmw/bajuk
4
118242
341868
332974
2026-05-15T13:28:37Z
Elléarden
9981
341868
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} baju {{cp|tmw|}}
8hz254cmgad45i8xkzkjpjlccdragx4
342457
341868
2026-05-16T02:10:26Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Bajuk]] ke [[Wikikamus:tmw/bajuk]]: Tajuk salah eja
341868
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} baju {{cp|tmw|}}
8hz254cmgad45i8xkzkjpjlccdragx4
342459
342457
2026-05-16T02:12:33Z
Kembojalini
10746
342459
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} baju {{cp|tmw|'''Bajuk''' nin bahuk di belik|'''Baju''' ini baru di beli}}
qefsps44qwvcrjud22yr83a8cwto5jv
Wikikamus:tmw/Ngail
4
118243
342333
332976
2026-05-15T14:45:04Z
Khalifah5156
9987
342333
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|Dialek|Bukit Lagong}}Memancing{{cp|tmw|}}
kr8mshwu9hp0yo65peeg4qpft1yd0un
Wikikamus:tmw/laik
4
118244
342425
332977
2026-05-15T15:58:50Z
Khalifah5156
9987
342425
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} lari{{cp|tmw|}}
tkdap80crfsr1t9rhe6kwkfjnrt0yma
342678
342425
2026-05-16T03:40:08Z
Faizz315891
10774
342678
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} lari{{cp|tmw|babik ituk '''laik''' ke hutan.|babi itu '''lari''' ke hutan.}}
7q9i6crdevhq3r9zfh591xzo48cpz4k
Wikikamus:tmw/jale
4
118245
342298
332979
2026-05-15T14:08:25Z
Elléarden
9981
342298
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} gedik {{cp|tmw|}}
ah3t9xh4qt9kfcip7cngzb0j64mwhfg
342526
342298
2026-05-16T02:39:00Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Jale]] ke [[Wikikamus:tmw/jale]]
342298
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} gedik {{cp|tmw|}}
ah3t9xh4qt9kfcip7cngzb0j64mwhfg
342599
342526
2026-05-16T03:08:52Z
Kembojalini
10746
342599
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} gedik {{cp|tmw|Diak tuk jenis '''jale'''|Dia tu jenis '''gedek'''}}
gmlh00dfjw9bq4ql79yp7deeu5h47ea
Wikikamus:tmw/Selempang
4
118247
342342
332981
2026-05-15T14:50:50Z
Khalifah5156
9987
342342
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} selempang{{cp|tmw|}}
asiw7nffqqsl4whaejyd0cu8dl5e7ln
Wikikamus:tmw/oang mudak
4
118248
342337
332982
2026-05-15T14:48:03Z
Haqifaz
9982
342337
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}}orang muda{{cp|tmw|}}
8r68jngnjkjqyg7e82t2ghngj9wd2bm
Wikikamus:tmw/berus gigik
4
118250
342372
332984
2026-05-15T15:07:46Z
Khalifah5156
9987
342372
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}berus gigi{{cp|tmw|}}
hzytsxrrbt58srrstfsl0rehqv54dlo
Wikikamus:tmw/lupak
4
118251
342430
332986
2026-05-15T16:02:35Z
Khalifah5156
9987
342430
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}lupa{{cp|tmw|}}
h9gfr323srykxh9f052sxsf0u5rvbea
342574
342430
2026-05-16T02:58:50Z
Faizz315891
10774
342574
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}lupa{{cp|tmw|Ajih ni mudah '''lupak'''.|Ajih ini mudah '''lupa'''.}}
432a4ua8cbpzbe12ust3xuwqi2v5adz
342576
342574
2026-05-16T02:59:34Z
Faizz315891
10774
342576
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}lupa{{cp|tmw|Amira ni mudah '''lupak'''.|Amira ini mudah '''lupa'''.}}
1t3ouipw3dzjazbrh86fvq9xufpn5po
Wikikamus:tmw/sikah
4
118252
342345
332989
2026-05-15T14:52:14Z
Khalifah5156
9987
342345
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} sejenis monyet{{cp|tmw|}}
n748u2t856h0ct9vgu5a6cn0ujc3fff
342626
342345
2026-05-16T03:24:21Z
Kentangputarr
10725
342626
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}}monyet{{cp|tmw|}}
0zw7gqy2yek0ncy9hnuorytbps4tldv
342627
342626
2026-05-16T03:24:45Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Sikah]] ke [[Wikikamus:tmw/sikah]]
342626
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}}monyet{{cp|tmw|}}
0zw7gqy2yek0ncy9hnuorytbps4tldv
Wikikamus:tmw/pintuk
4
118253
342313
332990
2026-05-15T14:29:21Z
Haqifaz
9982
342313
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} pintu{{cp|tmw|}}
h45elgam8z30ifdyftmrdhxj6fuj1vz
342704
342313
2026-05-16T03:51:46Z
Faizz315891
10774
342704
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} pintu{{cp|tmw|'''Pintuk''' kayuk ituk besar.|'''Pintu''' kayu itu besar.}}
lhipo62fkdqip6493zeyggnekh9i7jl
Wikikamus:tmw/busuk
4
118254
342349
332991
2026-05-15T14:53:56Z
Qiels
10003
342349
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# busuk{{cp|tmw|}}
sq41i4cjmk3hak98v0xnu314l1znnya
342379
342349
2026-05-15T15:12:47Z
Khalifah5156
9987
342379
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|tmw|Dialek|Bukit Lagong}}busuk{{cp|tmw|}}
o6qe08f5c7uyttm1jh4gu8wrhiq1g9e
Wikikamus:tmw/kenyang
4
118255
342417
332992
2026-05-15T15:53:23Z
Khalifah5156
9987
342417
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} kenyang{{cp|tmw|}}
optmzavc0b5kecek55sbujtwjynk3i2
Wikikamus:tmw/muduk
4
118256
342328
332999
2026-05-15T14:39:56Z
Zreeeeeee
10698
342328
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} rasa berlemak{{cp|tmw|}}
66tqwi58pvhijcykoyv0osa0hdgnjtc
342588
342328
2026-05-16T03:04:00Z
Kentangputarr
10725
342588
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}}rasa berlemak{{cp|tmw|}}
o6jrvfdw7f0w6pe676rr4j4bib80l6s
342589
342588
2026-05-16T03:04:19Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Muduk]] ke [[Wikikamus:tmw/muduk]]
342588
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}}rasa berlemak{{cp|tmw|}}
o6jrvfdw7f0w6pe676rr4j4bib80l6s
Wikikamus:tmw/jantan
4
118257
342409
332994
2026-05-15T15:46:43Z
Khalifah5156
9987
342409
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}lelaki{{cp|tmw|}}
3ps3r6q2auq3cjzdd7vuhezbbnlcgpw
342605
342409
2026-05-16T03:11:00Z
Faizz315891
10774
342605
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}lelaki{{cp|tmw|'''Jantan''' ituk kacak.|'''Lelaki''' itu kacak.}}
20pfm8e7085cl32odwh9wwkftody8ia
Wikikamus:tmw/gemuk
4
118258
342394
333000
2026-05-15T15:22:14Z
Khalifah5156
9987
342394
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|tmw|Dialek|Bukit Lagong}}gemuk{{cp|tmw|}}
e8lclr99fc9m4m0cfhjl0rq2cuooq3d
Wikikamus:tmw/ikan semilang
4
118259
342003
332996
2026-05-15T13:57:52Z
Elléarden
9981
342003
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} ikan keli {{cp|tmw|}}
bz0ekx8dst93uw3084lo35ybpjdk96d
342514
342003
2026-05-16T02:34:39Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Ikan semilang]] ke [[Wikikamus:tmw/ikan semilang]]
342003
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} ikan keli {{cp|tmw|}}
bz0ekx8dst93uw3084lo35ybpjdk96d
342598
342514
2026-05-16T03:08:31Z
Faizz315891
10774
342598
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} ikan keli {{cp|tmw|Ayah tengah menyala '''ikan semilang'''.|Ayah tengah menangkap '''ikan keli'''.}}
e0h17p44xcnzbac3z58euxnbx0wxc0f
Wikikamus:tmw/betinak
4
118260
342374
332997
2026-05-15T15:09:00Z
Khalifah5156
9987
342374
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}perempuan{{cp|tmw|}}
i2fkogov8b38b7acvo81e3aj8csqr3z
Wikikamus:tmw/langsi
4
118261
342426
332998
2026-05-15T15:59:02Z
Haqifaz
9982
342426
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} langsir {{cp|tmw|}}
6v3mxkh2s40moofqoo3rglxi13leoem
Wikikamus:tmw/besa
4
118262
342373
333001
2026-05-15T15:08:19Z
Khalifah5156
9987
342373
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} besar{{cp|tmw|}}
2ehd840rf342wexns3jq92ami1jllcx
342744
342373
2026-05-16T04:07:56Z
Khalifah5156
9987
342744
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} besar{{cp|tmw|'''Besa'''nyak umah genui|'''Besar'''nya rumah nenek}}
9rcsefo8qx7bknqsj9tgnw856x4un40
Wikikamus:tmw/lemari
4
118263
342421
333002
2026-05-15T15:55:21Z
Haqifaz
9982
342421
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}}almari {{cp|tmw|}}
nr520rnv6tpty8ou91z5pf45nbi0fwt
Wikikamus:tmw/nyahak ajak
4
118264
342602
333008
2026-05-16T03:10:13Z
Kentangputarr
10725
342602
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit legong}}tak cantik
6ndm50iad31z17if4zf6hnzynpdtera
342603
342602
2026-05-16T03:10:34Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Nyahak ajak]] ke [[Wikikamus:tmw/nyahak ajak]]: Tajuk salah eja
342602
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit legong}}tak cantik
6ndm50iad31z17if4zf6hnzynpdtera
Wikikamus:tmw/nyahat
4
118265
342347
333004
2026-05-15T14:53:46Z
Haqifaz
9982
342347
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}}buruk {{cp|tmw|}}
g5443a8xtl05yrlunbveuz84tht16h2
Wikikamus:tmw/nikah
4
118266
342354
333006
2026-05-15T14:56:58Z
Haqifaz
9982
342354
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}}kahwin {{cp|tmw|}}
r2d0rosbz67wzfmxgl5pw20r6dyx9kr
Wikikamus:tmw/saong tangan
4
118267
342303
333007
2026-05-15T14:13:35Z
Haqifaz
9982
342303
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} sarung tangan {{cp|tmw|}}
prerbszctmnedf055wwkrygkf21sigf
Wikikamus:tmw/buayak
4
118268
341873
333009
2026-05-15T13:34:54Z
Elléarden
9981
341873
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} buaya {{cp|tmw|}}
5qki78xsx41h3c8t15vhtrk0lquwfsv
342464
341873
2026-05-16T02:15:59Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Buayak]] ke [[Wikikamus:tmw/buayak]]
341873
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} buaya {{cp|tmw|}}
5qki78xsx41h3c8t15vhtrk0lquwfsv
342473
342464
2026-05-16T02:19:10Z
Kembojalini
10746
342473
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} buaya {{cp|tmw|Akuk nak pegi zoo nak tengok '''buayak'''|Saya hendak pergi zoo nak tengok '''buaya'''}}
7egg8vdorezb65vbpn411jm19xsfky2
Wikikamus:tmw/itik
4
118269
342102
333010
2026-05-15T14:01:17Z
Elléarden
9981
342102
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} itik {{cp|tmw|}}
8rqvg66p3borrupyfbdzdusnfdcaijn
342452
342102
2026-05-16T02:03:13Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Itik]] ke [[Wikikamus:tmw/itik]]: Tajuk salah eja
342102
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} itik {{cp|tmw|}}
8rqvg66p3borrupyfbdzdusnfdcaijn
342521
342452
2026-05-16T02:37:04Z
Kentangputarr
10725
342521
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}}itik {{cp|tmw|}}
fj81i3imz0wa2c16yr7l7z6rwp9ehsu
342597
342521
2026-05-16T03:05:52Z
Kembojalini
10746
342597
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}}itik {{cp|tmw|Akuk nyap penah makan '''itik'''|Saya tak pernah makan '''itik'''}}
qtc3cca8k2107bxpkfy4zbxzdcigpbz
Wikikamus:tmw/susuk
4
118270
342087
333011
2026-05-15T14:00:48Z
Haqifaz
9982
342087
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} susu{{cp|tmw|}}
7i4dor5y5x3xrmfu4eebd7d4nba6kjb
Wikikamus:tmw/peyuk
4
118271
342316
333012
2026-05-15T14:30:00Z
Haqifaz
9982
342316
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}}periuk {{cp|tmw|}}
3vt19j67nvldmyazm3dvf9dxmyl4yf6
342662
342316
2026-05-16T03:33:55Z
Faizz315891
10774
342662
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}}periuk {{cp|tmw|'''peyuk''' ituk panas.|'''periuk''' itu panas.}}
5u0hrzn5vo9gmw72i27lxgrmnaom1fw
Wikikamus:tmw/Barak ajak
4
118272
341870
333015
2026-05-15T13:30:40Z
Elléarden
9981
341870
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} Hodoh {{cp|tmw|}}
q2z19ztf58i94sy3nxg1h7xz1cp75sl
Wikikamus:tmw/jagak diri elok elok
4
118273
342689
333014
2026-05-16T03:44:59Z
Kentangputarr
10725
342689
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}}jaga diri baik baik{{cp|tmw|}}
svhezjlbbw30p06c3kmaftfegzahz0e
Wikikamus:tmw/engkem
4
118274
341884
333018
2026-05-15T13:46:30Z
Elléarden
9981
341884
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} arak {{cp|tmw|}}
lbkuif1ppufzp1vxor1ob2f96g1lxn6
342469
341884
2026-05-16T02:18:26Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Engkem]] ke [[Wikikamus:tmw/engkem]]: Tajuk salah eja
341884
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} arak {{cp|tmw|}}
lbkuif1ppufzp1vxor1ob2f96g1lxn6
342759
342469
2026-05-16T04:19:27Z
Khalifah5156
9987
342759
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} arak {{cp|tmw|Orang nyap Islam minum '''engkem'''|Orang bukan Islam meminum '''arak'''}}
mmlmsmi32k6mtom14kkofa8d7mywrz9
Wikikamus:tmw/selamat tinggal
4
118275
342289
333017
2026-05-15T14:07:34Z
Haqifaz
9982
342289
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}}selamat tinggal {{cp|tmw|}}
57m0pj83aoqvfw1e69a3payscf4bx5l
Wikikamus:tmw/talipon
4
118276
342062
333019
2026-05-15T13:59:59Z
Haqifaz
9982
342062
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} telefon{{cp|tmw|}}
fpefs3ctl7t2i70coilad4cz94b9kd6
Wikikamus:tmw/ubi galo
4
118277
341872
333020
2026-05-15T13:33:18Z
Haqifaz
9982
341872
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} ubi kayu {{cp|tmw|}}
sh77h2ekvn8aygs1ggkqccaosax82cv
Wikikamus:tmw/moh
4
118278
342370
333021
2026-05-15T15:06:42Z
Haqifaz
9982
342370
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|tmw|dialek|Bukit Lagong}}jom {{cp|tmw|}}
8pbm6swmcqi1pcg6egljf0b17nnzwwv
Wikikamus:tmw/Bau hamping ajak
4
118279
341871
333023
2026-05-15T13:32:43Z
Elléarden
9981
341871
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Frasa===
{{inti|tmw|frasa}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} Bau busuk sangat {{cp|tmw|}}
988z3d4jp6uyfay9znvtko8ov5olbvh
Wikikamus:tmw/tulih
4
118280
341876
333024
2026-05-15T13:37:25Z
Haqifaz
9982
341876
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} tulis {{cp|tmw|}}
9z5fjzj5cz9hatoru07iaiejoh894a5
Wikikamus:tmw/melukih
4
118281
342388
333025
2026-05-15T15:18:28Z
Haqifaz
9982
342388
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} melukis {{cp|tmw|}}
1fg59rbtyr62p5wimj41p00nwfa0jlo
Wikikamus:tmw/mok
4
118282
342330
333026
2026-05-15T14:41:01Z
Khalifah5156
9987
342330
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}Mak{{cp|tmw|}}
jmy3ehkpmfgfpae4e5flxcya2xwobe7
342580
342330
2026-05-16T03:00:16Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Mok]] ke [[Wikikamus:tmw/mok]]: Tajuk salah eja
342330
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}Mak{{cp|tmw|}}
jmy3ehkpmfgfpae4e5flxcya2xwobe7
342582
342580
2026-05-16T03:00:31Z
Kentangputarr
10725
342582
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}mak{{cp|tmw|}}
kw6bzh05ctonvl4nm1qn9si5iku1iwi
Wikikamus:tmw/baing
4
118283
342367
333027
2026-05-15T15:04:44Z
Khalifah5156
9987
342367
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} baring{{cp|tmw|}}
70uujvt0m1bcrv1j30evp60j1fvx5w2
342740
342367
2026-05-16T04:06:25Z
Khalifah5156
9987
342740
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} baring{{cp|tmw|Berkelah sambil '''baing''' tepik pantay|Berkelah sambil '''baring''' di tepi pantai}}
2bvyij87ufll1bvbfsawh31e1gyhf8c
Wikikamus:tmw/tanoh
4
118284
342350
333028
2026-05-15T14:54:38Z
Khalifah5156
9987
342350
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}tanah{{cp|tmw|}}
0nqjqvkrig1trznnq1lv5av2bt1bjos
342642
342350
2026-05-16T03:29:57Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Tanoh]] ke [[Wikikamus:tmw/tanoh]]
342350
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}tanah{{cp|tmw|}}
0nqjqvkrig1trznnq1lv5av2bt1bjos
Wikikamus:tmw/buung
4
118285
342380
333029
2026-05-15T15:13:20Z
Khalifah5156
9987
342380
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} burung{{cp|tmw|}}
3lhrb0zgo620wlmn00taztpvpszfsbm
Wikikamus:tmw/ujan
4
118286
342355
333030
2026-05-15T14:56:59Z
Khalifah5156
9987
342355
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}hujan{{cp|tmw|}}
ql2ge9us9mrbwbffwf49n771h890c3o
342655
342355
2026-05-16T03:32:13Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Ujan]] ke [[Wikikamus:tmw/ujan]]
342355
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|Dialek|Bukit Lagong}}hujan{{cp|tmw|}}
ql2ge9us9mrbwbffwf49n771h890c3o
Wikikamus:tmw/tigak
4
118287
341880
333031
2026-05-15T13:40:25Z
Haqifaz
9982
341880
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} tiga {{cp|tmw|}}
487fgqps22t3fzmgofjhp0d864vy7ou
342688
341880
2026-05-16T03:44:29Z
Faizz315891
10774
342688
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit lagong}} tiga {{cp|tmw|Wak menghado '''tigak''' biji umah.|Pak cik melawat '''tiga''' buah rumah.}}
2hxriqz0ap8kbaoy0n0qhqspb9uytgv
Wikikamus:tmw/mekak
4
118288
342393
333032
2026-05-15T15:21:22Z
Haqifaz
9982
342393
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|tmw|dialek|Bukit Lagong}}bising {{cp|tmw|}}
0y9a9t9jq0ukz254vgoayt1k32wl4es
Wikikamus:tmw/samak
4
118289
342305
333033
2026-05-15T14:16:35Z
Haqifaz
9982
342305
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|tmw|dialek|Bukit Lagong}}sama {{cp|tmw|}}
2xgxf01frqfghpm8s4k7uwhrgiwn1bq
Wikikamus:tmw/cucuk
4
118290
342384
333034
2026-05-15T15:16:15Z
Khalifah5156
9987
342384
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|tmw|Dialek|Bukit Lagong}}cucu{{cp|tmw|}}
hqxlqh0baezvyoj7gybkx6h53tkb5ch
Wikikamus:tmw/lawa
4
118291
342422
333035
2026-05-15T15:57:02Z
Haqifaz
9982
342422
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|tmw|dialek|Bukit Lagong}}comel{{cp|tmw|}}
052lykp9t72ezfg92z64tb8bskfeio8
Wikikamus:tmw/uang
4
118292
341874
333036
2026-05-15T13:35:43Z
Haqifaz
9982
341874
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# orang{{cp|tmw|}}
3jbbc700ozjwrrs3mmwarst5kxah9g5
342429
341874
2026-05-15T16:02:19Z
Haqifaz
9982
342429
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}}orang{{cp|tmw|}}
ogkaay0w8a3smfvxp6d9rr4mwq3tnn1
342509
342429
2026-05-16T02:30:53Z
Faizz315891
10774
342509
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}}orang{{cp|tmw|'''Uang''' ituk sangat tinggik|'''Orang''' itu sangat tinggi.}}
9tobbccnjkxh3unyrrqa1dcutnjkmf6
Wikikamus:tmw/lemut
4
118294
342418
333038
2026-05-15T15:53:57Z
Haqifaz
9982
342418
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|tmw|dialek|Bukit Lagong}}lembik {{cp|tmw|}}
qul3lcqqa1vutc4ufvmo1nvfxujl4m4
Wikikamus:tmw/tandak
4
118295
341975
333040
2026-05-15T13:56:58Z
Haqifaz
9982
341975
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|tmw|dialek|Bukit Lagong}}tempat tadah air {{cp|tmw|}}
knm9vp6bjarrac6d6rwcgvmecszv62l
Wikikamus:tmw/katek
4
118444
342431
2026-05-15T16:56:55Z
Azrifrb
9991
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} kerdil'
342431
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} kerdil
7ha27q7nthdyf7ghvin6yyg7pu5j3bq
342694
342431
2026-05-16T03:47:04Z
Kentangputarr
10725
342694
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}}kerdil{{cp|tmw|}}
dyab660ud6cfi7uyy9v3ooe0u447n6d
Wikikamus:tmw/ituk
4
118445
342432
2026-05-15T16:58:27Z
Azrifrb
9991
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} itu{{cp|tmw|}}'
342432
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} itu{{cp|tmw|}}
9yyyo9pepbbalx4ijq9whpu3urod3hz
342534
342432
2026-05-16T02:41:54Z
Faizz315891
10774
342534
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} itu{{cp|tmw|Umah '''ituk''' besak.|Rumah '''itu''' besar.}}
lvk1wvdkcqhsp8761rnjhqnimivxtha
342686
342534
2026-05-16T03:43:01Z
Kentangputarr
10725
342686
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}}itu{{cp|tmw|Umah '''ituk''' besak.|Rumah '''itu''' besar.}}
bp8yij7p4252h1rr06yl9zdi7hs1iem
Wikikamus:tmw/sinih
4
118446
342433
2026-05-15T17:01:01Z
Azrifrb
9991
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} sini{{cp|tmw|}}'
342433
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} sini{{cp|tmw|}}
8otapr536lan7maa6girl3vmn5zczeo
Wikikamus:tmw/situk
4
118447
342434
2026-05-15T17:03:30Z
Azrifrb
9991
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} situ{{cp|tmw|}}'
342434
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} situ{{cp|tmw|}}
5jo1ddy6xgxsonyxk1e4711fxvy9kwv
Wikikamus:tmw/hatik
4
118448
342435
2026-05-15T17:06:46Z
Azrifrb
9991
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} hati'
342435
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} hati
czli0fgcl8u8kwjiqdivltno429pjw9
342615
342435
2026-05-16T03:15:03Z
Faizz315891
10774
342615
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} hati{{cp|tmw|'''Hatik''' ituk warna merah.|'''Hati''' itu warna merah.}}
rodln2vpxt02gtje7bi4oby3nrgobux
Wikikamus:tmw/telingak
4
118449
342436
2026-05-15T17:10:09Z
Azrifrb
9991
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} telinga{{cp|tmw|}}'
342436
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} telinga{{cp|tmw|}}
059d8bwda54eu6lj6idq2im0f15mo6b
342717
342436
2026-05-16T03:56:18Z
Faizz315891
10774
342717
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} telinga{{cp|tmw|'''Telingak''' diak ituk miah.|'''Telinga''' dia itu merah.}}
sr7utx5zdodecrmh1vmcby8211uw73g
Wikikamus:tmw/matak
4
118450
342437
2026-05-15T17:14:31Z
Azrifrb
9991
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} mata{{cp|tmw|}}'
342437
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} mata{{cp|tmw|}}
0rltc9njmhk14hv2h9whobcw8k1efna
342625
342437
2026-05-16T03:22:42Z
Faizz315891
10774
342625
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} mata{{cp|tmw|'''Matak''' diak sakit.|'''Mata''' dia sakit.}}
p5ypt3ejjbakzo66cbfnrg5gwmdszt8
Wikikamus:tmw/kukuk
4
118451
342438
2026-05-15T17:16:19Z
Azrifrb
9991
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} kuku{{cp|tmw|}}'
342438
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} kuku{{cp|tmw|}}
211ahjj54jxctlwo4dgyvnd7r79fmbi
Wikikamus:tmw/iku
4
118452
342439
2026-05-15T17:17:41Z
Azrifrb
9991
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} ekor{{cp|tmw|}}'
342439
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} ekor{{cp|tmw|}}
8wc366fg2eiwegrlh0h6vzd6fwd0zik
342629
342439
2026-05-16T03:25:25Z
Faizz315891
10774
342629
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} ekor{{cp|tmw|'''iku''' anying ituk panjang.|'''ekor''' anjing itu panjang.}}
s4ni5i696x263eu7qbdoquwo7xe2ldg
342684
342629
2026-05-16T03:42:24Z
Kentangputarr
10725
342684
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}}ekor{{cp|tmw|'''iku''' anying ituk panjang.|'''ekor''' anjing itu panjang.}}
iqgbpsermqi1pfk2yb5vh0mwq28fa4b
Wikikamus:tmw/piki
4
118453
342440
2026-05-15T17:19:14Z
Azrifrb
9991
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} fikir{{cp|tmw|}}'
342440
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} fikir{{cp|tmw|}}
oqziuqmfdfhc13r0tjhbu7l12ovokfn
Wikikamus:tmw/jait
4
118454
342441
2026-05-15T17:20:23Z
Azrifrb
9991
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} jahit{{cp|tmw|}}'
342441
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} jahit{{cp|tmw|}}
m48xfx4ptezzdu2drl5q0ifu8kbx6xb
Wikikamus:tmw/kiak
4
118455
342442
2026-05-15T17:21:13Z
Azrifrb
9991
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} kira{{cp|tmw|}}'
342442
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} kira{{cp|tmw|}}
8686xls1hm5czgeco1ro7v7st0dbluv
342722
342442
2026-05-16T03:58:36Z
Faizz315891
10774
342722
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} kira{{cp|tmw|uwang ituk sangat ber'''kiak'''.|orang itu sangat ber'''kira'''.}}
8kp40s1nwecjyfgfhwqniootc95nf65
Wikikamus:tmw/panaih
4
118456
342443
2026-05-15T17:23:09Z
Azrifrb
9991
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} panas{{cp|tmw|}}'
342443
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} panas{{cp|tmw|}}
hse4pn4xiahrkq9ooq22v4i2px7y54g
Wikikamus:tmw/haik
4
118457
342444
2026-05-15T17:24:13Z
Azrifrb
9991
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} hari{{cp|tmw|}}'
342444
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} hari{{cp|tmw|}}
8ppvdrc2a7t1mita3w87guai4atpkpd
342555
342444
2026-05-16T02:51:27Z
Qhairy
9963
Qhairy telah memindahkan laman [[Wikikamus:tmw/ayik]] ke [[Wikikamus:tmw/haik]]: Tajuk salah eja
342444
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} hari{{cp|tmw|}}
8ppvdrc2a7t1mita3w87guai4atpkpd
342731
342555
2026-05-16T04:02:49Z
Khalifah5156
9987
342731
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} hari{{cp|tmw|Panaih '''ayik''' nin|Panasnya '''hari''' ini}}
847ulnstlqbuid068xapzqbywkrx4jw
Wikikamus:tmw/laguk
4
118458
342445
2026-05-15T17:26:03Z
Azrifrb
9991
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} lagu{{cp|tmw|}}'
342445
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} lagu{{cp|tmw|}}
dhrk05ccevu91u3dq05wf1rkpjt49e2
Wikikamus:tmw/sapak
4
118459
342446
2026-05-15T17:32:29Z
Azrifrb
9991
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} siapa{{cp|tmw|}}'
342446
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} siapa{{cp|tmw|}}
0jbg2a7uqovpvucy0zfhpl1ft5f2o68
Wikikamus:tmw/manak
4
118460
342447
2026-05-15T18:12:47Z
Azrifrb
9991
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} mana{{cp|tmw|}}'
342447
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} mana{{cp|tmw|}}
2uw0a7ap41pxrky6yoz503vtfo5qesr
Wikikamus:tmw/uwang
4
118461
342448
2026-05-15T18:18:07Z
Azrifrb
9991
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} orang{{cp|tmw|}}'
342448
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} orang{{cp|tmw|}}
8fe14e56ow7jux0exm192nfzd5kdkzb
Wikikamus:tmw/gigik
4
118462
342449
2026-05-15T18:19:20Z
Azrifrb
9991
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} gigi{{cp|tmw|}}'
342449
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} gigi{{cp|tmw|}}
a99y6luqawcno55u2wluwryji8kpd3l
342583
342449
2026-05-16T03:01:26Z
Faizz315891
10774
342583
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} gigi{{cp|tmw|'''gigik''' ituk putih.|'''gigi''' itu putih.}}
7dd4m8nhv7nxxd8hdsjvjjqwtzbbwd5
Wikikamus:tmw/lakik
4
118463
342450
2026-05-15T18:29:49Z
Azrifrb
9991
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} suami{{cp|tmw|}}'
342450
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} suami{{cp|tmw|}}
nlicwcnqgefalgala68ha4pq76tidtt
Wikikamus:tmw/binik
4
118464
342451
2026-05-15T18:30:35Z
Azrifrb
9991
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} isteri{{cp|tmw|}}'
342451
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} isteri{{cp|tmw|}}
7qdjj4cjo4lrgg5vtzt5g5y8hurzbc6
Wikikamus:tmw/Itik
4
118465
342453
2026-05-16T02:03:13Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Itik]] ke [[Wikikamus:tmw/itik]]: Tajuk salah eja
342453
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/itik]]
hm0wqs0x48vavx9f2yhk11e2wp9n86y
Wikikamus:tmw/sentong
4
118466
342455
2026-05-16T02:07:41Z
Samsiah1234
10773
Mencipta laman baru dengan kandungan 'bakul{{cp|tmw|''' '''}} ==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Johor}} contoh'
342455
wikitext
text/x-wiki
bakul{{cp|tmw|''' '''}}
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Johor}} contoh
jx1qopqsasgwox6rim49izdk8adlkpq
342456
342455
2026-05-16T02:09:27Z
Samsiah1234
10773
342456
wikitext
text/x-wiki
bakul{{cp|tmw|''' '''}}
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} Boleh kah ong buat '''sentong'''?
ng0l94mrwtltv6s9a0vyaye5o1qg2wi
Wikikamus:tmw/Bajuk
4
118467
342458
2026-05-16T02:10:27Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Bajuk]] ke [[Wikikamus:tmw/bajuk]]: Tajuk salah eja
342458
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/bajuk]]
n31hzirzkpf4z2b0aa54xtqfnncvtmk
Wikikamus:tmw/Diak
4
118468
342461
2026-05-16T02:12:43Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Diak]] ke [[Wikikamus:tmw/diak]]: Tajuk salah eja
342461
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/diak]]
9cbw3lrjeydts9tm291ed6flt50ev8x
Wikikamus:tmw/sipik-sipik
4
118469
342462
2026-05-16T02:13:34Z
Barbiemaripossa
9985
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} sipi-sipi{{cp|tmw|}}'
342462
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} sipi-sipi{{cp|tmw|}}
kk4duyu17jhpllghoxs60b2pmozzci4
Wikikamus:tmw/bokok
4
118470
342463
2026-05-16T02:14:15Z
Samsiah1234
10773
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} gila'
342463
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} gila
oc0ti78pzs8gev7ylaxpj8000w233nb
342754
342463
2026-05-16T04:12:12Z
Khalifah5156
9987
342754
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} gila{{cp|tmw|'''aying''' gilak ituk merayau-rayau|'''Anjing''' gila itu berkeliaran}}
ju3l6gvnura310b2qpewgm42ff2csha
Wikikamus:tmw/Buayak
4
118471
342465
2026-05-16T02:16:00Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Buayak]] ke [[Wikikamus:tmw/buayak]]
342465
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/buayak]]
ijmpbnkb94kw5hd3n2hwga4jc7r9b8x
Wikikamus:tmw/ngong
4
118472
342466
2026-05-16T02:16:32Z
Samsiah1234
10773
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} bingung'
342466
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} bingung
tcadehql3vlrnnu076r95nd6qz4zxb1
Wikikamus:tmw/Didi
4
118473
342468
2026-05-16T02:17:36Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Didi]] ke [[Wikikamus:tmw/didi]]: Tajuk salah eja
342468
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/didi]]
m1ok6nb638op62mr7hxrg6oh6d5wli3
Wikikamus:tmw/Engkem
4
118474
342470
2026-05-16T02:18:26Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Engkem]] ke [[Wikikamus:tmw/engkem]]: Tajuk salah eja
342470
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/engkem]]
o94tn98k39oim6ctxssovzvoabmbk65
Wikikamus:tmw/Gaok
4
118475
342472
2026-05-16T02:19:00Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Gaok]] ke [[Wikikamus:tmw/gaok]]: Tajuk salah eja
342472
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/gaok]]
m38csrb9f9vj943oc17x00fqiorascp
Wikikamus:tmw/cemin matak
4
118476
342475
2026-05-16T02:19:52Z
Barbiemaripossa
9985
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} cermin mata{{cp|tmw|Aku adak '''cemin matak'''|Aku ada '''cermin mata'''}}'
342475
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} cermin mata{{cp|tmw|Aku adak '''cemin matak'''|Aku ada '''cermin mata'''}}
7dqxsq1ficrqzni2l3le7xklpw7m1nd
342610
342475
2026-05-16T03:12:52Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/cermin matak]] ke [[Wikikamus:tmw/cemin matak]]
342475
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} cermin mata{{cp|tmw|Aku adak '''cemin matak'''|Aku ada '''cermin mata'''}}
7dqxsq1ficrqzni2l3le7xklpw7m1nd
Modul:category tree/fam/alg
828
118477
342476
2026-05-16T02:19:53Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} labels["transitive animate verbs"] = { description = "{{{langname}}} transitive verbs with an animate object, commonly abbreviated VTA.", breadcrumb = "transitive animate", parents = {"verbs by inflection type", {name = "transitive verbs", sort = "animate"}}, } labels["transitive inanimate verbs"] = { description = "{{{langname}}} transitive verbs with an inanimate object, commonly abbreviated VTI.", breadcrumb = "transitive in...'
342476
Scribunto
text/plain
local labels = {}
labels["transitive animate verbs"] = {
description = "{{{langname}}} transitive verbs with an animate object, commonly abbreviated VTA.",
breadcrumb = "transitive animate",
parents = {"verbs by inflection type", {name = "transitive verbs", sort = "animate"}},
}
labels["transitive inanimate verbs"] = {
description = "{{{langname}}} transitive verbs with an inanimate object, commonly abbreviated VTI.",
breadcrumb = "transitive inanimate",
parents = {"verbs by inflection type", {name = "transitive verbs", sort = "inanimate"}},
}
labels["animate intransitive verbs"] = {
description = "{{{langname}}} intransitive verbs with an animate subject, commonly abbreviated VAI.",
breadcrumb = "animate intransitive",
parents = {"verbs by inflection type", {name = "intransitive verbs", sort = "animate"}},
}
labels["inanimate intransitive verbs"] = {
description = "{{{langname}}} intransitive verbs with an inanimate subject, commonly abbreviated VII.",
breadcrumb = "inanimate intransitive",
parents = {"verbs by inflection type", {name = "intransitive verbs", sort = "inanimate"}},
}
-- Add 'umbrella_parents' key if not already present.
for key, data in pairs(labels) do
if not data.umbrella_parents then
data.umbrella_parents = "Terms by grammatical category subcategories by language"
end
end
return {LABELS = labels}
85qdgi9z8fm0fttnf1ltxgr2wyrtvw0
Modul:category tree/fam/tup
828
118478
342477
2026-05-16T02:20:22Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} ------- TUPIAN LEMMA CLASSES ------- labels["pluriform adjectives"] = { description = "{{{langname}}} adjectives that have a relational prefix added to their stem.", breadcrumb = "pluriform", parents = {"adjectives by inflection type"}, } labels["pluriform nouns"] = { description = "{{{langname}}} nouns that have a relational prefix added to their stem.", breadcrumb = "pluriform", parents = {"nouns by inflection type"}, } la...'
342477
Scribunto
text/plain
local labels = {}
------- TUPIAN LEMMA CLASSES -------
labels["pluriform adjectives"] = {
description = "{{{langname}}} adjectives that have a relational prefix added to their stem.",
breadcrumb = "pluriform",
parents = {"adjectives by inflection type"},
}
labels["pluriform nouns"] = {
description = "{{{langname}}} nouns that have a relational prefix added to their stem.",
breadcrumb = "pluriform",
parents = {"nouns by inflection type"},
}
labels["pluriform postpositions"] = {
description = "{{{langname}}} postpositions that have a relational prefix added to their stem.",
breadcrumb = "pluriform",
parents = {"postpositions by inflection type"},
}
labels["pluriform verbs"] = {
description = "{{{langname}}} verbs that have a relational prefix added to their stem.",
breadcrumb = "pluriform",
parents = {"verbs by inflection type"},
}
-- Add 'umbrella_parents' key if not already present.
for key, data in pairs(labels) do
if not data.umbrella_parents then
data.umbrella_parents = "Terms by grammatical category subcategories by language"
end
end
return {LABELS = labels}
9d7dzb67cu3aowe6olrn7k161dlypdp
Wikikamus:tmw/Gauk
4
118479
342479
2026-05-16T02:20:30Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Gauk]] ke [[Wikikamus:tmw/gauk]]: Tajuk salah eja
342479
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/gauk]]
jkgqvrhav6a147w3hvt7hjrw0r403tr
Modul:category tree/fam/jpx/what-categorizes-msg
828
118480
342480
2026-05-16T02:20:54Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local export = {} local m_str_utils = require("Module:string utilities") local d_range = mw.loadData("Module:ja/data/range") -- Handles the "Terms are placed in this category..." text in Japanese affix categories -- Used in -- [[Module:category tree/affixes and compounds]] -- [[Module:category tree/fam/jpx]] function export.get_what_categorizes_msg(affix, affix_reading, affix_type) if not affix_reading then if m_str_utils.find(affix, "[" .. d_rang...'
342480
Scribunto
text/plain
local export = {}
local m_str_utils = require("Module:string utilities")
local d_range = mw.loadData("Module:ja/data/range")
-- Handles the "Terms are placed in this category..." text in Japanese affix categories
-- Used in
-- [[Module:category tree/affixes and compounds]]
-- [[Module:category tree/fam/jpx]]
function export.get_what_categorizes_msg(affix, affix_reading, affix_type)
if not affix_reading then
if m_str_utils.find(affix, "[" .. d_range.kanji .. "々〻]") then
--Category has kanji but no reading "read as"
return nil
end
affix_reading = affix
end
local tl
if affix_type == "suffix" then
tl = "{{tl|ja-compound|<var>|...|</var>|" .. affix .. "|-" .. affix_reading .. "}}"
elseif affix_type == "prefix" then
tl = "{{tl|ja-compound|" .. affix .. "|" .. affix_reading .. "-|<var>|...|</var>}}"
elseif affix_type == "infix" then
tl = "{{tl|ja-compound|<var>|...|</var>|" .. affix .. "|-" .. affix_reading .. "-|<var>|...|</var>}}"
end
if tl then
tl = "Terms are placed in this category using " .. tl .. "."
end
return tl
end
return export
aseik7d8zcfi37ce42nxrihk8lz825b
342765
342480
2026-05-16T04:29:51Z
Hakimi97
2668
342765
Scribunto
text/plain
local export = {}
local m_str_utils = require("Module:string utilities")
local d_range = mw.loadData("Module:ja/data/range")
-- Handles the "Terms are placed in this category..." text in Japanese affix categories
-- Used in
-- [[Module:category tree/affixes and compounds]]
-- [[Module:category tree/fam/jpx]]
function export.get_what_categorizes_msg(affix, affix_reading, affix_type)
if not affix_reading then
if m_str_utils.find(affix, "[" .. d_range.kanji .. "々〻]") then
--Category has kanji but no reading "read as"
return nil
end
affix_reading = affix
end
local tl
if affix_type == "akhiran" then
tl = "{{tl|ja-compound|<var>|...|</var>|" .. affix .. "|-" .. affix_reading .. "}}"
elseif affix_type == "awalan" then
tl = "{{tl|ja-compound|" .. affix .. "|" .. affix_reading .. "-|<var>|...|</var>}}"
elseif affix_type == "jalinan" then
tl = "{{tl|ja-compound|<var>|...|</var>|" .. affix .. "|-" .. affix_reading .. "-|<var>|...|</var>}}"
end
if tl then
tl = "Terms are placed in this category using " .. tl .. "."
end
return tl
end
return export
6prdigl1bd8hatglz6syxw8bq3pp43i
Wikikamus:tmw/kerumun
4
118481
342483
2026-05-16T02:21:50Z
Samsiah1234
10773
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} ramai'
342483
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} ramai
od8bj5i9qv8c32jmd0kzzbjwuq3vfbe
342695
342483
2026-05-16T03:48:29Z
Kentangputarr
10725
342695
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} ramai {{cp|tmw|}}
aucq99phaeuj2bs7pwdsuaqhaix2s3m
Wikikamus:tmw/mandik
4
118482
342485
2026-05-16T02:24:17Z
Barbiemaripossa
9985
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} mandik{{cp|tmw|Aku nak '''mandik'''|Saya mahu '''mandi'''}}'
342485
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} mandik{{cp|tmw|Aku nak '''mandik'''|Saya mahu '''mandi'''}}
7jco33hu34yvcgw6zobhm9jafg1csev
Wikikamus:tmw/Budak kecin
4
118483
342487
2026-05-16T02:24:30Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Budak kecin]] ke [[Wikikamus:tmw/budak kecin]]: Tajuk salah eja
342487
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/budak kecin]]
m2pypbbjqhs28ldwffxl38kfxe0y2wj
Wikikamus:tmw/genung
4
118484
342488
2026-05-16T02:24:33Z
Samsiah1234
10773
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} tengok'
342488
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} tengok
5k6nq3w0nx8uhuatoqslqsuy3jtcj3d
342679
342488
2026-05-16T03:40:21Z
Kentangputarr
10725
342679
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}}tengok{{cp|tmw|}}
quuug3kx83f14ceuf4hfnzjen304ysw
Wikikamus:tmw/Budak babel
4
118485
342491
2026-05-16T02:25:07Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Budak babel]] ke [[Wikikamus:tmw/budak babel]]: Tajuk salah eja
342491
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/budak babel]]
1kx1dxk8a7rc58qe7nmp6h1q6or8ivv
Wikikamus:tmw/merdum
4
118486
342493
2026-05-16T02:25:54Z
Samsiah1234
10773
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} menginap'
342493
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} menginap
8ewhli3tuk2hyjk30csy2ba7r8r56rw
Modul:category tree/fam/gem
828
118487
342495
2026-05-16T02:27:21Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} ------- GERMANIC VERB CLASSES ------- labels["strong verbs"] = { description = "{{{langname}}} verbs that do not use a dental suffix to mark the past tense and past participle, instead using vowel change ([[ablaut]]) and often a suffix ''-(e)n'' in the past participle.", breadcrumb = "strong", parents = {"verbs by inflection type"}, } labels["weak verbs"] = { description = "{{{langname}}} verbs that display dental suffixes in t...'
342495
Scribunto
text/plain
local labels = {}
------- GERMANIC VERB CLASSES -------
labels["strong verbs"] = {
description = "{{{langname}}} verbs that do not use a dental suffix to mark the past tense and past participle, instead using vowel change ([[ablaut]]) and often a suffix ''-(e)n'' in the past participle.",
breadcrumb = "strong",
parents = {"verbs by inflection type"},
}
labels["weak verbs"] = {
description = "{{{langname}}} verbs that display dental suffixes in their past tense conjugated forms.",
breadcrumb = "weak",
parents = {"verbs by inflection type"},
}
labels["preterite-present verbs"] = {
description = "{{{langname}}} verbs that inflect in the present tense like the past tense of strong verbs.",
breadcrumb = "preterite-present",
parents = {"verbs by inflection type"},
}
labels["class 1 strong verbs"] = {
description = "{{{langname}}} class 1 strong verbs, where the [[ablaut]] vowel was followed by ''-y-'' in Proto-Indo-European.",
breadcrumb = "class 1",
parents = {{name = "strong verbs", sort = "1"}},
}
labels["class 1 weak verbs"] = {
description = "{{{langname}}} class 1 weak verbs, where the stem was followed by {{ic|/i/~/j/}} in Proto-Germanic (or {{ic|/ij/}} after a heavy stem, due to {{w|Sievers' Law}}).",
additional = "This triggered [[umlaut]] in most daughter languages, as well as gemination of the final consonant in light stems in West Germanic.",
breadcrumb = "class 1",
parents = {{name = "weak verbs", sort = "1"}},
}
labels["class 1 weak j-present verbs"] = {
description = "{{{langname}}} class 1 weak verbs with {{ic|/i/~/j/~/ij/}} in Proto-Germanic only in the present tense, but not elsewhere.",
additional = "Most class 1 weak verbs had {{ic|/i/}} in the past tense and past participle, leading to " ..
"[[umlaut]] throughout the verb in daughter languages with umlaut. A few archaic verbs, however, lacked " ..
"this [[interfix]], with the [[dental]] consonant of the ending attached directly to the stem. Original " ..
"instances of this are the reflexes of English [[seek]], [[think]], [[buy]] and [[work]], with apparently " ..
"irregular pasts ''sought'', ''thought'', ''bought'' and archaic ''wrought'', and it was often extended " ..
"to other verbs in various daughter languages (e.g. the [[Old English]] reflexes of [[sell]], [[tell]], " ..
"[[teach]] and formerly [[reach]], with apparently irregular pasts ''sold'', ''told'', ''taught'' and " ..
"now-obsolete ''raught''). The apparent reversal of umlaut in the past tense is sometimes called " ..
"{{m|de|Rückumlaut|lit=backwards umlaut}} in Germanic studies.",
breadcrumb = "''j''-present",
parents = {{name = "class 1 weak verbs", sort = "j-present"}},
}
labels["class 1 weak heavy-stem verbs"] = {
description = "{{{langname}}} class 1 weak verbs with a heavy stem in Proto-Germanic, i.e. a stem containing a long vowel or ending in two consonants.",
additional = "Such verbs had the {{w|Sievers' Law}} variant interfix {{ic|/ij/}} between the stem and endings " ..
"in the present tense, which evolved differently from light-stem verbs in most daughter languages, which " ..
"had an interfix {{ic|/i/~/j/}} in the present tense. Note that some verbs with multisyllabic stems were " ..
"treated as heavy-stem and some as light-stem, depending on the analysis of the metrical feet of the stem.",
breadcrumb_and_first_sort_key = "heavy-stem",
parents = "class 1 weak verbs",
}
labels["class 1 weak light-stem verbs"] = {
description = "{{{langname}}} class 1 weak verbs with a light stem in Proto-Germanic, i.e. a stem containing a short vowel and ending in only one consonant.",
additional = "Such verbs had the {{w|Sievers' Law}} variant interfix {{ic|/i/~/j/}} between the stem and " ..
"endings in the present tense, which evolved differently from heavy-stem verbs in most daughter languages, " ..
"which had an interfix {{ic|/ij/}} in the present tense. Note that some verbs with multisyllabic stems were " ..
"treated as heavy-stem and some as light-stem, depending on the analysis of the metrical feet of the stem.",
breadcrumb_and_first_sort_key = "light-stem",
parents = "class 1 weak verbs",
}
labels["class 2 strong verbs"] = {
description = "{{{langname}}} class 2 strong verbs, where the [[ablaut]] vowel was followed by ''-w-'' in Proto-Indo-European.",
breadcrumb = "class 2",
parents = {{name = "strong verbs", sort = "2"}},
}
labels["class 2a strong verbs"] = {
description = "{{{langname}}} class 2 strong verbs where the [[ablaut]] vowel was ''*eu'' in Proto-Germanic.",
breadcrumb = "class 2a",
parents = {{name = "class 2 strong verbs", sort = "1"}},
}
labels["class 2b strong verbs"] = {
description = "{{{langname}}} class 2 strong verbs where the [[ablaut]] vowel was ''*ū'' in Proto-Germanic.",
breadcrumb = "class 2b",
parents = {{name = "class 2 strong verbs", sort = "2"}},
}
labels["class 2 weak verbs"] = {
description = "{{{langname}}} class 2 weak verbs, where the stem was followed by ''*ō'' in Proto-Germanic.",
breadcrumb = "class 2",
parents = {{name = "weak verbs", sort = "2"}},
}
labels["class 3 weak verbs"] = {
description = "{{{langname}}} class 3 weak verbs, where the stem was followed by ''*ai''~''*ā'' in Proto-Germanic, which was generalized to ''*ē'' in West Germanic.",
breadcrumb = "class 3",
parents = {{name = "weak verbs", sort = "3"}},
}
labels["class 3 strong verbs"] = {
description = "{{{langname}}} class 3 strong verbs, where the [[ablaut]] vowel was followed by a [[consonant cluster]] in Proto-Indo-European.",
breadcrumb = "class 3",
parents = {{name = "strong verbs", sort = "3"}},
}
labels["class 3a strong verbs"] = {
description = "{{{langname}}} class 3 strong verbs where the [[consonant cluster]] following the [[ablaut]] vowel begins with a nasal consonant.",
breadcrumb = "class 3a",
parents = {{name = "class 3 strong verbs", sort = "1"}},
}
labels["class 3b strong verbs"] = {
description = "{{{langname}}} class 3 strong verbs where the [[consonant cluster]] following the [[ablaut]] vowel begins with a lateral consonant or velar fricative.",
breadcrumb = "class 3b",
parents = {{name = "class 3 strong verbs", sort = "2"}},
}
labels["class 3c strong verbs"] = {
description = "{{{langname}}} class 3 strong verbs where the [[consonant cluster]] following the [[ablaut]] vowel begins with a rhotic consonant.",
breadcrumb = "class 3c",
parents = {{name = "class 3 strong verbs", sort = "3"}},
}
labels["class 4 strong verbs"] = {
description = "{{{langname}}} class 4 strong verbs, where the [[ablaut]] vowel was followed by a [[sonorant]] (''m'', ''n'', ''l'', ''r'') but no other consonant in Proto-Indo-European.",
breadcrumb = "class 4",
parents = {{name = "strong verbs", sort = "4"}},
}
labels["class 4 weak verbs"] = {
description = "{{{langname}}} class 4 weak verbs, where the stem was followed by ''*n'' in Proto-Germanic.",
breadcrumb = "class 4",
parents = {{name = "weak verbs", sort = "4"}},
}
labels["class 5 strong verbs"] = {
description = "{{{langname}}} class 5 strong verbs, where the [[ablaut]] vowel was followed by [[consonant]] other than a [[sonorant]] in Proto-Indo-European.",
breadcrumb = "class 5",
parents = {{name = "strong verbs", sort = "5"}},
}
labels["class 5 strong j-present verbs"] = {
description = "{{{langname}}} class 5 strong verbs with a {{IPAchar|/j/}} suffix in the present tense in Proto-Germanic.",
additional = "This [[umlaut]]ed the root vowel to {{ic|/i/}}, and caused gemination of the stem-final consonant in the West Germanic languages. The {{ic|/j/}} was maintained in Gothic, Old Norse (and modern Icelandic) and Old Saxon, but otherwise dropped.",
breadcrumb = "''j''-present",
parents = {{name = "class 5 strong verbs", sort = "j-present"}},
}
labels["class 6 strong verbs"] = {
description = "{{{langname}}} class 6 strong verbs, with the stem vowel ''-a-'' (and usually a single stem-final consonant), except those where it is followed by a sonorant and another consonant (this combination was considered a diphthong in PIE and therefore belonged to class 7).",
additional = "The Proto-Indo-European origin of this class is not securely known.",
breadcrumb = "class 6",
parents = {{name = "strong verbs", sort = "6"}},
}
labels["class 6 strong j-present verbs"] = {
description = "{{{langname}}} class 6 strong verbs with a {{IPAchar|/j/}} suffix in the present tense in Proto-Germanic.",
additional = "This caused gemination of the stem-final consonant in the West Germanic languages, and [[umlaut]] of the root vowel in most languages. The {{ic|/j/}} was maintained in Gothic, Old Norse (and modern Icelandic) and Old Saxon, but otherwise dropped.",
breadcrumb = "''j''-present",
parents = {{name = "class 6 strong verbs", sort = "j-present"}},
}
labels["class 7 strong verbs"] = {
description = "{{{langname}}} class 7 strong verbs, which retained their reduplication in the past tense in Proto-Germanic.",
breadcrumb = "class 7",
parents = {{name = "strong verbs", sort = "7"}},
}
labels["class 7a strong verbs"] = {
description = "{{{langname}}} class 7 strong verbs where the root vowel was ''*ai'' in Proto-Germanic, analogous to class 1.",
breadcrumb = "class 7a",
parents = {{name = "class 7 strong verbs", sort = "a"}},
}
labels["class 7b strong verbs"] = {
description = "{{{langname}}} class 7 strong verbs where the root vowel was ''*au'' in Proto-Germanic, analogous to class 2.",
breadcrumb = "class 7b",
parents = {{name = "class 7 strong verbs", sort = "b"}},
}
labels["class 7c strong verbs"] = {
description = "{{{langname}}} class 7 strong verbs where the root vowel was ''*a'' followed by a [[consonant cluster]] in Proto-Germanic, analogous to class 3.",
breadcrumb = "class 7c",
parents = {{name = "class 7 strong verbs", sort = "c"}},
}
labels["class 7d strong verbs"] = {
description = "{{{langname}}} class 7 strong verbs where the root vowel was ''*ē'' in Proto-Germanic.",
breadcrumb = "class 7d",
parents = {{name = "class 7 strong verbs", sort = "d"}},
}
labels["class 7e strong verbs"] = {
description = "{{{langname}}} class 7 strong verbs where the root vowel was ''*ō'' in Proto-Germanic.",
breadcrumb = "class 7e",
parents = {{name = "class 7 strong verbs", sort = "e"}},
}
labels["class 7 strong j-present verbs"] = {
description = "{{{langname}}} class 7 strong verbs with a {{IPAchar|/j/}} suffix in the present tense in Proto-Germanic.",
additional = "This caused [[umlaut]] of the root vowel in most languages. The {{ic|/j/}} was maintained in Gothic, Old Norse (and modern Icelandic) and Old Saxon, but otherwise dropped.",
breadcrumb = "''j''-present",
parents = {{name = "class 7 strong verbs", sort = "j-present"}},
}
-- Add 'umbrella_parents' key if not already present.
for key, data in pairs(labels) do
if not data.umbrella_parents then
data.umbrella_parents = "Terms by grammatical category subcategories by language"
end
end
return {LABELS = labels}
88k7sky1bf589e9xdsynl8pwglofaen
Modul:category tree/fam/qfa-kor
828
118488
342497
2026-05-16T02:27:58Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} labels["hanja"] = { topright = "{{wp|Hanja}}", description = "{{{langname}}} symbols of the Han logographic script, which can represent sounds or convey meanings directly.", toc_template = "Hani-categoryTOC", umbrella = "Han characters", parents = "logograms", } labels["hanja forms"] = { topright = "{{wp|Hanja}}", description = "{{{langname}}} terms written in [[hanja]].", parents = "terms by script", }...'
342497
Scribunto
text/plain
local labels = {}
local handlers = {}
labels["hanja"] = {
topright = "{{wp|Hanja}}",
description = "{{{langname}}} symbols of the Han logographic script, which can represent sounds or convey meanings directly.",
toc_template = "Hani-categoryTOC",
umbrella = "Han characters",
parents = "logograms",
}
labels["hanja forms"] = {
topright = "{{wp|Hanja}}",
description = "{{{langname}}} terms written in [[hanja]].",
parents = "terms by script",
}
labels["idu forms"] = {
topright = "{{wp|Idu script}}",
description = "{{{langname}}} terms written in [[idu]].",
parents = "terms by script",
}
labels["four-character idioms"] = {
topright = "{{wp|Sajaseong-eo}}",
description = "{{{langname}}} traditional idiomatic expressions, also called sajaseong-eo, usually consisting of four syllables and traditionally given in [[hanja]]; typically derived from [[Classical Chinese]].",
additional = "Compare Chinese {{w|chengyu}} and Japanese {{w|yojijukugo}}.",
umbrella = "four-character idioms",
parents = "idioms",
}
labels["terms written in Hanja-Hangul mixed script"] = {
topright = "{{wp|Korean mixed script}}",
description = "{{{langname}}} mixed script is a form of writing that uses both [[hangeul]] (hangul) (an alphabetical script) and [[hanja]] (logo-syllabic characters).",
parents = "terms written in multiple scripts",
}
return {LABELS = labels, HANDLERS = handlers}
sg8wfygn9ns7dv1gh1uvf8z468u1th2
342502
342497
2026-05-16T02:29:06Z
Hakimi97
2668
342502
Scribunto
text/plain
local labels = {}
local handlers = {}
labels["Hanja"] = {
topright = "{{wp|Hanja}}",
description = "{{{langname}}} symbols of the Han logographic script, which can represent sounds or convey meanings directly.",
toc_template = "Hani-categoryTOC",
umbrella = "aksara Han",
parents = "Logogram",
}
labels["Bentuk Hanja"] = {
topright = "{{wp|Hanja}}",
description = "{{{langname}}} terms written in [[hanja]].",
parents = "Perkataan mengikut tulisan",
}
labels["Bentuk Idu"] = {
topright = "{{wp|Idu script}}",
description = "{{{langname}}} terms written in [[idu]].",
parents = "Perkataan mengikut tulisan",
}
labels["four-character idioms"] = {
topright = "{{wp|Sajaseong-eo}}",
description = "{{{langname}}} traditional idiomatic expressions, also called sajaseong-eo, usually consisting of four syllables and traditionally given in [[hanja]]; typically derived from [[Classical Chinese]].",
additional = "Compare Chinese {{w|chengyu}} and Japanese {{w|yojijukugo}}.",
umbrella = "four-character idioms",
parents = "idioms",
}
labels["terms written in Hanja-Hangul mixed script"] = {
topright = "{{wp|Korean mixed script}}",
description = "{{{langname}}} mixed script is a form of writing that uses both [[hangeul]] (hangul) (an alphabetical script) and [[hanja]] (logo-syllabic characters).",
parents = "terms written in multiple scripts",
}
return {LABELS = labels, HANDLERS = handlers}
p9t2gu1rexbnezelg5py4v9tiakunnh
342752
342502
2026-05-16T04:10:52Z
Hakimi97
2668
342752
Scribunto
text/plain
local labels = {}
local handlers = {}
labels["Hanja"] = {
topright = "{{wp|Hanja}}",
description = "Simbol bahasa {{{langname}}} dalam tulisan logograf Han yang boleh mewakili suara atau makna secara terus.",
toc_template = "Hani-categoryTOC",
umbrella = "Aksara Han",
parents = "Logogram",
}
labels["Bentuk hanja"] = {
topright = "{{wp|Hanja}}",
description = "Perkataan bahasa {{{langname}}} ditulis dalam [[hanja]].",
parents = "Perkataan mengikut tulisan",
}
labels["bentuk idu"] = {
topright = "{{wp|Idu script}}",
description = "Perkataan bahasa {{{langname}}} ditulis dalam [[idu]].",
parents = "perkataan mengikut tulisan",
}
labels["peribahasa empat aksara"] = {
topright = "{{wp|Sajaseong-eo}}",
description = "Ekspresi peribahasa tradisional bahasa {{{langname}}}, juga dipanggil sajaseong-eo, biasanya terdiri daripada empat suku kata dan secara tradisinya ditulis dalam [[hanja]]; biasanya terbitan bahasa Cina Klasik.",
additional = "Banding dengan {{w|chengyu}} bahasa Cina dan {{w|yojijukugo}} bahasa Jepun.",
umbrella = "peribahasa empat aksara",
parents = "peribahasa",
}
labels["terms written in Hanja-Hangul mixed script"] = {
topright = "{{wp|Korean mixed script}}",
description = "{{{langname}}} mixed script is a form of writing that uses both [[hangeul]] (hangul) (an alphabetical script) and [[hanja]] (logo-syllabic characters).",
parents = "terms written in multiple scripts",
}
return {LABELS = labels, HANDLERS = handlers}
jl7gs2bg6cd8x3t52ipfjw32555jcky
Wikikamus:tmw/Gelap
4
118489
342500
2026-05-16T02:28:24Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Gelap]] ke [[Wikikamus:tmw/gelap]]: Tajuk salah eja
342500
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/gelap]]
jp0scqw2rm2ia05eter80k2bwr65ivc
Wikikamus:tmw/simpai
4
118490
342503
2026-05-16T02:29:39Z
Barbiemaripossa
9985
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} gelang{{cp|tmw|Aku buat '''simpai''' gunak utan|Saya membuat '''gelang''' dengan menggunakan rotan}}'
342503
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} gelang{{cp|tmw|Aku buat '''simpai''' gunak utan|Saya membuat '''gelang''' dengan menggunakan rotan}}
26terxn59kczfpa2ytubhe9eraun8t7
Modul:category tree/fam/roa-ibe
828
118491
342504
2026-05-16T02:29:49Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local conjugations = { ["ar"] = "{{{langname}}} first conjugation verbs, derived from Latin [[:Category:Latin first conjugation verbs|first conjugation (-āre) verbs]].", ["er"] = "{{{langname}}} second conjugation verbs, derived from Latin [[:Category:Latin second conjugation verbs|second conjugation (-ēre)]] or [[:Category:Latin third conjugation verbs|third conjugation (-ere)]] verbs.", ["ir"] = "{{{langname}}} third conjugati...'
342504
Scribunto
text/plain
local labels = {}
local conjugations = {
["ar"] = "{{{langname}}} first conjugation verbs, derived from Latin [[:Category:Latin first conjugation verbs|first conjugation (-āre) verbs]].",
["er"] = "{{{langname}}} second conjugation verbs, derived from Latin [[:Category:Latin second conjugation verbs|second conjugation (-ēre)]] or [[:Category:Latin third conjugation verbs|third conjugation (-ere)]] verbs.",
["ir"] = "{{{langname}}} third conjugation verbs, derived from Latin [[:Category:Latin third conjugation verbs|third conjugation (-ere)]] or [[:Category:Latin fourth conjugation verbs|fourth conjugation (-īre)]] verbs.",
}
labels["verbs by conjugation"] = {
description = "{{{langname}}} verbs categorized by conjugation.",
parents = {"verbs by inflection type"},
}
for conj, conjdesc in pairs(conjugations) do
labels["verbs ending in -" .. conj] = {
description = conjdesc,
displaytitle = "{{{langname}}} verbs ending in {{m|{{{langcode}}}||-" .. conj .. "}}",
parents = {
{name = "verbs by conjugation", sort = conj},
},
breadcrumb = "{{m|{{{langcode}}}||-" .. conj .. "}}",
}
end
labels["verbs by vowel alternation"] = {
description = "{{{langname}}} verbs categorized by type of vowel alternation.",
parents = {"verbs by inflection type"},
}
labels["verbs by consonant alternation"] = {
description = "{{{langname}}} verbs categorized by type of consonant alternation.",
parents = {"verbs by inflection type"},
}
labels["third-person-only verbs"] = {
description = "{{{langname}}} verbs with forms that exist only in the third person, and have no imperatives.",
parents = {{name = "defective verbs"}},
breadcrumb = "third-person-only",
}
-- Add 'umbrella_parents' key if not already present.
for key, data in pairs(labels) do
if not data.umbrella_parents then
data.umbrella_parents = "Terms by grammatical category subcategories by language"
end
end
return {LABELS = labels}
4hqzujtavdjpjcevxpm30i0mf4rf6vg
Wikikamus:tmw/Gosok gigik
4
118492
342507
2026-05-16T02:30:12Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Gosok gigik]] ke [[Wikikamus:tmw/gosok gigik]]: Tajuk salah eja
342507
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/gosok gigik]]
nfmoogjbbbp75jfsm0zqhqdp48neeqv
Modul:category tree/fam/sem-ara
828
118493
342508
2026-05-16T02:30:45Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} --[=[ This module handles language-specific categories for all Aramaic varieties. ]=] ----------------------------------------------------------------------------- -- -- -- NOUNS -- -- -- ----------------------------------------------------...'
342508
Scribunto
text/plain
local labels = {}
--[=[
This module handles language-specific categories for all Aramaic varieties.
]=]
-----------------------------------------------------------------------------
-- --
-- NOUNS --
-- --
-----------------------------------------------------------------------------
---------------------------------- Noun labels ---------------------------------
local function add_noun_labels(labels)
-- Currently there is no [[Appendix:Aramaic nominals]]. Formerly the code conditionalized on the language
-- but only referenced [[Appendix:Assyrian Neo-Aramaic nominals]] (which also doesn't exist) for lang code 'aii',
-- and was broken for all other languages. If we want to conditionalize on the language now, we have to make the
-- description a function (in which case it will be passed an object whose `.lang` field is the language), or use
-- a handler.
local nominal_appendix = "Appendix:Aramaic nominals"
local appendix_exists = mw.title.new(nominal_appendix).exists
local function make_appendix_link(text, anchor)
if appendix_exists then
anchor = anchor or mw.getContentLanguage():ucfirst(text)
return ("[[%s#%s|%s]]"):format(nominal_appendix, anchor, text)
else
return text
end
end
labels["nouns by derivation type"] = {
description = "{{{langname}}} nouns categorized by type of derivation.",
breadcrumb = "by derivation type",
parents = {{name = "nouns", sort = "derivation type"}},
}
labels["active nouns"] = {
description = "{{{langname}}} " .. make_appendix_link("active nouns") .. ", i.e. nouns having the meaning \"one who does X\" for some verb.",
breadcrumb_and_first_sort_key = "active nouns",
parents = {"nouns by derivation type"},
}
labels["instance nouns"] = {
description = "{{{langname}}} " .. make_appendix_link("instance nouns") .. ", i.e. nouns having the meaning \"an instance of doing X\" for some verb.",
breadcrumb_and_first_sort_key = "instance nouns",
parents = {"nouns by derivation type"},
}
labels["nouns of place"] = {
description = "{{{langname}}} " .. make_appendix_link("nouns of place") .. ", i.e. nouns having the approximate meaning \"the place for doing X\" for some verb.",
breadcrumb_and_first_sort_key = "nouns of place",
parents = {"nouns by derivation type"},
}
labels["occupational nouns"] = {
description = "{{{langname}}} " .. make_appendix_link("occupational nouns") .. ", i.e. nouns referring to people employed in doing something.",
breadcrumb_and_first_sort_key = "occupational nouns",
parents = {"nouns by derivation type"},
}
labels["tool nouns"] = {
description = "{{{langname}}} " .. make_appendix_link("tool nouns") .. ", i.e. nouns having the approximate meaning \"tool for doing X\" for some verb.",
breadcrumb_and_first_sort_key = "tool nouns",
parents = {"nouns by derivation type"},
}
-- Add 'umbrella_parents' key if not already present.
for key, data in pairs(labels) do
if not data.umbrella_parents then
data.umbrella_parents = "Lemmas subcategories by language"
end
end
end
-----------------------------------------------------------------------------
-- --
-- WRAPPERS --
-- --
-----------------------------------------------------------------------------
add_noun_labels(labels)
return {LABELS = labels}
rw2e49106ubwcdoxppupbvau909v1qc
Modul:category tree/fam/sla
828
118494
342510
2026-05-16T02:31:30Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} labels["multidirectional verbs"] = { description = "{{{langname}}} verbs of motion whose motion is multidirectional (as opposed to unidirectional) or indirect, or whose action is repeated or in a series, instead of being a single, completed action.", additional = "Multidirectional verbs are always imperfective in aspect, even with prefixes that are normally associated with the perfective aspect. See also {{lg|unidirectional verb}}....'
342510
Scribunto
text/plain
local labels = {}
labels["multidirectional verbs"] = {
description = "{{{langname}}} verbs of motion whose motion is multidirectional (as opposed to unidirectional) or indirect, or whose action is repeated or in a series, instead of being a single, completed action.",
additional = "Multidirectional verbs are always imperfective in aspect, even with prefixes that are normally associated with the perfective aspect. See also {{lg|unidirectional verb}}.",
parents = {"verbs"},
umbrella_parents = "Lemmas subcategories by language",
}
labels["unidirectional verbs"] = {
description = "{{{langname}}} verbs of motion whose motion is unidirectional (as opposed to multidirectional), a definitely directed motion, or a single, completed action (instead of a repeated action or series of actions).",
additional = "Unidirectional verbs may be either imperfective or perfective. See also {{lg|multidirectional verb}}.",
parents = {"verbs"},
umbrella_parents = "Lemmas subcategories by language",
}
------- Slavic terms with prothetic consonants -------
for _, back_sound in ipairs {"v-", "w-", "в-"} do
labels["terms with prothetic " .. back_sound] = {
description = "{{{langname}}} terms with a prothetic {{m|{{{langcode}}}||" .. back_sound .. "}}, which was not present etymologically in {{w|Proto-Slavic}}.",
displaytitle = "{{{langname}}} terms with prothetic {{m|{{{langcode}}}||" .. back_sound .. "}}",
additional = "This sound was originally added before terms beginning with a back vowel (''o'' or ''u'') to prevent {{lg|hiatus}} when the preceding word ended in a vowel, and in time was incorporated into the word itself.",
breadcrumb = "with prothetic {{m|{{{langcode}}}||" .. back_sound .. "}}",
parents = {{name = "terms by lexical property", sort = "prothetic"}},
umbrella = {
description = "Categories with terms with a prothetic {{m|und||" .. back_sound .. "}}, which was not present etymologically in {{w|Proto-Slavic}}.",
breadcrumb = "Terms with prothetic {{m|und||" .. back_sound .. "}}",
parents = {"Terms by lexical property subcategories by language"},
}
}
end
labels["terms with prothetic h-"] = {
description = "{{{langname}}} terms with a prothetic {{m|{{{langcode}}}||h}}, which was not present etymologically in {{w|Proto-Slavic}}.",
displaytitle = "{{{langname}}} terms with prothetic {{m|{{{langcode}}}||h}}",
additional = "This sound was originally added before terms beginning with a vowel to prevent {{lg|hiatus}} when the preceding word ended in a vowel, and in time was incorporated into the word itself.",
breadcrumb = "with prothetic {{m|{{{langcode}}}||h}}",
parents = {{name = "terms by lexical property", sort = "prothetic"}},
umbrella = {
description = "Categories with terms with a prothetic {{m|und||h}}, which was not present etymologically in {{w|Proto-Slavic}}.",
breadcrumb = "Terms with prothetic {{m|und||h}}",
parents = {"Terms by lexical property subcategories by language"},
}
}
return {LABELS = labels}
s4khv5hpn2b3ncc7mqr1hlxeaftnq8z
Modul:category tree/fam/trk
828
118495
342512
2026-05-16T02:32:22Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} ------- Turkic izafet I/II/III compounds ------- -- FIXME: Possibly should be limited to a subfamily of Turkic. labels["izafet I compounds"] = { description = "{{{langname}}} izafet I compounds, i.e. nominal compounds consisting of two nouns both lacking 3rd-person possessive marking.", additional = "These compounds are right-headed (the second noun is modified by the first), unlike Persian {{lg|ezafe}} compounds, which are typic...'
342512
Scribunto
text/plain
local labels = {}
------- Turkic izafet I/II/III compounds -------
-- FIXME: Possibly should be limited to a subfamily of Turkic.
labels["izafet I compounds"] = {
description = "{{{langname}}} izafet I compounds, i.e. nominal compounds consisting of two nouns both lacking 3rd-person possessive marking.",
additional = "These compounds are right-headed (the second noun is modified by the first), unlike Persian {{lg|ezafe}} compounds, which are typically left-headed.",
breadcrumb_and_first_sort_key = "izafet I",
parents = {"compound terms"},
}
labels["izafet II compounds"] = {
description = "{{{langname}}} izafet II compounds, i.e. nominal compounds with the first noun having zero-marking, and the second noun receiving a possessive suffix.",
additional = "These compounds are right-headed (the second noun is modified by the first), unlike Persian {{lg|ezafe}} compounds, which are typically left-headed.",
breadcrumb_and_first_sort_key = "izafet II",
parents = {"compound terms"},
}
labels["izafet III compounds"] = {
description = "{{{langname}}} izafet III compounds, i.e. nominal compounds with the first noun in the genitive case and the second noun receiving a possessive suffix.",
additional = "These compounds are right-headed (the second noun is modified by the first), unlike Persian {{lg|ezafe}} compounds, which are typically left-headed.",
breadcrumb_and_first_sort_key = "izafet III",
parents = {"compound terms"},
}
labels["Persian-style izafet compounds"] = {
description = "{{{langname}}} Persian-style izafet compounds, i.e. left-headed nominal compounds with the first noun receiving a Persian-style {{lg|ezafe}} suffix and the second noun having zero-marking.",
additional = "These compounds are left-headed (the first noun is modified by second), unlike native Turkic izafet compounds, which are always right-headed.",
breadcrumb_and_first_sort_key = "Persian-style",
parents = {"izafet II compounds"},
}
-- Add 'umbrella_parents' key if not already present.
for key, data in pairs(labels) do
if not data.umbrella_parents then
data.umbrella_parents = "Types of compound terms by language"
end
end
return {LABELS = labels}
ps5lfysh0wgnpjatzdh4pzsy8y1w7y6
Modul:category tree/fam
828
118496
342513
2026-05-16T02:34:17Z
Hakimi97
2668
Mencipta laman baru dengan kandungan '-- This module contains a list of families with family-specific modules. local families_with_modules = { ["alg"] = true, ["gem"] = true, ["jpx"] = true, ["qfa-kor"] = true, ["roa-ibe"] = true, ["sem-ara"] = true, ["sla"] = true, ["trk"] = true, ["tup"] = true, ["zhx"] = true, } return families_with_modules'
342513
Scribunto
text/plain
-- This module contains a list of families with family-specific modules.
local families_with_modules = {
["alg"] = true,
["gem"] = true,
["jpx"] = true,
["qfa-kor"] = true,
["roa-ibe"] = true,
["sem-ara"] = true,
["sla"] = true,
["trk"] = true,
["tup"] = true,
["zhx"] = true,
}
return families_with_modules
i4uemo2elq7n14h8788ftpa3rouz69z
Wikikamus:tmw/Ikan semilang
4
118497
342515
2026-05-16T02:34:39Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Ikan semilang]] ke [[Wikikamus:tmw/ikan semilang]]
342515
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/ikan semilang]]
7o8o4egbwjk6532kgwzoxdtg6tp13ik
Wikikamus:tmw/sukak
4
118498
342516
2026-05-16T02:34:53Z
Barbiemaripossa
9985
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # {{label|1=tmw|2=dialek|3=Bukit Lagong}} suka{{cp|tmw|Ajih '''sukak''' aku kah nyap?|Awak '''suka''' saya atau tidak?}}'
342516
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} suka{{cp|tmw|Ajih '''sukak''' aku kah nyap?|Awak '''suka''' saya atau tidak?}}
ajcsfljgp0bgxrhxt5oy73fdny41c2n
Wikikamus:tmw/Inih
4
118499
342519
2026-05-16T02:35:53Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Inih]] ke [[Wikikamus:tmw/inih]]: Tajuk salah eja
342519
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/inih]]
hg6sjcckfhp0mzy5heb8byogz4o0t48
Wikikamus:tmw/Jala
4
118500
342523
2026-05-16T02:37:44Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Jala]] ke [[Wikikamus:tmw/jala]]
342523
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/jala]]
toxzioav0nm1o7baejwkijyqt4oq3sz
Wikikamus:tmw/lemuk
4
118501
342524
2026-05-16T02:38:18Z
Sakura Comel
10752
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} lembu'
342524
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} lembu
78m0qvxcsbzsr2yskx0owmpc4gphzbj
342551
342524
2026-05-16T02:49:17Z
Kentangputarr
10725
342551
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}}lembu{{cp|tmw|}}
kzm6z392hbt8j2n4h1clfxo1jc43sar
Wikikamus:tmw/Jale
4
118502
342527
2026-05-16T02:39:00Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Jale]] ke [[Wikikamus:tmw/jale]]
342527
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/jale]]
59agz2z4kjc2hphc2scayco97xmroym
Wikikamus:tmw/Kate
4
118503
342531
2026-05-16T02:41:02Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Kate]] ke [[Wikikamus:tmw/kate]]: Tajuk salah eja
342531
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/kate]]
6wj7z0a7gexbq8m2qghwsyy7njmmhaf
Wikikamus:tmw/Kejak
4
118504
342533
2026-05-16T02:41:39Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Kejak]] ke [[Wikikamus:tmw/kejak]]: Tajuk salah eja
342533
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/kejak]]
4xcdgzeteo5pf3az4u1msixryj6ljmd
Wikikamus:tmw/mangkit
4
118505
342536
2026-05-16T02:42:34Z
Sakura Comel
10752
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} bangun'
342536
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} bangun
59pgpkg3v5y4tp29vl262hfwlgde1uj
Wikikamus:tmw/ubi kayuk
4
118506
342537
2026-05-16T02:42:37Z
Faizz315891
10774
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=bukit lagong}} ubi kayu'
342537
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=bukit lagong}} ubi kayu
253xr9ef08jhct80bkvf0dg2kpbrmim
342670
342537
2026-05-16T03:37:02Z
Faizz315891
10774
342670
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=bukit lagong}} ubi kayu{{cp|tmw|genui tanam '''ubik kayuk'''|nenek menanam '''ubi kayu'''}}
4xg1xkdpngjdft4slqsssnrm2ikv3xg
Wikikamus:tmw/Lada
4
118507
342539
2026-05-16T02:42:40Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Lada]] ke [[Wikikamus:tmw/lada]]
342539
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/lada]]
t51f5hcfiuawnwjknegpyhaxpnbj9p6
Wikikamus:tmw/Lego
4
118508
342543
2026-05-16T02:44:36Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Lego]] ke [[Wikikamus:tmw/lego]]
342543
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/lego]]
pz0t60mgxm7w5tsgqfbfunmtn8a6ov6
Wikikamus:tmw/kecek
4
118509
342544
2026-05-16T02:44:54Z
Barbiemaripossa
9985
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # {{label|1=tmw|2=dialek|3=Bukit Lagong}} kecik{{cp|tmw|Umah nin '''kecek''' betul|Rumah ini sangat '''kecil'''}}'
342544
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} kecik{{cp|tmw|Umah nin '''kecek''' betul|Rumah ini sangat '''kecil'''}}
q0833y3erjrs4wbzziewm4h95or34nu
Wikikamus:tmw/Lempen
4
118510
342546
2026-05-16T02:45:13Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Lempen]] ke [[Wikikamus:tmw/lempen]]
342546
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/lempen]]
0pkp0ul6sz18wwshrkgc8plo0bx7pxy
Wikikamus:tmw/butak
4
118511
342549
2026-05-16T02:48:10Z
Sakura Comel
10752
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} buta'
342549
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} buta
j17m9e93yc8sbuqf4ns7myjmv7cyjj9
Wikikamus:tmw/Lenik
4
118512
342553
2026-05-16T02:50:23Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Lenik]] ke [[Wikikamus:tmw/lenik]]
342553
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/lenik]]
owyby6o5gw2c36ecnpcgva1tfbhy71f
Wikikamus:tmw/ayik
4
118513
342556
2026-05-16T02:51:27Z
Qhairy
9963
Qhairy telah memindahkan laman [[Wikikamus:tmw/ayik]] ke [[Wikikamus:tmw/haik]]: Tajuk salah eja
342556
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/haik]]
fn31u9a91yv3q9mg2om3fzd90dxb9qo
Wikikamus:tmw/lajuk
4
118514
342558
2026-05-16T02:52:32Z
Barbiemaripossa
9985
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} {{cp|tmw|Anying ituk berlari '''lajuk''' nah|Anjing itu berlari sangat '''laju'''}}'
342558
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} {{cp|tmw|Anying ituk berlari '''lajuk''' nah|Anjing itu berlari sangat '''laju'''}}
mkchq0qvhy6qj3d26e2nhqhvh7ixf75
Wikikamus:tmw/Mak
4
118515
342560
2026-05-16T02:52:44Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Mak]] ke [[Wikikamus:tmw/mak]]
342560
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/mak]]
8tjdtc68suq99lrnd0xku3p9jzxlmi1
Wikikamus:tmw/sengoh
4
118516
342561
2026-05-16T02:53:16Z
Eiimanns
10724
Mencipta laman baru dengan kandungan 'diam ==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Johor}} contoh'
342561
wikitext
text/x-wiki
diam
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Johor}} contoh
3v4iy64vvw4rp9ufltd6fal3x3xdf5c
342563
342561
2026-05-16T02:53:59Z
Eiimanns
10724
342563
wikitext
text/x-wiki
diam
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Temuan}} diam
66d7061ymr1l4ppkuca1ci2tawzjx0x
Wikikamus:tmw/gogok
4
118517
342564
2026-05-16T02:54:44Z
Eiimanns
10724
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Johor}} contoh'
342564
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Johor}} contoh
rmji9z692w7xdno3x1z7x97x3b2mxy5
342568
342564
2026-05-16T02:55:53Z
Eiimanns
10724
342568
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
{{label|1=tmw|2=dialek|3=Temuan}} Tak larat (untuk berjalan)
tq273r2zixe342c7dmp7t6whz1ttmwl
Wikikamus:tmw/tanyak
4
118518
342567
2026-05-16T02:55:44Z
Sakura Comel
10752
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} tanya'
342567
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} tanya
hd6na7k80jibrvk26qfz8k1tkrgds5c
342714
342567
2026-05-16T03:55:36Z
Kentangputarr
10725
342714
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} tanya {{cp|tmw|}}
9ek1wdo5gmdu7azh2axr1qkh0lg8ii5
Wikikamus:tmw/Mimpi nyahat
4
118519
342570
2026-05-16T02:56:16Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Mimpi nyahat]] ke [[Wikikamus:tmw/mimpi nyahat]]: Tajuk salah eja
342570
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/mimpi nyahat]]
ac6wtjzqbowmvwc2cpbia8bozovxayt
Wikikamus:tmw/payak
4
118520
342571
2026-05-16T02:56:34Z
Eiimanns
10724
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Johor}} contoh'
342571
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Johor}} contoh
rmji9z692w7xdno3x1z7x97x3b2mxy5
342572
342571
2026-05-16T02:57:09Z
Eiimanns
10724
342572
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Temuan}} Lumpur
sv8952spkyzwlhp7ir0iba5gwrgfks8
Wikikamus:tmw/dogol
4
118521
342573
2026-05-16T02:58:07Z
Eiimanns
10724
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Johor}} contoh'
342573
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Johor}} contoh
rmji9z692w7xdno3x1z7x97x3b2mxy5
342579
342573
2026-05-16T03:00:06Z
Eiimanns
10724
342579
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Temuan Bukit Lagong}}Kawasan hutan yang ditebang
nklsm99uiw8km70wajzpyragttxhn9h
342758
342579
2026-05-16T04:17:26Z
Khalifah5156
9987
342758
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Temuan Bukit Lagong}}Kawasan hutan yang ditebang{{cp|tmw|Kebun kena '''dogol'''|Kebun kena '''tebang'''}}
pcb46tezo56lzzmo0gtom70r223d5ky
Wikikamus:tmw/Mok
4
118522
342581
2026-05-16T03:00:16Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Mok]] ke [[Wikikamus:tmw/mok]]: Tajuk salah eja
342581
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/mok]]
tf354u0qpb1pk5f5ri2yitrjxxgzm1n
Wikikamus:tmw/deket
4
118523
342584
2026-05-16T03:01:34Z
Barbiemaripossa
9985
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} dekat{{cp|tmw|Umah aku '''deket''' sungai|Rumah saya ber'''dekat'''an dengan sungai}}'
342584
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} dekat{{cp|tmw|Umah aku '''deket''' sungai|Rumah saya ber'''dekat'''an dengan sungai}}
acaatga72q7nh2x2l120s3ybpwpakfh
Wikikamus:tmw/penyincang
4
118524
342585
2026-05-16T03:02:01Z
Sakura Comel
10752
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} tempat pencincang'
342585
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} tempat pencincang
oraxrxqqdijriwj2lb0brdpsulwv1nj
Wikikamus:tmw/telu
4
118525
342586
2026-05-16T03:02:46Z
Sakura Comel
10752
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} telur'
342586
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} telur
bshy98sjcgml5jnr05l99dfixwhfs2b
Wikikamus:tmw/manih
4
118526
342587
2026-05-16T03:03:59Z
Sakura Comel
10752
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} manis'
342587
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} manis
bbfu7vfefzqsqmfylemcju4kxryhx5h
Wikikamus:tmw/Muduk
4
118527
342590
2026-05-16T03:04:20Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Muduk]] ke [[Wikikamus:tmw/muduk]]
342590
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/muduk]]
4qcq3otnglxp0gnpy2e7m7454jonr28
Wikikamus:tmw/kenurik
4
118528
342591
2026-05-16T03:04:41Z
Barbiemaripossa
9985
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} kenduri{{cp|tmw|Didi datang '''kenurik''' malam tok|Mereka datang ke '''kenduri''' semalam}}'
342591
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} kenduri{{cp|tmw|Didi datang '''kenurik''' malam tok|Mereka datang ke '''kenduri''' semalam}}
fpfquyipmrqyazl3su0i401s3fyiakp
Wikikamus:tmw/Ngael
4
118529
342594
2026-05-16T03:04:55Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Ngael]] ke [[Wikikamus:tmw/ngael]]
342594
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/ngael]]
96q7a7x30zvbkvojk1hw7pp6mb92v11
Wikikamus:tmw/nangih
4
118530
342596
2026-05-16T03:05:51Z
Sakura Comel
10752
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} menangis'
342596
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} menangis
3lm79ew1q0hrbsk3hycvjbsdyleiuh3
Wikikamus:tmw/Nyahak ajak
4
118531
342604
2026-05-16T03:10:34Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Nyahak ajak]] ke [[Wikikamus:tmw/nyahak ajak]]: Tajuk salah eja
342604
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/nyahak ajak]]
1aufzddeydanivc44tqbsygfka6e58y
Wikikamus:tmw/Nyayik
4
118532
342609
2026-05-16T03:11:25Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Nyayik]] ke [[Wikikamus:tmw/nyayik]]
342609
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/nyayik]]
mwjn3r7e6fhqhehx25nly0u3dl5hpef
Wikikamus:tmw/cermin matak
4
118533
342611
2026-05-16T03:12:52Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/cermin matak]] ke [[Wikikamus:tmw/cemin matak]]
342611
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/cemin matak]]
c8qxakjbc9c57rplbfhhu161x81dwp7
Wikikamus:tmw/Antuk
4
118534
342612
2026-05-16T03:12:57Z
Barbiemaripossa
9985
Mencipta laman baru dengan kandungan '{{cp|tmw|Bodok takut manan '''gelap''' tai|Budak itu takut melihat '''hantu''' pada waktu malam}} ==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Johor}} contoh'
342612
wikitext
text/x-wiki
{{cp|tmw|Bodok takut manan '''gelap''' tai|Budak itu takut melihat '''hantu''' pada waktu malam}}
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Johor}} contoh
srv2zx7p6yw1ui5cedp86j3agpqpme2
342613
342612
2026-05-16T03:13:29Z
Barbiemaripossa
9985
342613
wikitext
text/x-wiki
{{cp|tmw|Bodok takut manan '''gelap''' tai|Budak itu takut melihat '''hantu''' pada waktu malam}}
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} contoh
b5m5vcmiffztzlk00n0aumlfywtubqr
Wikikamus:tmw/nguap
4
118535
342616
2026-05-16T03:17:07Z
Sakura Comel
10752
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} menguap'
342616
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} menguap
o2vkj6t4u8xbbt7hcarj27ol9chiu5s
Wikikamus:tmw/Semomok
4
118536
342619
2026-05-16T03:17:48Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Semomok]] ke [[Wikikamus:tmw/semomok]]
342619
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/semomok]]
6l1dy0b47hk3umm7pz8624bhec5xry9
Wikikamus:tmw/manang
4
118537
342620
2026-05-16T03:18:16Z
Barbiemaripossa
9985
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} lihat{{cp|tmw|Aku '''manang''' burung atas pokok|Saya me'''lihat''' burung di atas pokok}}'
342620
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} lihat{{cp|tmw|Aku '''manang''' burung atas pokok|Saya me'''lihat''' burung di atas pokok}}
iqymwssxgqc80jlqa95pu253mydjf2p
Wikikamus:tmw/bodok
4
118538
342623
2026-05-16T03:21:21Z
Barbiemaripossa
9985
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} budak{{cp|tmw|'''Bodok''' tidur awal gelap tai|'''Budak''' itu tidur awal malam tadi.}}'
342623
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} budak{{cp|tmw|'''Bodok''' tidur awal gelap tai|'''Budak''' itu tidur awal malam tadi.}}
hccbno6di7bejicu2e19vsc2qp43tgr
Wikikamus:tmw/Sikah
4
118539
342628
2026-05-16T03:24:46Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Sikah]] ke [[Wikikamus:tmw/sikah]]
342628
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/sikah]]
6qr77ef7zj78wodwe6ukdp2znmaqkf6
Wikikamus:tmw/Taek
4
118540
342632
2026-05-16T03:26:08Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Taek]] ke [[Wikikamus:tmw/taek]]
342632
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/taek]]
6em0ol5hl3028bwvkqia5u75k4y4rxr
Modul:category tree/lang/acm
828
118541
342633
2026-05-16T03:26:46Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} local lang = require("Module:languages").getByCode("acm") require("Module:category tree/lang/sem-arb").add_labels_and_handlers(labels, handlers, lang) return {LABELS = labels, HANDLERS = handlers}'
342633
Scribunto
text/plain
local labels = {}
local handlers = {}
local lang = require("Module:languages").getByCode("acm")
require("Module:category tree/lang/sem-arb").add_labels_and_handlers(labels, handlers, lang)
return {LABELS = labels, HANDLERS = handlers}
o8plfonz5sly6235dqhxxd5085jephx
Wikikamus:tmw/Tali dendan
4
118542
342637
2026-05-16T03:27:10Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Tali dendan]] ke [[Wikikamus:tmw/tali dendan]]
342637
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/tali dendan]]
lju5kps4jl24f3d4zczjouhpwdu21iv
Wikikamus:tmw/nun
4
118543
342638
2026-05-16T03:27:26Z
Barbiemaripossa
9985
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} sana{{cp|tmw|Didi duduk dekat '''nun''' di bawak pokok|Mereka duduk di '''sana''' di bawah pokok}}'
342638
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} sana{{cp|tmw|Didi duduk dekat '''nun''' di bawak pokok|Mereka duduk di '''sana''' di bawah pokok}}
b2kebt2ib6jpf2vv77mkwbpws9mp2k6
Modul:category tree/lang/aii
828
118544
342639
2026-05-16T03:27:28Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} labels["nouns with reduplicative plurals"] = { description = "{{{langname}}} nouns with an irregular, {{lg|reduplicative}} plural, in which the last pronounced consonant appears reduplicated within the plural suffix.", additional = "An example is {{m|aii|ܒܸܪܟܵܐ|tr=bir'''k'''ā|t=knee}}, with pluras {{m|aii|ܒܸܪ̈ܟܵܟܹܐ|tr=bir'''k'''ā'''k'''ē|t=knees}}).", breadcrumb_and_first_sort_key = "reduplica...'
342639
Scribunto
text/plain
local labels = {}
local handlers = {}
labels["nouns with reduplicative plurals"] = {
description = "{{{langname}}} nouns with an irregular, {{lg|reduplicative}} plural, in which the last pronounced consonant appears reduplicated within the plural suffix.",
additional = "An example is {{m|aii|ܒܸܪܟܵܐ|tr=bir'''k'''ā|t=knee}}, with pluras {{m|aii|ܒܸܪ̈ܟܵܟܹܐ|tr=bir'''k'''ā'''k'''ē|t=knees}}).",
breadcrumb_and_first_sort_key = "reduplicative",
parents = {"nouns with irregular plurals"},
}
return {LABELS = labels, HANDLERS = handlers}
iqllvjiimmhbdtv8qs073enbpcqmqzg
Modul:category tree/lang/akk
828
118545
342640
2026-05-16T03:28:08Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local handlers = {} local insert = table.insert local match = string.match insert(handlers, function(data) local stems = { ["G"] = "simple stems which are used for the {{lg|intransitive}} and {{lg|transitive}}", ["D"] = "stems in the {{lg|intensive}} indicated by the second radical being geminated", ["Š"] = "stems with a {{lg|causative}} ''š''-{{lg|preformative}}", ["N"] = "stems with a {{lg|passive}} or {{lg|reflexive}} ''n''-{{lg|preform...'
342640
Scribunto
text/plain
local handlers = {}
local insert = table.insert
local match = string.match
insert(handlers, function(data)
local stems = {
["G"] = "simple stems which are used for the {{lg|intransitive}} and {{lg|transitive}}",
["D"] = "stems in the {{lg|intensive}} indicated by the second radical being geminated",
["Š"] = "stems with a {{lg|causative}} ''š''-{{lg|preformative}}",
["N"] = "stems with a {{lg|passive}} or {{lg|reflexive}} ''n''-{{lg|preformative}}",
["Gt"] = "simple stems which have a {{lg|reciprocal}} or {{lg|reflexive}} ''-t-'' {{lg|infix}}ed after the first radical",
["Dt"] = "[[:Category:{{{langname}}} D-stems|D-stems]] which have a ''-t-'' {{lg|infix}}ed, indicating an {{lg|intensive}} {{lg|reflexive}} verb",
["Št"] = "stems with a {{lg|causative}} ''š''-{{lg|preformative}} and a {{lg|reflexive}} ''-t-'' {{lg|infix}}ed before the first radical",
["Nt"] = "stems with a {{lg|passive}} ''n''-{{lg|preformative}} and a {{lg|reflexive}} ''-t-'' {{lg|infix}}ed before the first radical",
["Gtn"] = "simple stems with a ''-tan-'' {{lg|infix}}",
["Dtn"] = "[[:Category:{{{langname}}} D-stems|D-stems]] with a ''-tan-'' {{lg|infix}}",
["Štn"] = "stems with a {{lg|causative}} ''š''-{{lg|preformative}} and a ''-tan-'' {{lg|infix}}",
["Ntn"] = "stems with a {{lg|passive}} ''n''-{{lg|preformative}} and a ''-tan-'' {{lg|infix}}",
["ŠD"] = "stems with a {{lg|causative}} ''š''-{{lg|preformative}} and a geminated second radical",
}
local stem
for i, _ in pairs(stems) do
stem = match(data.label, "(" .. i .. ")%-stem verbs")
if stem then
break
end
end
if not stem then
return
end
return {
description = "{{{langname}}} " .. stems[stem] .. ".",
parents = "verbs by inflection type",
}
end)
return { HANDLERS = handlers }
gqlzt1la80dlxc0otulfon3ceqwkez9
Wikikamus:tmw/Tanoh
4
118546
342643
2026-05-16T03:29:57Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Tanoh]] ke [[Wikikamus:tmw/tanoh]]
342643
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/tanoh]]
9nj52a2zi2ch33jycixy79y5ms351zp
Wikikamus:tmw/Tanuk
4
118547
342645
2026-05-16T03:30:21Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Tanuk]] ke [[Wikikamus:tmw/tanuk]]
342645
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/tanuk]]
emcetttlihpdca68vg8yrktxpw6gso1
Modul:category tree/lang/akl
828
118548
342648
2026-05-16T03:31:02Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} labels["terms without pronunciation template"] = { description = "{{{langname}}} terms without either [[Template:akl-pr]] to indicate pronunciation.", parents = {{name = "entry maintenance"}}, hidden = true, can_be_empty = true } labels["terms where syllabification alignment failed"] = { description = "{{{langname}}} terms where [[Module:akl-pronunciation]] was unable to align the syllabified respelling with...'
342648
Scribunto
text/plain
local labels = {}
local handlers = {}
labels["terms without pronunciation template"] = {
description = "{{{langname}}} terms without either [[Template:akl-pr]] to indicate pronunciation.",
parents = {{name = "entry maintenance"}},
hidden = true,
can_be_empty = true
}
labels["terms where syllabification alignment failed"] = {
description = "{{{langname}}} terms where [[Module:akl-pronunciation]] was unable to align the syllabified respelling with the pagename to produce a syllabified spelling.",
parents = {{name = "entry maintenance"}},
hidden = true,
can_be_empty = true
}
return {LABELS = labels, HANDLERS = handlers}
0dheritltnf46ojg6i85x15aaxa2gbk
Wikikamus:tmw/Tungkih
4
118549
342650
2026-05-16T03:31:15Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Tungkih]] ke [[Wikikamus:tmw/tungkih]]
342650
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/tungkih]]
dzz5d9zfvuow8x2qugqgz84ozd54bbz
Modul:category tree/lang/arn
828
118550
342652
2026-05-16T03:31:41Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} labels["Unified spellings"] = { description = "{{{langname}}} terms spelled in the [[w:Mapudungun alphabet|Unified Alphabet]].", parents = {{ name = "terms by orthographic property", sort = "Unified" }}, breadcrumb = "Unified", } labels["Raguileo spellings"] = { description = "{{{langname}}} terms spelled in the [[w:Mapudungun alphabet|Raguileo]] orthography.", parents = {{ name = "terms by orthographic prop...'
342652
Scribunto
text/plain
local labels = {}
local handlers = {}
labels["Unified spellings"] = {
description = "{{{langname}}} terms spelled in the [[w:Mapudungun alphabet|Unified Alphabet]].",
parents = {{ name = "terms by orthographic property", sort = "Unified" }},
breadcrumb = "Unified",
}
labels["Raguileo spellings"] = {
description = "{{{langname}}} terms spelled in the [[w:Mapudungun alphabet|Raguileo]] orthography.",
parents = {{ name = "terms by orthographic property", sort = "Raguileo" }},
breadcrumb = "Raguileo",
}
labels["Nhewenh spellings"] = {
description = "{{{langname}}} terms spelled in the [[w:Mapudungun alphabet|Nhewenh]] orthography.",
parents = {{ name = "terms by orthographic property", sort = "Nhewenh" }},
breadcrumb = "Nhewenh",
}
labels["Azumchefi spellings"] = {
description = "{{{langname}}} terms spelled in the [[w:Mapudungun alphabet|Azumchefi]] orthography.",
parents = {{ name = "terms by orthographic property", sort = "Azumchefi" }},
breadcrumb = "Azumchefi",
}
return { LABELS = labels, HANDLERS = handlers }
k4pkap87l4k8t0z3gvqwo3bumcgrxts
Wikikamus:tmw/kotep
4
118551
342653
2026-05-16T03:32:02Z
Sakura Comel
10752
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} kutip'
342653
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} kutip
7mt8omtntooqlgv9oqwdjr54g6ofcwm
Modul:category tree/lang/ars
828
118552
342654
2026-05-16T03:32:09Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} local lang = require("Module:languages").getByCode("ars") require("Module:category tree/lang/sem-arb").add_labels_and_handlers(labels, handlers, lang) return {LABELS = labels, HANDLERS = handlers}'
342654
Scribunto
text/plain
local labels = {}
local handlers = {}
local lang = require("Module:languages").getByCode("ars")
require("Module:category tree/lang/sem-arb").add_labels_and_handlers(labels, handlers, lang)
return {LABELS = labels, HANDLERS = handlers}
9seh77phh7ggcpog93h50rq8nrmkrg2
Wikikamus:tmw/Ujan
4
118553
342656
2026-05-16T03:32:13Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Ujan]] ke [[Wikikamus:tmw/ujan]]
342656
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/ujan]]
3ly256v0bomipr7b7v0mrqv7j486e02
Modul:category tree/lang/bbl
828
118554
342657
2026-05-16T03:32:41Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} ------- Nominal categories ------- labels["nominals by inflection type"] = { description = "{{{langname}}} nouns categorized by their inflection type.", breadcrumb = "by inflection type", parents = { {name = "nouns", sort = "inflection type"}, }, } table.insert(handlers, function(data) local nomtype = data.label:match("^(.*)%-type nominals$") if nomtype then return { description = ("{{{langname}}} '...'
342657
Scribunto
text/plain
local labels = {}
local handlers = {}
------- Nominal categories -------
labels["nominals by inflection type"] = {
description = "{{{langname}}} nouns categorized by their inflection type.",
breadcrumb = "by inflection type",
parents = {
{name = "nouns", sort = "inflection type"},
},
}
table.insert(handlers, function(data)
local nomtype = data.label:match("^(.*)%-type nominals$")
if nomtype then
return {
description = ("{{{langname}}} ''%s''-type nominals."):format(nomtype),
breadcrumb = {name = ("''%s''-type"):format(nomtype), nocap = true},
parents = {"nominals by inflection type"},
}
end
end)
return {LABELS = labels, HANDLERS = handlers}
7jrm7otnagve62t2yk23908jvgxl8h9
Wikikamus:tmw/babik
4
118555
342658
2026-05-16T03:33:05Z
Barbiemaripossa
9985
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} babi{{cp|tmw|'''Babik''' lari masuk hutan|Babi itu lari masuk hutan}}'
342658
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} babi{{cp|tmw|'''Babik''' lari masuk hutan|Babi itu lari masuk hutan}}
jw1t92cryrgfn58btppkxzqpcyn7i7e
Modul:category tree/lang/bku
828
118556
342659
2026-05-16T03:33:10Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} local native_script = "Buhid" labels["terms with " .. native_script .. " script"] = { description = "{{{langname}}} terms with inclusion of " .. native_script .. " script.", parents = {{ name = "terms by script", sort = native_script, }}, can_be_empty = true } labels["terms without " .. native_script .. " script"] = { description = "{{{langname}}} terms without " .. native_script .. " script set.", pare...'
342659
Scribunto
text/plain
local labels = {}
local handlers = {}
local native_script = "Buhid"
labels["terms with " .. native_script .. " script"] = {
description = "{{{langname}}} terms with inclusion of " .. native_script .. " script.",
parents = {{
name = "terms by script",
sort = native_script,
}},
can_be_empty = true
}
labels["terms without " .. native_script .. " script"] = {
description = "{{{langname}}} terms without " .. native_script .. " script set.",
parents = {"entry maintenance"},
hidden = true,
can_be_empty = true
}
labels["terms with missing " .. native_script .. " script entries"] = {
description = "{{{langname}}} terms with missing " .. native_script .. " script entries.",
parents = {"entry maintenance"},
hidden = true,
can_be_empty = true
}
labels["terms without pronunciation template"] = {
description = "{{{langname}}} terms without either [[Template:bku-pr]] to indicate pronunciation.",
parents = {{name = "entry maintenance"}},
hidden = true,
can_be_empty = true
}
labels["terms where syllabification alignment failed"] = {
description = "{{{langname}}} terms where [[Module:bku-pronunciation]] was unable to align the syllabified respelling with the pagename to produce a syllabified spelling.",
parents = {{name = "entry maintenance"}},
hidden = true,
can_be_empty = true
}
return {LABELS = labels, HANDLERS = handlers}
fd320h3rsaqx4ez7s8rjogkhzo08glr
Modul:category tree/lang/ce
828
118557
342660
2026-05-16T03:33:40Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} ------- Nominal categories ------- labels["nominals by inflection type"] = { description = "{{{langname}}} nouns categorized by their inflection type.", breadcrumb = "by inflection type", parents = { {name = "nouns", sort = "inflection type"}, }, } table.insert(handlers, function(data) local nomtype = data.label:match("^(.*)%-type nominals$") if nomtype then return { description = ("{{{langname}}} '...'
342660
Scribunto
text/plain
local labels = {}
local handlers = {}
------- Nominal categories -------
labels["nominals by inflection type"] = {
description = "{{{langname}}} nouns categorized by their inflection type.",
breadcrumb = "by inflection type",
parents = {
{name = "nouns", sort = "inflection type"},
},
}
table.insert(handlers, function(data)
local nomtype = data.label:match("^(.*)%-type nominals$")
if nomtype then
return {
description = ("{{{langname}}} ''%s''-type nominals."):format(nomtype),
breadcrumb = {name = ("''%s''-type"):format(nomtype), nocap = true},
parents = {"nominals by inflection type"},
}
end
end)
return {LABELS = labels, HANDLERS = handlers}
7jrm7otnagve62t2yk23908jvgxl8h9
Wikikamus:tmw/Wang tuhik maen maen
4
118558
342664
2026-05-16T03:33:57Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/Wang tuhik maen maen]] ke [[Wikikamus:tmw/wang tuhik]]
342664
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/wang tuhik]]
6s85gd6bufximagjp6k1ey02zjioqga
Modul:category tree/lang/cpi
828
118559
342665
2026-05-16T03:34:07Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} labels["Hall forms"] = { description = "{{{langname}}} terms written in the phonemic spelling used in {{R:cpi:Hall 1944}}.", parents = {{ name = "terms by orthographic property", sort = "Hall" }} } return { LABELS = labels }'
342665
Scribunto
text/plain
local labels = {}
labels["Hall forms"] = {
description = "{{{langname}}} terms written in the phonemic spelling used in {{R:cpi:Hall 1944}}.",
parents = {{ name = "terms by orthographic property", sort = "Hall" }}
}
return { LABELS = labels }
5w7euvqj9cu10tnf3uzpwxmn25mrx5m
Modul:category tree/lang/cy
828
118560
342666
2026-05-16T03:34:50Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} labels["plural-basic nouns"] = { description = "{{{langname}}} nouns which have both singular and plural forms but whose lemma form is plural rather than singular.", additional = "Such nouns add a suffix to the plural to form the singular, rather than the more common pattern of " .. "adding a suffix to the singular to form the plural.", parents = "nouns", } labels["non-mutable terms"] = { description = "{{{langname}}} Welsh te...'
342666
Scribunto
text/plain
local labels = {}
labels["plural-basic nouns"] = {
description = "{{{langname}}} nouns which have both singular and plural forms but whose lemma form is plural rather than singular.",
additional = "Such nouns add a suffix to the plural to form the singular, rather than the more common pattern of " ..
"adding a suffix to the singular to form the plural.",
parents = "nouns",
}
labels["non-mutable terms"] = {
description = "{{{langname}}} Welsh terms that resist mutation.",
additional = "Many of these terms start with already immutable consonants.",
parents = "lemmas",
}
labels["terms with irregular mutation"] = {
description = "{{{langname}}} Welsh terms with one or more irregular mutated forms.",
parents = "lemmas",
}
return {LABELS = labels}
3pluf7c8zgybb0ibwc6vg1pkpd5u5q2
Modul:category tree/lang/egy
828
118561
342667
2026-05-16T03:35:29Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local lang = require("Module:languages").getByCode("egy") labels["terms with reconstructed IPA pronunciation"] = { description = "Egyptian terms with [[Appendix:Egyptian pronunciation|reconstructed]] pronunciation in the [[w:International Phonetic Alphabet|International Phonetic Alphabet]].", breadcrumb = "reconstructed IPA", parents = {"terms with IPA pronunciation"}, } labels["terms with reconstructed Old Egyptian IPA pronuncia...'
342667
Scribunto
text/plain
local labels = {}
local lang = require("Module:languages").getByCode("egy")
labels["terms with reconstructed IPA pronunciation"] = {
description = "Egyptian terms with [[Appendix:Egyptian pronunciation|reconstructed]] pronunciation in the [[w:International Phonetic Alphabet|International Phonetic Alphabet]].",
breadcrumb = "reconstructed IPA",
parents = {"terms with IPA pronunciation"},
}
labels["terms with reconstructed Old Egyptian IPA pronunciation"] = {
description = "Egyptian terms with pronunciation in the [[w:Old Egyptian|Old Egyptian]] stage (c. 2500 BCE) in the [[w:International Phonetic Alphabet|International Phonetic Alphabet]].",
breadcrumb = "Old Egyptian IPA",
parents = {"terms with reconstructed IPA pronunciation"},
}
labels["terms with reconstructed Middle Egyptian IPA pronunciation"] = {
description = "Egyptian terms with pronunciation in the [[w:Middle Egyptian language|Middle Egyptian]] stage (c. 1700 BCE) in the [[w:International Phonetic Alphabet|International Phonetic Alphabet]].",
breadcrumb = "Middle Egyptian IPA",
parents = {"terms with reconstructed IPA pronunciation"},
}
labels["terms with reconstructed Amarna-period Late Egyptian IPA pronunciation"] = {
description = "Egyptian terms with pronunciation in the [[w:Late Egyptian language|Amarna-period Late Egyptian]] stage (c. 1350 BCE) in the [[w:International Phonetic Alphabet|International Phonetic Alphabet]].",
breadcrumb = "Amarna-period Late Egyptian IPA",
parents = {"terms with reconstructed IPA pronunciation"},
}
labels["terms with reconstructed Late Egyptian IPA pronunciation"] = {
description = "Egyptian terms with pronunciation in the [[w:Late Egyptian language|Late Egyptian]] stage (c. 800 BCE) in the [[w:International Phonetic Alphabet|International Phonetic Alphabet]].",
breadcrumb = "Late Egyptian IPA",
parents = {"terms with reconstructed IPA pronunciation"},
}
return { LABELS = labels }
ehyky6uqex07d90hdyd6wa0ejll7o5n
Modul:category tree/lang/eo
828
118562
342668
2026-05-16T03:35:58Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local handlers = {} table.insert(handlers, function(data) local system = data.label:match("^([HX])%-system forms$") if system then return { description = "{{{langname}}} forms transliterated into ASCII using the " .. system .. "-system.", parents = {"terms by orthographic property"}, } end end) return {HANDLERS = handlers}'
342668
Scribunto
text/plain
local handlers = {}
table.insert(handlers, function(data)
local system = data.label:match("^([HX])%-system forms$")
if system then
return {
description = "{{{langname}}} forms transliterated into ASCII using the " .. system .. "-system.",
parents = {"terms by orthographic property"},
}
end
end)
return {HANDLERS = handlers}
s3tbreihoigg55up3goxiuvv9bun4i4
Modul:category tree/lang/fro
828
118563
342669
2026-05-16T03:36:41Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} labels["verbs by conjugation"] = { preceding = "{{also|Appendix:Old French verbs}}", description = "{{{langname}}} verbs categorized by their conjugation.", breadcrumb = "by conjugation", parents = {{name = "verbs", sort = "conjugation"}}, } labels["first group verbs"] = { description = "{{{langname}}} first group verbs, also called regular ''-er/ier'' verbs.", additional = "This is the largest of the three main Old French ver...'
342669
Scribunto
text/plain
local labels = {}
labels["verbs by conjugation"] = {
preceding = "{{also|Appendix:Old French verbs}}",
description = "{{{langname}}} verbs categorized by their conjugation.",
breadcrumb = "by conjugation",
parents = {{name = "verbs", sort = "conjugation"}},
}
labels["first group verbs"] = {
description = "{{{langname}}} first group verbs, also called regular ''-er/ier'' verbs.",
additional = "This is the largest of the three main Old French verb groups. See also [[:Category:Old French second group verbs]] (regular ''-ir'' verbs), [[:Category:Old French third group verbs]] (irregular verbs) and [[:Category:Old French third-second group verbs]] (''-ir'' verbs that conjugate either as third or second group verbs).",
breadcrumb = "first group",
parents = {{name = "verbs by conjugation", sort = "1"}},
}
labels["second group verbs"] = {
description = "{{{langname}}} second group verbs, also called regular ''-ir'' verbs.",
additional = "See also [[:Category:Old French first group verbs]] (regular ''-er/-ier'' verbs) and [[:Category:Old French third group verbs]] (irregular verbs).",
breadcrumb = "second group",
parents = {{name = "verbs by conjugation", sort = "2"}},
}
labels["third group verbs"] = {
description = "{{{langname}}} third group verbs, also called irregular verbs.",
additional = "See also [[:Category:Old French first group verbs]] (regular ''-er/-ier'' verbs), [[:Category:Old French second group verbs]] (regular ''-ir'' verbs) and [[:Category:Old French third-second group verbs]] (''-ir'' verbs that conjugate either as third or second group verbs).",
breadcrumb = "third group",
parents = {{name = "verbs by conjugation", sort = "3"}},
}
labels["third-second group verbs"] = {
description = "{{{langname}}} third-second group verbs, usually ''-ir'' verbs that can be conjugated either as third or second group verbs (without or with the ''-iss-'' infix).",
additional = "See also [[:Category:Old French first group verbs]] (regular ''-er/-ier'' verbs), [[:Category:Old French second group verbs]] (regular ''-ir'' verbs) and [[:Category:Old French third group verbs]] (irregular verbs).",
breadcrumb = "third-second group",
parents = {{name = "verbs by conjugation", sort = "3-2"}},
}
local verb_ending_types = {
["-er"] = {
desc = "forming part of the [[:Category:Old French first group verbs|first-group verbs]], although there are a few [[:Category:Old French third group verbs|third-group verbs]] as well, where {{m|fro|-er}} in this case is an [[Anglo-Norman]] variant of {{m|fro|-eir}}, itself a variant of standard {{m|fro|-oir}}",
},
["-ier"] = {
desc = "forming part of the [[:Category:Old French first group verbs|first-group verbs]]",
additional = "The stem of these verbs ended in a {{lg|palatalized}} consonant in {{catlink|Proto-Gallo-Romance}}.",
},
["-ir"] = {
desc = "part of which form the [[:Category:Old French second group verbs|second-group verbs]] while the rest form part of the [[:Category:Old French third group verbs|third-group verbs]]",
additional = "These originate from Latin verbs in {{m|la|-īre}}, from some verbs in {{m|la|-ēre}} (particularly when the stem ended in a {{lg|palatalized}} consonant in {{catlink|Proto-Gallo-Romance}}), " ..
"and from some verbs ending in {{m|la|-ĕre}} that were transferred to the {{m|la|-īre}} or {{m|la|-ēre}} classes in {{catlink|Proto-Romance}} or later. They often alternated with " ..
"verbs in {{m+|fro|-re}}, sometimes producing {{lg|doublet}}s in modern French, such as the verb {{m|fr|plaire}} and noun {{m|fr|plaisir}}, which were alternative " ..
"infinitives for the same verb in Old French.",
},
["-eir"] = {
desc = "forming part of the [[:Category:Old French third group verbs|third-group verbs]]; they are either early Old French or [[Anglo-Norman]] variants of verbs in {{m|fro|-oir}}",
},
["-oir"] = {
desc = "forming part of the [[:Category:Old French third group verbs|third-group verbs]]",
additional = "These originate from Latin verbs in {{m|la|-ēre}} (or sometimes {{m|la|-ĕre}}) that were not preceded by a palatal consonant in {{w|Proto-Gallo-Romance}}. " ..
"(Those preceded by a palatal consonant have the ending {{m|fro|-ir}} in Old French.)",
},
["-re"] = {
desc = "forming part of the [[:Category:Old French third group verbs|third-group verbs]]",
additional = "These originate from Latin verbs in {{m|la|-ĕre}} (or sometimes {{m|la|-ēre}}).",
},
}
for ending, props in pairs(verb_ending_types) do
local breadcrumb = "''" .. ending .. "''"
local displaytitle = "{{{langname}}} verbs ending in " .. breadcrumb
labels["verbs ending in " .. ending] = {
description = displaytitle .. ", " .. props.desc .. ".",
displaytitle = displaytitle,
additional = props.additional,
breadcrumb_and_first_sort_key = breadcrumb,
parents = {"verbs by conjugation"},
}
end
labels["verbs by preterite type"] = {
preceding = "{{also|Appendix:Old French verbs}}",
description = "{{{langname}}} verbs categorized by the formation of their preterite tense.",
breadcrumb = "by preterite type",
parents = {{name = "verbs", sort = "preterite type"}},
}
local preterite_types = {
["weak-a"] = {
desc = "the standard preterite type for [[:Category:Old French verbs ending in -er|-er verbs]] (but not [[:Category:Old French verbs ending in -ier|-ier verbs]], which use [[:Category:Old French verbs with weak-a2 preterite|weak-a2 preterites]])",
additional = [=[
Endings are as follows:
{|class="wikitable"
!
! ''jo''
! ''tu''
! ''il''
! ''nos''
! ''vos''
! ''il''
|-
! Preterite
| ''-ai''
| ''-as''
| ''-a''
| ''-ames''
| ''-astes''
| ''-erent''
|-
! Subjunctive imperfect
| ''-asse''
| ''-asses''
| ''-ast''
| ''-issons''<br>''-issiens''
| ''-issoiz''<br>''-issez''<br>''-issiez''
| ''-assent''
|}
]=],
},
["weak-a2"] = {
desc = "the standard preterite type for [[:Category:Old French verbs ending in -ier|-ier verbs]]",
additional = "The endings are nearly like [[:Category:Old French verbs with weak-a preterite|that of ''-er'' verbs]], but the third-person plural preterite ends in ''-ierent'' instead of ''-erent''.",
},
["weak-i"] = {
desc = "the standard preterite type for [[:Category:Old French verbs ending in -ir|-ir verbs]]",
additional = [=[
See also the [[:Category:Old French verbs with weak-i2 preterite|weak-i2 preterite]], the standard preterite type for most ''-re'' verbs.
Endings are as follows:
{|class="wikitable"
!
! ''jo''
! ''tu''
! ''il''
! ''nos''
! ''vos''
! ''il''
|-
! Preterite
| ''-i''
| ''-is''
| ''-i''
| ''-imes''
| ''-istes''
| ''-irent''
|-
! Subjunctive imperfect
| ''-isse''
| ''-isses''
| ''-ist''
| ''-issons''<br>''-issiens''
| ''-issoiz''<br>''-issez''<br>''-issiez''
| ''-issent''
|}
]=],
},
["weak-i2"] = {
desc = "used by some [[:Category:Old French third group verbs|third-group verbs]], especially those ending in [[:Category:Old French verbs ending in -re|-re]], particularly those in ''-dre'' and ''-tre''",
additional = "The endings are nearly like [[:Category:Old French verbs with weak-i preterite|that of ''-ir'' verbs]], but the third-person plural preterite ends in ''-ierent'' instead of ''-erent''.",
},
["weak-u"] = {
desc = "used by some [[:Category:Old French third group verbs|third-group verbs]]",
additional = [=[
Endings are as follows:
{|class="wikitable"
!
! ''jo''
! ''tu''
! ''il''
! ''nos''
! ''vos''
! ''il''
|-
! Preterite
| ''-ui''
| ''-us''
| ''-u''
| ''-umes''
| ''-ustes''
| ''-urent''
|-
! Subjunctive imperfect
| ''-usse''
| ''-usses''
| ''-ust''
| ''-ussons''<br>''-ussiens''
| ''-ussoiz''<br>''-ussez''<br>''-ussiez''
| ''-ussent''
|}
]=],
},
["strong-i"] = {
desc = "used by a few [[:Category:Old French third group verbs|third-group verbs]]",
},
["strong-u"] = {
desc = "used by a number of [[:Category:Old French third group verbs|third-group verbs]]",
additional = [=[
Endings are as follows:
{|class="wikitable"
!
! ''jo''
! ''tu''
! ''il''
! ''nos''
! ''vos''
! ''il''
|-
! Preterite
| ''-ui''
| ''-eüs''
| ''-u''
| ''-eümes''
| ''-eüstes''
| ''-urent''
|-
! Subjunctive imperfect
| ''-eüsse''
| ''-eüsses''
| ''-eüst''
| ''-eüssons''<br>''-eüssiens''
| ''-eüssoiz''<br>''-eüssez''<br>''-eüssiez''
| ''-eüssent''
|}
]=],
},
["strong-sd"] = {
desc = "used by a number of [[:Category:Old French third group verbs|third-group verbs]]",
},
["strong-st"] = {
desc = "used by a number of [[:Category:Old French third group verbs|third-group verbs]]",
},
["strong-id"] = {
desc = "used by a few [[:Category:Old French third group verbs|third-group verbs]]",
},
["strong-o"] = {
desc = "used by a few [[:Category:Old French third group verbs|third-group verbs]]",
},
}
for pret_type, props in pairs(preterite_types) do
local weak_strong, ending = pret_type:match("^(.+)%-(.+)$")
if not weak_strong then
error("Internal error: Preterite type " .. pret_type .. " cannot be split into weak/strong + ending")
end
local breadcrumb = weak_strong .. "-''" .. ending .. "''"
local displaytitle = "{{{langname}}} verbs with " .. breadcrumb .. " preterite"
labels["verbs with " .. pret_type .. " preterite"] = {
description = displaytitle .. ", " .. props.desc .. ".",
displaytitle = displaytitle,
additional = props.additional,
breadcrumb_and_first_sort_key = breadcrumb,
parents = {"verbs by preterite type"},
}
end
return {LABELS = labels}
dlzoc7j4zsr2r6ziv7ae10j8zuzozxn
Modul:category tree/lang/fy
828
118564
342671
2026-05-16T03:37:17Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} local lang = require("Module:languages").getByCode("fy") labels["verbs by derivation type"] = { description = "West Frisian verbs categorized by the type of derivation.", parents = {{name = "verbs", sort = "derivation"}}, } labels["basic verbs"] = { description = "This category contains West Frisian verbs that are neither prefixed nor separable.", parents = {{name = "verbs by derivation type", sort = "basic...'
342671
Scribunto
text/plain
local labels = {}
local handlers = {}
local lang = require("Module:languages").getByCode("fy")
labels["verbs by derivation type"] = {
description = "West Frisian verbs categorized by the type of derivation.",
parents = {{name = "verbs", sort = "derivation"}},
}
labels["basic verbs"] = {
description = "This category contains West Frisian verbs that are neither prefixed nor separable.",
parents = {{name = "verbs by derivation type", sort = "basic"}},
}
labels["prefixed verbs"] = {
description = "This category contains West Frisian prefixed verbs, which are verbs that are compounded with an unstressed prefix, such as " ..
"{{m|fy|be-}}.",
parents = {{name = "verbs by derivation type", sort = "prefixed"}},
}
labels["separable verbs"] = {
topright = "{{wikipedia|Separable verb}}",
description = "This category contains West Frisian separable verbs, which are verbs that are compounded with a particle, " ..
"often an adverb. When the particle is immediately followed by the verb form, it is written together with it as one word. " ..
"In other cases, it is separated from the main verb by a space and possibly other words.",
parents = {{name = "verbs by derivation type", sort = "separable"}},
}
table.insert(handlers, function(data)
local pref = data.label:match("^prefixed verbs with (.+%-)$")
if pref then
local link = require("Module:links").full_link({ lang = lang, term = pref }, "term")
local altlink = require("Module:links").full_link({ lang = lang, alt = pref }, "term")
return {
description = "West Frisian prefixed verbs with the prefix " .. link .. ".",
displaytitle = "West Frisian prefixed verbs with " .. altlink,
breadcrumb = altlink,
parents = {{name = "prefixed verbs", sort = pref}},
}
end
end)
table.insert(handlers, function(data)
local particle = data.label:match("^separable verbs with (.+)$")
if particle then
local link = require("Module:links").full_link({ lang = lang, term = particle }, "term")
local altlink = require("Module:links").full_link({ lang = lang, alt = particle }, "term")
return {
description = "West Frisian separable verbs with the particle " .. link .. ".",
displaytitle = "West Frisian separable verbs with " .. altlink,
breadcrumb = altlink,
parents = {{name = "separable verbs", sort = particle}},
}
end
end)
return {LABELS = labels, HANDLERS = handlers}
hgyhgvl2ydprbyygfa0weon3qfjn8mi
Modul:category tree/lang/gmq-osw
828
118565
342672
2026-05-16T03:37:48Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} local rmatch = mw.ustring.match table.insert(handlers, function(data) local stem = rmatch(data.label, "^(.+[%s%-]stem) nouns$") if stem then return { description = "Old Swedish " .. stem .. " nouns.", breadcrumb = stem, parents = {{name = "nouns by inflection type", sort = stem}}, } end end) return {LABELS = labels, HANDLERS = handlers}'
342672
Scribunto
text/plain
local labels = {}
local handlers = {}
local rmatch = mw.ustring.match
table.insert(handlers, function(data)
local stem = rmatch(data.label, "^(.+[%s%-]stem) nouns$")
if stem then
return {
description = "Old Swedish " .. stem .. " nouns.",
breadcrumb = stem,
parents = {{name = "nouns by inflection type", sort = stem}},
}
end
end)
return {LABELS = labels, HANDLERS = handlers}
acf8aszl26e0n9pq57cya710i1itn4n
Modul:category tree/lang/gu
828
118566
342673
2026-05-16T03:38:24Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} --------------------------------- Verbs -------------------------------- labels["verbs with Perso-Arabic roots"] = { description = "{{{langname}}} verbs whose {{lg|root}}s are [[Perso-Arabic]] rather than native.</br></br>For example, the verbal root of {{m|gu|ગુજરવું}} is Persian rather than native. The verbal root of {{m|gu|તપાસવું}} is Arabic rather than native.", parents = {{name = "verbs", sort = "...'
342673
Scribunto
text/plain
local labels = {}
--------------------------------- Verbs --------------------------------
labels["verbs with Perso-Arabic roots"] = {
description = "{{{langname}}} verbs whose {{lg|root}}s are [[Perso-Arabic]] rather than native.</br></br>For example, the verbal root of {{m|gu|ગુજરવું}} is Persian rather than native. The verbal root of {{m|gu|તપાસવું}} is Arabic rather than native.",
parents = {{name = "verbs", sort = "Perso-Arabic"}},
}
labels["verbs adopted from Sanskrit"] = {
description = "{{{langname}}} verbs that are taken directly from Sanskrit rather than being native formations.</br></br>For example, {{m|gu|વાંચવું|t=to read}} is taken directly from {{m+|sa|वाचयति|વાચયતિ}} rather than being a native formation.",
parents = {{name = "verbs", sort = "Sanskrit"}},
}
--------------------------------- Phonemic Properties --------------------------------
labels["non-tatsamas that reflect the consonant cluster /tɾ/"] = {
description = "{{{langname}}} terms that are not directly from Sanskrit and are spelled with {{lang|gu|ત્ર}} or its reduced form {{lang|gu|તર}}.</br></br>For example, {{m|gu|ત્રેવીસ}} retains the [[consonant cluster]] {{IPAchar|/tɾ/}} in its etymon {{m+|sa|त्रयोविंशति|ત્રયોવિંશતિ}}, which is otherwise the same as its cognate {{cog|mr|तेवीस}}. Likewise, the character sequence {{lang|gu|તર}} in {{m|gu|માવતર}} reflects the consonant cluster {{IPAchar|/tɾ/}} in its etymon {{m+|sa|मातृगोत्र|માતૃગોત્ર}}.",
parents = {{name = "terms by phonemic property", sort = "cluster"}},
}
labels["terms with unexpected lenition"] = {
description = "{{{langname}}} terms with an unexpected weakening of a consonant.</br></br>For example, the etymological {{IPAchar|/b/}} of {{m|gu|અમદાવાદ |tr={{xlit|gu|આમ્દાવાદ}}}} is intervocalically weakened to {{IPAchar|/ʋ/}} instead of remaining as {{IPAchar|/b/}} as in {{m|gu|સિકંદરાબાદ|tr={{xlit|gu|સિકંદર્આબાદ}}}}.",
parents = {{name = "terms by phonemic property", sort = "lenition"}},
}
return {LABELS = labels}
mn9io3kr56l7g274115p510o9x47mr2
Modul:category tree/lang/gug
828
118567
342674
2026-05-16T03:38:56Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} labels["circumflex-system forms"] = { description = "{{{langname}}} spellings which use circumflexes to indicate nasalisation, instead of the now more common tilde.", parents = "terms by orthographic property", breadcrumb = "Circumflex", } return { LABELS = labels }'
342674
Scribunto
text/plain
local labels = {}
labels["circumflex-system forms"] = {
description = "{{{langname}}} spellings which use circumflexes to indicate nasalisation, instead of the now more common tilde.",
parents = "terms by orthographic property",
breadcrumb = "Circumflex",
}
return { LABELS = labels }
tgagl17630qhm33ari32vrgbcarazg4
Wikikamus:tmw/bilak
4
118568
342675
2026-05-16T03:39:12Z
Barbiemaripossa
9985
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} bila{{cp|tmw|'''Bilak''' ajih datang ke kenurik tai?|'''Bila'''awak datang ke kenduri?}}'
342675
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} bila{{cp|tmw|'''Bilak''' ajih datang ke kenurik tai?|'''Bila'''awak datang ke kenduri?}}
fnf9dzm1k50hu8bjkk4957ca88spbmk
Modul:category tree/lang/hnn
828
118569
342676
2026-05-16T03:39:32Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} local native_script = "Hanunoo" labels["terms with " .. native_script .. " script"] = { description = "{{{langname}}} terms with inclusion of " .. native_script .. " script.", parents = {{ name = "terms by script", sort = native_script, }}, can_be_empty = true } labels["terms without " .. native_script .. " script"] = { description = "{{{langname}}} terms without " .. native_script .. " script set.", pa...'
342676
Scribunto
text/plain
local labels = {}
local handlers = {}
local native_script = "Hanunoo"
labels["terms with " .. native_script .. " script"] = {
description = "{{{langname}}} terms with inclusion of " .. native_script .. " script.",
parents = {{
name = "terms by script",
sort = native_script,
}},
can_be_empty = true
}
labels["terms without " .. native_script .. " script"] = {
description = "{{{langname}}} terms without " .. native_script .. " script set.",
parents = {"entry maintenance"},
hidden = true,
can_be_empty = true
}
labels["terms with missing " .. native_script .. " script entries"] = {
description = "{{{langname}}} terms with missing " .. native_script .. " script entries.",
parents = {"entry maintenance"},
hidden = true,
can_be_empty = true
}
labels["terms without pronunciation template"] = {
description = "{{{langname}}} terms without either [[Template:hnn-pr]] to indicate pronunciation.",
parents = {{name = "entry maintenance"}},
hidden = true,
can_be_empty = true
}
labels["terms where syllabification alignment failed"] = {
description = "{{{langname}}} terms where [[Module:hnn-pronunciation]] was unable to align the syllabified respelling with the pagename to produce a syllabified spelling.",
parents = {{name = "entry maintenance"}},
hidden = true,
can_be_empty = true
}
return {LABELS = labels, HANDLERS = handlers}
5knkg2343kfiuxhwaf4w4p5an2uxfh1
Modul:category tree/lang/hu
828
118570
342677
2026-05-16T03:40:04Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} local m_strutils = require("Module:string utilities") local m_table = require("Module:table") local split = m_strutils.split local unpack = unpack or table.unpack -- Lua 5.2 compatibility labels["verbal participles"] = { description = "{{{langname}}} [[verbal participle]]s.", parents = {"participles"}, } labels["terms taking arguments"] = { description = "{{{langname}}} terms taking arguments through governi...'
342677
Scribunto
text/plain
local labels = {}
local handlers = {}
local m_strutils = require("Module:string utilities")
local m_table = require("Module:table")
local split = m_strutils.split
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
labels["verbal participles"] = {
description = "{{{langname}}} [[verbal participle]]s.",
parents = {"participles"},
}
labels["terms taking arguments"] = {
description = "{{{langname}}} terms taking arguments through governing [[postposition]]s or [[suffix]]es.",
breadcrumb = "taking arguments",
parents = {{name = "terms by lexical property", sort = "arguments"}},
}
local poses_taking_arguments = m_table.listToSet {
"adjectives",
"adverbs",
"interjections",
"nouns",
"phrases",
"postpositions",
"verbs",
}
for plpos, _ in pairs(poses_taking_arguments) do
labels[plpos .. " by argument"] = {
description = "{{{langname}}} " .. plpos .. " categorized by the suffix(es) or postposition they govern in order to take an argument.",
breadcrumb = "by argument",
parents = {{name = plpos, sort = "arguments"}, {name = "terms taking arguments", sort = plpos}},
}
end
for _, suffix_type_spec in ipairs {
{"lative", "which indicate a motion to a location and answer the question {{m|hu|hova|t=to where}}."},
{"locative", "which indicate a location and answer the question {{m|hu|hol|t=where}}."},
{"separative", "which indicate a motion from a location and answer the question {{m|hu|honnan|t=from where}}."},
} do
local suffix_type, desc = unpack(suffix_type_spec)
for _, pos in ipairs {"terms", "verbs"} do
local parents
if pos == "terms" then
parents = {{name = "terms taking arguments", sort = "*" .. suffix_type}}
else
parents = {{name = "terms taking " .. suffix_type .. " suffixes", sort = pos}}
-- The raw category code had a comment <!-- the set of verbs that can take any, whichever out of -rÓl/-bÓl/-tÓl is a subset of verbs that can take this or that out of them -->
for _, bol_tol_rol in ipairs {
"-ból/-ből",
"-ról/-ről",
"-tól/-től"
} do
table.insert(parents, {name = pos .. " taking " .. bol_tol_rol, sort = suffix_type})
end
end
labels[pos .. " taking " .. suffix_type .. " suffixes"] = {
description = ("{{{langname}}} %s taking [[%s]] suffixes, %s"):format(pos, suffix_type, desc),
additional = ("See also the [[Appendix:Hungarian_suffixes#By_reference_to_position_or_direction|list of %s suffixes]]."):format(suffix_type),
breadcrumb = pos == "terms" and suffix_type .. " suffixes" or pos,
parents = parents,
}
end
end
labels["verbs used with a form of maga"] = {
description = "{{{langname}}} verbs used with a form of the pronoun {{m|hu|maga||you|pos=formal, singular}}.",
displaytitle = "{{{langname}}} verbs used with a form of the pronoun {{m|hu||maga}}",
breadcrumb = "used with {{m|hu||maga}}",
parents = {{name = "verbs", sort = "maga"}},
}
for _, maga_form_spec in ipairs {
{"magába", "-ba/-be"},
{"magáért", "-ért"},
{"magához", "-hoz/-hez/-höz"},
{"magára", "-ra/-re"},
} do
local maga_form, suffixes = unpack(maga_form_spec)
labels["verbs used with " .. maga_form] = {
description = "{{{langname}}} verbs used with {{m|hu|" .. maga_form .. "}}, a form of the pronoun {{m|hu|maga||you|pos=formal, singular}}.",
displaytitle = "{{{langname}}} verbs used with {{m|hu||" .. maga_form .. "}}",
breadcrumb = "{{m|hu||" .. maga_form .. "}}",
parents = {
{name = "verbs used with a form of maga", sort = suffixes},
{name = "verbs taking " .. suffixes, sort = "maga"},
},
}
end
labels["verbs used reflexively with magát"] = {
description = "{{{langname}}} verbs used reflexively with {{m|hu|magát}}, a form of the pronoun {{m|hu|maga||you|pos=formal, singular}}.",
displaytitle = "{{{langname}}} verbs used reflexively with {{m|hu||magát}}",
breadcrumb = "used with {{m|hu||magát}}",
parents = {
{name = "reflexive verbs", sort = "magát"},
{name = "verbs used with a form of maga", sort = "t"},
},
}
table.insert(handlers, function(data)
local plpos, suffixes_arg = data.label:match("^([a-z]+s) taking (.-)$")
if plpos and (plpos == "terms" or poses_taking_arguments[plpos]) then
local suffixes = split(suffixes_arg, "/")
local suftype
if suffixes[1]:sub(1, 1) == "-" then
if suffixes[2] then
suftype = "suffix variants"
else
suftype = "suffix"
end
else
suftype = "postposition"
end
local linked_suffixes = {}
local tagged_suffixes = {}
for i, suffix in ipairs(suffixes) do
linked_suffixes[i] = "{{m|hu|" .. suffix .. "}}"
tagged_suffixes[i] = "{{m|hu||" .. suffix .. "}}"
end
linked_suffixes = m_table.serialCommaJoin(linked_suffixes, {conj = "or"})
tagged_suffixes = table.concat(tagged_suffixes, "/")
local desc = ("{{{langname}}} %s that can govern the %s %s."):format(plpos, suftype, linked_suffixes)
local displaytitle = ("{{{langname}}} %s taking %s"):format(plpos, tagged_suffixes)
if plpos == "terms" then
return {
description = desc,
displaytitle = displaytitle,
breadcrumb_and_first_sort_key = tagged_suffixes,
parents = {"terms taking arguments"},
}
else
return {
description = desc,
preceding = plpos == "verbs" and "{{hu-argument-verb}}" or nil,
displaytitle = displaytitle,
breadcrumb_and_first_sort_key = plpos,
parents = {"terms taking " .. suffixes_arg, {name = plpos .. " by argument", sort = {sort_base = suffixes_arg}}},
}
end
end
end)
return { LABELS = labels, HANDLERS = handlers }
nzxlvg0g7rw64unvvf3rh4nc9e941bu
Modul:category tree/lang/inc-apa
828
118571
342680
2026-05-16T03:40:37Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} labels["terms with unexpected voicing"] = { description = "Apabhramsa terms undergoing unexpected voicing.", parents = {"terms by phonemic property"}, } labels["terms with unexpected gemination"] = { description = "Apabhramsa terms undergoing unexpected gemination.", parents = {"terms by phonemic property"}, } labels["terms with unexpected retroflexion"] = { description = "Apabhramsa terms undergoing unexpected retroflexion.",...'
342680
Scribunto
text/plain
local labels = {}
labels["terms with unexpected voicing"] = {
description = "Apabhramsa terms undergoing unexpected voicing.",
parents = {"terms by phonemic property"},
}
labels["terms with unexpected gemination"] = {
description = "Apabhramsa terms undergoing unexpected gemination.",
parents = {"terms by phonemic property"},
}
labels["terms with unexpected retroflexion"] = {
description = "Apabhramsa terms undergoing unexpected retroflexion.",
parents = {"terms by phonemic property"},
}
labels["terms of the defective word group"] = {
description = "{{{langname}}} terms belonging to an Indo-Aryan group " ..
"of words that {{w|Ralph Lilley Turner|Turner}} refers to " ..
"as \"defective\". These words can express a physical, " ..
"mental, or moral defect or express a general meaning of " ..
"''[[lump]]'' or ''[[heap]]''. Such \"defective\" terms " ..
"included here do not have clear Indo-European etymology. " ..
"They are characterized by showing a wide variety of " ..
"alternative forms, perhaps indicating [[substrate]] " ..
"origin or [[taboo deformation]].",
parents = {"terms by etymology"}
}
return {LABELS = labels}
02hz9hkzncuzxt15q9q4qe5ltrqgqd7
Modul:category tree/lang/inc-ash
828
118572
342681
2026-05-16T03:41:15Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} labels["terms with unexpected voicing"] = { description = "Ashokan Prakrit terms undergoing unexpected voicing.", parents = {"terms by phonemic property"}, } labels["Proto-New Indo-Aryan"] = { description = "{{{langname}}} terms reconstructed from New Indo-Aryan lemmas.", parents = {"terms by etymology"}, } return {LABELS = labels}'
342681
Scribunto
text/plain
local labels = {}
labels["terms with unexpected voicing"] = {
description = "Ashokan Prakrit terms undergoing unexpected voicing.",
parents = {"terms by phonemic property"},
}
labels["Proto-New Indo-Aryan"] = {
description = "{{{langname}}} terms reconstructed from New Indo-Aryan lemmas.",
parents = {"terms by etymology"},
}
return {LABELS = labels}
95d6o12a9z3ejv10dkqfw4splqbvgq3
Modul:category tree/lang/ine-bsl-pro
828
118573
342683
2026-05-16T03:41:54Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} --------------------------------- Nouns/Pronouns/Numerals -------------------------------- labels["consonant-stem nouns"] = { description = "{{{langname}}} consonant-stem nouns, deriving from Proto-Indo-European consonant-stem nouns.", additional = "These nouns are differentiated by the presence of a stem-final consonant.", breadcrumb = "consonant-stem", parents = {"nouns by inflection type"}, } labels["nouns by accent paradig...'
342683
Scribunto
text/plain
local labels = {}
--------------------------------- Nouns/Pronouns/Numerals --------------------------------
labels["consonant-stem nouns"] = {
description = "{{{langname}}} consonant-stem nouns, deriving from Proto-Indo-European consonant-stem nouns.",
additional = "These nouns are differentiated by the presence of a stem-final consonant.",
breadcrumb = "consonant-stem",
parents = {"nouns by inflection type"},
}
labels["nouns by accent paradigm"] = {
description = "{{{langname}}} nouns categorized by accent position patterns across their paradigm.",
breadcrumb = "by accent paradigm",
parents = {"nouns by inflection type"},
}
labels["nouns with fixed accent"] = {
description = "{{{langname}}} nouns with accent fixed on the first syllable throughout their declension.",
parents = {"nouns by accent paradigm"},
}
labels["nouns with mobile accent"] = {
description = "{{{langname}}} nouns with accent fixed on the last syllable in some forms of their declension, but not all forms.",
parents = {"nouns by accent paradigm"},
}
labels["nouns with unspecified accent"] = {
description = "{{{langname}}} nouns with accent without a specified accent pattern.",
parents = {"nouns by accent paradigm"},
}
--[=[
Noun declension specifications. The top-level key is the stem class, and the value is an object containing properties of
the stem class. If the stem class contains the word 'GENDER' in it, it expands into labels both for a parent category
that subsumes several genders (obtained by removing the word 'GENDER' and following whitespace) as well as
gender-specific children categories (obtained by replacing the word 'GENDER' with the genders specified in the
`possible_genders` field). The stem class can contain literal Latin-script text (e.g. suffixes), which will be
italicized in breadcrumbs and titles. The fields of the property object for a given stem class are as follows:
* `gender`: The description of the gender(s) of the stem class. If preceded by ~, the description is preceded by
"most commonly". This appears in the `additional` field of the label properties. It is not used in gender-specific
children categories; instead the gender of that category is used.
* `possible_genders`: The possible genders this class occurs in. If this is specified, the word 'GENDER' must occur in
the stem class, and gender-specific variants of the stem class (with GENDER replaced by the possible genders) are
handled along with a parent category subsuming all genders.
* `breadcrumb`: The breadcrumb for the category, appearing in the trail of breadcrumbs at the top of the page. If this
stem has gender-specific variants, the breadcrumb specified here is used only for the parent category, while the
gender-specific child categories use the gender as the breadcrumb. If not specified, it defaults to `sortkey`. If that
is also not specified, or if the breadcrumb has the value "+", the stem class (without the word 'GENDER') is used.
(Use "+" when a sortkey is specified but the stem class should be used as the breadcrumb.)
* `parent`: The parent category or categories. If specified, the actual category label is formed by appending the part
of speech (e.g. "nouns"). Defaults to "POS by inflection type" where POS is the part of speech. Note that
gender-specific child categories do not use this, but always have the gender-subsuming parent stem class category as
their parent.
* `sortkey`: The sort key used for sorting this category among its parent's children. Defaults to the stem class
(without the word 'GENDER'). Note that gender-specific child categories do not use this, but always use the gender
as the sort key.
]=]
local noun_decls = {
["GENDER <o>-stem"] = {
gender = "masculine or neuter",
possible_genders = {"masculine", "neuter"},
addl = "These nouns derive from Proto-Indo-European thematic nouns ending in {{m|cel-pro|*-os}} (masculine) and {{m|cel-pro|*-om}} " ..
"(neuter).",
},
["<ā>-stem"] = {
gender = "feminine",
},
["<ī>-stem"] = {
gender = "feminine",
},
["GENDER <i>-stem"] = {
gender = "masculine, feminine or neuter",
possible_genders = {"masculine or feminine", "neuter"},
},
["GENDER <u>-stem"] = {
gender = "masculine, feminine or neuter",
possible_genders = {"masculine or feminine", "neuter"},
},
["<r>-stem"] = {
gender = "masculine or feminine",
parent = "consonant-stem",
},
["neuter <s>-stem"] = {
gender = "neuter",
parent = "consonant-stem",
},
["GENDER <n>-stem"] = {
gender = "masculine or neuter",
possible_genders = {"masculine", "neuter"},
parent = "consonant-stem",
},
["<ū>-stem"] = {
gender = "masculine or feminine",
parent = "consonant-stem",
},
["GENDER consonant-stem"] = {
gender = "masculine, feminine or neuter",
possible_genders = {"masculine or feminine", "neuter"},
},
}
require("Module:category tree/utilities").add_inflection_labels {
labels = labels,
pos = "noun",
stem_classes = noun_decls,
principal_parts = {
},
}
return {LABELS = labels}
9tmqb20ziq9ha8tx4p46ti6ihjj0nnn
Modul:category tree/lang/is
828
118574
342685
2026-05-16T03:42:29Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local unpack = unpack or table.unpack -- Lua 5.2 compatibility ----------------- Nouns ----------------- labels["nouns with irregular stem"] = { description = "{{{langname}}} nouns built using an irregular stem.", additional = "This means that the stem is not the same as what is found in the lemma. An example is " .. "{{m|is|maður||man}} and compounds, which use a stem ''mann-'' outside of the nominative singular.", parents =...'
342685
Scribunto
text/plain
local labels = {}
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
----------------- Nouns -----------------
labels["nouns with irregular stem"] = {
description = "{{{langname}}} nouns built using an irregular stem.",
additional = "This means that the stem is not the same as what is found in the lemma. An example is " ..
"{{m|is|maður||man}} and compounds, which use a stem ''mann-'' outside of the nominative singular.",
parents = {"irregular nouns"},
}
labels["nouns with multiple stems"] = {
description = "{{{langname}}} nouns built using multiple stems.",
additional = "Typically one of the stems is regular and the other is irregular and is used in alternative " ..
"variant forms.",
parents = {{name = "irregular nouns", sort = "multiple stems"}},
breadcrumb = "with multiple stems",
}
labels["nouns with actual gender different from declined gender"] = {
description = "{{{langname}}} nouns with a different gender (as determined by adjective concord) than would be expected by the pattern of declension endings.",
additional = "There are only a few examples in Icelandic, all of which are proper masculine names declined like feminine nouns, such as the names {{m|is|Sturla}} and {{m|is|Skúta}}.",
parents = {
{name = "irregular nouns", sort = "actual gender"},
},
breadcrumb = "with actual gender different from declined gender",
}
labels["scraping errors in Template:is-ndecl"] = {
description = "{{{langname}}} entries where scraping errors occurred in {{tl|is-ndecl}} or {{tl|is-noun}}.",
additional = "This generally means that {{tl|is-ndecl}} for a compound noun was unable to scrape the declension spec " ..
"from the base noun, or {{tl|is-noun}} was unable to self-scrape the declension spec from the corresponding call to " ..
"{{tl|is-ndecl}} on the same page. There are many causes of this, but often are related to misspelled or missing ID's when " ..
"self-scraping in the presence of multiple {{tl|is-ndecl}} calls, or ambiguous scraping specs when scraping another page. " ..
"The displayed error message (which does not trigger an actual Lua error) should give more information.",
parents = {"entry maintenance"},
hidden = true,
can_be_empty = true,
}
labels["nouns declined using scraped base declensions"] = {
description = "{{{langname}}} nouns, generally compounds, whose declension was derived from scraping the declension of a base noun.",
additional = "This generally means that {{tl|is-ndecl}} contained a scraping spec like {{cd|@k}} when used on a " ..
"noun like {{m|is|vinkona||female friend}} (in this case, the declension for {{m|is|kona||woman}} would be used to " ..
"construct the declension for {{m|is|vinkona}}). If scraping fails, the noun is added to " ..
"[[:Category:{{{langname}}} scraping errors in Template:is-ndecl]].",
parents = {"entry maintenance"},
hidden = true,
can_be_empty = true,
}
----------------- Adjectives -----------------
for _, compsupspec in ipairs {{"comparative", "superlative"}, {"superlative", "comparative"}} do
local compsup, other = unpack(compsupspec)
labels["adjectives with multiple " .. compsup .. "s"] = {
description = "{{{langname}}} adjectives with more than one possible " .. compsup .. " form.",
additional = "Some forms may be more common than others, and some may even be archaic. See also " ..
"{{category|Icelandic adjectives with multiple " .. other .. "s}} and " ..
"{{category|Icelandic adjectives with umlauted comparative or superlative}}.",
breadcrumb = "with multiple " .. compsup .. "s",
parents = {{name = "adjectives", sort = "multiple " .. compsup .. "s"}},
}
end
labels["adjectives with umlauted comparative or superlative"] = {
description = "{{{langname}}} adjectives with umlaut (''i''-mutation) in at least one comparative or superlative form.",
additional = "Some adjectives had their comparative in Proto-Germanic built using the affix ''-iz-'' and some " ..
"with ''-ōz-''. The former triggered umlaut/''i''-mutation, but it is not (and may never have been) predictable " ..
"which affix is/was used, and in modern Icelandic the adjectives with umlauted comparative or superlative are a " ..
"closed, irregular class.",
breadcrumb = "with umlauted comparative or superlative",
parents = {{name = "irregular adjectives", sort = "umlauted comparative or superlative"}},
}
labels["scraping errors in Template:is-adecl"] = {
description = "{{{langname}}} entries where scraping errors occurred in {{tl|is-adecl}} or {{tl|is-adj}}.",
additional = "This generally means that {{tl|is-adecl}} for a compound adjective was unable to scrape the declension spec " ..
"from the base adjective, or {{tl|is-adj}} was unable to self-scrape the declension spec from the corresponding call to " ..
"{{tl|is-adecl}} on the same page. There are many causes of this, but often are related to misspelled or missing ID's when " ..
"self-scraping in the presence of multiple {{tl|is-adecl}} calls, or ambiguous scraping specs when scraping another page. " ..
"The displayed error message (which does not trigger an actual Lua error) should give more information.",
parents = {"entry maintenance"},
hidden = true,
can_be_empty = true,
}
labels["adjectives declined using scraped base declensions"] = {
description = "{{{langname}}} adjectives, generally compounds, whose declension was derived from scraping the declension of a base adjective.",
additional = "This generally means that {{tl|is-adecl}} contained a scraping spec like {{cd|@m}} when used on a " ..
"adjective like {{m|is|aðsópsmikill||impressive}} (in this case, the declension for {{m|is|mikill||much; great}} would be used to " ..
"construct the declension for {{m|is|aðsópsmikill}}). If scraping fails, the adjective is added to " ..
"[[:Category:{{{langname}}} scraping errors in Template:is-adecl]].",
parents = {"entry maintenance"},
hidden = true,
can_be_empty = true,
}
return {LABELS = labels}
kk6y8gbogcfoq4aztkobk4p7atmg2vl
Wikikamus:tmw/kitak
4
118575
342687
2026-05-16T03:43:18Z
Barbiemaripossa
9985
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} kita{{cp|tmw|'''Kitak''' sungai petang tai|'''Kita''' pergi ke sungai petang tadi}}'
342687
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} kita{{cp|tmw|'''Kitak''' sungai petang tai|'''Kita''' pergi ke sungai petang tadi}}
kv3ylq544mw2smj1zl4nj36mr2dcyf2
Wikikamus:tmw/jala
4
118576
342692
2026-05-16T03:45:48Z
Kentangputarr
10725
Kentangputarr telah memindahkan laman [[Wikikamus:tmw/jala]] ke [[Wikikamus:tmw/jaghas]]
342692
wikitext
text/x-wiki
#LENCONG [[Wikikamus:tmw/jaghas]]
lilkx1z0r7n8njesccc4k861yn3agl4
Modul:category tree/lang/jpo
828
118578
342697
2026-05-16T03:49:19Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} ----------------- Brivla and their types ----------------- labels["brivla"] = { description = "{{{langname}}} [[brivla]], i.e. [[predicate]]s in the sense of {{w|first-order predicate logic}}, which express a relationship among arguments.", additional = "Depending on the semantics, a [[brivla]] can correspond to a [[verb]] (“X acts-on Y”), a [[noun]] (“X is-a-person-or-thing”) or [[adjective]] (“X is-...'
342697
Scribunto
text/plain
local labels = {}
local handlers = {}
----------------- Brivla and their types -----------------
labels["brivla"] = {
description = "{{{langname}}} [[brivla]], i.e. [[predicate]]s in the sense of {{w|first-order predicate logic}}, which express a relationship among arguments.",
additional = "Depending on the semantics, a [[brivla]] can correspond to a [[verb]] (“X acts-on Y”), a [[noun]] (“X is-a-person-or-thing”) or [[adjective]] (“X is-adjective”).",
parents = {"lemmas", "selma'o"},
}
labels["gismu"] = {
description = "{{{langname}}} [[gismu]], i.e. [[brivla]] ([[predicate]]s) that are basic [[root]]s, rather than being derived through [[compound]]ing or [[borrow]]ing.",
parents = {"brivla"},
}
labels["gismu with three rafsi"] = {
description = "{{{langname}}} [[gismu]] ([[root]] words) containing three corresponding [[rafsi]] ([[combining form]]s).",
additional = "Such [[gismu]] are rare; most have only one or two rafsi.",
parents = {{name = "gismu", sort = "3"}},
breadcrumb = "with three rafsi",
}
labels["lujvo"] = {
description = "{{{langname}}} [[lujvo]], i.e. [[brivla]] ([[predicate]]s) that are [[compound]] [[word]]s, made up of several [[gismu]] ([[root]]s) in their [[rafsi]] (abbreviated) form.",
parents = {"brivla"},
}
labels["fu'ivla"] = {
description = "{{{langname}}} [[fu'ivla]], i.e. [[brivla]] ([[predicate]]s) that are [[loanword]]s ([[borrow]]ed from another language) and function like [[common noun]]s.",
parents = {"brivla"},
}
labels["rafsi"] = {
description = "{{{langname}}} [[rafsi]] ([[combining form]]s) of [[gismu]] ([[root]] words), used as [[affix]]es to make [[lujvo]] ([[compound]] [[word]]s).",
additional = "Rafsi are abbreviated versions of [[gismu]] and are usually composed of three letters, while [[gismu]] are made up of five letters. " ..
"Most [[gismu]] have a single corresponding [[rafsi]], but some have two, and a small number have three.",
preceding = "{{wikibooks|Lojban/Rafsi}}",
parents = {"non-lemma forms"},
}
----------------- Cmavo and related categories -----------------
labels["cmavo"] = {
description = "{{{langname}}} [[cmavo]], i.e. [[function]] [[word]]s ([[particle]]s).",
additional = "They are structure words roughly comparable to English [[conjunction]]s, [[preposition]]s, [[article]]s, [[numeral]]s, and some [[adverb]]s.",
parents = {"lemmas"},
}
labels["selma'o"] = {
description = "{{{langname}}} [[selma'o]], i.e. sets of [[cmavo]] ([[particle]]s or [[function word]]s) that are [[grammatically]] [[interchangeable]].",
additional = "An individual [[selma'o]] can be viewed similarly to a [[part of speech]].\n\n" ..
"This is a grouping category. It contains no dictionary entries, but only categories holding the words in a specific [[selma'o]].",
parents = {{name = "Lojban language", raw = true, lang = "jbo"}, "Category:jbo:Grammar", "cmavo"},
}
table.insert(handlers, function(data)
local selmao = data.label:match("^cmavo of selma'o (.*)$")
if not selmao then
return nil
end
local params = {
singleton = {type = "boolean"},
}
local args = require("Module:parameters").process(data.args, params)
return {
description = "{{{langname}}} [[cmavo]] ([[structure]]/[[function word]]s) of the [[selma'o]] ([[structure]] [[word]] [[class]]) ''" .. selmao .. "''.",
additional = args.singleton and "''Note:'' This class is a [[singleton set]], i.e. there is only one [[cmavo]] (element) in this class." or nil,
displaytitle = "{{{langname}}} cmavo of selma'o ''" .. selmao .. "''",
breadcrumb_and_first_sort_key = "''" .. selmao .. "''",
parents = {"selma'o"},
}, true
end)
labels["cmavo clusters"] = {
description = "{{{langname}}} [[cmavo]] [[cluster]]s, i.e. [[compound]]s of two or more [[cmavo]] ([[particle]]s or [[function word]]s).",
parents = {"cmavo"},
breadcrumb_and_first_sort_key = "clusters",
}
labels["abstractors"] = {
description = "{{{langname}}} [[abstractor]]s, i.e. [[cmavo]] ([[particle]]s) that convert a [[bridi]] (Lojban sentence) into an abstract noun-like phrase.",
additional = "This allows the phrase to be embedded in another sentence, similar to a [[subordinate clause]].\n\n" ..
"All abstractors come from the [[selma'o]] (grammatical class) [[:Category:Lojban cmavo of selma'o NU|NU]].",
parents = {"cmavo"},
}
labels["elidable terminators"] = {
description = "{{{langname}}} [[elidable]] [[terminator]]s, used to [[indicate]] the end of certain [[phrase]]s.",
parents = {"cmavo"},
}
labels["indicators"] = {
description = "{{{langname}}} [[indicator]]s, i.e. [[cmavo]] ([[particle]]s) used to express the speaker's [[emotional]] [[attitude]] or add other [[metalinguistic]] [[information]] to a [[sentence]].",
additional = "Often the term ''indicator'' is used synonymously with ''[[:Category:Lojban attitudinal indicators|attitudinal indicator]]'', in which case " ..
"[[:Category:Lojban discursive indicators|discursive indicators]] and [[:Category:Lojban evidential indicators|evidential indicators]] are called simply ''discursives'' and ''evidentials''.",
parents = {"cmavo"},
}
labels["attitudinal indicators"] = {
description = "{{{langname}}} [[attitudinal]] [[indicator]]s, i.e. [[cmavo]] ([[particle]]s) used to express the speaker's [[emotional]] [[attitude]].",
additional = "These function somewhat similarly to [[interjection]]s in English but are integrated into the sentence structure.\n\n" ..
"Often attitudinal indicators are simply called ''indicators'', in which case what Wiktionary calls [[:Category:Lojban discursive indicators|discursive indicators]] " ..
"and [[:Category:Lojban evidential indicators|evidential indicators]] are called simply ''discursives'' and ''evidentials''.",
parents = {"indicators"},
breadcrumb_and_first_sort_key = "attitudinal",
}
labels["discursive indicators"] = {
description = "{{{langname}}} [[discursive]] [[indicator]]s, i.e. [[cmavo]] ([[particle]]s) used to express [[metalinguistic]] ([[discourse]]) [[information]] about a sentence, similarly to English ''[[but]]'' and ''[[also]]''.",
additional = "These are often called simply ''discursives'', and [[:Category:Lojban attitudinal indicators|attitudinal indicators]] are simply called ''indicators''.",
parents = {"indicators"},
breadcrumb_and_first_sort_key = "discursive",
}
labels["evidential indicators"] = {
description = "{{{langname}}} [[evidential]] [[indicator]]s, i.e. [[cmavo]] ([[particle]]s) used to express how the [[speaker]] came to make a given [[statement]] (e.g. by direct observation, by belief, by [[hearsay]], etc.).",
additional = "These are often called simply ''evidentials'', and [[:Category:Lojban attitudinal indicators|attitudinal indicators]] are simply called ''indicators''.",
parents = {"indicators"},
breadcrumb_and_first_sort_key = "evidential",
}
labels["letterals"] = {
description = "{{{langname}}} [[letteral]]s, i.e. [[name]]s of {{{langname}}} and non-{{{langname}}} [[letter]]s.",
parents = {"cmavo"},
}
labels["logical connectives"] = {
description = "{{{langname}}} [[logical]] [[connective]]s, similar to [[conjunction]]s in [[English]].",
parents = {"cmavo"},
}
labels["pro-forms"] = {
description = "{{{langname}}} [[pro-form]]s, used to make [[reference]] to previously specified [[phrase]]s or [[clause]]s.",
parents = {"cmavo"},
}
labels["pro-sumti"] = {
description = "{{{langname}}} [[pro-sumti]], similar to [[pronoun]]s (of various sorts) in [[English]].",
parents = {"pro-forms"},
}
labels["pro-bridi"] = {
description = "{{{langname}}} [[pro-]][[bridi]], similar to [[pro-sumti]] but which stand for entire [[sentence]]s ([[bridi]]) rather than individual [[element]]s ([[sumti]]).",
parents = {"pro-forms"},
}
labels["sumti tcita"] = {
description = "{{{langname}}} [[sumti tcita]], used to add extra non-required [[argument]]s in a [[sentence]], similar to [[preposition]]s in [[English]].",
additional = "Morphologically, [[sumti tcita]] are abbreviated (“[[modal]]”) forms of certain [[gismu]], and should not be confused with [[rafsi]].",
parents = {"cmavo"},
}
labels["tense tags"] = {
description = "{{{langname}}} [[tense]] [[tag]]s, used to specify the [[tense]] (e.g. [[past]], [[present]], [[future]]) of a [[sentence]].",
parents = {"cmavo"},
}
----------------- Cmene and related categories -----------------
labels["cmene"] = {
description = "{{{langname}}} [[cmene]], i.e. [[proper noun]]s [[law of Hobson-Jobson|respelled according to Lojban rules]].",
additional = "They are considered a separate part of speech from [[brivla]] (content words) and [[cmavo]] (function words).",
parents = {"lemmas"},
}
labels["fu'ivla cmene"] = {
description = "{{{langname}}} [[fu'ivla]] [[cmene]], i.e. [[cmene]] ([[proper noun]]s) that are also [[fu'ivla]] (single [[loanword]]s rather than [[compound]]s).",
parents = {"fu'ivla", "cmene"},
}
labels["lujvo cmene"] = {
description = "{{{langname}}} [[lujvo]] [[cmene]], i.e. [[cmene]] ([[proper noun]]s) that are also [[lujvo]] ([[compound]]s).",
parents = {"lujvo", "cmene"},
}
return {LABELS = labels, HANDLERS = handlers}
rh0ivwlckrhqpgpxhivwv7bjpxwklt7
Wikikamus:tmw/jedup
4
118579
342698
2026-05-16T03:49:33Z
Barbiemaripossa
9985
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} mendung{{cp|tmw|Langit hari ini '''jedup''' pagi tai|Langit hari ini mendung sejak pagi}}'
342698
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} mendung{{cp|tmw|Langit hari ini '''jedup''' pagi tai|Langit hari ini mendung sejak pagi}}
ne37d463zlhae6iin2ds890etdhdubz
Modul:category tree/lang/jv
828
118580
342699
2026-05-16T03:50:08Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} local lang = require("Module:languages").getByCode("jv") labels["Ngoko"] = { parents = {"Kelainan bahasa Jawa"}, } labels["Madya"] = { parents = {"Kelainan bahasa Jawa"}, } labels["Krama"] = { parents = {"Kelainan bahasa Jawa"}, } labels["Krama ngoko"] = { parents = {"Javanese terms by usage"}, } return {LABELS = labels, HANDLERS = handlers}'
342699
Scribunto
text/plain
local labels = {}
local handlers = {}
local lang = require("Module:languages").getByCode("jv")
labels["Ngoko"] = {
parents = {"Kelainan bahasa Jawa"},
}
labels["Madya"] = {
parents = {"Kelainan bahasa Jawa"},
}
labels["Krama"] = {
parents = {"Kelainan bahasa Jawa"},
}
labels["Krama ngoko"] = {
parents = {"Javanese terms by usage"},
}
return {LABELS = labels, HANDLERS = handlers}
om1wy5qmrh14k4g19y89yuts2e9xjn1
342700
342699
2026-05-16T03:50:25Z
Hakimi97
2668
342700
Scribunto
text/plain
local labels = {}
local handlers = {}
local lang = require("Module:languages").getByCode("jv")
labels["Ngoko"] = {
parents = {"Kelainan bahasa Jawa"},
}
labels["Madya"] = {
parents = {"Kelainan bahasa Jawa"},
}
labels["Krama"] = {
parents = {"Kelainan bahasa Jawa"},
}
labels["Krama ngoko"] = {
parents = {"Perkataan bahasa Jawa mengikut penggunaan"},
}
return {LABELS = labels, HANDLERS = handlers}
1ocqu5jxnm48fqyol2dw62imkn9iq8t
Modul:category tree/lang/ket
828
118581
342701
2026-05-16T03:51:02Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} local unpack = unpack or table.unpack -- Lua 5.2 compatibility labels["action nominals"] = { description = "{{{langname}}} action nominals, similar to verbal nouns.", parents = {"verbs"}, } for _, conjspec in ipairs { {"I", 1}, {"II", 2}, {"III", 3}, {"IV", 4}, {"V", 5}, {"mixed", "mixed"} } do local conj, sort = unpack(conjspec) label = conj == "mixed" and "mixed conjugation verbs" or "conjugation " .. conj...'
342701
Scribunto
text/plain
local labels = {}
local handlers = {}
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
labels["action nominals"] = {
description = "{{{langname}}} action nominals, similar to verbal nouns.",
parents = {"verbs"},
}
for _, conjspec in ipairs { {"I", 1}, {"II", 2}, {"III", 3}, {"IV", 4}, {"V", 5}, {"mixed", "mixed"} } do
local conj, sort = unpack(conjspec)
label = conj == "mixed" and "mixed conjugation verbs" or "conjugation " .. conj .. " verbs"
labels[label] = {
description = "{{{langname}}} " .. label .. ".",
parents = {{name = "verbs by inflection type", sort = sort}},
breadcrumb_and_first_sort_key = conj,
}
end
labels["adpositions"] = {
description = "{{{langname}}} adpositions.",
parents = {"lemmas"},
}
return {LABELS = labels, HANDLERS = handlers}
k5cbmf3shs4dw244h31xfhq1c111xx4
Modul:category tree/lang/kn
828
118582
342703
2026-05-16T03:51:38Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} --------------------------------- Verbs -------------------------------- labels["verbs adopted from Sanskrit"] = { description = "{{{langname}}} verbs that are taken directly from Sanskrit rather than being native formations.</br></br>For example, {{m|kn|ಜ್ವಲಿಸು}} is taken directly from {{m+|sa|ज्वलति|ಜ್ವಲತಿ}} rather than being a native formation.", parents = {{name = "verbs", sort = "Sanskrit...'
342703
Scribunto
text/plain
local labels = {}
--------------------------------- Verbs --------------------------------
labels["verbs adopted from Sanskrit"] = {
description = "{{{langname}}} verbs that are taken directly from Sanskrit rather than being native formations.</br></br>For example, {{m|kn|ಜ್ವಲಿಸು}} is taken directly from {{m+|sa|ज्वलति|ಜ್ವಲತಿ}} rather than being a native formation.",
parents = {{name = "verbs", sort = "Sanskrit"}},
}
return {LABELS = labels}
l5ebhvmdlwt4pns732b06abya2i3zce
Modul:category tree/lang/ko
828
118583
342705
2026-05-16T03:52:09Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} table.insert(handlers, function(data) local irreg_type, plpos = data.label:match("^([a-z-]+)-irregular ([a-z]+s)$") if irreg_type and (plpos == "adjectives" or plpos == "verbs") then local ital_irreg_type if #irreg_type <= 3 then ital_irreg_type = "''" .. irreg_type .. "''" else local subpos, stem = irreg_type:match("^([a-z]+)%-([a-z]+)$") if subpos then -- "determiner-h-irregular adjectives"...'
342705
Scribunto
text/plain
local labels = {}
local handlers = {}
table.insert(handlers, function(data)
local irreg_type, plpos = data.label:match("^([a-z-]+)-irregular ([a-z]+s)$")
if irreg_type and (plpos == "adjectives" or plpos == "verbs") then
local ital_irreg_type
if #irreg_type <= 3 then
ital_irreg_type = "''" .. irreg_type .. "''"
else
local subpos, stem = irreg_type:match("^([a-z]+)%-([a-z]+)$")
if subpos then
-- "determiner-h-irregular adjectives"
ital_irreg_type = subpos .. "-''" .. stem .. "''"
end
end
ital_irreg_type = ital_irreg_type or irreg_type
local displaytitle = "{{{langname}}} " .. ital_irreg_type .. "-irregular " .. plpos
return {
description = displaytitle .. ".", -- FIXME: Explain what the irregular types mean
displaytitle = displaytitle,
breadcrumb_and_first_sort_key = ital_irreg_type,
parents = {"irregular " .. plpos},
}
end
end)
return { LABELS = labels, HANDLERS = handlers }
dpris2sf1bdlt95ft9qmtpd1fza41jc
Modul:category tree/lang/ky
828
118584
342706
2026-05-16T03:52:39Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} labels["verbs with consonant-final stem"] = { description = "{{{langname}}} verbs where the stem ends in a consonant.", breadcrumb_and_first_sort_key = "consonant-final stem", parents = {"verbs"}, } labels["verbs with vowel-final stem"] = { description = "{{{langname}}} verbs where the stem ends in a vowel.", breadcrumb_and_first_sort_key = "vowel-final stem", parents = {"verbs"}, } return {LABELS = labels}'
342706
Scribunto
text/plain
local labels = {}
labels["verbs with consonant-final stem"] = {
description = "{{{langname}}} verbs where the stem ends in a consonant.",
breadcrumb_and_first_sort_key = "consonant-final stem",
parents = {"verbs"},
}
labels["verbs with vowel-final stem"] = {
description = "{{{langname}}} verbs where the stem ends in a vowel.",
breadcrumb_and_first_sort_key = "vowel-final stem",
parents = {"verbs"},
}
return {LABELS = labels}
5xm7j5y6d614st0nil3vnbmnq0wm1s4
Modul:category tree/lang/mhr
828
118585
342707
2026-05-16T03:53:07Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} local unpack = unpack or table.unpack -- Lua 5.2 compatibility local function mark_ending(ending) return (ending:gsub("<(.-)>", "{{m|mhr||%1|tr=-}}")) end --------------------------------- Verbs -------------------------------- for _, type_spec in ipairs { {"I", "1", "ending in <-ына>, <-ыда>, <-ыт> in the present indicative plural and <-ш> in the third person singular present indicative"}, {"II", "...'
342707
Scribunto
text/plain
local labels = {}
local handlers = {}
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
local function mark_ending(ending)
return (ending:gsub("<(.-)>", "{{m|mhr||%1|tr=-}}"))
end
--------------------------------- Verbs --------------------------------
for _, type_spec in ipairs {
{"I", "1", "ending in <-ына>, <-ыда>, <-ыт> in the present indicative plural and <-ш> in the third person singular present indicative"},
{"II", "2", "generally ending in <-ена>, <-еда>, <-ат> in the present indicative plural and a vowel in the third person singular present indicative"},
} do
local type, sort, ending = unpack(type_spec)
labels["type " .. type .. " conjugation verbs"] = {
description = "{{{langname}}} type " .. type .. " verbs, " .. mark_ending(ending) .. ".",
breadcrumb = "type " .. type,
parents = {{name = "verbs by inflection type", sort = sort}},
}
end
return {LABELS = labels, HANDLERS = handlers}
brhzzg3r9w6h6vu0ec25am3t5zua268
Modul:category tree/lang/moh
828
118586
342708
2026-05-16T03:53:33Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} labels["agent pronominal prefixes"] = { description = "This category contains Mohawk agent pronominal prefixes", parents = "prefixes", } labels["patient pronominal prefixes"] = { description = "This category contains Mohawk patient pronominal prefixes", parents = "prefixes", } labels["transitive pronominal prefixes"] = { description = "This category contains Mohawk transitive pronominal prefixes", parents = "prefixes", } ret...'
342708
Scribunto
text/plain
local labels = {}
labels["agent pronominal prefixes"] = {
description = "This category contains Mohawk agent pronominal prefixes",
parents = "prefixes",
}
labels["patient pronominal prefixes"] = {
description = "This category contains Mohawk patient pronominal prefixes",
parents = "prefixes",
}
labels["transitive pronominal prefixes"] = {
description = "This category contains Mohawk transitive pronominal prefixes",
parents = "prefixes",
}
return {LABELS = labels}
qq9fd65dgx17co3rh0k6ztl45rcbqwr
Modul:category tree/lang/mvi
828
118587
342709
2026-05-16T03:54:03Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} -- Orthographic properties labels["kyūjitai spellings"] = { breadcrumb = "kyūjitai", description = "{{{langname}}} terms spelled with {{ja-lg|kyūjitai}} {{ja-lg|kanji}}.", additional = "To add a word to this category, you can use {{temp|cln|mvi|kyūjitai spellings}} or {{temp|mvi-kyujitai spelling of}}.", parents = {"terms by orthographic property", "obsolete forms"} } return {LABELS = labels}'
342709
Scribunto
text/plain
local labels = {}
-- Orthographic properties
labels["kyūjitai spellings"] = {
breadcrumb = "kyūjitai",
description = "{{{langname}}} terms spelled with {{ja-lg|kyūjitai}} {{ja-lg|kanji}}.",
additional = "To add a word to this category, you can use {{temp|cln|mvi|kyūjitai spellings}} or {{temp|mvi-kyujitai spelling of}}.",
parents = {"terms by orthographic property", "obsolete forms"}
}
return {LABELS = labels}
53ynevyy69714v516nihep2l2senq95
Wikikamus:tmw/perun
4
118588
342711
2026-05-16T03:54:44Z
Barbiemaripossa
9985
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} bakar{{cp|tmw|Nenek akuk '''perun''' sampah|Nenek saya sedang '''bakar''' sampah}}'
342711
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} bakar{{cp|tmw|Nenek akuk '''perun''' sampah|Nenek saya sedang '''bakar''' sampah}}
7e10cg2jithmqmx68gku49s1vlggnzm
Modul:category tree/lang/mwl
828
118589
342712
2026-05-16T03:54:44Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local unpack = unpack or table.unpack -- Lua 5.2 compatibility ----------------------------------------------------------------------------- -- -- -- VERBS -- -- -- -------------------------------------------------------------...'
342712
Scribunto
text/plain
local labels = {}
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
-----------------------------------------------------------------------------
-- --
-- VERBS --
-- --
-----------------------------------------------------------------------------
labels["verbs by vowel alternation"] = {
description = "{{{langname}}} verbs categorized by type of vowel alternation.",
parents = {"verbs by inflection type"},
}
labels["verbs by consonant alternation"] = {
description = "{{{langname}}} verbs categorized by type of consonant alternation.",
parents = {"verbs by inflection type"},
}
-- Add labels for e.g. [[Category:Mirandese verbs with e-ie alternation]].
local vowel_alternations = {
["o-uo"] = {
stressed = {"o", "uo"},
},
["e-ie"] = {
stressed = {"e", "ie"},
},
["a-i"] = {
stressed = {"a", "i"},
},
["e-i"] = {
stressed = {"e", "i"},
},
["a-ei"] = {
stressed = {"a", "ei"},
},
["e-ei"] = {
stressed = {"e", "ei"},
},
["a-e"] = {
stressed = {"a", "e"},
},
["o-e"] = {
stressed = {"o", "e"},
},
["u-o"] = {
stressed = {"u", "o"},
},
}
for alt, obj in pairs(vowel_alternations) do
local from, to = unpack(obj.stressed)
local desc = "{{{langname}}} verbs whose root vowel changes from ''" .. from .. "'' to ''" .. to .. "'' when stressed"
desc = desc .. "."
labels["verbs with " .. alt .. " alternation"] = {
description = desc,
displaytitle = "{{{langname}}} verbs with {{m|mwl||" .. alt .. "}} alternation",
parents = {{name = "verbs by vowel alternation", sort = alt}},
breadcrumb = "{{m|mwl||" .. alt .. "}}",
}
end
-- Add labels for e.g. [[Category:Mirandese verbs with c-qu alternation]].
local consonant_alternations = {
["c-ç"] = {"c", "ç"},
["c-qu"] = {"qu", "c"},
["c-z"] = {"c", "z"},
["c-zc"] = {"c", "zc"},
["g-gu"] = {"gu", "g"},
["g-j"] = {"g", "j"},
}
for alt, frontback in pairs(consonant_alternations) do
local desc
local front, back = unpack(frontback)
desc = "{{{langname}}} verbs whose final consonant alternates between ''" .. front .. "'' before front vowels (''e'', ''i'') " ..
"and ''" .. back .. "'' before back vowels (''a'', ''o'', ''u'')."
labels["verbs with " .. alt .. " alternation"] = {
description = desc,
displaytitle = "{{{langname}}} verbs with {{m|mwl||" .. alt .. "}} alternation",
parents = {{name = "verbs by consonant alternation", sort = alt}},
breadcrumb = "{{m|mwl||" .. alt .. "}}",
}
end
labels["third-person-only verbs"] = {
description = "{{{langname}}} verbs with forms that exist only in the third person, and have no imperatives.",
parents = {{name = "defective verbs"}},
breadcrumb = "third-person-only",
}
return {LABELS = labels}
62jjsuyuwx8yr327p4qkyujeq857zoc
Modul:category tree/lang/ny
828
118590
342713
2026-05-16T03:55:17Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} labels["applicative verbs"] = { description = "{{{langname}}} verbs with formed with {{m|ny|-ira}} or {{m|ny|-era}}, which has several uses.", additional = "See [[Appendix:Chichewa verbal derivation]] for more.", topright = "{{wp|Chewa language#grammar}}<br/>{{swp|applicative voice}}", parents = "verbs", } labels["conversive verbs"] = { description = "{{{langname}}} verbs formed with {{m|ny|-ula//-ola}} or its intransitive coun...'
342713
Scribunto
text/plain
local labels = {}
labels["applicative verbs"] = {
description = "{{{langname}}} verbs with formed with {{m|ny|-ira}} or {{m|ny|-era}}, which has several uses.",
additional = "See [[Appendix:Chichewa verbal derivation]] for more.",
topright = "{{wp|Chewa language#grammar}}<br/>{{swp|applicative voice}}",
parents = "verbs",
}
labels["conversive verbs"] = {
description = "{{{langname}}} verbs formed with {{m|ny|-ula//-ola}} or its intransitive counterpart {{m|ny|-uka//-oka}}, which gives it a meaning {{lg|antonym}}ous to the root.",
additional = "See [[Appendix:Chichewa verbal derivation]] for more.",
parents = "verbs",
}
labels["reduplicative verbs"] = {
description = "{{{langname}}} verbs formed by reduplication, which typically indicates [[repetition]] over a short amount of time.",
additional = "See [[Appendix:Chichewa verbal derivation]] for more.",
parents = "verbs",
}
return {LABELS = labels}
isk2rqcuh6dlhy4ty4mbjbl3n1fd1qm
Modul:category tree/lang/odt
828
118591
342715
2026-05-16T03:55:49Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} local insert = table.insert labels["verbs by derivation type"] = { parents = {{ name = "verbs", sort = "derivation" }}, breadcrumb = "by derivation type", } labels["separable verbs"] = { description = "{{{langname}}} verbs that split into two parts in certain constructions.", parents = "verbs by derivation type", breadcrumb = "separable", } labels["basic verbs"] = { description = "{{{langname}}} verbs whi...'
342715
Scribunto
text/plain
local labels = {}
local handlers = {}
local insert = table.insert
labels["verbs by derivation type"] = {
parents = {{ name = "verbs", sort = "derivation" }},
breadcrumb = "by derivation type",
}
labels["separable verbs"] = {
description = "{{{langname}}} verbs that split into two parts in certain constructions.",
parents = "verbs by derivation type",
breadcrumb = "separable",
}
labels["basic verbs"] = {
description = "{{{langname}}} verbs which are not prefixed and cannot be separated.",
parents = "verbs by derivation type",
breadcrumb = "basic",
}
labels["prefixed verbs"] = {
parents = "verbs by derivation type",
breadcrumb = "prefixed",
}
labels["contracted verbs"] = {
-- add a description
parents = {
"verbs by inflection type",
"irregular verbs",
},
breadcrumb = "contracted",
}
labels["irregular strong verbs"] = {
-- add a description
parents = {
"verbs by inflection type",
"irregular verbs",
"strong verbs",
},
breadcrumb = "irregular strong",
}
labels["Verner alternating verbs"] = {
description = "{{{langname}}} verbs which alternate between consonants according to [[w:Verner's law|Verner's law]].",
parents = "irregular strong verbs",
breadcrumb = "Verner alternating",
}
labels["irregular weak verbs"] = {
-- add a description
parents = {
"verbs by inflection type",
"irregular verbs",
"weak verbs",
},
breadcrumb = "irregular weak",
}
labels["hiatus verbs"] = {
-- add a description
parents = {
"verbs by inflection type",
"irregular verbs",
},
breadcrumb = "hiatus",
}
labels["consonant stem nouns"] = {
description = "{{{langname}}} nouns which end in a consonant.",
parents = "nouns by inflection type",
breadcrumb = "consonant stem",
}
insert(handlers, function (data)
local separable, with = data.label:match("^(separable) verbs with (.+)$")
if separable and with then
return {
description = "{{{langname}}} verbs which separate into " .. with .. " and their stem.",
parents = "separable verbs",
breadcrumb = with,
}
end
end)
insert(handlers, function(data)
local gender, category
for _, g in ipairs({ "feminine", "masculine", "neuter" }) do
gender, category = data.label:match("^(" .. g .. ") (.+)$")
if gender then break end
end
category = category or data.label
local stem, POS = category:match("^(.-)%-stem (%w+)$")
if stem and POS then
local ret = {
description = "{{{langname}}} " .. (gender or "") .. " " .. POS .. " which decline in historical {{m|odt||-" .. stem .. "}}.",
breadcrumb = (gender and gender .. " " or "") .. "-" .. stem .. " stems",
}
if gender then
ret.parents = {
stem .. "-stem " .. POS,
"nouns by inflection type",
}
else
ret.parents = {
{ name = POS, sort = stem },
{ name = "nouns by inflection type", sort = stem },
}
end
return ret
end
end)
return { LABELS = labels, HANDLERS = handlers }
j96p1axwod9whx7cj9twchwnynd34is
Modul:category tree/lang/osx
828
118592
342716
2026-05-16T03:56:17Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} local rmatch = mw.ustring.match table.insert(handlers, function(data) local stem = rmatch(data.label, "^(.+%-stem) nouns$") if stem then return { description = "Old Saxon " .. stem .. " nouns.", breadcrumb = stem, parents = {{name = "nouns by inflection type", sort = stem}}, } end end) return {LABELS = labels, HANDLERS = handlers}'
342716
Scribunto
text/plain
local labels = {}
local handlers = {}
local rmatch = mw.ustring.match
table.insert(handlers, function(data)
local stem = rmatch(data.label, "^(.+%-stem) nouns$")
if stem then
return {
description = "Old Saxon " .. stem .. " nouns.",
breadcrumb = stem,
parents = {{name = "nouns by inflection type", sort = stem}},
}
end
end)
return {LABELS = labels, HANDLERS = handlers}
ikcfv3ew3nsi5kad8kyuokdkjuvdv52
Modul:category tree/lang/pra
828
118593
342719
2026-05-16T03:57:59Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} labels["terms with unexpected voicing"] = { description = "Prakrit terms undergoing unexpected voicing.", parents = {"terms by phonemic property"}, } labels["terms with unexpected gemination"] = { description = "Prakrit terms undergoing unexpected gemination.", parents = {"terms by phonemic property"}, } labels["terms with unexpected retroflexion"] = { description = "Prakrit terms undergoing unexpected retroflexion.", parents...'
342719
Scribunto
text/plain
local labels = {}
labels["terms with unexpected voicing"] = {
description = "Prakrit terms undergoing unexpected voicing.",
parents = {"terms by phonemic property"},
}
labels["terms with unexpected gemination"] = {
description = "Prakrit terms undergoing unexpected gemination.",
parents = {"terms by phonemic property"},
}
labels["terms with unexpected retroflexion"] = {
description = "Prakrit terms undergoing unexpected retroflexion.",
parents = {"terms by phonemic property"},
}
labels["terms with unexpected lenition"] = {
description = "Prakrit terms undergoing unexpected lenition (e.g. expected ''-kkh-'' > ''-h-'').",
parents = {"terms by phonemic property"},
}
labels["Proto-New Indo-Aryan"] = {
description = "{{{langname}}} terms reconstructed from New Indo-Aryan lemmas.",
parents = {"terms by etymology"},
}
labels["terms of the defective word group"] = {
description = "{{{langname}}} terms belonging to an Indo-Aryan group " ..
"of words that {{w|Ralph Lilley Turner|Turner}} refers to " ..
"as \"defective\". These words can express a physical, " ..
"mental, or moral defect or express a general meaning of " ..
"''[[lump]]'' or ''[[heap]]''. Such \"defective\" terms " ..
"included here do not have clear Indo-European etymology. " ..
"They are characterized by showing a wide variety of " ..
"alternative forms, perhaps indicating [[substrate]] " ..
"origin or [[taboo deformation]].",
parents = {"terms by etymology"}
}
return {LABELS = labels}
rrdinz6n9n7ol6c3mdnuwf7u3rsdq4x
Wikikamus:tmw/tungguk
4
118594
342720
2026-05-16T03:58:09Z
Kentangputarr
10725
Mencipta laman baru dengan kandungan '{{label|tmw|dialek|Bukit Lagong}}tanya {{cp|tmw|}} ==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Johor}} contoh'
342720
wikitext
text/x-wiki
{{label|tmw|dialek|Bukit Lagong}}tanya {{cp|tmw|}}
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Johor}} contoh
emalmct1l92jt6dnhr6qs46kzg129ji
342725
342720
2026-05-16T04:00:05Z
Kentangputarr
10725
342725
wikitext
text/x-wiki
{{label|tmw|dialek|Bukit Lagong}}{{cp|tmw|}}
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}}tunggu
0iyts1soiihxk4256bllz7enwv2e670
Wikikamus:tmw/koros
4
118595
342721
2026-05-16T03:58:13Z
Barbiemaripossa
9985
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} kurus{{cp|tmw|Koceng itu '''koros''' betul|Kucing itu sangat '''kurus'''}}'
342721
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} kurus{{cp|tmw|Koceng itu '''koros''' betul|Kucing itu sangat '''kurus'''}}
ewcbtjoptb7dwrr6fffi4733ek96z54
Modul:category tree/lang/roa-opt
828
118596
342724
2026-05-16T03:59:44Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local insert = table.insert labels["verbs by auxiliary"] = { description = "{{{langname}}} verbs categorized by the auxiliary they take in the composed tenses.", parents = {{name = "verbs", sort = "auxiliary"}}, } local function join_or(items) return mw.text.listToText(items, nil, " or ") end for _, aux in ipairs {"haver", "seer", {"haver", "seer"}} do local bare_aux, link_aux, nolink_aux if type(aux) == "table" then bare_...'
342724
Scribunto
text/plain
local labels = {}
local insert = table.insert
labels["verbs by auxiliary"] = {
description = "{{{langname}}} verbs categorized by the auxiliary they take in the composed tenses.",
parents = {{name = "verbs", sort = "auxiliary"}},
}
local function join_or(items)
return mw.text.listToText(items, nil, " or ")
end
for _, aux in ipairs {"haver", "seer", {"haver", "seer"}} do
local bare_aux, link_aux, nolink_aux
if type(aux) == "table" then
bare_aux = join_or(aux)
link_aux = {}
nolink_aux = {}
for _, au in ipairs(aux) do
insert(link_aux, "{{m|{{{langcode}}}|" .. au .. "}}")
insert(nolink_aux, "{{m|{{{langcode}}}||" .. au .. "}}")
end
link_aux = join_or(link_aux)
nolink_aux = join_or(nolink_aux)
else
bare_aux = aux
link_aux = "{{m|{{{langcode}}}|" .. aux .. "}}"
nolink_aux = "{{m|{{{langcode}}}||" .. aux .. "}}"
end
labels["verbs taking " .. bare_aux .. " as auxiliary"] = {
description = "{{{langname}}} verbs taking " .. link_aux .. " as auxiliary in the composed tenses.",
displaytitle = "{{{langname}}} verbs taking " .. nolink_aux .. " as auxiliary",
parents = {{name = "verbs by auxiliary", sort = bare_aux}},
breadcrumb = nolink_aux,
}
end
return {LABELS = labels}
mc3blaid5zgrib8wp96799jhc3otcrw
Wikikamus:tmw/koceng
4
118597
342726
2026-05-16T04:00:28Z
Barbiemaripossa
9985
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=kucing}} kucing{{cp|tmw|'''Koceng''' akuk lawa nah|'''Kucing''' saya sangat comel}}'
342726
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=kucing}} kucing{{cp|tmw|'''Koceng''' akuk lawa nah|'''Kucing''' saya sangat comel}}
b3qxc0ks28be3hp2bq9f6xt3bvz9c7w
Modul:category tree/lang/rsk
828
118598
342727
2026-05-16T04:00:34Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} local rmatch = mw.ustring.match --------------------------------- Adjectives -------------------------------- for _, pos in ipairs({ "adjectives", "pronouns", "determiners", "numerals", "suffixes", "adjective forms" }) do labels["hard " .. pos] = { description = "{{{langname}}} hard-stem " .. pos .. ", or " .. pos .. " ending in -и.", additional = "Where not borrowed, these adjectives are usually inheri...'
342727
Scribunto
text/plain
local labels = {}
local handlers = {}
local rmatch = mw.ustring.match
--------------------------------- Adjectives --------------------------------
for _, pos in ipairs({ "adjectives", "pronouns", "determiners", "numerals", "suffixes", "adjective forms" }) do
labels["hard " .. pos] = {
description = "{{{langname}}} hard-stem " .. pos .. ", or " .. pos .. " ending in -и.",
additional =
"Where not borrowed, these adjectives are usually inherited from Old Slovak adjectives ending in -y or -ý, although this is not always the case, particularly with Old Slovak adjectives ending in -ci, -či, -di, -si, -ši, -ti, -zi or -ži, or their long equivalents.",
breadcrumb = "hard",
parents = { { name = pos .. " by inflection type", sort = "hard-stem" } },
}
labels["soft " .. pos] = {
description = "{{{langname}}} soft-stem " .. pos .. ", or " .. pos .. " ending in -ї.",
additional =
"Where not borrowed, these adjectives are usually inherited from Old Slovak adjectives ending in -li, -lí, -ni or -ní.",
breadcrumb = "soft",
parents = { { name = pos .. " by inflection type", sort = "soft-stem" } },
}
end
--------------------------------- Nouns/Pronouns/Numerals --------------------------------
for _, pos in ipairs({ "nouns", "proper nouns", "pronouns", "numerals" }) do
local function make_label(label, description, parents, breadcrumb)
labels[pos .. " " .. label] = {
description = "{{{langname}}} " .. pos .. " " .. description,
breadcrumb = breadcrumb or label,
parents = parents,
}
end
make_label("with reducible stem",
"with a reducible stem, where an extra vowel is inserted " ..
"before the last stem consonant in the nominative singular.",
{ { name = pos .. " by inflection type", sort = "reducible stem" } }
)
labels["adjectival " .. pos] = {
description = "{{{langname}}} " .. pos .. " with adjectival endings.",
parents = { pos },
}
make_label("with irregular stem",
"with an irregular stem, which occurs in all cases except the nominative singular and maybe the accusative singular.",
{ { name = "irregular " .. pos, sort = "stem" } }
)
end
--------------------------------- Verbs --------------------------------
labels["verbs by class"] = {
description = "{{{langname}}} verbs categorized by class.",
parents = { { name = "verbs by inflection type", sort = "class" } },
}
table.insert(handlers, function(data)
local class = rmatch(data.label, "^class ([0-9]+) verbs$")
if class then
return {
description = "{{{langname}}} class " .. class .. " verbs.",
breadcrumb = class,
parents = { { name = "verbs by class", sort = class } },
}
end
end)
return { LABELS = labels, HANDLERS = handlers }
cwsgxpv4ekvkrwq7cjhasxjuto1c5qx
Modul:category tree/lang/rue
828
118599
342729
2026-05-16T04:01:21Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} local rfind = mw.ustring.find local rmatch = mw.ustring.match local unpack = unpack or table.unpack -- Lua 5.2 compatibility --------------------------------- Adjectives -------------------------------- labels["adjectives by stem type and stress"] = { description = "Carpathian Rusyn adjectives categorized by stem type and stress. " .. "Unlike for nouns, adjectives are consistently either stem-stressed or endi...'
342729
Scribunto
text/plain
local labels = {}
local handlers = {}
local rfind = mw.ustring.find
local rmatch = mw.ustring.match
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
--------------------------------- Adjectives --------------------------------
labels["adjectives by stem type and stress"] = {
description = "Carpathian Rusyn adjectives categorized by stem type and stress. " ..
"Unlike for nouns, adjectives are consistently either stem-stressed or ending-stressed.",
parents = {{name = "adjectives by inflection type", sort = "stem type and stress"}},
}
local adj_stem_expl = {
["soft-stem"] = "a soft consonant",
["hard-stem"] = "a hard consonant",
["possessive"] = "-їв, -ів or -ин",
}
local adj_decl_endings = {
["hard stem-stressed"] = {"-ый", "-а", "-е", "-ы"},
["hard ending-stressed"] = {"-ы́й", "-а́", "-е́", "-ы́"},
["soft"] = {"-їй/ій", "-я", "-є", "-ї"},
["possessive"] = {"-", "-а", "-е", "-ы"},
}
table.insert(handlers, function(data)
-- FIXME! Harmonize stem types here with stem types in 'adj_decl_endings' (used
-- directly in adjectival nouns).
local function stem_to_ending_type(stem, stress)
if stem == "hard-stem" and stress == "stem" then
return "hard stem-stressed"
elseif stem == "hard-stem" and stress == "ending" then
return "hard ending-stressed"
elseif stress == "" then
if stem == "soft-stem" then
return "soft"
elseif stem == "possessive" then
return "possessive"
end
end
return nil
end
local breadcrumb, stem, stress = rmatch(data.label, "^(([^ ]*) ([^ *]*)-stressed) adjectives")
if not breadcrumb then
breadcrumb, stem = rmatch(data.label, "^(([^ ]*)) adjectives")
stress = ""
end
if breadcrumb then
local ending_type = stem_to_ending_type(stem, stress)
if ending_type and adj_stem_expl[stem] then
local m, f, n, p = unpack(adj_decl_endings[ending_type])
local stresstext = stress == "stem" and
"The adjectives in this category have stress on the stem." or
stress == "ending" and
"The adjectives in this category have stress on the endings." or
"All adjectives of this type have stress on the stem."
local endingtext = "ending in the nominative in masculine singular " .. m ..
", feminine singular " .. f .. ", neuter singular " .. p .. " and plural " ..
p .. "."
local stemtext = " The stem ends in " .. adj_stem_expl[stem] .. "."
return {
description = "Carpathian Rusyn " .. stem .. " adjectives, " .. endingtext .. stemtext .. " " .. stresstext,
breadcrumb = breadcrumb,
parents = {"adjectives by stem type and stress"},
}
end
end
end)
return {LABELS = labels, HANDLERS = handlers}
6o7ifdxrbzj709qg4jqgg2u0k45ine9
Modul:category tree/lang/sd
828
118600
342730
2026-05-16T04:01:59Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} local u = mw.ustring.char local unpack = unpack or table.unpack -- Lua 5.2 compatibility for _, pos in ipairs({"nouns", "verbs", "adjectives"}) do labels[pos .. " with phonetic respelling"] = { description = "{{{langname}}} " .. pos .. " using phonetic respelling in their " .. (pos == "verbs" and "conjugation" or "declension") .. " tables due to irregular or unpredictable pronunciations.", additional...'
342730
Scribunto
text/plain
local labels = {}
local handlers = {}
local u = mw.ustring.char
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
for _, pos in ipairs({"nouns", "verbs", "adjectives"}) do
labels[pos .. " with phonetic respelling"] = {
description = "{{{langname}}} " .. pos .. " using phonetic respelling in their " ..
(pos == "verbs" and "conjugation" or "declension") ..
" tables due to irregular or unpredictable pronunciations.",
additional = [=[
===See also===
* [[Wiktionary:Sindhi transliteration]]
* [[Module:sd-Arab-translit]]]=],
parents = {
"terms by orthographic property",
"terms by phonemic property",
{name = pos, sort = "phonetic respelling"},
},
}
end
--------------------------------- Nouns --------------------------------
labels["nouns by gender and stem type"] = {
description = "{{{langname}}} nouns categorized by gender and stem type.",
parents = {{name = "nouns", sort = "gender and stem type"}},
breadcrumb = "by gender and stem type",
}
labels["nouns with irregular plural stem"] = {
description = "{{{langname}}} nouns with an irregular plural stem.",
parents = {{name = "nouns", sort = "irregular plural stem"}},
breadcrumb = "with irregular plural stem",
}
table.insert(handlers, function(data)
local gender, stem, pos
gender, stem, pos = data.label:match("^([a-z]+ine) (independent unmarked [^ %-]*%-stem) (.*)s$")
if not gender then
gender, stem, pos = data.label:match("^([a-z]+ine) (independent [^ %-]*%-stem) (.*)s$")
end
if not gender then
gender, stem, pos = data.label:match("^([a-z]+ine) (unmarked [^ %-]*%-stem) (.*)s$")
end
if not gender then
gender, stem, pos = data.label:match("^([a-z]+ine) ([^ %-]*%-stem) (.*)s$")
end
if gender and pos == "noun" then
local desc = "{{{langname}}} " .. gender .. " " .. stem .. " " .. pos .. "s."
local additional
if stem:find("independent") then
additional = "* Here, 'independent' means that the stem ending directly " ..
"follows a vowel and so uses the independent Devanagari form of the vowel that begins the ending."
end
if stem:find("unmarked") then
additional = additional and additional .. "\n" or ""
additional = additional .. "* Here, 'unmarked' means that the endings are added onto the full direct singular form " ..
"without removing the stem ending (although final nasalization, if present, will move to the ending)."
end
return {
description = desc,
additional = additional,
parents = {
{name = pos .. "s by gender and stem type", sort = stem:gsub("independent ", ""):gsub("unmarked ", "")}
},
breadcrumb = gender .. " " .. stem,
}
end
end)
return {LABELS = labels, HANDLERS = handlers}
j53a2lg30txuv9pssswc6k8yknmxeri
Modul:category tree/lang/sh
828
118601
342732
2026-05-16T04:03:07Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} local lang = require("Module:languages").getByCode("sh") local rfind = mw.ustring.find local rmatch = mw.ustring.match for _, pos in ipairs { "nouns" } do labels["masculine animate " .. pos] = { description = "{{{langname}}} masculine " .. pos .. " that refer to humans or animals.", breadcrumb = "animate", parents = {{name = "masculine " .. pos, sort = "animate"}}, } labels["masculine inanimate " .. p...'
342732
Scribunto
text/plain
local labels = {}
local handlers = {}
local lang = require("Module:languages").getByCode("sh")
local rfind = mw.ustring.find
local rmatch = mw.ustring.match
for _, pos in ipairs { "nouns" } do
labels["masculine animate " .. pos] = {
description = "{{{langname}}} masculine " .. pos .. " that refer to humans or animals.",
breadcrumb = "animate",
parents = {{name = "masculine " .. pos, sort = "animate"}},
}
labels["masculine inanimate " .. pos] = {
description = "{{{langname}}} masculine " .. pos .. " that refer to inanimate objects.",
breadcrumb = "inanimate",
parents = {{name = "masculine " .. pos, sort = "inanimate"}},
}
end
return {LABELS = labels}
482dpk5ewtb3mh92elxn8o2k8t10ll1
Modul:category tree/lang/skr
828
118602
342733
2026-05-16T04:03:37Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} labels["terms with unexpected gemination"] = { description = "Saraiki terms with an unexpected lengthening of a consonant.", parents = {"terms by phonemic property"}, } labels["terms with unexpected lenition"] = { description = "Saraiki terms with an unexpected weakening of a consonant.", parents = {"terms by phonemic property"}, } return {LABELS = labels}'
342733
Scribunto
text/plain
local labels = {}
labels["terms with unexpected gemination"] = {
description = "Saraiki terms with an unexpected lengthening of a consonant.",
parents = {"terms by phonemic property"},
}
labels["terms with unexpected lenition"] = {
description = "Saraiki terms with an unexpected weakening of a consonant.",
parents = {"terms by phonemic property"},
}
return {LABELS = labels}
9s18dih6nz8zx2mx76n7jec1hj10li0
Modul:category tree/lang/sw
828
118603
342734
2026-05-16T04:04:20Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} for i = 1, 18 do labels["class " .. require("Module:roman numerals").arabic_to_roman(i) .. " nouns"] = { description = "Swahili nouns that belong to class " .. require("Module:roman numerals").arabic_to_roman(i) .. ".", breadcrumb = class, umbrella = false, parents = {{name = "nouns by class", sort = i}}, } end labels["class I/IX nouns"] = { description = "Swahili nouns that belong to class I, but have possessive adjectiv...'
342734
Scribunto
text/plain
local labels = {}
for i = 1, 18 do
labels["class " .. require("Module:roman numerals").arabic_to_roman(i) .. " nouns"] = {
description = "Swahili nouns that belong to class " .. require("Module:roman numerals").arabic_to_roman(i) .. ".",
breadcrumb = class,
umbrella = false,
parents = {{name = "nouns by class", sort = i}},
}
end
labels["class I/IX nouns"] = {
description = "Swahili nouns that belong to class I, but have possessive adjectives agree in class IX.",
breadcrumb = class,
umbrella = false,
parents = {{name = "nouns by class", sort = "1a"}},
}
return {LABELS = labels}
793uvu3ec75cztasi9wb4f9ccpsqqyc
Modul:category tree/lang/syc
828
118604
342735
2026-05-16T04:04:50Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} labels["invariant nouns"] = { description = "{{{langname}}} nouns for which number is not marked, and which do not change form/pronunciation in the emphatic plural.", breadcrumb = "invariant", parents = {"nouns with irregular plurals"}, } return {LABELS = labels}'
342735
Scribunto
text/plain
local labels = {}
labels["invariant nouns"] = {
description = "{{{langname}}} nouns for which number is not marked, and which do not change form/pronunciation in the emphatic plural.",
breadcrumb = "invariant",
parents = {"nouns with irregular plurals"},
}
return {LABELS = labels}
mcpem3yzxl12ix52kf5j8atcxry1am2
Modul:category tree/lang/szl
828
118605
342736
2026-05-16T04:05:23Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} labels["Phonetic Silesian Alphabet spellings"] = { description = "{{{langname}}} terms spelled in the Phonetic Silesian Alphabet.", additional = "Entries can be added to this category with {{tl|szl-phonetic}}.", topright = "{{wp|szl:Ślōnski alfabet fōnetyczny}}", parents = "terms by orthographic property", } labels["Steuer spellings"] = { description = "{{{langname}}} terms spelled in the Steuer system.", additional = "Entr...'
342736
Scribunto
text/plain
local labels = {}
labels["Phonetic Silesian Alphabet spellings"] = {
description = "{{{langname}}} terms spelled in the Phonetic Silesian Alphabet.",
additional = "Entries can be added to this category with {{tl|szl-phonetic}}.",
topright = "{{wp|szl:Ślōnski alfabet fōnetyczny}}",
parents = "terms by orthographic property",
}
labels["Steuer spellings"] = {
description = "{{{langname}}} terms spelled in the Steuer system.",
additional = "Entries can be added to this category with {{tl|szl-Steuer}}.",
topright = "{{wp|Silesian orthography#Steuer's alphabet}}",
parents = "terms by orthographic property",
}
labels["short adjective forms"] = {
description = "{{{langname}}} adjective forms which are used in predicates.",
parents = "adjective forms"
}
return {LABELS = labels}
fbqiqbhojmvedz2g5pbvuthijmgmuml
Wikikamus:tmw/majok
4
118606
342737
2026-05-16T04:05:40Z
Sakura Comel
10752
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} merajuk'
342737
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} merajuk
3m7jxvjmir1a6aq8ydq6r53qej8b8z2
Modul:category tree/lang/te
828
118607
342738
2026-05-16T04:05:56Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} --------------------------------- Verbs -------------------------------- labels["verbs adopted from Sanskrit"] = { description = "{{{langname}}} verbs that are taken directly from Sanskrit rather than being native formations.</br></br>For example, {{m|te|జ్వలించు}} is taken directly from {{m+|sa|ज्वलति|జ్వలతి}} rather than being a native formation.", parents = {{name = "verbs", sort = "Sansk...'
342738
Scribunto
text/plain
local labels = {}
--------------------------------- Verbs --------------------------------
labels["verbs adopted from Sanskrit"] = {
description = "{{{langname}}} verbs that are taken directly from Sanskrit rather than being native formations.</br></br>For example, {{m|te|జ్వలించు}} is taken directly from {{m+|sa|ज्वलति|జ్వలతి}} rather than being a native formation.",
parents = {{name = "verbs", sort = "Sanskrit"}},
}
return {LABELS = labels}
r381ktyfz7u86k6rweebewlege45cc8
Modul:category tree/lang/ulw
828
118608
342739
2026-05-16T04:06:25Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local conjugations = { ["-da-"] = "{{{langname}}} verbs with thematic ''-d-'' (in all forms).", ["-wa-"] = "{{{langname}}} verbs with thematic ''-w-'' (in all forms).", ["-ra-"] = "{{{langname}}} verbs with thematic ''-r-'' (in all forms).", ["-ta-"] = "{{{langname}}} verbs with thematic ''-t-'' (in some forms).", ["-pa-"] = "{{{langname}}} verbs with thematic ''-p-'' (in some forms).", ["∅"] = "{{{langname}}} verbs lacking a...'
342739
Scribunto
text/plain
local labels = {}
local conjugations = {
["-da-"] = "{{{langname}}} verbs with thematic ''-d-'' (in all forms).",
["-wa-"] = "{{{langname}}} verbs with thematic ''-w-'' (in all forms).",
["-ra-"] = "{{{langname}}} verbs with thematic ''-r-'' (in all forms).",
["-ta-"] = "{{{langname}}} verbs with thematic ''-t-'' (in some forms).",
["-pa-"] = "{{{langname}}} verbs with thematic ''-p-'' (in some forms).",
["∅"] = "{{{langname}}} verbs lacking a thematic consonant.",
}
local sorting = {["-da-"] = " da", ["-wa-"] = " wa", ["-ra-"] = " ra", ["-ta-"] = " ta", ["-pa-"] = " pa", ["∅"] = " 0"}
for conj, conjdesc in pairs(conjugations) do
local class_italics = conj == "∅" and "∅" or "{{m|{{{langcode}}}||" .. conj .. "}}"
labels["class " .. conj .. " verbs"] = {
description = conjdesc,
displaytitle = "{{{langname}}} class " .. class_italics .. " verbs",
parents = {
{name = "verbs by inflection type", sort = sorting[conj]},
},
breadcrumb = class_italics,
}
end
return {LABELS = labels}
358ltzlc7b310nkzkixgcxv8m1u52s1
Modul:category tree/lang/vec
828
118609
342741
2026-05-16T04:06:48Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} ----------------------------------------------------------------------------- -- -- -- VERBS -- -- -- ----------------------------------------------------------------------------- labels["verbs by conjugation"] = { descript...'
342741
Scribunto
text/plain
local labels = {}
-----------------------------------------------------------------------------
-- --
-- VERBS --
-- --
-----------------------------------------------------------------------------
labels["verbs by conjugation"] = {
description = "{{{langname}}} verbs categorized by conjugation.",
breadcrumb = "by conjugation",
parents = {{name = "verbs by inflection type", sort = "conjugation"}},
}
labels["first conjugation verbs"] = {
description = "{{{langname}}} first conjugation verbs, whose infinitive ends in ''-ar''.",
breadcrumb = "1st",
parents = {{name = "verbs by conjugation", sort = "1st"}},
}
labels["second conjugation verbs"] = {
description = "{{{langname}}} second conjugation verbs, whose infinitive ends in ''-ar'', ''-er'' or ''-dur''.",
breadcrumb = "2nd",
parents = {{name = "verbs by conjugation", sort = "2nd"}},
}
labels["third conjugation verbs"] = {
description = "{{{langname}}} second conjugation verbs, whose infinitive ends in ''-ir''.",
breadcrumb = "3nd",
parents = {{name = "verbs by conjugation", sort = "3nd"}},
}
labels["verbs taking èser as auxiliary"] = {
description = "{{{langname}}} verbs that can take {{m|vec|èser}} as their auxiliary verb when forming compound tenses and used intransitively.",
additional = "They may not always take {{m|vec|èser}} under these circumstances, however. Check the entries themselves for more information.",
displaytitle = "{{{langname}}} verbs taking {{m|vec||èser}} as auxiliary",
parents = {{name = "verbs by inflection type", sort = "èser as auxiliary"}},
breadcrumb = "{{m|vec||èser}} as auxiliary",
}
labels["verbs taking aver or èser as auxiliary"] = {
description = "{{{langname}}} verbs that can take {{m|vec|aver}} or {{m|vec|èser}} as their auxiliary verb when forming compound tenses and used intransitively.",
displaytitle = "{{{langname}}} verbs taking {{m|vec||aver}} or {{m|vec||èser}} as auxiliary",
parents = {{name = "verbs by inflection type", sort = "aver or èser as auxiliary"}},
breadcrumb = "{{m|vec||aver}} or {{m|vec||èser}} as auxiliary",
}
labels["combined forms"] = {
description = "{{{langname}}} combinations of verbs with cliticized pronouns.",
parents = {"verb forms"},
}
return {LABELS = labels}
15hf8y05djkz2pyu19f783efet6r5xf
Modul:category tree/lang/zle-ono
828
118610
342742
2026-05-16T04:07:18Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} local en_utilities_module = "Module:en-utilities" --------------------------------- Adjectives -------------------------------- local adj_like_poses = {"adjective", "pronoun", "determiner", "numeral", "suffix"} for _, pos in ipairs(adj_like_poses) do local plpos = require(en_utilities_module).pluralize(pos) labels["hard " .. plpos] = { description = "{{{langname}}} hard-stem " .. plpos .. ".", breadcrumb...'
342742
Scribunto
text/plain
local labels = {}
local handlers = {}
local en_utilities_module = "Module:en-utilities"
--------------------------------- Adjectives --------------------------------
local adj_like_poses = {"adjective", "pronoun", "determiner", "numeral", "suffix"}
for _, pos in ipairs(adj_like_poses) do
local plpos = require(en_utilities_module).pluralize(pos)
labels["hard " .. plpos] = {
description = "{{{langname}}} hard-stem " .. plpos .. ".",
breadcrumb = "hard",
parents = {{name = plpos .. " by inflection type", sort = "hard-stem"}},
}
labels["soft " .. plpos] = {
description = "{{{langname}}} soft-stem " .. plpos .. ".",
breadcrumb = "soft",
parents = {{name = plpos .. " by inflection type", sort = "soft-stem"}},
}
labels[plpos .. " with short forms"] = {
description = "{{{langname}}} " .. plpos .. " with short-form inflections.",
breadcrumb = "with short forms",
parents = {{name = plpos .. " by inflection type", sort = "short forms"}},
}
end
--------------------------------- Nouns/Pronouns/Numerals --------------------------------
--[=[
Noun declension specifications. The top-level key is the stem class, and the value is an object containing properties of
the stem class. If the stem class contains the word 'GENDER' in it, it expands into labels both for a parent category
that subsumes several genders (obtained by removing the word 'GENDER' and following whitespace) as well as
gender-specific children categories (obtained by replacing the word 'GENDER' with the genders specified in the
`possible_genders` field). The fields of the property object for a given stem class are as follows:
* `gender`: The description of the gender(s) of the stem class. If preceded by ~, the description is preceded by
"most commonly". This appears in the `additional` field of the label properties. It is not used in gender-specific
children categories; instead the gender of that category is used.
* `possible_genders`: The possible genders this class occurs in. If this is specified, the word 'GENDER' must occur in
the stem class, and gender-specific variants of the stem class (with GENDER replaced by the possible genders) are
handled along with a parent category subsuming all genders.
* `singular`: The nominative singular ending. Use <...> to enclose Old Church Slavonic text; it will be given the
appropriate language tag and italicized.
* `GENDER_singular`: The nominative singular ending for the GENDER variant of this stem class. If not specified, the
value of `singular` is used.
* `plural`: The nominative plural ending.
* `GENDER_singular`: The nominative plural ending for the GENDER variant of this stem class. If not specified, the
value of `plural` is used.
* `breadcrumb`: The breadcrumb for the category, appearing in the trail of breadcrumbs at the top of the page. If this
stem has gender-specific variants, the breadcrumb specified here is used only for the parent category, while the
gender-specific child categories use the gender as the breadcrumb. If not specified, it defaults to `sortkey`. If that
is also not specified, or if the breadcrumb has the value "+", the stem class (without the word 'GENDER') is used.
(Use "+" when a sortkey is specified but the stem class should be used as the breadcrumb.)
* `parent`: The parent category. If specified, the actual category label is formed by appending the part of speech (e.g.
"nouns"). Defaults to "POS by inflection type" where POS is the part of speech. Note that gender-specific child
categories do not use this, but always have the gender-subsuming parent stem class category as their parent.
* `sortkey`: The sort key used for sorting this category among its parent's children. Defaults to the stem class
(without the word 'GENDER'). Note that gender-specific child categories do nto use this, but always use the gender
as the sort key.
]=]
local noun_decls = {
["hard GENDER a-stem"] = {
gender = "~feminine",
possible_genders = {"masculine", "feminine"},
singular = "<-а>",
plural = "<-ꙑ>",
breadcrumb = "+",
sortkey = "a-stem",
},
["soft GENDER a-stem"] = {
gender = "~feminine",
possible_genders = {"masculine", "feminine"},
singular = "<-ꙗ> (or <-а> after an unpaired palatal consonant), or <-ꙑни>, or sometimes <-ии>/<-ьи>",
masculine_singular = "<-ꙗ> (or <-а> after an unpaired palatal consonant), or <-ии>/<-ьи>",
plural = "<-ѩ> (or <-ѧ> after an unpaired palatal consonant)",
breadcrumb = "+",
sortkey = "a-stem",
},
["GENDER i-stem"] = {
gender = "~feminine (sometimes masculine)",
possible_genders = {"masculine", "feminine"},
singular = "<-ь>",
plural = "<-и> (usually <-ьѥ> or <-иѥ> when masculine)",
masculine_plural = "<-ьѥ> or <-иѥ>",
feminine_plural = "<-и>",
},
["GENDER ī-stem"] = {
gender = "~feminine (masculine when referring to a person)",
possible_genders = {"masculine", "feminine"},
singular = "<-ии> or <-ьи>",
plural = "<-иѭ> or <-ьѩ>",
parent = "soft a-stem",
},
["hard GENDER o-stem"] = {
gender = "masculine or neuter",
possible_genders = {"masculine", "neuter"},
singular = "<-е> when masculine, <-о> when neuter",
masculine_singular = "<-ъ>",
neuter_singular = "<-о>",
plural = "<-и> when masculine, <-а> when neuter",
masculine_plural = "<-и>",
neuter_plural = "<-а>",
breadcrumb = "+",
sortkey = "o-stem",
},
["soft GENDER o-stem"] = {
gender = "masculine or neuter",
possible_genders = {"masculine", "neuter"},
singular = "<-ь> when masculine, <-ѥ> (or <-е> after an unpaired palatal consonant) when neuter",
masculine_singular = "<-ь>",
neuter_singular = "<-ѥ> (or <-е> after an unpaired palatal consonant)",
plural = "<-и> when masculine, <-ꙗ> (or <-а> after an unpaired palatal consonant) when neuter",
masculine_plural = "<-и>",
neuter_plural = "<-ꙗ> (or <-а> after an unpaired palatal consonant)",
breadcrumb = "+",
sortkey = "o-stem",
},
["u-stem"] = {
gender = "~masculine",
singular = "<-ъ>",
plural = "<-ове>",
},
["GENDER n-stem"] = {
gender = "~masculine (nouns in <-мѧ> are neuter)",
possible_genders = {"masculine", "neuter"},
singular = "<-ꙑ>, <-нь>, or <-мѧ>",
masculine_singular = "<-ꙑ> or <-нь>",
neuter_singular = "<-мѧ>",
plural = "<-не> (or <-мена> if ending in <-мѧ)>",
masculine_plural = "<-не>",
neuter_plural = "<-мена>",
parent = "consonant-stem",
},
["nt-stem"] = {
gender = "~neuter",
singular = "<-ѧ>",
plural = "<-ѧта>",
parent = "consonant-stem",
},
["r-stem"] = {
gender = "~feminine",
singular = "<-и>",
plural = "<-ери>",
parent = "consonant-stem",
},
["s-stem"] = {
gender = "~neuter",
singular = "<-о> (<-е> after a palatal consonant)",
plural = "<-еса>",
parent = "consonant-stem",
},
["v-stem"] = {
gender = "~feminine",
singular = "<-ꙑ>",
plural = "<-ъви>",
parent = "consonant-stem",
},
}
for _, pos in ipairs({"nouns"}) do
local sgpos = pos:gsub("s$", "")
labels["consonant-stem " .. pos] = {
description = "{{{langname}}} consonant-stem " .. pos .. ".",
additional = "This is not a single declension class, but a set of related declension classes, with endings that are"
.. " largely identical outside of the nominative, accusative and vocative.",
breadcrumb = "consonant-stem",
parents = pos .. " by inflection type",
}
local function mark_ending(ending)
return (ending:gsub("<(.-)>", "{{m|zle-ono||%1|tr=-}}"))
end
for full_decl, spec in pairs(noun_decls) do
local most_commonly, gender = spec.gender:match("^(~)(.*)$")
gender = gender or spec.gender
local subgenders = spec.possible_genders
local decl
if subgenders then
if not full_decl:find("GENDER") then
error(("Internal error: Declension spec '%s' needs to have the word 'GENDER' in it, in all caps"):format(full_decl))
end
decl = full_decl:gsub("GENDER ", "")
else
decl = full_decl
end
local breadcrumb = spec.breadcrumb or spec.sortkey or "+"
if breadcrumb == "+" then
breadcrumb = decl
end
labels[decl .. " " .. pos] = {
description = "{{{langname}}} " .. decl .. " " .. pos .. ".",
additional = ("These %s normally end in the singular in %s; in the plural in %s; and are %s%s."):format(
pos, mark_ending(spec.singular), mark_ending(spec.plural), most_commonly and "most commonly " or "",
mark_ending(gender)),
breadcrumb = breadcrumb,
parents = {{
name = spec.parent and spec.parent .. " " .. pos or pos .. " by inflection type",
sort = spec.sortkey or decl,
}},
}
if subgenders then
for _, subgender in ipairs(subgenders) do
local gender_decl = full_decl:gsub("GENDER", subgender)
labels[gender_decl .. " " .. pos] = {
description = "{{{langname}}} " .. gender_decl .. " " .. pos .. ".",
additional = ("These %s normally end in the singular in %s; in the plural in %s; and are %s."):format(
pos, mark_ending(spec[subgender .. "_singular"] or spec.singular),
mark_ending(spec[subgender .. "_plural"] or spec.plural), subgender),
breadcrumb = subgender,
parents = {{
name = decl .. " " .. pos,
sort = subgender,
}},
}
end
end
end
end
return {LABELS = labels, HANDLERS = handlers}
oghn99ypq3ajyyv20gnpbj5t2uf1bye
Modul:category tree/lang/zle-ort
828
118611
342743
2026-05-16T04:07:46Z
Hakimi97
2668
Mencipta laman baru dengan kandungan 'local labels = {} local handlers = {} --------------------------------- Nouns/Pronouns/Numerals -------------------------------- local noun_decls = { ["hard a-stem"] = { singular = "-а", plural = "-ы", gender = "feminine", sortkey = "a-stem", }, ["soft a-stem"] = { singular = "-ꙗ", plural = "-и", -- ? FIXME gender = "feminine", sortkey = "a-stem", }, ["masculine i-stem"] = { singular = "-ь", plural = "-?", gender = "m...'
342743
Scribunto
text/plain
local labels = {}
local handlers = {}
--------------------------------- Nouns/Pronouns/Numerals --------------------------------
local noun_decls = {
["hard a-stem"] = {
singular = "-а",
plural = "-ы",
gender = "feminine",
sortkey = "a-stem",
},
["soft a-stem"] = {
singular = "-ꙗ",
plural = "-и", -- ? FIXME
gender = "feminine",
sortkey = "a-stem",
},
["masculine i-stem"] = {
singular = "-ь",
plural = "-?",
gender = "masculine",
sortkey = "i-stem",
},
["feminine i-stem"] = {
singular = "-ь",
plural = "-?",
gender = "feminine",
sortkey = "i-stem",
},
--[==[
["ī-stem"] = {
singular = "-ии or -ьи",
plural = "-иѭ or -ьѩ",
gender = "feminine (masculine when referring to a person)",
parent = "soft a-stem",
},
]==]
["hard masculine o-stem"] = {
singular = "-ъ",
plural = "-и",
gender = "masculine",
sortkey = "o-stem",
},
["soft masculine o-stem"] = {
singular = "-ь",
plural = "-и", -- ? FIXME
gender = "masculine",
sortkey = "o-stem",
},
["hard neuter o-stem"] = {
singular = "-о",
plural = "-а",
gender = "neuter",
sortkey = "o-stem",
},
["soft neuter o-stem"] = {
singular = "-e",
plural = "-ꙗ", -- ? FIXME
gender = "neuter",
sortkey = "o-stem",
},
--[==[
["u-stem"] = {
singular = "a hard stem consonant",
plural = "-оvé",
gender = "masculine",
},
["masculine n-stem"] = {
singular = "-n",
plural = "-ni",
gender = "masculine",
parent = "consonant-stem",
},
["neuter n-stem"] = {
singular = "-ě",
plural = "-ena",
gender = "neuter",
parent = "consonant-stem",
},
["masculine t-stem"] = {
singular = "et",
plural = "-ty",
gender = "masculine",
parent = "consonant-stem",
},
["neuter t-stem"] = {
singular = "-ě",
plural = "-ata",
gender = "neuter",
parent = "consonant-stem",
},
["r-stem"] = {
singular = "-i",
plural = "-ery",
gender = "feminine",
parent = "consonant-stem",
},
["v-stem"] = {
singular = "-ev",
plural = "-ve",
gender = "feminine",
parent = "consonant-stem",
}
]==]
}
for _, pos in ipairs({"nouns"}) do
labels[pos .. " by stem type and gender"] = {
description = "{{{langname}}} " .. pos .. " categorized by stem type and gender.",
parents = {{name = pos .. " by inflection type", sort = "stem type and gender"}},
}
labels["consonant-stem " .. pos] = {
description = "{{{langname}}} consonant-stem " .. pos .. ".",
additional = "This is not a single declension class, but a set of related declension classes, with endings that are"
.. " largely identical outside of the nominative, accusative and vocative.",
breadcrumb = "consonant-stem",
parents = pos .. " by stem type and gender",
}
for decl, spec in pairs(noun_decls) do
labels[decl .. " " .. pos] = {
description = "{{{langname}}} " .. decl .. " " .. pos .. ".",
additional = "These " .. pos .. " normally end in " .. spec.singular .. " in the singular and " .. spec.plural .. " in the"
.. " plural, and are most commonly " .. spec.gender .. ".",
breadcrumb = decl,
parents = {{
name = spec.parent and spec.parent .. " " .. pos or pos .. " by stem type and gender",
sort = spec.sortkey or decl,
}},
}
end
end
--------------------------------- Adjectives --------------------------------
local adj_like_poses = {"adjectives", "pronouns", "determiners", "numerals", "suffixes"}
for _, plpos in ipairs(adj_like_poses) do
labels["hard " .. plpos] = {
description = "{{{langname}}} hard " .. plpos .. ".",
parents = {{name = plpos .. " by inflection type", sort = "hard-stem"}},
}
labels["soft " .. plpos] = {
description = "{{{langname}}} soft " .. plpos .. ".",
parents = {{name = plpos .. " by inflection type", sort = "soft-stem"}},
}
labels[plpos .. " with short forms"] = {
description = "{{{langname}}} " .. plpos .. " with short-form inflections.",
parents = {{name = plpos .. " by inflection type", sort = "short forms"}},
}
end
return {LABELS = labels, HANDLERS = handlers}
bx7rr5z37zrtiomq06885427pz6qppa
Modul:category tree/lang/jpx
828
118612
342747
2026-05-16T04:09:00Z
Hakimi97
2668
Hakimi97 telah memindahkan laman [[Modul:category tree/lang/jpx]] ke [[Modul:category tree/fam/jpx]]
342747
Scribunto
text/plain
return require [[Modul:category tree/fam/jpx]]
bcpq8eng8ni72qp30s68mey6as8xjb0
Modul:category tree/lang/zhx
828
118613
342749
2026-05-16T04:09:16Z
Hakimi97
2668
Hakimi97 telah memindahkan laman [[Modul:category tree/lang/zhx]] ke [[Modul:category tree/fam/zhx]]
342749
Scribunto
text/plain
return require [[Modul:category tree/fam/zhx]]
3ktay7csor162rgat3r717fg7jqbgh7
Modul:category tree/lang/qfa-kor/doc
828
118614
342750
2026-05-16T04:09:51Z
Hakimi97
2668
Mencipta laman baru dengan kandungan '{{delete}}'
342750
wikitext
text/x-wiki
{{delete}}
35r2j9t4ectnt1cmb7mlgcqvwz6h5k6
342751
342750
2026-05-16T04:10:25Z
Hakimi97
2668
342751
wikitext
text/x-wiki
{{delete|dipindahkan ke [[Modul:category tree/fam/qfa-kor]]}}
so73n2qysxt5yslq6l3hzm46lbjo2v6
Wikikamus:tmw/kompol
4
118615
342755
2026-05-16T04:13:10Z
Barbiemaripossa
9985
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} kumpul{{cp|tmw|Kitak '''kompol''' di balai petang nin|Kita '''kumpul''' di balai pada petang ini}}'
342755
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata kerja===
{{inti|tmw|kata kerja}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} kumpul{{cp|tmw|Kitak '''kompol''' di balai petang nin|Kita '''kumpul''' di balai pada petang ini}}
cp6mtnis2f8aawt2fagr4a6f59p0lg7
Wikikamus:tmw/satuk
4
118616
342760
2026-05-16T04:20:27Z
Barbiemaripossa
9985
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} satu{{cp|tmw|Akuk ada '''satuk''' buku bahuk|Aku ada '''satu''' buku baru}}'
342760
wikitext
text/x-wiki
==Bahasa {{bahasa|tmw}}==
===Kata nama===
{{inti|tmw|kata nama}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} satu{{cp|tmw|Akuk ada '''satuk''' buku bahuk|Aku ada '''satu''' buku baru}}
m3lothj1xnerzd6heqyjm0j4af97cbd
Wikikamus:tmw/bahuk
4
118617
342762
2026-05-16T04:22:40Z
Barbiemaripossa
9985
Mencipta laman baru dengan kandungan 'i’m ==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # {{label|1={{safesubst:ROOTPAGENAME}}|2=dialek|3=Bukit Lagong}} baru{{cp|tmw|Akuk ada buku '''bahuk'''|Saya ada buku '''baru'''}}'
342762
wikitext
text/x-wiki
i’m
==Bahasa {{bahasa|tmw}}==
===Kata sifat===
{{inti|tmw|kata sifat}}
# {{label|1=tmw|2=dialek|3=Bukit Lagong}} baru{{cp|tmw|Akuk ada buku '''bahuk'''|Saya ada buku '''baru'''}}
s2trgu6ebdv6a3pjbnykubymx0vd0b5
Templat:categoryTOChiragana
10
118618
342771
2026-05-16T06:52:37Z
Hakimi97
2668
Hakimi97 telah memindahkan laman [[Templat:categoryTOChiragana]] ke [[Templat:Hira-categoryTOC]]
342771
wikitext
text/x-wiki
#LENCONG [[Templat:Hira-categoryTOC]]
7o0ru8id3f1otfs3j2vapmciu3or1ct
Templat:template cat
10
118619
342773
2026-05-16T06:55:02Z
Hakimi97
2668
Mencipta laman baru dengan kandungan '<includeonly>{{#invoke:template cat|categorize}}</includeonly><noinclude>{{documentation}}</noinclude>'
342773
wikitext
text/x-wiki
<includeonly>{{#invoke:template cat|categorize}}</includeonly><noinclude>{{documentation}}</noinclude>
snrmdr6gj01ktlz7f7crr0jyhkh3jtd
Templat:tcat
10
118620
342774
2026-05-16T06:55:07Z
Hakimi97
2668
Melencong ke [[Templat:template cat]]
342774
wikitext
text/x-wiki
#LENCONG [[Template:template cat]]
5oss9liise0q27cbq8ztfrvcjkmqsy5
Modul:template cat
828
118621
342775
2026-05-16T06:56:07Z
Hakimi97
2668
Mencipta laman baru dengan kandungan '-- Author: Benwing local export = {} local require_when_needed = require("Module:utilities/require when needed") local is_callable = require_when_needed("Module:fun", "is_callable") local format_categories = require_when_needed("Module:utilities", "format_categories") local parse_interface_module = "Module:parse interface" local m_string_utilities = require("Module:string utilities") local und_lang = require("Module:languages").getByCode("und", true)...'
342775
Scribunto
text/plain
-- Author: Benwing
local export = {}
local require_when_needed = require("Module:utilities/require when needed")
local is_callable = require_when_needed("Module:fun", "is_callable")
local format_categories = require_when_needed("Module:utilities", "format_categories")
local parse_interface_module = "Module:parse interface"
local m_string_utilities = require("Module:string utilities")
local und_lang = require("Module:languages").getByCode("und", true)
local ugsub = m_string_utilities.gsub
local ufind = m_string_utilities.find
local split = m_string_utilities.split
local insert = table.insert
local concat = table.concat
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
-- This table detects the category type of the template given its name. When this is invoked, the language code has
-- already been removed from the beginning, and anything starting with a slash has been truncated. The entries are
-- processed in order and are two-element lists of Lua patterns (anchored on both sides; beware of hyphens, which need
-- to be %-escaped) and the category type to use. The category types themselves are mapped to categories in
-- category_type_to_category.
local detect_category_type_list = {
-- order is important here
-- nouns, proper nouns, pronouns
-- (1) unambiguous decl/infl templates
{"decl%-.*proper.*", "noun inflection-table"},
{"infl%-.*proper.*", "noun inflection-table"},
{"decl%-.*pron.*", "pronoun inflection-table"},
{"infl%-.*pron.*", "pronoun inflection-table"},
{"decl%-noun.*", "noun inflection-table"},
{"infl%-noun.*", "noun inflection-table"},
-- (2) nouns
{"noun", "headword-line"},
{"noun[ -]form", "headword-line"},
{"noun[ -]pl", "headword-line"},
{"noun[ -]plonly", "headword-line"},
-- Some languages, e.g. Urdu, have inflection templates called e.g. [[Template:ur-noun-f-ī]]. They should be called
-- [[Template:ur-decl-noun-f-ī]] but we can autodetect them if we exclude the likely cases that are not declension
-- templates.
{"noun%-.*", "noun inflection-table"},
{"ndecl", "noun inflection-table"},
{"ndecl%-.*", "noun inflection-table"},
-- (3) proper nouns
{"proper[ -]?noun", "headword-line"},
{"proper[ -]?noun[ -]form", "headword-line"},
{"proper[ -]?noun[ -]pl", "headword-line"},
{"proper[ -]?noun[ -]plonly", "headword-line"},
{"pnoun", "headword-line"},
{"pnoun[ -]form", "headword-line"},
{"pnoun[ -]pl", "headword-line"},
{"pnoun[ -]plonly", "headword-line"},
{"propn", "headword-line"},
{"propn[ -]form", "headword-line"},
{"propn[ -]pl", "headword-line"},
{"propn[ -]plonly", "headword-line"},
-- See above for inflection templates without 'decl' or 'infl' in them.
{"proper[ -]?noun%-.*", "noun inflection-table"},
{"pnoun%-.*", "noun inflection-table"},
{"propn%-.*", "noun inflection-table"},
-- (4) pronouns
{"pron", "headword-line"},
{"pronoun", "headword-line"},
{"pron[ -]form", "headword-line"},
{"pronoun[ -]form", "headword-line"},
{"prondecl", "pronoun inflection-table"},
{"prondecl%-.*", "pronoun inflection-table"},
-- adjectives
{"decl%-adj.*", "adjective inflection-table"},
{"infl%-adj.*", "adjective inflection-table"},
{"adj", "headword-line"},
{"adjective", "headword-line"},
{"adj[ -]form", "headword-line"},
{"adjective[ -]form", "headword-line"},
{"adj[ -]comp", "headword-line"},
{"adjective[ -]comp", "headword-line"},
{"adj[ -]sup", "headword-line"},
{"adjective[ -]sup", "headword-line"},
-- Some languages, e.g. Urdu and Lithuanian, have inflection templates called e.g. [[Template:ur-adj-1]] and
-- [[Template:lt-adj-is]]. They should be called [[Template:ur-decl-adj-1]] and [[Template:lt-decl-adj-is]] but we
-- can autodetect them if we exclude the likely cases that are not declension templates.
{"adj%-.*", "adjective inflection-table"},
{"adecl", "adjective inflection-table"},
{"adecl%-.*", "adjective inflection-table"},
-- verbs; need to avoid including conjunctions
{"verb", "headword-line"},
{"conj", "verb inflection-table"},
{"conj[0-9 -].*", "verb inflection-table"},
{"conjug.*", "verb inflection-table"},
{"infl%-verb.*", "verb inflection-table"},
-- pronunciation
{".*IPA.*", "pronunciation"},
{"pronunciation", "pronunciation"},
{"pr", "pronunciation"},
{"p", "pronunciation"},
-- form-of
{".*form of", "form-of"},
-- pronominal boxes
{".*personal pronouns", "personal pronoun"},
{".*demonstrative.*", "demonstrative"},
{".*interrogative.*", "interrogative"},
{".*possessives", "possessive"},
{".*possessive .*", "possessive"},
{".*reflexives", "reflexive"},
{".*reflexive .*", "reflexive"},
-- these next two should precede 'relative'
{".*correlatives", "pro-form"},
{".*correlative .*", "pro-form"},
{".*relative .*", "relative"},
{".*articles", "article"},
{".*prefixes", "affix"},
{".*suffixes", "affix"},
-- TOC tables
{".*TOC", "TOC"},
-- numbers, numerals
{".*numbers", "number"},
{".*numerals", "number"},
{".*ordinals", "ordinal"},
{".*cardinals", "cardinal"},
{".*digits", "digit"},
-- transliteration
{".*xlit", "orthographic conversion"},
{".*translit", "orthographic conversion"},
-- orthographic and regional variants
{".*variant", "orthographic variant"},
{".*regional", "regional variant"},
-- sign production templates
-- FIXME: We should limit this to sign languages. As it is, we put it near the bottom of the
-- pattern list so it doesn't accidentally override other patterns for non-sign languages.
{"prod .*", "sign production"},
}
-- This table indicates how to convert template category types to categories. It consists of a list of pairs, where the
-- first element is the category type and the second element is a key-value table containing the following keys:
-- * `aliases`: Optional list of aliases for the category type, which can be used when explicitly specifying the type,
-- e.g. {{tcat|hw}} instead of {{tcat|headword-line}}.
-- * `cats`: List of categories to add the template to. Each entry either specifies a ''raw'' category (if the category
-- name begins with "Category:"), a ''full table'' category (if the category name begins with "label:", where what
-- follows specifies the full label without the prefixed language name) or a ''regular label'' category (for other
-- strings, where e.g. if the label is "noun inflection-table", the category name is
-- "LANG noun inflection-table templates"). An entry is either a string, directly specifying the category name, or a
-- key-value table with keys `name` (the category name) and `sort` (how to generate the sort base). By default, the
-- sort base for raw categories is a comma-separated list of the language names (not codes) associated with the
-- template, or the full template name if there are no languages, and the sort base for label categories is the
-- template name minus the initial language code. If this isn't correct, the `sort` field specifies how to compute the
-- sort base. It is either a function of two arguments, the template name and language object, which should return the
-- sort base; or a table of specs telling how to compute the sort base. In the case of a function, the template name
-- passed in is the full name for raw categories, but the name minus any language code prefix in the case of label
-- categories; and for raw categories, a list of all associated language objects is passed in, or {nil} if none, while
-- for label categories, a single language object is passed in. (Label categories can only exist if there are
-- associated languages.) In the case where `sort` is a table of specs, it is a list where each element is a
-- two-element list of a Lua pattern anchored on both sides and the corresponding pattern replacement string. The
-- specs are processed in order.
local category_type_to_category = {
-- Inflection-table templates
{"noun inflection-table", {
aliases = {"nouninfl", "noundecl", "ndecl"},
cats = {{name = "noun inflection-table", sort = {
{"infl%-(.*)", "%1"},
{"decl%-(.*)", "%1"},
{"noun%-(.*)", "%1"},
-- put this twice to catch noun-decl-* and decl-noun-*
{"infl%-(.*)", "%1"},
{"decl%-(.*)", "%1"},
{"noun", "*"},
{"ndecl%-base%-(.*)", " %1"},
{"ndecl%-base", " "},
{"ndecl%-(.*)", "%1"},
{"ndecl", "*"},
{"propndecl%-base%-(.*)", " %1"},
{"propndecl%-base", " "},
{"propndecl%-(.*)", "%1"},
{"propndecl", "*"},
{"proper[ -]?noun%-(.*)", "%1"},
{"propn%-(.*)", "%1"},
{"pnoun%-(.*)", "%1"},
}}},
}},
{"pronoun inflection-table", {
aliases = {"proninfl", "prondecl"},
cats = {{name = "pronoun inflection-table", sort = {
{"infl%-(.*)", "%1"},
{"decl%-(.*)", "%1"},
{"pronoun%-(.*)", "%1"},
{"pron%-(.*)", "%1"},
-- put this twice to catch pron-decl-* and decl-pron-*
{"infl%-(.*)", "%1"},
{"decl%-(.*)", "%1"},
{"pronoun", "*"},
{"pron", "*"},
{"prondecl%-base%-(.*)", " %1"},
{"prondecl%-base", " "},
{"prondecl%-(.*)", "%1"},
{"prondecl", "*"},
}}},
}},
{"article inflection-table", {
aliases = {"artinfl", "artdecl"},
cats = {{name = "article inflection-table", sort = {
{"infl%-(.*)", "%1"},
{"decl%-(.*)", "%1"},
{"article%-(.*)", "%1"},
{"art%-(.*)", "%1"},
-- put this twice to catch art-decl-* and decl-art-*
{"infl%-(.*)", "%1"},
{"decl%-(.*)", "%1"},
{"article", "*"},
{"art", "*"},
{"artdecl%-base%-(.*)", " %1"},
{"artdecl%-base", " "},
{"artdecl%-(.*)", "%1"},
{"artdecl", "*"},
}}},
}},
{"determiner inflection-table", {
aliases = {"detinfl", "detdecl"},
cats = {{name = "determiner inflection-table", sort = {
{"infl%-(.*)", "%1"},
{"decl%-(.*)", "%1"},
{"determiner%-(.*)", "%1"},
{"det%-(.*)", "%1"},
-- put this twice to catch det-decl-* and decl-det-*
{"infl%-(.*)", "%1"},
{"decl%-(.*)", "%1"},
{"determiner", "*"},
{"det", "*"},
{"detdecl%-base%-(.*)", " %1"},
{"detdecl%-base", " "},
{"detdecl%-(.*)", "%1"},
{"detdecl", "*"},
}}},
}},
{"preposition inflection-table", {
aliases = {"prepinfl", "prepdecl"},
cats = {{name = "preposition inflection-table", sort = {
{"infl%-(.*)", "%1"},
{"decl%-(.*)", "%1"},
{"preposition%-(.*)", "%1"},
{"prep%-(.*)", "%1"},
-- put this twice to catch prep-decl-* and decl-prep-*
{"infl%-(.*)", "%1"},
{"decl%-(.*)", "%1"},
{"preposition", "*"},
{"prep", "*"},
{"prepdecl%-base%-(.*)", " %1"},
{"prepdecl%-base", " "},
{"prepdecl%-(.*)", "%1"},
{"prepdecl", "*"},
{"prepinfl%-base%-(.*)", " %1"},
{"prepinfl%-base", " "},
{"prepinfl%-(.*)", "%1"},
{"prepinfl", "*"},
}}},
}},
{"postposition inflection-table", {
aliases = {"postpinfl", "postpdecl"},
cats = {{name = "postposition inflection-table", sort = {
{"infl%-(.*)", "%1"},
{"decl%-(.*)", "%1"},
{"postposition%-(.*)", "%1"},
{"postp%-(.*)", "%1"},
{"post%-(.*)", "%1"},
-- put this twice to catch postp-decl-* and decl-postp-*
{"infl%-(.*)", "%1"},
{"decl%-(.*)", "%1"},
{"postposition", "*"},
{"postp", "*"},
{"post", "*"},
{"postpdecl%-base%-(.*)", " %1"},
{"postpdecl%-base", " "},
{"postpdecl%-(.*)", "%1"},
{"postpdecl", "*"},
{"postpinfl%-base%-(.*)", " %1"},
{"postpinfl%-base", " "},
{"postpinfl%-(.*)", "%1"},
{"postpinfl", "*"},
}}},
}},
{"adjective inflection-table", {
aliases = {"adjinfl", "adjdecl", "adecl"},
cats = {{name = "adjective inflection-table", sort = {
{"infl%-(.*)", "%1"},
{"decl%-(.*)", "%1"},
{"adj%-(.*)", "%1"},
{"adjective%-(.*)", "%1"},
-- put this twice to catch adj-decl-* and decl-adj-*
{"infl%-(.*)", "%1"},
{"decl%-(.*)", "%1"},
{"adj", "*"},
{"adjective", "*"},
{"adecl%-base%-(.*)", " %1"},
{"adecl%-base", " "},
{"adecl%-(.*)", "%1"},
{"adecl", "*"},
}}},
}},
{"numeral inflection-table", {
aliases = {"numinfl", "numdecl"},
cats = {{name = "numeral inflection-table", sort = {
{"infl%-(.*)", "%1"},
{"decl%-(.*)", "%1"},
{"numeral%-(.*)", "%1"},
{"number%-(.*)", "%1"},
{"num%-(.*)", "%1"},
-- put this twice to catch num-decl-* and decl-num-*
{"infl%-(.*)", "%1"},
{"decl%-(.*)", "%1"},
{"numeral", "*"},
{"number", "*"},
{"num", "*"},
{"numdecl%-base%-(.*)", " %1"},
{"numdecl%-base", " "},
{"numdecl%-(.*)", "%1"},
{"numdecl", "*"},
}}},
}},
{"nominal inflection-table", {
aliases = {"nominfl", "nomdecl"},
cats = {{name = "nominal inflection-table", sort = {
{"infl%-(.*)", "%1"},
{"decl%-(.*)", "%1"},
{"nominal%-(.*)", "%1"},
{"nom%-(.*)", "%1"},
-- put this twice to catch nom-decl-* and decl-nom-*
{"infl%-(.*)", "%1"},
{"decl%-(.*)", "%1"},
{"nominal", "*"},
{"nom", "*"},
{"nomdecl%-base%-(.*)", " %1"},
{"nomdecl%-base", " "},
{"nomdecl%-(.*)", "%1"},
{"nomdecl", "*"},
}}},
}},
{"verb inflection-table", {
aliases = {"verbinfl", "conj"},
cats = {{name = "verb inflection-table", sort = {
{"infl%-(.*)", "%1"},
{"verb%-(.*)", "%1"},
-- put this twice to catch verb-infl-* and infl-verb-*
{"infl%-(.*)", "%1"},
{"conj%-base%-(.*)", " %1"},
{"conj%-base", " "},
-- handle conj2, conj1-c, etc.
{"conj%-?(.*)", "%1"},
{"conj", "*"},
}}},
}},
{"adverb inflection-table", {
aliases = {"advinfl"},
cats = {{name = "adverb inflection-table", sort = {
{"infl%-(.*)", "%1"},
{"decl%-(.*)", "%1"},
{"adverb%-(.*)", "%1"},
{"adv%-(.*)", "%1"},
-- put this twice to catch adv-decl-* and decl-adv-*
{"infl%-(.*)", "%1"},
{"decl%-(.*)", "%1"},
{"adverb", "*"},
{"adv", "*"},
{"advinfl%-base%-(.*)", " %1"},
{"advinfl%-base", " "},
{"advinfl%-(.*)", "%1"},
{"advinfl", "*"},
}}},
}},
-- Inflection-table subtemplates
{"inflection-table sub", {
aliases = {"inflsub"},
cats = {"label:inflection-table subtemplates"},
}},
-- Definition templates
-- Headword-line templates
{"headword-line", {
aliases = {"hw", "headword"},
cats = {"headword-line"},
}},
-- Definition templates
{"definition", {
aliases = {"def", "defn"},
cats = {"definition"},
}},
{"form-of", {
aliases = {"form of"},
cats = {"form-of"},
}},
-- Etymology and pronunciation templates
{"etymology", {
aliases = {"etym"},
cats = {"etymology"},
}},
{"morphology", {
aliases = {"morph"},
cats = {"etymology", "Category:Language-specific morphology templates"},
}},
{"pronunciation", {
aliases = {"pron"},
cats = {"pronunciation"},
}},
{"sign production", {
aliases = {"signprod"},
cats = {{name = "sign production", sort = {
{"prod (.*)", "%1"},
}}},
}},
-- Pseudo-namespace templates
{"reference", {
aliases = {"ref"},
cats = {{name = "reference", allow_etym = true}},
}},
{"quotation", {
aliases = {"quote"},
cats = {"quotation"},
}},
{"usage", {
cats = {"usage"},
}},
{"list", {
cats = {"list"},
}},
{"auto-table", {
aliases = {"table"},
cats = {"auto-table"},
}},
-- Navigation templates
-- Pro-form box templates
{"pro-form", {
aliases = {"pro-forms"},
cats = {"navigation", "Category:Pro-form box templates"},
}},
{"adposition", {
aliases = {"adpositions", "preposition", "prepositions", "postposition", "postpositions"},
cats = {"navigation", "Category:Adposition box templates"},
}},
{"affix", {
aliases = {"affixes", "prefix", "prefixes", "suffix", "suffixes"},
cats = {"navigation", "Category:Pro-form affix box templates"},
}},
{"article", {
aliases = {"articles"},
cats = {"navigation", "Category:Grammatical article box templates"},
}},
{"demonstrative", {
aliases = {"demonstratives"},
cats = {"navigation", "Category:Demonstrative box templates"},
}},
{"interrogative", {
aliases = {"interrogatives"},
cats = {"navigation", "Category:Interrogative box templates"},
}},
{"personal pronoun", {
aliases = {"perspron", "personal pronouns"},
cats = {"navigation", "Category:Personal pronoun box templates"},
}},
{"possessive", {
aliases = {"possessives"},
cats = {"navigation", "Category:Possessive pronoun and determiner box templates"},
}},
{"reflexive", {
aliases = {"reflexives"},
cats = {"navigation", "Category:Reflexive pronoun and determiner box templates"},
}},
{"relative", {
aliases = {"relatives"},
cats = {"navigation", "Category:Relative pronoun and determiner box templates"},
}},
{"navigation", {
-- miscellaneous navigation box templates like {{eu-aux verbs}}, {{pt-forms of address}}
aliases = {"nav"},
cats = {"navigation"},
}},
{"TOC", {
cats = {{name = "navigation", sort = {
{"categoryTOC", "TOC"},
}}, "Category:TOC templates"},
}},
{"number", {
aliases = {"numbers"},
cats = {"navigation", "Category:Language-specific number templates"},
}},
{"cardinal", {
aliases = {"cardinals"},
cats = {"navigation", "Category:Language-specific number templates"},
}},
{"ordinal", {
aliases = {"ordinals"},
cats = {"navigation", "Category:Language-specific number templates"},
}},
{"digit", {
aliases = {"digits"},
cats = {"list", "Category:Language-specific number templates"},
}},
-- Entry templates
{"entry", {
cats = {"entry"},
}},
-- Orthographic conversion templates (e.g. for converting between scripts)
{"orthographic conversion", {
aliases = {"transliteration", "translit", "xlit", "orthconv", "scriptconv"},
cats = {"conversion", "Category:Orthographic conversion templates"},
}},
-- Orthographic and regional variant templates (for displaying orthographic, script and/or regional variants)
{"orthographic variant", {
aliases = {"orthvar", "scriptvar"},
-- Currently we categorize orthographic and regional variants the same but we could split them if needed
cats = {"navigation", "Category:Orthographic and regional variant templates"},
}},
{"regional variant", {
aliases = {"regvar"},
cats = {"navigation", "Category:Orthographic and regional variant templates"},
}},
-- Internal link templates
{"link", {
cats = {"link", "Category:Language-specific internal link templates"},
}},
}
local category_type_to_category_map = {}
for _, category_type_to_category_spec in ipairs(category_type_to_category) do
local category_type, props = unpack(category_type_to_category_spec)
category_type_to_category_map[category_type] = props
if props.aliases then
for _, alias in ipairs(props.aliases) do
category_type_to_category_map[alias] = props
end
end
end
-- Split an argument on comma, but not comma followed by whitespace; split off sort base after a colon.
local function split_on_comma_and_split_off_sort_base(val)
local cattypes
if val:find(",") then
-- Don't optimize more than this because there can be commas backslashed, inside of links or followed by
-- whitespace that don't cause splitting.
cattypes = require(parse_interface_module).split_on_comma(val)
else
cattypes = {val}
end
for i, cattype_spec in ipairs(cattypes) do
if cattype_spec:find(":") then
local cattype, sort_base = cattype_spec:match("^(.-):(.*)$")
sort_base = sort_base:gsub("_", " ")
cattypes[i] = {name = cattype, sort_base = sort_base}
end
end
return cattypes
end
local function get_lang_or_script(code)
return code == "-" and code or
require("Module:languages").getByCode(code, nil, "allow etym") or
require("Module:languages").getByCode(code .. "-pro", nil, "allow etym") or
require("Module:scripts").getByCode(code)
end
local function obj_code(obj)
if obj == "-" then
return obj
end
return obj:getCode()
end
local function get_prefixed_obj(after_prefix)
return after_prefix:match("^(%a[%a-]*%a):(.+)$")
end
local function get_suffixed_obj(after_prefix)
local rest, objcode = after_prefix:match("^(.+)/(%a[%a-]*%a)$")
return objcode, rest
end
local pseudo_namespace_templates = {
{"R:", {
category_type = "reference",
get_obj_and_rest = get_prefixed_obj,
}},
{"RQ:", {
category_type = "quotation",
get_obj_and_rest = get_prefixed_obj,
}},
{"U:", {
category_type = "usage",
get_obj_and_rest = get_prefixed_obj,
}},
{"list:", {
category_type = "list",
get_obj_and_rest = get_suffixed_obj,
}},
{"table:", {
category_type = "auto-table",
get_obj_and_rest = get_suffixed_obj,
}},
}
local function infer_lang_or_script_code_and_category_type(name)
if name:find(":") then -- only check for pseudo-namespace prefix when a colon is present
for _, pseudo_namespace_spec in ipairs(pseudo_namespace_templates) do
local prefix, props = unpack(pseudo_namespace_spec)
local after_prefix = name:match("^" .. prefix .. "(.+)$")
if after_prefix then
local objcode, rest = props.get_obj_and_rest(after_prefix)
local obj
if objcode then
obj = get_lang_or_script(objcode) -- may return nil
if not obj then
rest = after_prefix
end
else
rest = after_prefix
end
return obj, rest, props.category_type
end
end
end
local hyphen_parts = split(name, "%-")
for i = #hyphen_parts - 1, 1, -1 do
local code = concat(hyphen_parts, "-", 1, i)
local obj = get_lang_or_script(code)
if obj then
local rest = concat(hyphen_parts, "-", i + 1)
return obj, rest, nil
end
end
return nil, name, nil
end
local function process_sortbase_specs(sortbase, specs)
for _, spec in ipairs(specs) do
local from, to = unpack(spec)
sortbase = ugsub(sortbase, "^" .. from .. "$", to)
end
return sortbase
end
local function template_name_minus_langcode_to_category_type(name)
for _, type_spec in ipairs(detect_category_type_list) do
local pattern, intended_type = unpack(type_spec)
if ufind(name, "^" .. pattern .. "$") then
return intended_type
end
end
return nil
end
local function compute_categories_for_template(full_template_name, template_name_minus_langcode, category_type,
langs_or_scripts)
local overriding_sort_base
if type(category_type) == "table" then
overriding_sort_base = category_type.sort_base
category_type = category_type.name
end
if not category_type_to_category_map[category_type] then
error("Unrecognized template category type: " .. category_type)
end
local props = category_type_to_category_map[category_type]
if not props.cats then
error("Internal error: No categories given for category type: " .. category_type)
end
local categories = {}
for _, catspec in ipairs(props.cats) do
if type(catspec) == "string" then
catspec = {name = catspec}
end
local rawcat = catspec.name:match("^Category:(.*)")
if rawcat then
local sortbase
-- User-specified sort base does not apply to raw categories, which have a different sort key format
-- than language-specific categories.
if not catspec.sort then
if langs_or_scripts then
local langnames = {}
for _, lang_or_sc in ipairs(langs_or_scripts) do
insert(langnames, lang_or_sc:getCanonicalName()) -- FIXME: or lang:getFullName()?
end
sortbase = concat(langnames, ",")
else
sortbase = full_template_name
end
elseif is_callable(catspec.sort) then
sortbase = catspec.sort(full_template_name, langs_or_scripts)
else
sortbase = process_sortbase_specs(full_template_name, catspec.sort)
end
insert(categories, {cat = rawcat, lang = und_lang, sort_base = sortbase})
elseif langs_or_scripts then
for _, lang_or_sc in ipairs(langs_or_scripts) do
local sortbase
if overriding_sort_base then
sortbase = overriding_sort_base
elseif not catspec.sort then
sortbase = template_name_minus_langcode
elseif is_callable(catspec.sort) then
sortbase = catspec.sort(template_name_minus_langcode, lang_or_sc)
else
sortbase = process_sortbase_specs(template_name_minus_langcode, catspec.sort)
end
if lang_or_sc:hasType("script") then
insert(categories, {
cat = ("%s templates"):format(lang_or_sc:getCategoryName()), lang = und_lang, sc = lang_or_sc,
sort_base = sortbase,
})
else
local cat
local full_label = catspec.name:match("^label:(.*)$")
local lang_name = catspec.allow_etym and lang_or_sc:getCanonicalName() or lang_or_sc:getFullName()
if full_label then
cat = ("%s %s"):format(lang_name, full_label)
else
cat = ("%s %s templates"):format(lang_name, catspec.name)
end
insert(categories, {
cat = cat, lang = lang_or_sc:getFull(), sort_base = sortbase,
})
end
end
end
end
if not categories[1] then
error(("No categories generated for template [[Template:%s]] with category type '%s'"):format(
full_template_name, category_type))
end
return categories
end
--[==[
Main entry point.
]==]
function export.categorize(frame)
local params = {
[1] = {}, -- comma-separated list of category types; by default, inferred from template name
lang = {}, -- comma-separated list of languages; by default, inferred from template name
["pagename"] = {}, -- for testing
["json"] = {type = "boolean"}, -- for testing
}
local parent_args = frame:getParent().args
args = require("Module:parameters").process(parent_args, params)
local category_specs = {}
local function insert_cat(cat, sort_key)
for _, existing_cat in ipairs(category_specs) do
if existing_cat.cat == cat then
return
end
end
insert(category_specs, {cat = cat, sort_key = sort_key})
end
local pagename = args.pagename
if not pagename then
title = mw.title.getCurrentTitle()
pagename = title.fullText
end
if pagename:find("/documentation$") or pagename:find("/documentation/") then
return ""
end
if pagename:find("^Template:User:") then
insert_cat("User sandbox templates", (pagename:gsub("^Template:User:", "")))
elseif pagename:find("^User:") then
insert_cat("User sandbox templates", (pagename:gsub("^User:", "")))
else
if not pagename:find("^Template:") then
error(("This template should only be used in the Template namespace, not on page '%s'"):format(pagename))
end
local full_template_name = pagename:gsub("^Template:", "")
local rootpage = full_template_name:gsub("/.*", "")
if full_template_name:find("/sandbox") then
insert_cat("Sandbox templates", full_template_name)
elseif full_template_name:find("^sandbox/") then
insert_cat("Sandbox templates", full_template_name:gsub("^sandbox/", ""))
else
local template_objs
if args.lang == "-" then
template_objs = false
elseif args.lang then
template_objs = {}
for _, code in ipairs(split(args.lang, ",")) do
-- We need to have an indicator of families because we allow bare family codes to stand for proto-languages.
if code:find("^fam:") then
code = code:gsub("^fam:", "")
local family = require("Module:families").getByCode(code) or
error(("Unrecognized family code '%s' in [[Module:template cat]]"):format(code))
local descendants = family:getDescendantCodes()
for _, desc in ipairs(descendants) do
local obj = get_lang_or_script(desc)
if obj then
-- make sure we skip families without proto-languages
insert(template_objs, obj)
end
end
else
local obj = get_lang_or_script(code)
if not obj then
error(("Unrecognized language or script code '%s'"):format(code))
end
insert(template_objs, obj)
end
end
end
local cattypes
if args[1] then
cattypes = split_on_comma_and_split_off_sort_base(args[1])
end
local inferred_obj, inferred_rest, inferred_cattype =
infer_lang_or_script_code_and_category_type(rootpage)
if template_objs == nil or not cattypes then
if template_objs == nil then
if not inferred_obj then
if not inferred_cattype then
error(("Unable to infer language or script from template root page '%s' for template '%s'; specify lang/script and type explicitly"):format(
rootpage, pagename))
else
error(("Unable to infer language or script from template root page '%s' for template '%s', inferred category type '%s'; specify lang/script explicitly"):format(
rootpage, pagename, inferred_cattype))
end
else
template_objs = {inferred_obj}
end
end
if not cattypes then
inferred_cattype = inferred_cattype or
template_name_minus_langcode_to_category_type(inferred_rest)
if not inferred_cattype then
error(("Unable to infer template category type from template remainder (after stripping langcode) '%s' for template '%s'; specify type explicitly"):format(
inferred_rest, pagename))
end
cattypes = {inferred_cattype}
end
end
for _, cattype in ipairs(cattypes) do
local cats = compute_categories_for_template(full_template_name, inferred_rest, cattype, template_objs)
for _, cat in ipairs(cats) do
insert(category_specs, cat)
end
end
end
end
-- We are returning categories for templates or user-space pages, so we need to force the output.
local retval = format_categories(category_specs, nil, nil, nil, "force_output")
if args.json then
return require("Module:JSON").toJSON {
category_specs = category_specs,
retval = mw.text.nowiki(retval),
}
else
return retval
end
end
--[==[Table used in the documentation to {{tl|template cat}}.]==]
function export.pattern_to_category_type_table()
local parts = {}
local function ins(text)
insert(parts, text)
end
ins('{|class="wikitable"')
ins("! Pattern !! Inferred category type")
for _, detect_spec in ipairs(detect_category_type_list) do
local pattern, category_type = unpack(detect_spec)
ins("|-")
ins(("| <code>%s</code> || <code>%s</code>"):format(pattern, category_type))
end
ins("|}")
return concat(parts, "\n")
end
--[==[Table used in the documentation to {{tl|template cat}}.]==]
function export.category_type_to_category_table()
local parts = {}
local function ins(text)
insert(parts, text)
end
local category_types = {}
local category_type_to_aliases = {}
for _, category_type_to_category_spec in ipairs(category_type_to_category) do
local category_type, props = unpack(category_type_to_category_spec)
insert(category_types, category_type)
category_type_to_aliases[category_type] = {}
if props.aliases then
for _, alias in ipairs(props.aliases) do
insert(category_type_to_aliases[category_type], alias)
end
table.sort(category_type_to_aliases[category_type])
end
end
table.sort(category_types)
local function get_category_type_categories(category_type)
local cats = {}
for _, catspec in ipairs(category_type_to_category_map[category_type].cats) do
if type(catspec) == "string" then
catspec = {name = catspec}
end
local cat = catspec.name
if cat:find("^Category:") then
insert(cats, ("<code>%s</code>"):format((cat:gsub("^Category:", ""))))
elseif cat:find("^label:") then
insert(cats, ("<code><var>LANG</var> %s</code>"):format((cat:gsub("^label:", ""))))
else
insert(cats, ("<code><var>LANG</var> %s templates</code>"):format(cat))
end
end
return concat(cats, ", ")
end
ins('{|class="wikitable"')
ins("! Category type !! Canonical category type !! Categories")
for _, category_type in ipairs(category_types) do
ins("|-")
ins(("| <code>'''%s'''</code> || ''(same)'' || <code>%s</code>"):format(
category_type, get_category_type_categories(category_type)))
for _, alias in ipairs(category_type_to_aliases[category_type]) do
ins("|-")
ins(("| <code>%s</code> || <code>'''%s'''</code> || <code>%s</code>"):format(
alias, category_type, get_category_type_categories(category_type)))
end
end
ins("|}")
return concat(parts, "\n")
end
return export
33dgd2grqionii83906l7r69sspy2t1
Kategori:fa:Badan samawi
14
118622
342786
2026-05-16T10:33:33Z
Hakimi97
2668
Hakimi97 telah memindahkan laman [[Kategori:fa:Badan samawi]] ke [[Kategori:fa:Jasad cakerawala]]
342786
wikitext
text/x-wiki
#LENCONG [[:Kategori:fa:Jasad cakerawala]]
op76jz4o1vyf3z6gbcfwf49i7undj3r
Kategori:ja:Sistem penulisan
14
118623
342792
2026-05-16T11:46:32Z
Hakimi97
2668
Hakimi97 telah memindahkan laman [[Kategori:ja:Sistem penulisan]] ke [[Kategori:ja:Sistem tulisan]]
342792
wikitext
text/x-wiki
#LENCONG [[:Kategori:ja:Sistem tulisan]]
5ne57va7yfl7azr8tws76njlmk20m67