Wikikamus mswiktionary https://ms.wiktionary.org/wiki/Wikikamus:Laman_Utama MediaWiki 1.47.0-wmf.21 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 hana kīwila 0 18219 376790 330862 2026-09-28T00:09:31Z InternetArchiveBot 5017 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.6 376790 wikitext text/x-wiki ==Bahasa Hawaii== ===Kata nama=== {{haw-kn}} # [[perkhidmatan awam]] ===Sebutan=== *{{haw-AFA}} ===Rujukam=== * "[https://web.archive.org/web/20051210100843/http://wehewehe.org/ hana kīwila]" dalam ''Nā Puke Wehewehe ʻŌlelo Hawaiʻi'' 52suguiea56mqcbe9qem85cp85fyq3q Modul:headword/page 828 51771 376774 375598 2026-09-27T18:23:30Z SNN95 2113 kemaskini 376774 Scribunto text/plain local export = {} local languages_module = "Module:languages" local maintenance_category_module = "Module:maintenance category" local pages_module = "Module:pages" local string_compare_module = "Module:string/compare" local string_decode_entities_module = "Module:string/decodeEntities" local string_remove_comments_module = "Module:string/removeComments" local string_utilities_module = "Module:string utilities" local table_module = "Module:table" local template_parser_module = "Module:template parser" local mw = mw local string = string local table = table local ustring = mw.ustring local concat = table.concat local find = string.find local format = string.format local gsub = string.gsub local insert = table.insert local load_data = mw.loadData local match = string.match local new_title = mw.title.new local pairs = pairs local require = require local sub = string.sub local toNFC = ustring.toNFC local toNFD = ustring.toNFD local ugsub = ustring.gsub local function class_else_type(...) class_else_type = require(template_parser_module).class_else_type return class_else_type(...) end local function decode_entities(...) decode_entities = require(string_decode_entities_module) return decode_entities(...) end local function encode_entities(...) encode_entities = require(string_utilities_module).encode_entities return encode_entities(...) end local function get_category(...) get_category = require(maintenance_category_module).get_category return get_category(...) end local function get_lang(...) get_lang = require(languages_module).getByCode return get_lang(...) end local function list_to_set(...) list_to_set = require(table_module).listToSet return list_to_set(...) end local function parse(...) parse = require(template_parser_module).parse return parse(...) end local function remove_comments(...) remove_comments = require(string_remove_comments_module) return remove_comments(...) end local function physical_to_logical_pagename_if_mammoth(...) physical_to_logical_pagename_if_mammoth = require(pages_module).physical_to_logical_pagename_if_mammoth return physical_to_logical_pagename_if_mammoth(...) end local function split(...) split = require(string_utilities_module).split return split(...) end local function string_compare(...) string_compare = require(string_compare_module) return string_compare(...) end local function uupper(...) uupper = require(string_utilities_module).upper return uupper(...) end --[==[ Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==] local langnames local function get_langnames() langnames, get_langnames = load_data("Module:languages/canonical names"), nil return langnames end -- Combining character data used when categorising unusual characters. These resolve into two patterns, used to find -- single combining characters (i.e. character + diacritic(s)) or double combining characters (i.e. character + -- diacritic(s) + character). -- Charsets are in the format used by Unicode's UnicodeSet tool: https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp. -- Single combining characters. -- Charset: [[:M:]&[:^Canonical_Combining_Class=/^Double_/:]&[:^subhead=Grapheme joiner:]&[:^Variation_Selector=Yes:]] -- Note: concatenating hundreds of lines at once gives an error, so () are used every 150 lines to break it up into chunks. local comb_chars_single = ("\204\128-\205\142" .. -- U+0300-U+034E "\205\144-\205\155" .. -- U+0350-U+035B "\205\163-\205\175" .. -- U+0363-U+036F "\210\131-\210\137" .. -- U+0483-U+0489 "\214\145-\214\189" .. -- U+0591-U+05BD "\214\191" .. -- U+05BF "\215\129" .. -- U+05C1 "\215\130" .. -- U+05C2 "\215\132" .. -- U+05C4 "\215\133" .. -- U+05C5 "\215\135" .. -- U+05C7 "\216\144-\216\154" .. -- U+0610-U+061A "\217\139-\217\159" .. -- U+064B-U+065F "\217\176" .. -- U+0670 "\219\150-\219\156" .. -- U+06D6-U+06DC "\219\159-\219\164" .. -- U+06DF-U+06E4 "\219\167" .. -- U+06E7 "\219\168" .. -- U+06E8 "\219\170-\219\173" .. -- U+06EA-U+06ED "\220\145" .. -- U+0711 "\220\176-\221\138" .. -- U+0730-U+074A "\222\166-\222\176" .. -- U+07A6-U+07B0 "\223\171-\223\179" .. -- U+07EB-U+07F3 "\223\189" .. -- U+07FD "\224\160\150-\224\160\153" .. -- U+0816-U+0819 "\224\160\155-\224\160\163" .. -- U+081B-U+0823 "\224\160\165-\224\160\167" .. -- U+0825-U+0827 "\224\160\169-\224\160\173" .. -- U+0829-U+082D "\224\161\153-\224\161\155" .. -- U+0859-U+085B "\224\162\151-\224\162\159" .. -- U+0897-U+089F "\224\163\138-\224\163\161" .. -- U+08CA-U+08E1 "\224\163\163-\224\164\131" .. -- U+08E3-U+0903 "\224\164\186-\224\164\188" .. -- U+093A-U+093C "\224\164\190-\224\165\143" .. -- U+093E-U+094F "\224\165\145-\224\165\151" .. -- U+0951-U+0957 "\224\165\162" .. -- U+0962 "\224\165\163" .. -- U+0963 "\224\166\129-\224\166\131" .. -- U+0981-U+0983 "\224\166\188" .. -- U+09BC "\224\166\190-\224\167\132" .. -- U+09BE-U+09C4 "\224\167\135" .. -- U+09C7 "\224\167\136" .. -- U+09C8 "\224\167\139-\224\167\141" .. -- U+09CB-U+09CD "\224\167\151" .. -- U+09D7 "\224\167\162" .. -- U+09E2 "\224\167\163" .. -- U+09E3 "\224\167\190" .. -- U+09FE "\224\168\129-\224\168\131" .. -- U+0A01-U+0A03 "\224\168\188" .. -- U+0A3C "\224\168\190-\224\169\130" .. -- U+0A3E-U+0A42 "\224\169\135" .. -- U+0A47 "\224\169\136" .. -- U+0A48 "\224\169\139-\224\169\141" .. -- U+0A4B-U+0A4D "\224\169\145" .. -- U+0A51 "\224\169\176" .. -- U+0A70 "\224\169\177" .. -- U+0A71 "\224\169\181" .. -- U+0A75 "\224\170\129-\224\170\131" .. -- U+0A81-U+0A83 "\224\170\188" .. -- U+0ABC "\224\170\190-\224\171\133" .. -- U+0ABE-U+0AC5 "\224\171\135-\224\171\137" .. -- U+0AC7-U+0AC9 "\224\171\139-\224\171\141" .. -- U+0ACB-U+0ACD "\224\171\162" .. -- U+0AE2 "\224\171\163" .. -- U+0AE3 "\224\171\186-\224\171\191" .. -- U+0AFA-U+0AFF "\224\172\129-\224\172\131" .. -- U+0B01-U+0B03 "\224\172\188" .. -- U+0B3C "\224\172\190-\224\173\132" .. -- U+0B3E-U+0B44 "\224\173\135" .. -- U+0B47 "\224\173\136" .. -- U+0B48 "\224\173\139-\224\173\141" .. -- U+0B4B-U+0B4D "\224\173\149-\224\173\151" .. -- U+0B55-U+0B57 "\224\173\162" .. -- U+0B62 "\224\173\163" .. -- U+0B63 "\224\174\130" .. -- U+0B82 "\224\174\190-\224\175\130" .. -- U+0BBE-U+0BC2 "\224\175\134-\224\175\136" .. -- U+0BC6-U+0BC8 "\224\175\138-\224\175\141" .. -- U+0BCA-U+0BCD "\224\175\151" .. -- U+0BD7 "\224\176\128-\224\176\132" .. -- U+0C00-U+0C04 "\224\176\188" .. -- U+0C3C "\224\176\190-\224\177\132" .. -- U+0C3E-U+0C44 "\224\177\134-\224\177\136" .. -- U+0C46-U+0C48 "\224\177\138-\224\177\141" .. -- U+0C4A-U+0C4D "\224\177\149" .. -- U+0C55 "\224\177\150" .. -- U+0C56 "\224\177\162" .. -- U+0C62 "\224\177\163" .. -- U+0C63 "\224\178\129-\224\178\131" .. -- U+0C81-U+0C83 "\224\178\188" .. -- U+0CBC "\224\178\190-\224\179\132" .. -- U+0CBE-U+0CC4 "\224\179\134-\224\179\136" .. -- U+0CC6-U+0CC8 "\224\179\138-\224\179\141" .. -- U+0CCA-U+0CCD "\224\179\149" .. -- U+0CD5 "\224\179\150" .. -- U+0CD6 "\224\179\162" .. -- U+0CE2 "\224\179\163" .. -- U+0CE3 "\224\179\179" .. -- U+0CF3 "\224\180\128-\224\180\131" .. -- U+0D00-U+0D03 "\224\180\187" .. -- U+0D3B "\224\180\188" .. -- U+0D3C "\224\180\190-\224\181\132" .. -- U+0D3E-U+0D44 "\224\181\134-\224\181\136" .. -- U+0D46-U+0D48 "\224\181\138-\224\181\141" .. -- U+0D4A-U+0D4D "\224\181\151" .. -- U+0D57 "\224\181\162" .. -- U+0D62 "\224\181\163" .. -- U+0D63 "\224\182\129-\224\182\131" .. -- U+0D81-U+0D83 "\224\183\138" .. -- U+0DCA "\224\183\143-\224\183\148" .. -- U+0DCF-U+0DD4 "\224\183\150" .. -- U+0DD6 "\224\183\152-\224\183\159" .. -- U+0DD8-U+0DDF "\224\183\178" .. -- U+0DF2 "\224\183\179" .. -- U+0DF3 "\224\184\177" .. -- U+0E31 "\224\184\180-\224\184\186" .. -- U+0E34-U+0E3A "\224\185\135-\224\185\142" .. -- U+0E47-U+0E4E "\224\186\177" .. -- U+0EB1 "\224\186\180-\224\186\188" .. -- U+0EB4-U+0EBC "\224\187\136-\224\187\142" .. -- U+0EC8-U+0ECE "\224\188\152" .. -- U+0F18 "\224\188\153" .. -- U+0F19 "\224\188\181" .. -- U+0F35 "\224\188\183" .. -- U+0F37 "\224\188\185" .. -- U+0F39 "\224\188\190" .. -- U+0F3E "\224\188\191" .. -- U+0F3F "\224\189\177-\224\190\132" .. -- U+0F71-U+0F84 "\224\190\134" .. -- U+0F86 "\224\190\135" .. -- U+0F87 "\224\190\141-\224\190\151" .. -- U+0F8D-U+0F97 "\224\190\153-\224\190\188" .. -- U+0F99-U+0FBC "\224\191\134" .. -- U+0FC6 "\225\128\171-\225\128\190" .. -- U+102B-U+103E "\225\129\150-\225\129\153" .. -- U+1056-U+1059 "\225\129\158-\225\129\160" .. -- U+105E-U+1060 "\225\129\162-\225\129\164" .. -- U+1062-U+1064 "\225\129\167-\225\129\173" .. -- U+1067-U+106D "\225\129\177-\225\129\180" .. -- U+1071-U+1074 "\225\130\130-\225\130\141" .. -- U+1082-U+108D "\225\130\143" .. -- U+108F "\225\130\154-\225\130\157" .. -- U+109A-U+109D "\225\141\157-\225\141\159" .. -- U+135D-U+135F "\225\156\146-\225\156\149" .. -- U+1712-U+1715 "\225\156\178-\225\156\180" .. -- U+1732-U+1734 "\225\157\146" .. -- U+1752 "\225\157\147" .. -- U+1753 "\225\157\178" .. -- U+1772 "\225\157\179" .. -- U+1773 "\225\158\180-\225\159\147") .. -- U+17B4-U+17D3 ("\225\159\157" .. -- U+17DD "\225\162\133" .. -- U+1885 "\225\162\134" .. -- U+1886 "\225\162\169" .. -- U+18A9 "\225\164\160-\225\164\171" .. -- U+1920-U+192B "\225\164\176-\225\164\187" .. -- U+1930-U+193B "\225\168\151-\225\168\155" .. -- U+1A17-U+1A1B "\225\169\149-\225\169\158" .. -- U+1A55-U+1A5E "\225\169\160-\225\169\188" .. -- U+1A60-U+1A7C "\225\169\191" .. -- U+1A7F "\225\170\176-\225\171\142" .. -- U+1AB0-U+1ACE "\225\172\128-\225\172\132" .. -- U+1B00-U+1B04 "\225\172\180-\225\173\132" .. -- U+1B34-U+1B44 "\225\173\171-\225\173\179" .. -- U+1B6B-U+1B73 "\225\174\128-\225\174\130" .. -- U+1B80-U+1B82 "\225\174\161-\225\174\173" .. -- U+1BA1-U+1BAD "\225\175\166-\225\175\179" .. -- U+1BE6-U+1BF3 "\225\176\164-\225\176\183" .. -- U+1C24-U+1C37 "\225\179\144-\225\179\146" .. -- U+1CD0-U+1CD2 "\225\179\148-\225\179\168" .. -- U+1CD4-U+1CE8 "\225\179\173" .. -- U+1CED "\225\179\180" .. -- U+1CF4 "\225\179\183-\225\179\185" .. -- U+1CF7-U+1CF9 "\225\183\128-\225\183\140" .. -- U+1DC0-U+1DCC "\225\183\142-\225\183\187" .. -- U+1DCE-U+1DFB "\225\183\189-\225\183\191" .. -- U+1DFD-U+1DFF "\226\131\144-\226\131\176" .. -- U+20D0-U+20F0 "\226\179\175-\226\179\177" .. -- U+2CEF-U+2CF1 "\226\181\191" .. -- U+2D7F "\226\183\160-\226\183\191" .. -- U+2DE0-U+2DFF "\227\128\170-\227\128\175" .. -- U+302A-U+302F "\227\130\153" .. -- U+3099 "\227\130\154" .. -- U+309A "\234\153\175-\234\153\178" .. -- U+A66F-U+A672 "\234\153\180-\234\153\189" .. -- U+A674-U+A67D "\234\154\158" .. -- U+A69E "\234\154\159" .. -- U+A69F "\234\155\176" .. -- U+A6F0 "\234\155\177" .. -- U+A6F1 "\234\160\130" .. -- U+A802 "\234\160\134" .. -- U+A806 "\234\160\139" .. -- U+A80B "\234\160\163-\234\160\167" .. -- U+A823-U+A827 "\234\160\172" .. -- U+A82C "\234\162\128" .. -- U+A880 "\234\162\129" .. -- U+A881 "\234\162\180-\234\163\133" .. -- U+A8B4-U+A8C5 "\234\163\160-\234\163\177" .. -- U+A8E0-U+A8F1 "\234\163\191" .. -- U+A8FF "\234\164\166-\234\164\173" .. -- U+A926-U+A92D "\234\165\135-\234\165\147" .. -- U+A947-U+A953 "\234\166\128-\234\166\131" .. -- U+A980-U+A983 "\234\166\179-\234\167\128" .. -- U+A9B3-U+A9C0 "\234\167\165" .. -- U+A9E5 "\234\168\169-\234\168\182" .. -- U+AA29-U+AA36 "\234\169\131" .. -- U+AA43 "\234\169\140" .. -- U+AA4C "\234\169\141" .. -- U+AA4D "\234\169\187-\234\169\189" .. -- U+AA7B-U+AA7D "\234\170\176" .. -- U+AAB0 "\234\170\178-\234\170\180" .. -- U+AAB2-U+AAB4 "\234\170\183" .. -- U+AAB7 "\234\170\184" .. -- U+AAB8 "\234\170\190" .. -- U+AABE "\234\170\191" .. -- U+AABF "\234\171\129" .. -- U+AAC1 "\234\171\171-\234\171\175" .. -- U+AAEB-U+AAEF "\234\171\181" .. -- U+AAF5 "\234\171\182" .. -- U+AAF6 "\234\175\163-\234\175\170" .. -- U+ABE3-U+ABEA "\234\175\172" .. -- U+ABEC "\234\175\173" .. -- U+ABED "\239\172\158" .. -- U+FB1E "\239\184\160-\239\184\175" .. -- U+FE20-U+FE2F "\240\144\135\189" .. -- U+101FD "\240\144\139\160" .. -- U+102E0 "\240\144\141\182-\240\144\141\186" .. -- U+10376-U+1037A "\240\144\168\129-\240\144\168\131" .. -- U+10A01-U+10A03 "\240\144\168\133" .. -- U+10A05 "\240\144\168\134" .. -- U+10A06 "\240\144\168\140-\240\144\168\143" .. -- U+10A0C-U+10A0F "\240\144\168\184-\240\144\168\186" .. -- U+10A38-U+10A3A "\240\144\168\191" .. -- U+10A3F "\240\144\171\165" .. -- U+10AE5 "\240\144\171\166" .. -- U+10AE6 "\240\144\180\164-\240\144\180\167" .. -- U+10D24-U+10D27 "\240\144\181\169-\240\144\181\173" .. -- U+10D69-U+10D6D "\240\144\186\171" .. -- U+10EAB "\240\144\186\172" .. -- U+10EAC "\240\144\187\188-\240\144\187\191" .. -- U+10EFC-U+10EFF "\240\144\189\134-\240\144\189\144" .. -- U+10F46-U+10F50 "\240\144\190\130-\240\144\190\133" .. -- U+10F82-U+10F85 "\240\145\128\128-\240\145\128\130" .. -- U+11000-U+11002 "\240\145\128\184-\240\145\129\134" .. -- U+11038-U+11046 "\240\145\129\176" .. -- U+11070 "\240\145\129\179" .. -- U+11073 "\240\145\129\180" .. -- U+11074 "\240\145\129\191-\240\145\130\130" .. -- U+1107F-U+11082 "\240\145\130\176-\240\145\130\186" .. -- U+110B0-U+110BA "\240\145\131\130" .. -- U+110C2 "\240\145\132\128-\240\145\132\130" .. -- U+11100-U+11102 "\240\145\132\167-\240\145\132\180" .. -- U+11127-U+11134 "\240\145\133\133" .. -- U+11145 "\240\145\133\134" .. -- U+11146 "\240\145\133\179" .. -- U+11173 "\240\145\134\128-\240\145\134\130" .. -- U+11180-U+11182 "\240\145\134\179-\240\145\135\128" .. -- U+111B3-U+111C0 "\240\145\135\137-\240\145\135\140" .. -- U+111C9-U+111CC "\240\145\135\142" .. -- U+111CE "\240\145\135\143" .. -- U+111CF "\240\145\136\172-\240\145\136\183" .. -- U+1122C-U+11237 "\240\145\136\190" .. -- U+1123E "\240\145\137\129" .. -- U+11241 "\240\145\139\159-\240\145\139\170" .. -- U+112DF-U+112EA "\240\145\140\128-\240\145\140\131" .. -- U+11300-U+11303 "\240\145\140\187" .. -- U+1133B "\240\145\140\188" .. -- U+1133C "\240\145\140\190-\240\145\141\132" .. -- U+1133E-U+11344 "\240\145\141\135" .. -- U+11347 "\240\145\141\136" .. -- U+11348 "\240\145\141\139-\240\145\141\141" .. -- U+1134B-U+1134D "\240\145\141\151" .. -- U+11357 "\240\145\141\162" .. -- U+11362 "\240\145\141\163" .. -- U+11363 "\240\145\141\166-\240\145\141\172" .. -- U+11366-U+1136C "\240\145\141\176-\240\145\141\180" .. -- U+11370-U+11374 "\240\145\142\184-\240\145\143\128" .. -- U+113B8-U+113C0 "\240\145\143\130" .. -- U+113C2 "\240\145\143\133" .. -- U+113C5 "\240\145\143\135-\240\145\143\138" .. -- U+113C7-U+113CA "\240\145\143\140-\240\145\143\144" .. -- U+113CC-U+113D0 "\240\145\143\146" .. -- U+113D2 "\240\145\143\161" .. -- U+113E1 "\240\145\143\162" .. -- U+113E2 "\240\145\144\181-\240\145\145\134" .. -- U+11435-U+11446 "\240\145\145\158" .. -- U+1145E "\240\145\146\176-\240\145\147\131" .. -- U+114B0-U+114C3 "\240\145\150\175-\240\145\150\181" .. -- U+115AF-U+115B5 "\240\145\150\184-\240\145\151\128" .. -- U+115B8-U+115C0 "\240\145\151\156" .. -- U+115DC "\240\145\151\157" .. -- U+115DD "\240\145\152\176-\240\145\153\128" .. -- U+11630-U+11640 "\240\145\154\171-\240\145\154\183" .. -- U+116AB-U+116B7 "\240\145\156\157-\240\145\156\171" .. -- U+1171D-U+1172B "\240\145\160\172-\240\145\160\186" .. -- U+1182C-U+1183A "\240\145\164\176-\240\145\164\181" .. -- U+11930-U+11935 "\240\145\164\183" .. -- U+11937 "\240\145\164\184" .. -- U+11938 "\240\145\164\187-\240\145\164\190" .. -- U+1193B-U+1193E "\240\145\165\128") .. -- U+11940 ("\240\145\165\130" .. -- U+11942 "\240\145\165\131" .. -- U+11943 "\240\145\167\145-\240\145\167\151" .. -- U+119D1-U+119D7 "\240\145\167\154-\240\145\167\160" .. -- U+119DA-U+119E0 "\240\145\167\164" .. -- U+119E4 "\240\145\168\129-\240\145\168\138" .. -- U+11A01-U+11A0A "\240\145\168\179-\240\145\168\185" .. -- U+11A33-U+11A39 "\240\145\168\187-\240\145\168\190" .. -- U+11A3B-U+11A3E "\240\145\169\135" .. -- U+11A47 "\240\145\169\145-\240\145\169\155" .. -- U+11A51-U+11A5B "\240\145\170\138-\240\145\170\153" .. -- U+11A8A-U+11A99 "\240\145\176\175-\240\145\176\182" .. -- U+11C2F-U+11C36 "\240\145\176\184-\240\145\176\191" .. -- U+11C38-U+11C3F "\240\145\178\146-\240\145\178\167" .. -- U+11C92-U+11CA7 "\240\145\178\169-\240\145\178\182" .. -- U+11CA9-U+11CB6 "\240\145\180\177-\240\145\180\182" .. -- U+11D31-U+11D36 "\240\145\180\186" .. -- U+11D3A "\240\145\180\188" .. -- U+11D3C "\240\145\180\189" .. -- U+11D3D "\240\145\180\191-\240\145\181\133" .. -- U+11D3F-U+11D45 "\240\145\181\135" .. -- U+11D47 "\240\145\182\138-\240\145\182\142" .. -- U+11D8A-U+11D8E "\240\145\182\144" .. -- U+11D90 "\240\145\182\145" .. -- U+11D91 "\240\145\182\147-\240\145\182\151" .. -- U+11D93-U+11D97 "\240\145\187\179-\240\145\187\182" .. -- U+11EF3-U+11EF6 "\240\145\188\128" .. -- U+11F00 "\240\145\188\129" .. -- U+11F01 "\240\145\188\131" .. -- U+11F03 "\240\145\188\180-\240\145\188\186" .. -- U+11F34-U+11F3A "\240\145\188\190-\240\145\189\130" .. -- U+11F3E-U+11F42 "\240\145\189\154" .. -- U+11F5A "\240\147\145\128" .. -- U+13440 "\240\147\145\135-\240\147\145\149" .. -- U+13447-U+13455 "\240\150\132\158-\240\150\132\175" .. -- U+1611E-U+1612F "\240\150\171\176-\240\150\171\180" .. -- U+16AF0-U+16AF4 "\240\150\172\176-\240\150\172\182" .. -- U+16B30-U+16B36 "\240\150\189\143" .. -- U+16F4F "\240\150\189\145-\240\150\190\135" .. -- U+16F51-U+16F87 "\240\150\190\143-\240\150\190\146" .. -- U+16F8F-U+16F92 "\240\150\191\164" .. -- U+16FE4 "\240\150\191\176" .. -- U+16FF0 "\240\150\191\177" .. -- U+16FF1 "\240\155\178\157" .. -- U+1BC9D "\240\155\178\158" .. -- U+1BC9E "\240\156\188\128-\240\156\188\173" .. -- U+1CF00-U+1CF2D "\240\156\188\176-\240\156\189\134" .. -- U+1CF30-U+1CF46 "\240\157\133\165-\240\157\133\169" .. -- U+1D165-U+1D169 "\240\157\133\173-\240\157\133\178" .. -- U+1D16D-U+1D172 "\240\157\133\187-\240\157\134\130" .. -- U+1D17B-U+1D182 "\240\157\134\133-\240\157\134\139" .. -- U+1D185-U+1D18B "\240\157\134\170-\240\157\134\173" .. -- U+1D1AA-U+1D1AD "\240\157\137\130-\240\157\137\132" .. -- U+1D242-U+1D244 "\240\157\168\128-\240\157\168\182" .. -- U+1DA00-U+1DA36 "\240\157\168\187-\240\157\169\172" .. -- U+1DA3B-U+1DA6C "\240\157\169\181" .. -- U+1DA75 "\240\157\170\132" .. -- U+1DA84 "\240\157\170\155-\240\157\170\159" .. -- U+1DA9B-U+1DA9F "\240\157\170\161-\240\157\170\175" .. -- U+1DAA1-U+1DAAF "\240\158\128\128-\240\158\128\134" .. -- U+1E000-U+1E006 "\240\158\128\136-\240\158\128\152" .. -- U+1E008-U+1E018 "\240\158\128\155-\240\158\128\161" .. -- U+1E01B-U+1E021 "\240\158\128\163" .. -- U+1E023 "\240\158\128\164" .. -- U+1E024 "\240\158\128\166-\240\158\128\170" .. -- U+1E026-U+1E02A "\240\158\130\143" .. -- U+1E08F "\240\158\132\176-\240\158\132\182" .. -- U+1E130-U+1E136 "\240\158\138\174" .. -- U+1E2AE "\240\158\139\172-\240\158\139\175" .. -- U+1E2EC-U+1E2EF "\240\158\147\172-\240\158\147\175" .. -- U+1E4EC-U+1E4EF "\240\158\151\174" .. -- U+1E5EE "\240\158\151\175" .. -- U+1E5EF "\240\158\163\144-\240\158\163\150" .. -- U+1E8D0-U+1E8D6 "\240\158\165\132-\240\158\165\138") -- U+1E944-U+1E94A -- Double combining characters. -- Charset: [[:M:]&[:Canonical_Combining_Class=/^Double_/:]&[:^subhead=Grapheme joiner:]&[:^Variation_Selector=Yes:]] local comb_chars_double = "\205\156-\205\162" .. -- U+035C-U+0362 "\225\183\141" .. -- U+1DCD "\225\183\188" -- U+1DFC -- Variation selectors etc.; separated out so that we don't get categories for them. -- Charset: [[:M:]&[[:subhead=Grapheme joiner:][:Variation_Selector=Yes:]]]. local comb_chars_other = "\205\143" .. -- U+034F "\225\160\139-\225\160\141" .. -- U+180B-U+180D "\225\160\143" .. -- U+180F "\239\184\128-\239\184\143" .. -- U+FE00-U+FE0F "\243\160\132\128-\243\160\135\175" -- U+E0100-U+E01EF local comb_chars_all = comb_chars_single .. comb_chars_double .. comb_chars_other local comb_chars = { combined_single = "[^" .. comb_chars_all .. "][" .. comb_chars_single .. comb_chars_other .. "]+%f[^" .. comb_chars_all .. "]", combined_double = "[^" .. comb_chars_all .. "][" .. comb_chars_single .. comb_chars_other .. "]*[" .. comb_chars_double .. "]+[" .. comb_chars_all .. "]*.[" .. comb_chars_single .. comb_chars_other .. "]*", diacritics_single = "[" .. comb_chars_single .. "]", diacritics_double = "[" .. comb_chars_double .. "]", diacritics_all = "[" .. comb_chars_all .. "]" } -- Somewhat curated list from https://unicode.org/Public/emoji/16.0/emoji-sequences.txt. -- NOTE: There are lots more emoji sequences involving non-emoji Plane 0 symbols followed by 0xFE0F, which we don't -- (yet?) handle. local emoji_chars = "\226\140\154" .. -- U+231A (⌚) "\226\140\155" .. -- U+231B (⌛) "\226\140\168" .. -- U+2328 (⌨) "\226\143\143" .. -- U+23CF (⏏) "\226\143\169-\226\143\179" .. -- U+23E9-U+23F3 (⏩-⏳) "\226\143\184-\226\143\186" .. -- U+23F8-U+23FA (⏸-⏺) "\226\150\170" .. -- U+25AA (▪) "\226\150\171" .. -- U+25AB (▫) "\226\150\182" .. -- U+25B6 (▶) "\226\151\128" .. -- U+25C0 (◀) "\226\151\187-\226\151\190" .. -- U+25FB-U+25FE (◻-◾) "\226\152\128-\226\152\132" .. -- U+2600-U+2604 (☀-☄) "\226\152\142" .. -- U+260E (☎) "\226\152\145" .. -- U+2611 (☑) "\226\152\148" .. -- U+2614 (☔) "\226\152\149" .. -- U+2615 (☕) "\226\152\152" .. -- U+2618 (☘) "\226\152\157" .. -- U+261D (☝) "\226\152\160" .. -- U+2620 (☠) "\226\152\162" .. -- U+2622 (☢) "\226\152\163" .. -- U+2623 (☣) "\226\152\166" .. -- U+2626 (☦) "\226\152\170" .. -- U+262A (☪) "\226\152\174" .. -- U+262E (☮) "\226\152\175" .. -- U+262F (☯) "\226\152\184-\226\152\186" .. -- U+2638-U+263A (☸-☺) "\226\153\136-\226\153\147" .. -- U+2648-U+2653 (♈-♓) "\226\153\159" .. -- U+265F (♟) "\226\153\160" .. -- U+2660 (♠) "\226\153\163" .. -- U+2663 (♣) "\226\153\165" .. -- U+2665 (♥) "\226\153\166" .. -- U+2666 (♦) "\226\153\168" .. -- U+2668 (♨) "\226\153\187" .. -- U+267B (♻) "\226\153\190" .. -- U+267E (♾) "\226\153\191" .. -- U+267F (♿) "\226\154\146-\226\154\151" .. -- U+2692-U+2697 (⚒-⚗) "\226\154\153" .. -- U+2699 (⚙) "\226\154\155" .. -- U+269B (⚛) "\226\154\156" .. -- U+269C (⚜) "\226\154\160" .. -- U+26A0 (⚠) "\226\154\161" .. -- U+26A1 (⚡) "\226\154\170" .. -- U+26AA (⚪) "\226\154\171" .. -- U+26AB (⚫) "\226\154\176" .. -- U+26B0 (⚰) "\226\154\177" .. -- U+26B1 (⚱) "\226\154\189" .. -- U+26BD (⚽) "\226\154\190" .. -- U+26BE (⚾) "\226\155\132" .. -- U+26C4 (⛄) "\226\155\133" .. -- U+26C5 (⛅) "\226\155\136" .. -- U+26C8 (⛈) "\226\155\142" .. -- U+26CE (⛎) "\226\155\143" .. -- U+26CF (⛏) "\226\155\145" .. -- U+26D1 (⛑) "\226\155\147" .. -- U+26D3 (⛓) "\226\155\148" .. -- U+26D4 (⛔) "\226\155\169" .. -- U+26E9 (⛩) "\226\155\170" .. -- U+26EA (⛪) "\226\155\176-\226\155\181" .. -- U+26F0-U+26F5 (⛰-⛵) "\226\155\183-\226\155\186" .. -- U+26F7-U+26FA (⛷-⛺) "\226\155\189" .. -- U+26FD (⛽) "\226\156\130" .. -- U+2702 (✂) "\226\156\133" .. -- U+2705 (✅) "\226\156\136-\226\156\141" .. -- U+2708-U+270D (✈-✍) "\226\156\143" .. -- U+270F (✏) "\226\156\146" .. -- U+2712 (✒) "\226\156\148" .. -- U+2714 (✔) "\226\156\150" .. -- U+2716 (✖) "\226\156\157" .. -- U+271D (✝) "\226\156\161" .. -- U+2721 (✡) "\226\156\168" .. -- U+2728 (✨) "\226\156\179" .. -- U+2733 (✳) "\226\156\180" .. -- U+2734 (✴) "\226\157\132" .. -- U+2744 (❄) "\226\157\135" .. -- U+2747 (❇) "\226\157\140" .. -- U+274C (❌) "\226\157\142" .. -- U+274E (❎) "\226\157\147-\226\157\149" .. -- U+2753-U+2755 (❓-❕) "\226\157\151" .. -- U+2757 (❗) "\226\157\163" .. -- U+2763 (❣) "\226\157\164" .. -- U+2764 (❤) "\226\158\149-\226\158\151" .. -- U+2795-U+2797 (➕-➗) "\226\158\161" .. -- U+27A1 (➡) "\226\158\176" .. -- U+27B0 (➰) "\226\158\191" .. -- U+27BF (➿) "\226\164\180" .. -- U+2934 (⤴) "\226\164\181" .. -- U+2935 (⤵) "\226\172\133-\226\172\135" .. -- U+2B05-U+2B07 (⬅-⬇) "\226\172\155" .. -- U+2B1B (⬛) "\226\172\156" .. -- U+2B1C (⬜) "\226\173\144" .. -- U+2B50 (⭐) "\226\173\149" .. -- U+2B55 (⭕) "\227\128\176" .. -- U+3030 (〰) "\227\128\189" .. -- U+303D (〽) "\227\138\151" .. -- U+3297 (㊗) "\227\138\153" .. -- U+3299 (㊙) "\240\159\128\132" .. -- U+1F004 (🀄) "\240\159\131\143" .. -- U+1F0CF (🃏) "\240\159\133\176" .. -- U+1F170 (🅰) "\240\159\133\177" .. -- U+1F171 (🅱) "\240\159\133\190" .. -- U+1F17E (🅾) "\240\159\133\191" .. -- U+1F17F (🅿) "\240\159\134\142" .. -- U+1F18E (🆎) "\240\159\134\145-\240\159\134\154" .. -- U+1F191-U+1F19A (🆑-🆚) "\240\159\136\129" .. -- U+1F201 (🈁) "\240\159\136\130" .. -- U+1F202 (🈂) "\240\159\136\154" .. -- U+1F21A (🈚) "\240\159\136\175" .. -- U+1F22F (🈯) "\240\159\136\178-\240\159\136\186" .. -- U+1F232-U+1F23A (🈲-🈺) "\240\159\137\144" .. -- U+1F250 (🉐) "\240\159\137\145" .. -- U+1F251 (🉑) "\240\159\140\128-\240\159\153\143" .. -- U+1F300-U+1F64F (🌀-🙏) "\240\159\154\128-\240\159\155\151" .. -- U+1F680-U+1F6D7 (🚀-🛗) "\240\159\155\156-\240\159\155\172" .. -- U+1F6DC-U+1F6EC (🛜-🛬) "\240\159\155\176-\240\159\155\188" .. -- U+1F6F0-U+1F6FC (🛰-🛼) "\240\159\159\160-\240\159\159\171" .. -- U+1F7E0-U+1F7EB (🟠-🟫) "\240\159\159\176" .. -- U+1F7F0 (🟰) "\240\159\164\140-\240\159\169\147" .. -- U+1F90C-U+1FA53 (🤌-🩓) "\240\159\169\160-\240\159\169\173" .. -- U+1FA60-U+1FA6D (🩠-🩭) "\240\159\169\176-\240\159\169\188" .. -- U+1FA70-U+1FA7C (🩰-🩼) "\240\159\170\128-\240\159\170\137" .. -- U+1FA80-U+1FA89 (🪀-🪉) "\240\159\170\143-\240\159\171\134" .. -- U+1FA8F-U+1FAC6 (🪏-🫆) "\240\159\171\142-\240\159\171\156" .. -- U+1FACE-U+1FADC (🫎-🫜) "\240\159\171\159-\240\159\171\169" .. -- U+1FADF-U+1FAE9 (🫟-🫩) "\240\159\171\176-\240\159\171\184" -- U+1FAF0-U+1FAF8 (🫰-🫸) local unsupported_characters local function get_unsupported_characters() unsupported_characters, get_unsupported_characters = {}, nil for k, v in pairs(load_data("Module:links/data").unsupported_characters) do unsupported_characters[v] = k end return unsupported_characters end -- The list of unsupported titles and invert it (so the keys are pagenames and values are canonical titles). local unsupported_titles local function get_unsupported_titles() unsupported_titles, get_unsupported_titles = {}, nil for k, v in pairs(load_data("Module:links/data").unsupported_titles) do unsupported_titles[v] = k end return unsupported_titles end -- To save on memory, we only cache names with either non-ASCII characters in them or ASCII characters to be removed or -- transformed (apostrophe, double quote, hyphen). local L2_sort_key_cache = {} function export.get_L2_sort_key(L2) if L2 == "Rentas bahasa" then return "\1" elseif L2 == "Bahasa Melayu" then return "\2" elseif match(L2, "^[%z\1-\b\14-!#-&(-,.-\127]+$") then return L2 end local sort_key = L2_sort_key_cache[L2] if sort_key then return sort_key end sort_key = toNFC(ugsub(ugsub(toNFD(L2), "[" .. comb_chars_all .. "'\"ʻʼ]+", ""), "[%s%-]+", " ")) L2_sort_key_cache[L2] = sort_key return sort_key end --[==[ Given a pagename (or {nil} for the current page), create and return a data structure describing the page. The returned object includes the following fields: * `comb_chars`: A table containing various Lua character class patterns for different types of combined characters (those that decompose into multiple characters in the NFD decomposition). The patterns are meant to be used with {mw.ustring.find()}. The keys are: ** `single`: Single combining characters (character + diacritic), without surrounding brackets; ** `double`: Double combining characters (character + diacritic + character), without surrounding brackets; ** `vs`: Variation selectors, without surrounding brackets; ** `all`: Concatenation of `single` + `double` + `vs`, without surrounding brackets; ** `diacritics_single`: Like `single` but with surrounding brackets; ** `diacritics_double`: Like `double` but with surrounding brackets; ** `diacritics_all`: Like `all` but with surrounding brackets; ** `combined_single`: Lua pattern for matching a spacing character followed by one or more single combining characters; ** `combined_double`: Lua pattern for matching a combination of two spacing characters separated by one or more double combining characters, possibly also with single combining characters; * `emoji_pattern`: A Lua character class pattern (including surrounding brackets) that matches emojis. Meant to be used with {mw.ustring.find()}. * `L2_list`: Ordered list of L2 headings on the page, with the extra key `n` that gives the length of the list. * `L2_sections`: Lookup table of L2 headings on the page, where the key is the section number assigned by the preprocessor, and the value is the L2 heading name. Once an invocation has got its actual section number from get_current_L2 in [[Module:pages]], it can use this table to determine its parent L2. TODO: We could expand this to include subsections, to check POS headings are correct etc. * `unsupported_titles`: Map from pagenames to canonical titles for unsupported-title pages. * `namespace`: Namespace of the pagename. * `ns`: Namespace table for the page from mw.site.namespaces (TODO: merge with `namespace` above). * `full_raw_pagename`: Full version of the '''RAW''' pagename (i.e. unsupported-title pages aren't canonicalized); including the namespace and the base (portion before the slash). * `pagename`: Canonicalized subpage portion of the pagename (unsupported-title pages are canonicalized). * `pagename_with_base`: Same as `pagename` in the main namespace; otherwise, the whole pagename without the namespace. * `decompose_pagename`: Equivalent of `pagename` in NFD decomposition. * `pagename_len`: Length of `pagename` in Unicode chars, where combinations of spacing character + decomposed diacritic are treated as single characters. * `explode_pagename`: Set of characters found in `pagename`. The keys are characters (where combinations of spacing character + decomposed diacritic are treated as single characters). * `encoded_pagename`: FIXME: Document me. * `pagename_defaultsort`: FIXME: Document me. * `raw_defaultsort`: FIXME: Document me. * `wikitext_topic_cat`: FIXME: Document me. * `wikitext_langname_cat`: FIXME: Document me. `no_fetch_content` says to not fetch and parse the content or set a DEFAULTSORT sort key, in order to save time on test and documentation pages that have lots of template invocations that set `|pagename=`. It turns out nearly all the time of this function is contained in the line `frame:callParserFunction("DEFAULTSORT", data.pagename_defaultsort)`, so we skip it on test and documentation pages where it accomplishes nothing in any case. ]==] function export.process_page(pagename, no_fetch_content) local data = { comb_chars = comb_chars, emoji_pattern = "[" .. emoji_chars .. "]", unsupported_titles = unsupported_titles or get_unsupported_titles() } local cats = {} data.cats = cats -- We cannot store `raw_title` in `data` because it contains a metatable. local raw_title local function bad_pagename() if not pagename then error("Internal error: Something wrong, `data.pagename` not specified but current title contains illegal characters") else error(format("Bad value for `data.pagename`: '%s', which must not contain illegal characters", pagename)) end end if pagename then -- for testing, doc pages, etc. raw_title = new_title(pagename) if not raw_title then bad_pagename() end else raw_title = mw.title.getCurrentTitle() end local nsText = raw_title.nsText local namespace_is_reconstruction = nsText == "Rekonstruksi" data.namespace = nsText data.ns = mw.site.namespaces[raw_title.namespace] local full_raw_pagename = raw_title.fullText data.full_raw_pagename = full_raw_pagename local frame = mw.getCurrentFrame() -- WARNING: `content` may be nil, e.g. if we're substing a template like {{ja-new}} on a not-yet-created page -- or if the module specifies the subpage as `data.pagename` (which many modules do) and we're in an Appendix -- or other non-mainspace page. We used to make the latter an error but there are too many modules that do it, -- and substing on a nonexistent page is totally legit, and we don't actually need to be able to access the -- content of the page. local content = not no_fetch_content and raw_title:getContent() or nil -- Get the pagename. pagename = physical_to_logical_pagename_if_mammoth(raw_title) pagename = gsub(pagename, "^Tajuk tidak disokong/(.+)", function(m) insert(cats, "Tajuk tidak disokong") local title = (unsupported_titles or get_unsupported_titles())[m] if title then return title end -- Substitute pairs of "`". Those not used for escaping should be escaped as "`grave`", but might not be, -- so if a pair don't form a match, the closing "`" should become the opening "`" of the next match attempt. -- This has to be done manually, instead of using gsub. local open_pos = find(m, "`") if not open_pos then return m end title = {sub(m, 1, open_pos - 1)} while true do local close_pos = find(m, "`", open_pos + 1) if not close_pos then -- Add "`" plus any remaining characters. insert(title, sub(m, open_pos)) break end local escape = sub(m, open_pos, close_pos) local ch = (unsupported_characters or get_unsupported_characters())[escape] -- Match found, so substitute the character and move to the first "`" after the match if found, or -- otherwise return. if ch then insert(title, ch) local nxt_pos = close_pos + 1 open_pos = find(m, "`", nxt_pos) -- Add any characters between the match and the next "`" or end. if open_pos then insert(title, sub(m, nxt_pos, open_pos - 1)) else insert(title, sub(m, nxt_pos)) break end -- Match not found, so make the closing "`" the opening "`" of the next attempt. else -- Add the failed match, except for the closing "`". insert(title, sub(m, open_pos, close_pos - 1)) open_pos = close_pos end end return concat(title) end) -- Save pagename, as the local variable will be destructively modified. data.pagename = pagename if nsText == "" then data.pagename_with_base = pagename else data.pagename_with_base = raw_title.text end -- Decompose the pagename in Unicode normalization form D. data.decompose_pagename = toNFD(pagename) -- Explode the current page name into a character table, taking decomposed combining characters into account. local explode_pagename = {} local pagename_len = 0 local function explode(char) explode_pagename[char] = true pagename_len = pagename_len + 1 return "" end pagename = ugsub(pagename, comb_chars.combined_double, explode) pagename = gsub(ugsub(pagename, comb_chars.combined_single, explode), ".[\128-\191]*", explode) data.explode_pagename = explode_pagename data.pagename_len = pagename_len -- Generate DEFAULTSORT. data.encoded_pagename = encode_entities(data.pagename) data.pagename_defaultsort = get_lang("mul"):makeSortKey(data.encoded_pagename) if not no_fetch_content then frame:callParserFunction("DEFAULTSORT", data.pagename_defaultsort) end data.raw_defaultsort = uupper(raw_title.text) -- Make `L2_list` and `L2_sections`, note raw wikitext use of {{DEFAULTSORT:}} and {{DISPLAYTITLE:}}, then add categories if any unwanted L1 headings are found, the L2 headings are in the wrong order, or they don't match a canonical language name. -- Note: HTML comments shouldn't be removed from `content` until after this step, as they can affect the result. do local L2_list, L2_list_len, L2_sections = {}, 0, {} local prev, rc local new_cats, L2_wrong_order = {} local function handle_heading(heading) local level = heading.level if level > 2 then return end local name = heading:get_name() -- heading:get_name() will return nil if there are any newline characters in the preprocessed heading name (e.g. from an expanded template). In such cases, the preprocessor section count still increments (since it's calculated pre-expansion), but the heading will fail, so the L2 count shouldn't be incremented. if name == nil then return end L2_list_len = L2_list_len + 1 L2_list[L2_list_len] = name L2_sections[heading.section] = name -- Also add any L1s, since they terminate the preceding L2, but add a maintenance category since it's probably a mistake. if level == 1 then new_cats["Laman dengan pengepala L1 tidak dikehendaki"] = true end -- Check the heading is in the right order. -- FIXME: we need a more sophisticated sorting method which handles non-diacritic special characters (e.g. Magɨ). if prev and not ( L2_wrong_order or string_compare(export.get_L2_sort_key(prev), export.get_L2_sort_key(name)) ) then new_cats["Laman dengan pengepala bahasa dalam susunan salah"] = true L2_wrong_order = true end -- Check it's a canonical language name. local canonical_name = name:match("^Bahasa (.+)$") local valid_heading = name == "Rentas bahasa" or ( canonical_name ~= nil and (langnames or get_langnames())[canonical_name] ~= nil ) if not valid_heading then new_cats["Laman dengan pengepala bahasa tidak piawai"] = true end prev = name end local function handle_template(template) -- Turn off redirect checking except in the Reconstruction namespace because the rc flag is only -- used in the Reconstruction namespace and the other names are parser functions, which AFAIK can't -- be redirected to. local name = template:get_name(nil, not namespace_is_reconstruction and "no_redirect" or nil) if name == "DEFAULTSORT:" then new_cats["Laman dengan percanggahan DEFAULTSORT"] = true elseif name == "DISPLAYTITLE:" then new_cats["Laman dengan percanggahan DISPLAYTITLE"] = true elseif name == "reconstructed" then rc = true end end if content then for node in parse(content):iterate_nodes() do local node_class = class_else_type(node) if node_class == "heading" then handle_heading(node) elseif node_class == "template" then handle_template(node) elseif node_class == "parameter" then new_cats["Laman dengan parameter templat bertanda kurung dakap ganda tiga"] = true end end end L2_list.n = L2_list_len data.L2_list = L2_list data.L2_sections = L2_sections insert(cats, get_category("Laman dengan lema")) insert(cats, get_category(format("Laman dengan %s lema", L2_list_len))) for cat in pairs(new_cats) do insert(cats, get_category(cat)) end if namespace_is_reconstruction and not rc then local langname = match(full_raw_pagename, "^Rekonstruksi:([^/]+)/.") if langname then insert(cats, get_category("Lema bahasa " .. langname .. " kehilangan Templat:reconstructed")) end end end ------ 4. Parse page for maintenance categories. ------ -- Use of tab characters. if content and find(content, "\t", 1, true) then insert(cats, get_category("Laman dengan aksara tab")) end -- Unencoded character(s) in title. local IDS = list_to_set{"⿰", "⿱", "⿲", "⿳", "⿴", "⿵", "⿶", "⿷", "⿸", "⿹", "⿺", "⿻", "⿼", "⿽", "⿾", "⿿", "㇯"} for char in pairs(explode_pagename) do if IDS[char] and char ~= data.pagename then insert(cats, "Perkataan mengandungi aksara tidak dikodkan") break end end -- Raw wikitext use of a topic or langname category. Also check if any raw sortkeys have been used. do local wikitext_topic_cat = {} local wikitext_langname_cat = {} local raw_sortkey -- If a raw sortkey has been found, add it to the relevant table. -- If there's no table (or the index is just `true`), create one first. local function add_cat_table(t, lang, sortkey) local t_lang = t[lang] if not sortkey then if not t_lang then t[lang] = true end return elseif t_lang == true or not t_lang then t_lang = {} t[lang] = t_lang end t_lang[uupper(decode_entities(sortkey))] = true end local function process_category(content, cat, colon, nxt) local pipe = find(cat, "|", colon + 1, true) -- Categories cannot end "|]]". if pipe == #cat then return end local title = new_title(pipe and sub(cat, 1, pipe - 1) or cat) if not (title and title.namespace == 14) then return end -- Get the sortkey (if any), then canonicalize category title. local sortkey = pipe and sub(cat, pipe + 1) or nil cat = title.text if sortkey then raw_sortkey = true -- If the sortkey contains "[", the first "]" of a final "]]]" is treated as part of the sortkey. if find(sortkey, "[", 1, true) and sub(content, nxt, nxt) == "]" then sortkey = sortkey .. "]" end end local code = match(cat, "^([%w%-.]+):") if code then add_cat_table(wikitext_topic_cat, code, sortkey) return end -- Split by word. cat = split(cat, " ", true, true) -- Formerly we looked for the language name anywhere in the category. This is simply wrong -- because there are no categories like 'Alsatian French lemmas' (only L2 languages -- have langname categories), but doing it this way wrongly catches things like [[Category:Shapsug Adyghe]] -- in [[Category:Adyghe entries with language name categories using raw markup]]. local n = #cat - 1 if n <= 0 then return end -- Go from longest to shortest and stop once we've found a language name. Going from shortest -- to longest or not stopping after a match risks falsely matching (e.g.) German Low German -- categories as German. repeat local name = concat(cat, " ", 1, n) if "Bahasa " and (langnames or get_langnames())[name] then add_cat_table(wikitext_langname_cat, name, sortkey) return end n = n - 1 until n == 0 end if content then -- Remove comments, then iterate over category links. content = remove_comments(content, "BOTH") local head = find(content, "[[", 1, true) while head do local close = find(content, "]]", head + 2, true) if not close then break end -- Make sure there are no intervening "[[" between head and close. local open = find(content, "[[", head + 2, true) while open and open < close do head = open open = find(content, "[[", head + 2, true) end local cat = sub(content, head + 2, close - 1) -- Locate the colon, and weed out most unwanted links. "[ _\128-\244]*" catches valid whitespace, and ensures any category links using the colon trick are ignored. We match all non-ASCII characters, as there could be multibyte spaces, and mw.title.new will filter out any remaining false-positives; this is a lot faster than running mw.title.new on every link. local colon = match(cat, "^[ _\128-\244]*[Kk][Aa][Tt][EeGgOoRrIi _\128-\244]*():") if colon then process_category(content, cat, colon, close + 2) end head = open end end data.wikitext_topic_cat = wikitext_topic_cat data.wikitext_langname_cat = wikitext_langname_cat if raw_sortkey then insert(cats, get_category("Laman dengan kunci isih mentah")) end end return data end return export afdlcg8ctxd8ntgsc94o9crswylev82 376873 376774 2026-09-28T04:21:39Z Hakimi97 2668 Membatalkan semakan [[Special:Diff/376774|376774]] oleh [[Special:Contributions/SNN95|SNN95]] ([[User talk:SNN95|bincang]]), kembalikan balik "Laman dengan entri" berbanding "Laman dengan lema" buat masa ini sebab pokok kategori belum dikemas kini 376873 Scribunto text/plain local export = {} local languages_module = "Module:languages" local maintenance_category_module = "Module:maintenance category" local pages_module = "Module:pages" local string_compare_module = "Module:string/compare" local string_decode_entities_module = "Module:string/decodeEntities" local string_remove_comments_module = "Module:string/removeComments" local string_utilities_module = "Module:string utilities" local table_module = "Module:table" local template_parser_module = "Module:template parser" local mw = mw local string = string local table = table local ustring = mw.ustring local concat = table.concat local find = string.find local format = string.format local gsub = string.gsub local insert = table.insert local load_data = mw.loadData local match = string.match local new_title = mw.title.new local pairs = pairs local require = require local sub = string.sub local toNFC = ustring.toNFC local toNFD = ustring.toNFD local ugsub = ustring.gsub local function class_else_type(...) class_else_type = require(template_parser_module).class_else_type return class_else_type(...) end local function decode_entities(...) decode_entities = require(string_decode_entities_module) return decode_entities(...) end local function encode_entities(...) encode_entities = require(string_utilities_module).encode_entities return encode_entities(...) end local function get_category(...) get_category = require(maintenance_category_module).get_category return get_category(...) end local function get_lang(...) get_lang = require(languages_module).getByCode return get_lang(...) end local function list_to_set(...) list_to_set = require(table_module).listToSet return list_to_set(...) end local function parse(...) parse = require(template_parser_module).parse return parse(...) end local function remove_comments(...) remove_comments = require(string_remove_comments_module) return remove_comments(...) end local function physical_to_logical_pagename_if_mammoth(...) physical_to_logical_pagename_if_mammoth = require(pages_module).physical_to_logical_pagename_if_mammoth return physical_to_logical_pagename_if_mammoth(...) end local function split(...) split = require(string_utilities_module).split return split(...) end local function string_compare(...) string_compare = require(string_compare_module) return string_compare(...) end local function uupper(...) uupper = require(string_utilities_module).upper return uupper(...) end --[==[ Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==] local langnames local function get_langnames() langnames, get_langnames = load_data("Module:languages/canonical names"), nil return langnames end -- Combining character data used when categorising unusual characters. These resolve into two patterns, used to find -- single combining characters (i.e. character + diacritic(s)) or double combining characters (i.e. character + -- diacritic(s) + character). -- Charsets are in the format used by Unicode's UnicodeSet tool: https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp. -- Single combining characters. -- Charset: [[:M:]&[:^Canonical_Combining_Class=/^Double_/:]&[:^subhead=Grapheme joiner:]&[:^Variation_Selector=Yes:]] -- Note: concatenating hundreds of lines at once gives an error, so () are used every 150 lines to break it up into chunks. local comb_chars_single = ("\204\128-\205\142" .. -- U+0300-U+034E "\205\144-\205\155" .. -- U+0350-U+035B "\205\163-\205\175" .. -- U+0363-U+036F "\210\131-\210\137" .. -- U+0483-U+0489 "\214\145-\214\189" .. -- U+0591-U+05BD "\214\191" .. -- U+05BF "\215\129" .. -- U+05C1 "\215\130" .. -- U+05C2 "\215\132" .. -- U+05C4 "\215\133" .. -- U+05C5 "\215\135" .. -- U+05C7 "\216\144-\216\154" .. -- U+0610-U+061A "\217\139-\217\159" .. -- U+064B-U+065F "\217\176" .. -- U+0670 "\219\150-\219\156" .. -- U+06D6-U+06DC "\219\159-\219\164" .. -- U+06DF-U+06E4 "\219\167" .. -- U+06E7 "\219\168" .. -- U+06E8 "\219\170-\219\173" .. -- U+06EA-U+06ED "\220\145" .. -- U+0711 "\220\176-\221\138" .. -- U+0730-U+074A "\222\166-\222\176" .. -- U+07A6-U+07B0 "\223\171-\223\179" .. -- U+07EB-U+07F3 "\223\189" .. -- U+07FD "\224\160\150-\224\160\153" .. -- U+0816-U+0819 "\224\160\155-\224\160\163" .. -- U+081B-U+0823 "\224\160\165-\224\160\167" .. -- U+0825-U+0827 "\224\160\169-\224\160\173" .. -- U+0829-U+082D "\224\161\153-\224\161\155" .. -- U+0859-U+085B "\224\162\151-\224\162\159" .. -- U+0897-U+089F "\224\163\138-\224\163\161" .. -- U+08CA-U+08E1 "\224\163\163-\224\164\131" .. -- U+08E3-U+0903 "\224\164\186-\224\164\188" .. -- U+093A-U+093C "\224\164\190-\224\165\143" .. -- U+093E-U+094F "\224\165\145-\224\165\151" .. -- U+0951-U+0957 "\224\165\162" .. -- U+0962 "\224\165\163" .. -- U+0963 "\224\166\129-\224\166\131" .. -- U+0981-U+0983 "\224\166\188" .. -- U+09BC "\224\166\190-\224\167\132" .. -- U+09BE-U+09C4 "\224\167\135" .. -- U+09C7 "\224\167\136" .. -- U+09C8 "\224\167\139-\224\167\141" .. -- U+09CB-U+09CD "\224\167\151" .. -- U+09D7 "\224\167\162" .. -- U+09E2 "\224\167\163" .. -- U+09E3 "\224\167\190" .. -- U+09FE "\224\168\129-\224\168\131" .. -- U+0A01-U+0A03 "\224\168\188" .. -- U+0A3C "\224\168\190-\224\169\130" .. -- U+0A3E-U+0A42 "\224\169\135" .. -- U+0A47 "\224\169\136" .. -- U+0A48 "\224\169\139-\224\169\141" .. -- U+0A4B-U+0A4D "\224\169\145" .. -- U+0A51 "\224\169\176" .. -- U+0A70 "\224\169\177" .. -- U+0A71 "\224\169\181" .. -- U+0A75 "\224\170\129-\224\170\131" .. -- U+0A81-U+0A83 "\224\170\188" .. -- U+0ABC "\224\170\190-\224\171\133" .. -- U+0ABE-U+0AC5 "\224\171\135-\224\171\137" .. -- U+0AC7-U+0AC9 "\224\171\139-\224\171\141" .. -- U+0ACB-U+0ACD "\224\171\162" .. -- U+0AE2 "\224\171\163" .. -- U+0AE3 "\224\171\186-\224\171\191" .. -- U+0AFA-U+0AFF "\224\172\129-\224\172\131" .. -- U+0B01-U+0B03 "\224\172\188" .. -- U+0B3C "\224\172\190-\224\173\132" .. -- U+0B3E-U+0B44 "\224\173\135" .. -- U+0B47 "\224\173\136" .. -- U+0B48 "\224\173\139-\224\173\141" .. -- U+0B4B-U+0B4D "\224\173\149-\224\173\151" .. -- U+0B55-U+0B57 "\224\173\162" .. -- U+0B62 "\224\173\163" .. -- U+0B63 "\224\174\130" .. -- U+0B82 "\224\174\190-\224\175\130" .. -- U+0BBE-U+0BC2 "\224\175\134-\224\175\136" .. -- U+0BC6-U+0BC8 "\224\175\138-\224\175\141" .. -- U+0BCA-U+0BCD "\224\175\151" .. -- U+0BD7 "\224\176\128-\224\176\132" .. -- U+0C00-U+0C04 "\224\176\188" .. -- U+0C3C "\224\176\190-\224\177\132" .. -- U+0C3E-U+0C44 "\224\177\134-\224\177\136" .. -- U+0C46-U+0C48 "\224\177\138-\224\177\141" .. -- U+0C4A-U+0C4D "\224\177\149" .. -- U+0C55 "\224\177\150" .. -- U+0C56 "\224\177\162" .. -- U+0C62 "\224\177\163" .. -- U+0C63 "\224\178\129-\224\178\131" .. -- U+0C81-U+0C83 "\224\178\188" .. -- U+0CBC "\224\178\190-\224\179\132" .. -- U+0CBE-U+0CC4 "\224\179\134-\224\179\136" .. -- U+0CC6-U+0CC8 "\224\179\138-\224\179\141" .. -- U+0CCA-U+0CCD "\224\179\149" .. -- U+0CD5 "\224\179\150" .. -- U+0CD6 "\224\179\162" .. -- U+0CE2 "\224\179\163" .. -- U+0CE3 "\224\179\179" .. -- U+0CF3 "\224\180\128-\224\180\131" .. -- U+0D00-U+0D03 "\224\180\187" .. -- U+0D3B "\224\180\188" .. -- U+0D3C "\224\180\190-\224\181\132" .. -- U+0D3E-U+0D44 "\224\181\134-\224\181\136" .. -- U+0D46-U+0D48 "\224\181\138-\224\181\141" .. -- U+0D4A-U+0D4D "\224\181\151" .. -- U+0D57 "\224\181\162" .. -- U+0D62 "\224\181\163" .. -- U+0D63 "\224\182\129-\224\182\131" .. -- U+0D81-U+0D83 "\224\183\138" .. -- U+0DCA "\224\183\143-\224\183\148" .. -- U+0DCF-U+0DD4 "\224\183\150" .. -- U+0DD6 "\224\183\152-\224\183\159" .. -- U+0DD8-U+0DDF "\224\183\178" .. -- U+0DF2 "\224\183\179" .. -- U+0DF3 "\224\184\177" .. -- U+0E31 "\224\184\180-\224\184\186" .. -- U+0E34-U+0E3A "\224\185\135-\224\185\142" .. -- U+0E47-U+0E4E "\224\186\177" .. -- U+0EB1 "\224\186\180-\224\186\188" .. -- U+0EB4-U+0EBC "\224\187\136-\224\187\142" .. -- U+0EC8-U+0ECE "\224\188\152" .. -- U+0F18 "\224\188\153" .. -- U+0F19 "\224\188\181" .. -- U+0F35 "\224\188\183" .. -- U+0F37 "\224\188\185" .. -- U+0F39 "\224\188\190" .. -- U+0F3E "\224\188\191" .. -- U+0F3F "\224\189\177-\224\190\132" .. -- U+0F71-U+0F84 "\224\190\134" .. -- U+0F86 "\224\190\135" .. -- U+0F87 "\224\190\141-\224\190\151" .. -- U+0F8D-U+0F97 "\224\190\153-\224\190\188" .. -- U+0F99-U+0FBC "\224\191\134" .. -- U+0FC6 "\225\128\171-\225\128\190" .. -- U+102B-U+103E "\225\129\150-\225\129\153" .. -- U+1056-U+1059 "\225\129\158-\225\129\160" .. -- U+105E-U+1060 "\225\129\162-\225\129\164" .. -- U+1062-U+1064 "\225\129\167-\225\129\173" .. -- U+1067-U+106D "\225\129\177-\225\129\180" .. -- U+1071-U+1074 "\225\130\130-\225\130\141" .. -- U+1082-U+108D "\225\130\143" .. -- U+108F "\225\130\154-\225\130\157" .. -- U+109A-U+109D "\225\141\157-\225\141\159" .. -- U+135D-U+135F "\225\156\146-\225\156\149" .. -- U+1712-U+1715 "\225\156\178-\225\156\180" .. -- U+1732-U+1734 "\225\157\146" .. -- U+1752 "\225\157\147" .. -- U+1753 "\225\157\178" .. -- U+1772 "\225\157\179" .. -- U+1773 "\225\158\180-\225\159\147") .. -- U+17B4-U+17D3 ("\225\159\157" .. -- U+17DD "\225\162\133" .. -- U+1885 "\225\162\134" .. -- U+1886 "\225\162\169" .. -- U+18A9 "\225\164\160-\225\164\171" .. -- U+1920-U+192B "\225\164\176-\225\164\187" .. -- U+1930-U+193B "\225\168\151-\225\168\155" .. -- U+1A17-U+1A1B "\225\169\149-\225\169\158" .. -- U+1A55-U+1A5E "\225\169\160-\225\169\188" .. -- U+1A60-U+1A7C "\225\169\191" .. -- U+1A7F "\225\170\176-\225\171\142" .. -- U+1AB0-U+1ACE "\225\172\128-\225\172\132" .. -- U+1B00-U+1B04 "\225\172\180-\225\173\132" .. -- U+1B34-U+1B44 "\225\173\171-\225\173\179" .. -- U+1B6B-U+1B73 "\225\174\128-\225\174\130" .. -- U+1B80-U+1B82 "\225\174\161-\225\174\173" .. -- U+1BA1-U+1BAD "\225\175\166-\225\175\179" .. -- U+1BE6-U+1BF3 "\225\176\164-\225\176\183" .. -- U+1C24-U+1C37 "\225\179\144-\225\179\146" .. -- U+1CD0-U+1CD2 "\225\179\148-\225\179\168" .. -- U+1CD4-U+1CE8 "\225\179\173" .. -- U+1CED "\225\179\180" .. -- U+1CF4 "\225\179\183-\225\179\185" .. -- U+1CF7-U+1CF9 "\225\183\128-\225\183\140" .. -- U+1DC0-U+1DCC "\225\183\142-\225\183\187" .. -- U+1DCE-U+1DFB "\225\183\189-\225\183\191" .. -- U+1DFD-U+1DFF "\226\131\144-\226\131\176" .. -- U+20D0-U+20F0 "\226\179\175-\226\179\177" .. -- U+2CEF-U+2CF1 "\226\181\191" .. -- U+2D7F "\226\183\160-\226\183\191" .. -- U+2DE0-U+2DFF "\227\128\170-\227\128\175" .. -- U+302A-U+302F "\227\130\153" .. -- U+3099 "\227\130\154" .. -- U+309A "\234\153\175-\234\153\178" .. -- U+A66F-U+A672 "\234\153\180-\234\153\189" .. -- U+A674-U+A67D "\234\154\158" .. -- U+A69E "\234\154\159" .. -- U+A69F "\234\155\176" .. -- U+A6F0 "\234\155\177" .. -- U+A6F1 "\234\160\130" .. -- U+A802 "\234\160\134" .. -- U+A806 "\234\160\139" .. -- U+A80B "\234\160\163-\234\160\167" .. -- U+A823-U+A827 "\234\160\172" .. -- U+A82C "\234\162\128" .. -- U+A880 "\234\162\129" .. -- U+A881 "\234\162\180-\234\163\133" .. -- U+A8B4-U+A8C5 "\234\163\160-\234\163\177" .. -- U+A8E0-U+A8F1 "\234\163\191" .. -- U+A8FF "\234\164\166-\234\164\173" .. -- U+A926-U+A92D "\234\165\135-\234\165\147" .. -- U+A947-U+A953 "\234\166\128-\234\166\131" .. -- U+A980-U+A983 "\234\166\179-\234\167\128" .. -- U+A9B3-U+A9C0 "\234\167\165" .. -- U+A9E5 "\234\168\169-\234\168\182" .. -- U+AA29-U+AA36 "\234\169\131" .. -- U+AA43 "\234\169\140" .. -- U+AA4C "\234\169\141" .. -- U+AA4D "\234\169\187-\234\169\189" .. -- U+AA7B-U+AA7D "\234\170\176" .. -- U+AAB0 "\234\170\178-\234\170\180" .. -- U+AAB2-U+AAB4 "\234\170\183" .. -- U+AAB7 "\234\170\184" .. -- U+AAB8 "\234\170\190" .. -- U+AABE "\234\170\191" .. -- U+AABF "\234\171\129" .. -- U+AAC1 "\234\171\171-\234\171\175" .. -- U+AAEB-U+AAEF "\234\171\181" .. -- U+AAF5 "\234\171\182" .. -- U+AAF6 "\234\175\163-\234\175\170" .. -- U+ABE3-U+ABEA "\234\175\172" .. -- U+ABEC "\234\175\173" .. -- U+ABED "\239\172\158" .. -- U+FB1E "\239\184\160-\239\184\175" .. -- U+FE20-U+FE2F "\240\144\135\189" .. -- U+101FD "\240\144\139\160" .. -- U+102E0 "\240\144\141\182-\240\144\141\186" .. -- U+10376-U+1037A "\240\144\168\129-\240\144\168\131" .. -- U+10A01-U+10A03 "\240\144\168\133" .. -- U+10A05 "\240\144\168\134" .. -- U+10A06 "\240\144\168\140-\240\144\168\143" .. -- U+10A0C-U+10A0F "\240\144\168\184-\240\144\168\186" .. -- U+10A38-U+10A3A "\240\144\168\191" .. -- U+10A3F "\240\144\171\165" .. -- U+10AE5 "\240\144\171\166" .. -- U+10AE6 "\240\144\180\164-\240\144\180\167" .. -- U+10D24-U+10D27 "\240\144\181\169-\240\144\181\173" .. -- U+10D69-U+10D6D "\240\144\186\171" .. -- U+10EAB "\240\144\186\172" .. -- U+10EAC "\240\144\187\188-\240\144\187\191" .. -- U+10EFC-U+10EFF "\240\144\189\134-\240\144\189\144" .. -- U+10F46-U+10F50 "\240\144\190\130-\240\144\190\133" .. -- U+10F82-U+10F85 "\240\145\128\128-\240\145\128\130" .. -- U+11000-U+11002 "\240\145\128\184-\240\145\129\134" .. -- U+11038-U+11046 "\240\145\129\176" .. -- U+11070 "\240\145\129\179" .. -- U+11073 "\240\145\129\180" .. -- U+11074 "\240\145\129\191-\240\145\130\130" .. -- U+1107F-U+11082 "\240\145\130\176-\240\145\130\186" .. -- U+110B0-U+110BA "\240\145\131\130" .. -- U+110C2 "\240\145\132\128-\240\145\132\130" .. -- U+11100-U+11102 "\240\145\132\167-\240\145\132\180" .. -- U+11127-U+11134 "\240\145\133\133" .. -- U+11145 "\240\145\133\134" .. -- U+11146 "\240\145\133\179" .. -- U+11173 "\240\145\134\128-\240\145\134\130" .. -- U+11180-U+11182 "\240\145\134\179-\240\145\135\128" .. -- U+111B3-U+111C0 "\240\145\135\137-\240\145\135\140" .. -- U+111C9-U+111CC "\240\145\135\142" .. -- U+111CE "\240\145\135\143" .. -- U+111CF "\240\145\136\172-\240\145\136\183" .. -- U+1122C-U+11237 "\240\145\136\190" .. -- U+1123E "\240\145\137\129" .. -- U+11241 "\240\145\139\159-\240\145\139\170" .. -- U+112DF-U+112EA "\240\145\140\128-\240\145\140\131" .. -- U+11300-U+11303 "\240\145\140\187" .. -- U+1133B "\240\145\140\188" .. -- U+1133C "\240\145\140\190-\240\145\141\132" .. -- U+1133E-U+11344 "\240\145\141\135" .. -- U+11347 "\240\145\141\136" .. -- U+11348 "\240\145\141\139-\240\145\141\141" .. -- U+1134B-U+1134D "\240\145\141\151" .. -- U+11357 "\240\145\141\162" .. -- U+11362 "\240\145\141\163" .. -- U+11363 "\240\145\141\166-\240\145\141\172" .. -- U+11366-U+1136C "\240\145\141\176-\240\145\141\180" .. -- U+11370-U+11374 "\240\145\142\184-\240\145\143\128" .. -- U+113B8-U+113C0 "\240\145\143\130" .. -- U+113C2 "\240\145\143\133" .. -- U+113C5 "\240\145\143\135-\240\145\143\138" .. -- U+113C7-U+113CA "\240\145\143\140-\240\145\143\144" .. -- U+113CC-U+113D0 "\240\145\143\146" .. -- U+113D2 "\240\145\143\161" .. -- U+113E1 "\240\145\143\162" .. -- U+113E2 "\240\145\144\181-\240\145\145\134" .. -- U+11435-U+11446 "\240\145\145\158" .. -- U+1145E "\240\145\146\176-\240\145\147\131" .. -- U+114B0-U+114C3 "\240\145\150\175-\240\145\150\181" .. -- U+115AF-U+115B5 "\240\145\150\184-\240\145\151\128" .. -- U+115B8-U+115C0 "\240\145\151\156" .. -- U+115DC "\240\145\151\157" .. -- U+115DD "\240\145\152\176-\240\145\153\128" .. -- U+11630-U+11640 "\240\145\154\171-\240\145\154\183" .. -- U+116AB-U+116B7 "\240\145\156\157-\240\145\156\171" .. -- U+1171D-U+1172B "\240\145\160\172-\240\145\160\186" .. -- U+1182C-U+1183A "\240\145\164\176-\240\145\164\181" .. -- U+11930-U+11935 "\240\145\164\183" .. -- U+11937 "\240\145\164\184" .. -- U+11938 "\240\145\164\187-\240\145\164\190" .. -- U+1193B-U+1193E "\240\145\165\128") .. -- U+11940 ("\240\145\165\130" .. -- U+11942 "\240\145\165\131" .. -- U+11943 "\240\145\167\145-\240\145\167\151" .. -- U+119D1-U+119D7 "\240\145\167\154-\240\145\167\160" .. -- U+119DA-U+119E0 "\240\145\167\164" .. -- U+119E4 "\240\145\168\129-\240\145\168\138" .. -- U+11A01-U+11A0A "\240\145\168\179-\240\145\168\185" .. -- U+11A33-U+11A39 "\240\145\168\187-\240\145\168\190" .. -- U+11A3B-U+11A3E "\240\145\169\135" .. -- U+11A47 "\240\145\169\145-\240\145\169\155" .. -- U+11A51-U+11A5B "\240\145\170\138-\240\145\170\153" .. -- U+11A8A-U+11A99 "\240\145\176\175-\240\145\176\182" .. -- U+11C2F-U+11C36 "\240\145\176\184-\240\145\176\191" .. -- U+11C38-U+11C3F "\240\145\178\146-\240\145\178\167" .. -- U+11C92-U+11CA7 "\240\145\178\169-\240\145\178\182" .. -- U+11CA9-U+11CB6 "\240\145\180\177-\240\145\180\182" .. -- U+11D31-U+11D36 "\240\145\180\186" .. -- U+11D3A "\240\145\180\188" .. -- U+11D3C "\240\145\180\189" .. -- U+11D3D "\240\145\180\191-\240\145\181\133" .. -- U+11D3F-U+11D45 "\240\145\181\135" .. -- U+11D47 "\240\145\182\138-\240\145\182\142" .. -- U+11D8A-U+11D8E "\240\145\182\144" .. -- U+11D90 "\240\145\182\145" .. -- U+11D91 "\240\145\182\147-\240\145\182\151" .. -- U+11D93-U+11D97 "\240\145\187\179-\240\145\187\182" .. -- U+11EF3-U+11EF6 "\240\145\188\128" .. -- U+11F00 "\240\145\188\129" .. -- U+11F01 "\240\145\188\131" .. -- U+11F03 "\240\145\188\180-\240\145\188\186" .. -- U+11F34-U+11F3A "\240\145\188\190-\240\145\189\130" .. -- U+11F3E-U+11F42 "\240\145\189\154" .. -- U+11F5A "\240\147\145\128" .. -- U+13440 "\240\147\145\135-\240\147\145\149" .. -- U+13447-U+13455 "\240\150\132\158-\240\150\132\175" .. -- U+1611E-U+1612F "\240\150\171\176-\240\150\171\180" .. -- U+16AF0-U+16AF4 "\240\150\172\176-\240\150\172\182" .. -- U+16B30-U+16B36 "\240\150\189\143" .. -- U+16F4F "\240\150\189\145-\240\150\190\135" .. -- U+16F51-U+16F87 "\240\150\190\143-\240\150\190\146" .. -- U+16F8F-U+16F92 "\240\150\191\164" .. -- U+16FE4 "\240\150\191\176" .. -- U+16FF0 "\240\150\191\177" .. -- U+16FF1 "\240\155\178\157" .. -- U+1BC9D "\240\155\178\158" .. -- U+1BC9E "\240\156\188\128-\240\156\188\173" .. -- U+1CF00-U+1CF2D "\240\156\188\176-\240\156\189\134" .. -- U+1CF30-U+1CF46 "\240\157\133\165-\240\157\133\169" .. -- U+1D165-U+1D169 "\240\157\133\173-\240\157\133\178" .. -- U+1D16D-U+1D172 "\240\157\133\187-\240\157\134\130" .. -- U+1D17B-U+1D182 "\240\157\134\133-\240\157\134\139" .. -- U+1D185-U+1D18B "\240\157\134\170-\240\157\134\173" .. -- U+1D1AA-U+1D1AD "\240\157\137\130-\240\157\137\132" .. -- U+1D242-U+1D244 "\240\157\168\128-\240\157\168\182" .. -- U+1DA00-U+1DA36 "\240\157\168\187-\240\157\169\172" .. -- U+1DA3B-U+1DA6C "\240\157\169\181" .. -- U+1DA75 "\240\157\170\132" .. -- U+1DA84 "\240\157\170\155-\240\157\170\159" .. -- U+1DA9B-U+1DA9F "\240\157\170\161-\240\157\170\175" .. -- U+1DAA1-U+1DAAF "\240\158\128\128-\240\158\128\134" .. -- U+1E000-U+1E006 "\240\158\128\136-\240\158\128\152" .. -- U+1E008-U+1E018 "\240\158\128\155-\240\158\128\161" .. -- U+1E01B-U+1E021 "\240\158\128\163" .. -- U+1E023 "\240\158\128\164" .. -- U+1E024 "\240\158\128\166-\240\158\128\170" .. -- U+1E026-U+1E02A "\240\158\130\143" .. -- U+1E08F "\240\158\132\176-\240\158\132\182" .. -- U+1E130-U+1E136 "\240\158\138\174" .. -- U+1E2AE "\240\158\139\172-\240\158\139\175" .. -- U+1E2EC-U+1E2EF "\240\158\147\172-\240\158\147\175" .. -- U+1E4EC-U+1E4EF "\240\158\151\174" .. -- U+1E5EE "\240\158\151\175" .. -- U+1E5EF "\240\158\163\144-\240\158\163\150" .. -- U+1E8D0-U+1E8D6 "\240\158\165\132-\240\158\165\138") -- U+1E944-U+1E94A -- Double combining characters. -- Charset: [[:M:]&[:Canonical_Combining_Class=/^Double_/:]&[:^subhead=Grapheme joiner:]&[:^Variation_Selector=Yes:]] local comb_chars_double = "\205\156-\205\162" .. -- U+035C-U+0362 "\225\183\141" .. -- U+1DCD "\225\183\188" -- U+1DFC -- Variation selectors etc.; separated out so that we don't get categories for them. -- Charset: [[:M:]&[[:subhead=Grapheme joiner:][:Variation_Selector=Yes:]]]. local comb_chars_other = "\205\143" .. -- U+034F "\225\160\139-\225\160\141" .. -- U+180B-U+180D "\225\160\143" .. -- U+180F "\239\184\128-\239\184\143" .. -- U+FE00-U+FE0F "\243\160\132\128-\243\160\135\175" -- U+E0100-U+E01EF local comb_chars_all = comb_chars_single .. comb_chars_double .. comb_chars_other local comb_chars = { combined_single = "[^" .. comb_chars_all .. "][" .. comb_chars_single .. comb_chars_other .. "]+%f[^" .. comb_chars_all .. "]", combined_double = "[^" .. comb_chars_all .. "][" .. comb_chars_single .. comb_chars_other .. "]*[" .. comb_chars_double .. "]+[" .. comb_chars_all .. "]*.[" .. comb_chars_single .. comb_chars_other .. "]*", diacritics_single = "[" .. comb_chars_single .. "]", diacritics_double = "[" .. comb_chars_double .. "]", diacritics_all = "[" .. comb_chars_all .. "]" } -- Somewhat curated list from https://unicode.org/Public/emoji/16.0/emoji-sequences.txt. -- NOTE: There are lots more emoji sequences involving non-emoji Plane 0 symbols followed by 0xFE0F, which we don't -- (yet?) handle. local emoji_chars = "\226\140\154" .. -- U+231A (⌚) "\226\140\155" .. -- U+231B (⌛) "\226\140\168" .. -- U+2328 (⌨) "\226\143\143" .. -- U+23CF (⏏) "\226\143\169-\226\143\179" .. -- U+23E9-U+23F3 (⏩-⏳) "\226\143\184-\226\143\186" .. -- U+23F8-U+23FA (⏸-⏺) "\226\150\170" .. -- U+25AA (▪) "\226\150\171" .. -- U+25AB (▫) "\226\150\182" .. -- U+25B6 (▶) "\226\151\128" .. -- U+25C0 (◀) "\226\151\187-\226\151\190" .. -- U+25FB-U+25FE (◻-◾) "\226\152\128-\226\152\132" .. -- U+2600-U+2604 (☀-☄) "\226\152\142" .. -- U+260E (☎) "\226\152\145" .. -- U+2611 (☑) "\226\152\148" .. -- U+2614 (☔) "\226\152\149" .. -- U+2615 (☕) "\226\152\152" .. -- U+2618 (☘) "\226\152\157" .. -- U+261D (☝) "\226\152\160" .. -- U+2620 (☠) "\226\152\162" .. -- U+2622 (☢) "\226\152\163" .. -- U+2623 (☣) "\226\152\166" .. -- U+2626 (☦) "\226\152\170" .. -- U+262A (☪) "\226\152\174" .. -- U+262E (☮) "\226\152\175" .. -- U+262F (☯) "\226\152\184-\226\152\186" .. -- U+2638-U+263A (☸-☺) "\226\153\136-\226\153\147" .. -- U+2648-U+2653 (♈-♓) "\226\153\159" .. -- U+265F (♟) "\226\153\160" .. -- U+2660 (♠) "\226\153\163" .. -- U+2663 (♣) "\226\153\165" .. -- U+2665 (♥) "\226\153\166" .. -- U+2666 (♦) "\226\153\168" .. -- U+2668 (♨) "\226\153\187" .. -- U+267B (♻) "\226\153\190" .. -- U+267E (♾) "\226\153\191" .. -- U+267F (♿) "\226\154\146-\226\154\151" .. -- U+2692-U+2697 (⚒-⚗) "\226\154\153" .. -- U+2699 (⚙) "\226\154\155" .. -- U+269B (⚛) "\226\154\156" .. -- U+269C (⚜) "\226\154\160" .. -- U+26A0 (⚠) "\226\154\161" .. -- U+26A1 (⚡) "\226\154\170" .. -- U+26AA (⚪) "\226\154\171" .. -- U+26AB (⚫) "\226\154\176" .. -- U+26B0 (⚰) "\226\154\177" .. -- U+26B1 (⚱) "\226\154\189" .. -- U+26BD (⚽) "\226\154\190" .. -- U+26BE (⚾) "\226\155\132" .. -- U+26C4 (⛄) "\226\155\133" .. -- U+26C5 (⛅) "\226\155\136" .. -- U+26C8 (⛈) "\226\155\142" .. -- U+26CE (⛎) "\226\155\143" .. -- U+26CF (⛏) "\226\155\145" .. -- U+26D1 (⛑) "\226\155\147" .. -- U+26D3 (⛓) "\226\155\148" .. -- U+26D4 (⛔) "\226\155\169" .. -- U+26E9 (⛩) "\226\155\170" .. -- U+26EA (⛪) "\226\155\176-\226\155\181" .. -- U+26F0-U+26F5 (⛰-⛵) "\226\155\183-\226\155\186" .. -- U+26F7-U+26FA (⛷-⛺) "\226\155\189" .. -- U+26FD (⛽) "\226\156\130" .. -- U+2702 (✂) "\226\156\133" .. -- U+2705 (✅) "\226\156\136-\226\156\141" .. -- U+2708-U+270D (✈-✍) "\226\156\143" .. -- U+270F (✏) "\226\156\146" .. -- U+2712 (✒) "\226\156\148" .. -- U+2714 (✔) "\226\156\150" .. -- U+2716 (✖) "\226\156\157" .. -- U+271D (✝) "\226\156\161" .. -- U+2721 (✡) "\226\156\168" .. -- U+2728 (✨) "\226\156\179" .. -- U+2733 (✳) "\226\156\180" .. -- U+2734 (✴) "\226\157\132" .. -- U+2744 (❄) "\226\157\135" .. -- U+2747 (❇) "\226\157\140" .. -- U+274C (❌) "\226\157\142" .. -- U+274E (❎) "\226\157\147-\226\157\149" .. -- U+2753-U+2755 (❓-❕) "\226\157\151" .. -- U+2757 (❗) "\226\157\163" .. -- U+2763 (❣) "\226\157\164" .. -- U+2764 (❤) "\226\158\149-\226\158\151" .. -- U+2795-U+2797 (➕-➗) "\226\158\161" .. -- U+27A1 (➡) "\226\158\176" .. -- U+27B0 (➰) "\226\158\191" .. -- U+27BF (➿) "\226\164\180" .. -- U+2934 (⤴) "\226\164\181" .. -- U+2935 (⤵) "\226\172\133-\226\172\135" .. -- U+2B05-U+2B07 (⬅-⬇) "\226\172\155" .. -- U+2B1B (⬛) "\226\172\156" .. -- U+2B1C (⬜) "\226\173\144" .. -- U+2B50 (⭐) "\226\173\149" .. -- U+2B55 (⭕) "\227\128\176" .. -- U+3030 (〰) "\227\128\189" .. -- U+303D (〽) "\227\138\151" .. -- U+3297 (㊗) "\227\138\153" .. -- U+3299 (㊙) "\240\159\128\132" .. -- U+1F004 (🀄) "\240\159\131\143" .. -- U+1F0CF (🃏) "\240\159\133\176" .. -- U+1F170 (🅰) "\240\159\133\177" .. -- U+1F171 (🅱) "\240\159\133\190" .. -- U+1F17E (🅾) "\240\159\133\191" .. -- U+1F17F (🅿) "\240\159\134\142" .. -- U+1F18E (🆎) "\240\159\134\145-\240\159\134\154" .. -- U+1F191-U+1F19A (🆑-🆚) "\240\159\136\129" .. -- U+1F201 (🈁) "\240\159\136\130" .. -- U+1F202 (🈂) "\240\159\136\154" .. -- U+1F21A (🈚) "\240\159\136\175" .. -- U+1F22F (🈯) "\240\159\136\178-\240\159\136\186" .. -- U+1F232-U+1F23A (🈲-🈺) "\240\159\137\144" .. -- U+1F250 (🉐) "\240\159\137\145" .. -- U+1F251 (🉑) "\240\159\140\128-\240\159\153\143" .. -- U+1F300-U+1F64F (🌀-🙏) "\240\159\154\128-\240\159\155\151" .. -- U+1F680-U+1F6D7 (🚀-🛗) "\240\159\155\156-\240\159\155\172" .. -- U+1F6DC-U+1F6EC (🛜-🛬) "\240\159\155\176-\240\159\155\188" .. -- U+1F6F0-U+1F6FC (🛰-🛼) "\240\159\159\160-\240\159\159\171" .. -- U+1F7E0-U+1F7EB (🟠-🟫) "\240\159\159\176" .. -- U+1F7F0 (🟰) "\240\159\164\140-\240\159\169\147" .. -- U+1F90C-U+1FA53 (🤌-🩓) "\240\159\169\160-\240\159\169\173" .. -- U+1FA60-U+1FA6D (🩠-🩭) "\240\159\169\176-\240\159\169\188" .. -- U+1FA70-U+1FA7C (🩰-🩼) "\240\159\170\128-\240\159\170\137" .. -- U+1FA80-U+1FA89 (🪀-🪉) "\240\159\170\143-\240\159\171\134" .. -- U+1FA8F-U+1FAC6 (🪏-🫆) "\240\159\171\142-\240\159\171\156" .. -- U+1FACE-U+1FADC (🫎-🫜) "\240\159\171\159-\240\159\171\169" .. -- U+1FADF-U+1FAE9 (🫟-🫩) "\240\159\171\176-\240\159\171\184" -- U+1FAF0-U+1FAF8 (🫰-🫸) local unsupported_characters local function get_unsupported_characters() unsupported_characters, get_unsupported_characters = {}, nil for k, v in pairs(load_data("Module:links/data").unsupported_characters) do unsupported_characters[v] = k end return unsupported_characters end -- The list of unsupported titles and invert it (so the keys are pagenames and values are canonical titles). local unsupported_titles local function get_unsupported_titles() unsupported_titles, get_unsupported_titles = {}, nil for k, v in pairs(load_data("Module:links/data").unsupported_titles) do unsupported_titles[v] = k end return unsupported_titles end -- To save on memory, we only cache names with either non-ASCII characters in them or ASCII characters to be removed or -- transformed (apostrophe, double quote, hyphen). local L2_sort_key_cache = {} function export.get_L2_sort_key(L2) if L2 == "Rentas bahasa" then return "\1" elseif L2 == "Bahasa Melayu" then return "\2" elseif match(L2, "^[%z\1-\b\14-!#-&(-,.-\127]+$") then return L2 end local sort_key = L2_sort_key_cache[L2] if sort_key then return sort_key end sort_key = toNFC(ugsub(ugsub(toNFD(L2), "[" .. comb_chars_all .. "'\"ʻʼ]+", ""), "[%s%-]+", " ")) L2_sort_key_cache[L2] = sort_key return sort_key end --[==[ Given a pagename (or {nil} for the current page), create and return a data structure describing the page. The returned object includes the following fields: * `comb_chars`: A table containing various Lua character class patterns for different types of combined characters (those that decompose into multiple characters in the NFD decomposition). The patterns are meant to be used with {mw.ustring.find()}. The keys are: ** `single`: Single combining characters (character + diacritic), without surrounding brackets; ** `double`: Double combining characters (character + diacritic + character), without surrounding brackets; ** `vs`: Variation selectors, without surrounding brackets; ** `all`: Concatenation of `single` + `double` + `vs`, without surrounding brackets; ** `diacritics_single`: Like `single` but with surrounding brackets; ** `diacritics_double`: Like `double` but with surrounding brackets; ** `diacritics_all`: Like `all` but with surrounding brackets; ** `combined_single`: Lua pattern for matching a spacing character followed by one or more single combining characters; ** `combined_double`: Lua pattern for matching a combination of two spacing characters separated by one or more double combining characters, possibly also with single combining characters; * `emoji_pattern`: A Lua character class pattern (including surrounding brackets) that matches emojis. Meant to be used with {mw.ustring.find()}. * `L2_list`: Ordered list of L2 headings on the page, with the extra key `n` that gives the length of the list. * `L2_sections`: Lookup table of L2 headings on the page, where the key is the section number assigned by the preprocessor, and the value is the L2 heading name. Once an invocation has got its actual section number from get_current_L2 in [[Module:pages]], it can use this table to determine its parent L2. TODO: We could expand this to include subsections, to check POS headings are correct etc. * `unsupported_titles`: Map from pagenames to canonical titles for unsupported-title pages. * `namespace`: Namespace of the pagename. * `ns`: Namespace table for the page from mw.site.namespaces (TODO: merge with `namespace` above). * `full_raw_pagename`: Full version of the '''RAW''' pagename (i.e. unsupported-title pages aren't canonicalized); including the namespace and the base (portion before the slash). * `pagename`: Canonicalized subpage portion of the pagename (unsupported-title pages are canonicalized). * `pagename_with_base`: Same as `pagename` in the main namespace; otherwise, the whole pagename without the namespace. * `decompose_pagename`: Equivalent of `pagename` in NFD decomposition. * `pagename_len`: Length of `pagename` in Unicode chars, where combinations of spacing character + decomposed diacritic are treated as single characters. * `explode_pagename`: Set of characters found in `pagename`. The keys are characters (where combinations of spacing character + decomposed diacritic are treated as single characters). * `encoded_pagename`: FIXME: Document me. * `pagename_defaultsort`: FIXME: Document me. * `raw_defaultsort`: FIXME: Document me. * `wikitext_topic_cat`: FIXME: Document me. * `wikitext_langname_cat`: FIXME: Document me. `no_fetch_content` says to not fetch and parse the content or set a DEFAULTSORT sort key, in order to save time on test and documentation pages that have lots of template invocations that set `|pagename=`. It turns out nearly all the time of this function is contained in the line `frame:callParserFunction("DEFAULTSORT", data.pagename_defaultsort)`, so we skip it on test and documentation pages where it accomplishes nothing in any case. ]==] function export.process_page(pagename, no_fetch_content) local data = { comb_chars = comb_chars, emoji_pattern = "[" .. emoji_chars .. "]", unsupported_titles = unsupported_titles or get_unsupported_titles() } local cats = {} data.cats = cats -- We cannot store `raw_title` in `data` because it contains a metatable. local raw_title local function bad_pagename() if not pagename then error("Internal error: Something wrong, `data.pagename` not specified but current title contains illegal characters") else error(format("Bad value for `data.pagename`: '%s', which must not contain illegal characters", pagename)) end end if pagename then -- for testing, doc pages, etc. raw_title = new_title(pagename) if not raw_title then bad_pagename() end else raw_title = mw.title.getCurrentTitle() end local nsText = raw_title.nsText local namespace_is_reconstruction = nsText == "Rekonstruksi" data.namespace = nsText data.ns = mw.site.namespaces[raw_title.namespace] local full_raw_pagename = raw_title.fullText data.full_raw_pagename = full_raw_pagename local frame = mw.getCurrentFrame() -- WARNING: `content` may be nil, e.g. if we're substing a template like {{ja-new}} on a not-yet-created page -- or if the module specifies the subpage as `data.pagename` (which many modules do) and we're in an Appendix -- or other non-mainspace page. We used to make the latter an error but there are too many modules that do it, -- and substing on a nonexistent page is totally legit, and we don't actually need to be able to access the -- content of the page. local content = not no_fetch_content and raw_title:getContent() or nil -- Get the pagename. pagename = physical_to_logical_pagename_if_mammoth(raw_title) pagename = gsub(pagename, "^Tajuk tidak disokong/(.+)", function(m) insert(cats, "Tajuk tidak disokong") local title = (unsupported_titles or get_unsupported_titles())[m] if title then return title end -- Substitute pairs of "`". Those not used for escaping should be escaped as "`grave`", but might not be, -- so if a pair don't form a match, the closing "`" should become the opening "`" of the next match attempt. -- This has to be done manually, instead of using gsub. local open_pos = find(m, "`") if not open_pos then return m end title = {sub(m, 1, open_pos - 1)} while true do local close_pos = find(m, "`", open_pos + 1) if not close_pos then -- Add "`" plus any remaining characters. insert(title, sub(m, open_pos)) break end local escape = sub(m, open_pos, close_pos) local ch = (unsupported_characters or get_unsupported_characters())[escape] -- Match found, so substitute the character and move to the first "`" after the match if found, or -- otherwise return. if ch then insert(title, ch) local nxt_pos = close_pos + 1 open_pos = find(m, "`", nxt_pos) -- Add any characters between the match and the next "`" or end. if open_pos then insert(title, sub(m, nxt_pos, open_pos - 1)) else insert(title, sub(m, nxt_pos)) break end -- Match not found, so make the closing "`" the opening "`" of the next attempt. else -- Add the failed match, except for the closing "`". insert(title, sub(m, open_pos, close_pos - 1)) open_pos = close_pos end end return concat(title) end) -- Save pagename, as the local variable will be destructively modified. data.pagename = pagename if nsText == "" then data.pagename_with_base = pagename else data.pagename_with_base = raw_title.text end -- Decompose the pagename in Unicode normalization form D. data.decompose_pagename = toNFD(pagename) -- Explode the current page name into a character table, taking decomposed combining characters into account. local explode_pagename = {} local pagename_len = 0 local function explode(char) explode_pagename[char] = true pagename_len = pagename_len + 1 return "" end pagename = ugsub(pagename, comb_chars.combined_double, explode) pagename = gsub(ugsub(pagename, comb_chars.combined_single, explode), ".[\128-\191]*", explode) data.explode_pagename = explode_pagename data.pagename_len = pagename_len -- Generate DEFAULTSORT. data.encoded_pagename = encode_entities(data.pagename) data.pagename_defaultsort = get_lang("mul"):makeSortKey(data.encoded_pagename) if not no_fetch_content then frame:callParserFunction("DEFAULTSORT", data.pagename_defaultsort) end data.raw_defaultsort = uupper(raw_title.text) -- Make `L2_list` and `L2_sections`, note raw wikitext use of {{DEFAULTSORT:}} and {{DISPLAYTITLE:}}, then add categories if any unwanted L1 headings are found, the L2 headings are in the wrong order, or they don't match a canonical language name. -- Note: HTML comments shouldn't be removed from `content` until after this step, as they can affect the result. do local L2_list, L2_list_len, L2_sections = {}, 0, {} local prev, rc local new_cats, L2_wrong_order = {} local function handle_heading(heading) local level = heading.level if level > 2 then return end local name = heading:get_name() -- heading:get_name() will return nil if there are any newline characters in the preprocessed heading name (e.g. from an expanded template). In such cases, the preprocessor section count still increments (since it's calculated pre-expansion), but the heading will fail, so the L2 count shouldn't be incremented. if name == nil then return end L2_list_len = L2_list_len + 1 L2_list[L2_list_len] = name L2_sections[heading.section] = name -- Also add any L1s, since they terminate the preceding L2, but add a maintenance category since it's probably a mistake. if level == 1 then new_cats["Laman dengan pengepala L1 tidak dikehendaki"] = true end -- Check the heading is in the right order. -- FIXME: we need a more sophisticated sorting method which handles non-diacritic special characters (e.g. Magɨ). if prev and not ( L2_wrong_order or string_compare(export.get_L2_sort_key(prev), export.get_L2_sort_key(name)) ) then new_cats["Laman dengan pengepala bahasa dalam susunan salah"] = true L2_wrong_order = true end -- Check it's a canonical language name. local canonical_name = name:match("^Bahasa (.+)$") local valid_heading = name == "Rentas bahasa" or ( canonical_name ~= nil and (langnames or get_langnames())[canonical_name] ~= nil ) if not valid_heading then new_cats["Laman dengan pengepala bahasa tidak piawai"] = true end prev = name end local function handle_template(template) -- Turn off redirect checking except in the Reconstruction namespace because the rc flag is only -- used in the Reconstruction namespace and the other names are parser functions, which AFAIK can't -- be redirected to. local name = template:get_name(nil, not namespace_is_reconstruction and "no_redirect" or nil) if name == "DEFAULTSORT:" then new_cats["Laman dengan percanggahan DEFAULTSORT"] = true elseif name == "DISPLAYTITLE:" then new_cats["Laman dengan percanggahan DISPLAYTITLE"] = true elseif name == "reconstructed" then rc = true end end if content then for node in parse(content):iterate_nodes() do local node_class = class_else_type(node) if node_class == "heading" then handle_heading(node) elseif node_class == "template" then handle_template(node) elseif node_class == "parameter" then new_cats["Laman dengan parameter templat bertanda kurung dakap ganda tiga"] = true end end end L2_list.n = L2_list_len data.L2_list = L2_list data.L2_sections = L2_sections insert(cats, get_category("Laman dengan entri")) insert(cats, get_category(format("Laman dengan %s entri", L2_list_len))) for cat in pairs(new_cats) do insert(cats, get_category(cat)) end if namespace_is_reconstruction and not rc then local langname = match(full_raw_pagename, "^Rekonstruksi:([^/]+)/.") if langname then insert(cats, get_category("Entri bahasa " .. langname .. " kehilangan Templat:reconstructed")) end end end ------ 4. Parse page for maintenance categories. ------ -- Use of tab characters. if content and find(content, "\t", 1, true) then insert(cats, get_category("Laman dengan aksara tab")) end -- Unencoded character(s) in title. local IDS = list_to_set{"⿰", "⿱", "⿲", "⿳", "⿴", "⿵", "⿶", "⿷", "⿸", "⿹", "⿺", "⿻", "⿼", "⿽", "⿾", "⿿", "㇯"} for char in pairs(explode_pagename) do if IDS[char] and char ~= data.pagename then insert(cats, "Perkataan mengandungi aksara tidak dikodkan") break end end -- Raw wikitext use of a topic or langname category. Also check if any raw sortkeys have been used. do local wikitext_topic_cat = {} local wikitext_langname_cat = {} local raw_sortkey -- If a raw sortkey has been found, add it to the relevant table. -- If there's no table (or the index is just `true`), create one first. local function add_cat_table(t, lang, sortkey) local t_lang = t[lang] if not sortkey then if not t_lang then t[lang] = true end return elseif t_lang == true or not t_lang then t_lang = {} t[lang] = t_lang end t_lang[uupper(decode_entities(sortkey))] = true end local function process_category(content, cat, colon, nxt) local pipe = find(cat, "|", colon + 1, true) -- Categories cannot end "|]]". if pipe == #cat then return end local title = new_title(pipe and sub(cat, 1, pipe - 1) or cat) if not (title and title.namespace == 14) then return end -- Get the sortkey (if any), then canonicalize category title. local sortkey = pipe and sub(cat, pipe + 1) or nil cat = title.text if sortkey then raw_sortkey = true -- If the sortkey contains "[", the first "]" of a final "]]]" is treated as part of the sortkey. if find(sortkey, "[", 1, true) and sub(content, nxt, nxt) == "]" then sortkey = sortkey .. "]" end end local code = match(cat, "^([%w%-.]+):") if code then add_cat_table(wikitext_topic_cat, code, sortkey) return end -- Split by word. cat = split(cat, " ", true, true) -- Formerly we looked for the language name anywhere in the category. This is simply wrong -- because there are no categories like 'Alsatian French lemmas' (only L2 languages -- have langname categories), but doing it this way wrongly catches things like [[Category:Shapsug Adyghe]] -- in [[Category:Adyghe entries with language name categories using raw markup]]. local n = #cat - 1 if n <= 0 then return end -- Go from longest to shortest and stop once we've found a language name. Going from shortest -- to longest or not stopping after a match risks falsely matching (e.g.) German Low German -- categories as German. repeat local name = concat(cat, " ", 1, n) if "Bahasa " and (langnames or get_langnames())[name] then add_cat_table(wikitext_langname_cat, name, sortkey) return end n = n - 1 until n == 0 end if content then -- Remove comments, then iterate over category links. content = remove_comments(content, "BOTH") local head = find(content, "[[", 1, true) while head do local close = find(content, "]]", head + 2, true) if not close then break end -- Make sure there are no intervening "[[" between head and close. local open = find(content, "[[", head + 2, true) while open and open < close do head = open open = find(content, "[[", head + 2, true) end local cat = sub(content, head + 2, close - 1) -- Locate the colon, and weed out most unwanted links. "[ _\128-\244]*" catches valid whitespace, and ensures any category links using the colon trick are ignored. We match all non-ASCII characters, as there could be multibyte spaces, and mw.title.new will filter out any remaining false-positives; this is a lot faster than running mw.title.new on every link. local colon = match(cat, "^[ _\128-\244]*[Kk][Aa][Tt][EeGgOoRrIi _\128-\244]*():") if colon then process_category(content, cat, colon, close + 2) end head = open end end data.wikitext_topic_cat = wikitext_topic_cat data.wikitext_langname_cat = wikitext_langname_cat if raw_sortkey then insert(cats, get_category("Laman dengan kunci isih mentah")) end end return data end return export 0cfxsst8v2bgdkaawb46xehh2uvtum4 Wikikamus:Bahasa Indonesia 4 77622 376900 279891 2026-09-28T09:11:40Z Rachmat04 3001 376900 wikitext text/x-wiki {{Gerbang bahasa | bahasa = Indonesia | kod = id | keterangan = Bahasa Indonesia (kod bahasa: <code>id</code>) ialah bahasa rasmi dan bahasa kebangsaan di Indonesia. Bahasa Indonesia merupakan bahasa kelainan yang dibakukan dari bahasa Melayu, sebuah bahasa rumpun Austronesia yang digolongkan ke dalam rumpun Melayik yang merupakan cabang turunan dari cabang Melayu-Polinesia. }} =Glosari (Melayu-Indonesia)= ; kata nama (''noun'') : nomina, kata benda ; kata kerja (''verb'') : verba, kata kerja ; kata sifat (''adjective'') : adjektiva, kata sifat ; kata nama khas (''proper noun'') : nama diri <!--tambahkan nanti--> [[Kategori:Bahasa Indonesia| ]] p3107s4vn7xyrdn9fvazbmdr777oxtd Modul:etymon/categories 828 82358 376771 375913 2026-09-27T17:53:28Z SNN95 2113 terjemah 376771 Scribunto text/plain local export = {} local M = require("Module:module loader").init({ require = { etymology = "Module:etymology", affix = "Module:affix", etymology_specialized = "Module:etymology/specialized", utilities = "Module:utilities", roots = "Module:roots", }, loadData = { data = "Module:etymon/data", }, }) -- Fungsi utiliti untuk huruf besar local function ucfirst(text) if not text then return text end return mw.ustring.upper(mw.ustring.sub(text, 1, 1)) .. mw.ustring.sub(text, 2) end -- Nilaikan sama ada kata kunci adalah transitif bagi sesuatu istilah local function is_transitive(transitive_mode, page_lang, term_lang) if transitive_mode == M.data.TRANSITIVE.ALWAYS then return true elseif transitive_mode == M.data.TRANSITIVE.NEVER then return false elseif transitive_mode == M.data.TRANSITIVE.CROSS_LANG then return page_lang:getCode() ~= term_lang:getCode() elseif transitive_mode == M.data.TRANSITIVE.CROSS_LANG_NO_INTERNAL_SOURCE then return page_lang:getCode() ~= term_lang:getCode() end error("Mod transitif tidak diketahui: " .. tostring(transitive_mode)) end -- Dapatkan konfigurasi kata kunci dengan pengesampingan khusus bahasa local function get_keyword_config(keyword, lang_exc) local base_config = M.data.keywords[keyword] if not base_config then return nil -- Kata kunci tidak sah end local overrides = lang_exc and lang_exc.keyword_overrides and lang_exc.keyword_overrides[keyword] if not overrides then return base_config end -- Gabungkan pengesampingan ke dalam konfigurasi asas local merged = {} for k, v in pairs(base_config) do merged[k] = v end for k, v in pairs(overrides) do merged[k] = v end return merged end function export.get_cat_name(source) local _, cat_name = M.etymology.get_display_and_cat_name(source, true) return cat_name end -- Normalkan alias jenis imbuhan local aftype_aliases = { ["pre"] = "awalan", ["suf"] = "akhiran", ["in"] = "infix", ["inter"] = "interfix", ["circum"] = "circumfix", ["naf"] = "non-affix", ["root"] = "non-affix", } local function add_category(categories, cat_name, sort_key, sort_base) if categories[cat_name] == nil then categories[cat_name] = { sort_key = sort_key, sort_base = sort_base, } return end local existing = categories[cat_name] if existing.sort_key == nil and sort_key ~= nil then existing.sort_key = sort_key end if existing.sort_base == nil and sort_base ~= nil then existing.sort_base = sort_base end end -- Kumpulkan kategori imbuhan daripada bekas kumpulan peringkat atas local function collect_affix_categories(node, page_lang, available_etymon_ids, senseid_parent_etymon, lang_exc) local parts = {} local part_index = 1 for _, container in ipairs(node.children or {}) do local config = container.keyword_info if config and config.affix_categories then for _, term in ipairs(container.terms or {}) do if not term.unknown_term then local part_data = { term = term.title, tr = term.tr, ts = term.ts, alt = term.alt, itemno = part_index, orig_index = part_index } -- Tentukan jenis imbuhan: aftype tersurat > pos=root > auto-kesan local aftype = term.aftype if aftype then aftype = aftype_aliases[aftype] or aftype part_data.type = aftype elseif term.args and term.args.pos and term.args.pos == "root" then part_data.type = "non-affix" end if term.lang:getCode() ~= page_lang:getCode() then part_data.lang = term.lang end local target_ids = available_etymon_ids[term.target_key] local has_multiple_ids = target_ids and #target_ids > 1 local id_exists_in_disambiguation = false local matched_id = nil -- Hitung senseid yang tersedia untuk laman sasaran local senseid_count = 0 local target_prefix = term.target_key .. ":" if senseid_parent_etymon then for key, _ in pairs(senseid_parent_etymon) do if key:sub(1, #target_prefix) == target_prefix then senseid_count = senseid_count + 1 end end end local has_multiple_senseids = senseid_count > 1 if term.id then -- Periksa jika pengguna menyediakan senseid yang sah local senseid_key = term.target_key .. ":" .. term.id if senseid_parent_etymon and senseid_parent_etymon[senseid_key] then if has_multiple_senseids then -- senseid kabur: gunakan senseid matched_id = term.id id_exists_in_disambiguation = true elseif has_multiple_ids then -- senseid unik tetapi etimon kabur: gunakan ID etimon matched_id = term.etymon_id or term.id id_exists_in_disambiguation = true end else -- Periksa jika pengguna menyediakan ID etimon yang sah if has_multiple_ids and target_ids then for _, id_data in ipairs(target_ids) do local stored_id = type(id_data) == "table" and id_data.id or id_data if stored_id == term.id then -- Etimon kabur: gunakan ID etimon id_exists_in_disambiguation = true matched_id = term.id break end end end -- Sandaran: periksa etymon_id yang diselesaikan (cth. daripada langkah-langkah sebelumnya) if not id_exists_in_disambiguation and has_multiple_ids and term.etymon_id and target_ids then for _, id_data in ipairs(target_ids) do local stored_id = type(id_data) == "table" and id_data.id or id_data if stored_id == term.etymon_id then id_exists_in_disambiguation = true matched_id = term.etymon_id break end end end end end -- Gunakan ID yang sepadan jika dijumpai if term.override or id_exists_in_disambiguation then part_data.id = matched_id or term.id end table.insert(parts, part_data) part_index = part_index + 1 end end end end if #parts == 0 then return {} end local affix_data = { lang = page_lang, parts = parts, pos = "perkataan", sort_key = nil, } if #parts == 1 then affix_data.allow_no_affixes_or_compounds = true end local affix_categories = M.affix.get_affix_categories_only(affix_data) local result = {} for _, cat in ipairs(affix_categories) do if type(cat) == "table" then table.insert(result, { cat = cat.cat, sort_key = cat.sort_key, sort_base = cat.sort_base }) else table.insert(result, { cat = cat }) end end return result end local function lang_is_source(page_lang, source) return page_lang:getCode() == source:getCode() or page_lang:hasParent(source) end local function is_borrowing_keyword_config(config) return config and (config.borrowing_type or config.specialized_borrowing) end local function add_reborrow_category(categories, page_lang) local lang_name = page_lang:getFullName() add_category(categories, "Perkataan " .. lang_name .. " yang dipinjam kembali ke dalam " .. lang_name) end local function borrow_returns_to_page_lang(page_lang, source, in_foreign_branch) if not in_foreign_branch then return false end if source:getFullCode() == page_lang:getFullCode() then return true end return page_lang:hasParent(source) end local function node_borrows_from_lang(node, page_lang, visited, in_foreign_branch) visited = visited or {} if not node or visited[node] then return false end visited[node] = true if node.is_duplicate then if node.duplicate_of then return node_borrows_from_lang(node.duplicate_of, page_lang, visited, in_foreign_branch) end return false end local node_is_foreign = in_foreign_branch or (node.lang and node.lang:getFullCode() ~= page_lang:getFullCode()) for _, container in ipairs(node.children or {}) do if is_borrowing_keyword_config(container.keyword_info) then for _, child_term in ipairs(container.terms or {}) do if borrow_returns_to_page_lang(page_lang, child_term.lang, node_is_foreign) then return true end end end for _, child_term in ipairs(container.terms or {}) do if child_term.status == M.data.STATUS.OK or child_term.status == M.data.STATUS.INLINE then if node_borrows_from_lang(child_term, page_lang, visited, node_is_foreign) then return true end end end end return false end local function should_add_reborrow_category(page_lang, term) if page_lang:getCode() == term.lang:getCode() then return false end if term.status ~= M.data.STATUS.OK and term.status ~= M.data.STATUS.INLINE then return false end return node_borrows_from_lang(term, page_lang, {}, false) end -- Tambah kategori berkaitan peminjaman (peringkat atas sahaja) local function collect_borrowing_categories(categories, page_lang, term, config, check_reborrow_path) if check_reborrow_path and should_add_reborrow_category(page_lang, term) then add_reborrow_category(categories, page_lang) end if config.borrowing_type == "borrowed" and not lang_is_source(page_lang, term.lang) then local temp_categories = {} M.etymology.insert_borrowed_cat(temp_categories, page_lang, term.lang) for _, cat in ipairs(temp_categories) do add_category(categories, cat) end end if config.specialized_borrowing and not lang_is_source(page_lang, term.lang) then local result = M.etymology_specialized.specialized_borrowing { bortype = config.specialized_borrowing, lang = page_lang, sources = { term.lang }, terms = { { lang = term.lang, term = "-" } }, notext = true, nocat = false, } for cat_name in result:gmatch("%[%[Category:([^%]]+)%]%]") do add_category(categories, cat_name) end end end -- Tambah kategori terbitan berasaskan sumber (peringkat atas sahaja) local function collect_source_derivation_categories(categories, page_lang, term, config) if not config.source_category_type then return end local temp_categories = {} M.etymology.insert_source_cat_get_display { lang = page_lang, source = term.lang, categories = temp_categories, borrowing_type = config.source_category_type, nocat = false, } for _, cat in ipairs(temp_categories) do add_category(categories, cat) end end -- Tambah kategori bahasa sumber local function collect_source_categories(categories, page_lang, term, chain, get_norm_lang_func) if page_lang:getCode() == get_norm_lang_func(term.lang):getCode() then return end local temp_categories = {} M.etymology.insert_source_cat_get_display { lang = page_lang, source = term.lang, categories = temp_categories, nocat = false, } for _, cat in ipairs(temp_categories) do add_category(categories, cat) end if chain.inherited then temp_categories = {} M.etymology.insert_source_cat_get_display { lang = page_lang, source = term.lang, categories = temp_categories, borrowing_type = "diwariskan", nocat = false, } for _, cat in ipairs(temp_categories) do add_category(categories, cat) end end end -- Tambah kategori akar/perkataan local function collect_pos_categories(categories, page_lang, root_title, term, available_etymon_ids, chain, get_norm_lang_func, lang_exc, keyword) local pos_types = { root = "akar", word = "perkataan" } -- Tentukan pos: daripada postype istilah, pos_override kata kunci, atau args.pos local pos local config = get_keyword_config(keyword, lang_exc) if term.postype then -- Pengubahsuai postype peringkat istilah mengambil keutamaan tertinggi pos = term.postype elseif config and config.pos_override then pos = config.pos_override elseif type(term.args) == "table" and term.args.pos then pos = term.args.pos end local pos_type = pos_types[pos] if not pos_type or term.unknown_term then return end -- Langkau kategori akar/perkataan untuk keturunan kumpulan imbuhan -- if pos_type then -- return -- end local same_language = get_norm_lang_func(page_lang):getFullCode() == get_norm_lang_func(term.lang):getFullCode() -- Langkau rujukan kendiri if same_language and root_title == term.title then return end local entry_name if pos_type == "akar" then entry_name = term.title M.roots.assert_root(term.lang, entry_name) else entry_name = term.lang:makeEntryName(term.title) end local lang_name = page_lang:getCanonicalName() local cat_name if chain.passed_through then local etymon_lang_name = export.get_cat_name(term.lang) cat_name = "Perkataan " .. lang_name .. " yang diterbitkan daripada " .. pos_type .. " " .. etymon_lang_name .. " " .. entry_name else cat_name = "Perkataan " .. lang_name .. " yang tergolong dalam " .. pos_type .. " " .. entry_name end -- Tambah penyahkaburan ID jika perlu (untuk akar/perkataan: gunakan etymon_id jika diselesaikan melalui senseid, jika tidak gunakan id) local target_ids = available_etymon_ids[term.target_key] local effective_id = term.etymon_id or term.id -- etymon_id jika senseid, jika tidak id sudah pun merupakan id etimon if target_ids and effective_id then local same_pos_count = 0 for _, id_data in ipairs(target_ids) do if type(id_data) == "table" and id_data.pos == pos then same_pos_count = same_pos_count + 1 end end if same_pos_count > 1 then cat_name = cat_name .. " (" .. effective_id .. ")" end end add_category(categories, cat_name) end -- Hitung keadaan rantaian untuk suatu istilah berdasarkan rantaian induk dan konfigurasi kata kunci -- Corak sengkang untuk pengesanan imbuhan (sengkang biasa + khusus skrip) local AFFIX_HYPHEN_PATTERN = "[%-%־ـ᠊]" -- sengkang biasa, maqqef Ibrani, tatweel Arab, sengkang Mongolia -- Periksa jika suatu istilah merupakan imbuhan sebenar (bukan ahli bukan imbuhan dalam kumpulan imbuhan) local function is_actual_affix(term) -- Periksa pengubahsuai aftype tersurat if term.aftype then local normalized = aftype_aliases[term.aftype] or term.aftype return normalized ~= "non-affix" end -- Periksa jika pos=root (dilayan sebagai bukan imbuhan) if term.args and term.args.pos and term.args.pos == "root" then return false end -- Auto-kesan menggunakan sengkang: awalan berakhir dengan -, akhiran bermula dengan -, dsb. if term.title then local title = term.title -- Tanggalkan * di hadapan untuk istilah yang direkonstruksi sebelum memeriksa sengkang title = title:gsub("^%*", "") -- Periksa sengkang di awal atau akhir (mengendalikan sengkang khusus skrip juga) if title:match("^" .. AFFIX_HYPHEN_PATTERN) or title:match(AFFIX_HYPHEN_PATTERN .. "$") then return true end end -- Lalai: bukan imbuhan return false end local function compute_category_chain(parent_chain, config, page_lang, term_lang, get_norm_lang_func, parent_term_lang, term) -- Jejak jika kita berada di dalam imbuhan sebenar (untuk menindas kategori akar pada keturunan) -- Hanya tetapkan jika istilah tersebut merupakan imbuhan sebenar (awalan, akhiran, dsb.), bukan ahli bukan imbuhan local inside_affix = parent_chain.inside_affix if config.affix_categories and term and is_actual_affix(term) then inside_affix = true end -- Jika no_child_categories ditetapkan, lumpuhkan semuanya if config.no_child_categories then return { passed_through = parent_chain.passed_through or page_lang:getCode() ~= get_norm_lang_func(term_lang):getCode(), inherited = false, source = false, pos = false, recurse = false, inside_affix = inside_affix, } end local term_is_transitive = is_transitive(config.transitive, page_lang, term_lang) local new_source = parent_chain.source and term_is_transitive -- Untuk CROSS_LANG_NO_INTERNAL_SOURCE: jejak konteks bahasa terbitan dalaman -- Periksa jika istilah ini adalah dalaman secara relatif terhadap bahasa istilah induk (jika parent_term_lang disediakan) -- atau secara relatif terhadap bahasa laman (jika tiada parent_term_lang) local internal_lang = parent_chain.internal_lang local is_internal_in_context = false if config.transitive == M.data.TRANSITIVE.CROSS_LANG_NO_INTERNAL_SOURCE then local check_lang = parent_term_lang or page_lang local term_lang_code = get_norm_lang_func(term_lang):getCode() local check_lang_code = get_norm_lang_func(check_lang):getCode() if internal_lang then -- Sudah berada dalam konteks terbitan dalaman: periksa jika istilah ini juga dalaman is_internal_in_context = term_lang_code == internal_lang else -- Periksa jika istilah ini adalah dalaman secara relatif terhadap istilah induk (atau laman jika tiada induk) is_internal_in_context = term_lang_code == check_lang_code end end -- Tingkah laku rantaian sumber untuk CROSS_LANG_NO_INTERNAL_SOURCE if config.transitive == M.data.TRANSITIVE.CROSS_LANG_NO_INTERNAL_SOURCE then if is_internal_in_context then -- Terbitan dalaman new_source = false internal_lang = get_norm_lang_func(term_lang):getCode() else -- Merentas bahasa new_source = parent_chain.source and term_is_transitive internal_lang = nil end end local new_pos = parent_chain.pos return { passed_through = parent_chain.passed_through or page_lang:getCode() ~= get_norm_lang_func(term_lang):getCode(), inherited = parent_chain.inherited and config.inherited_chain, source = new_source, pos = new_pos, internal_lang = internal_lang, recurse = new_source or new_pos, inside_affix = inside_affix, } end function export.render(opts) opts = opts or {} local data_tree = opts.data_tree local page_lang = opts.page_lang local available_etymon_ids = opts.available_etymon_ids local senseid_parent_etymon = opts.senseid_parent_etymon local get_norm_lang_func = opts.get_norm_lang_func local lang_exc = opts.lang_exc local categories = {} local seen = {} local lang_name = page_lang:getCanonicalName() local root_title = data_tree.title -- Kumpulkan pepohon secara rekursif local function collect(node, parent_chain, is_toplevel) -- Elakkan memproses nod yang sama dua kali if not node.unknown_term and node.title then local key = node.lang:getFullCode() .. ":" .. (node.title or "") .. ":" .. (node.id or "") if seen[key] then return end seen[key] = true end -- Kumpulkan kategori imbuhan pada peringkat atas sahaja if is_toplevel then local affix_cats = collect_affix_categories(node, page_lang, available_etymon_ids, senseid_parent_etymon, lang_exc) for _, cat in ipairs(affix_cats) do -- Buang cantuman "lang_name" dari sini kerana Modul:affix sudah menjana nama bahasa yang lengkap add_category(categories, cat.cat, cat.sort_key, cat.sort_base) end if node.supplements then for _, supplement in ipairs(node.supplements) do local config = supplement.config if config and config.toplevel_category then add_category(categories, ucfirst(config.toplevel_category) .. " bahasa " .. lang_name) end end end end -- Proses setiap bekas for _, container in ipairs(node.children or {}) do local keyword = container.keyword local config = get_keyword_config(keyword, lang_exc) -- Langkau kata kunci yang tidak sah if config then -- Proses setiap istilah dalam bekas for _, term in ipairs(container.terms or {}) do local term_chain = compute_category_chain(parent_chain, config, page_lang, term.lang, get_norm_lang_func, node.lang, term) local no_child_categories = config.no_child_categories == true local term_is_transitive = is_transitive(config.transitive, page_lang, term.lang) -- Pemprosesan peringkat atas sahaja if is_toplevel then -- Penjejakan etimon yang hilang/kabur if not term.unknown_term and (term.status == M.data.STATUS.MISSING or term.status == M.data.STATUS.REDLINK) then add_category(categories, "Lema bahasa " .. lang_name .. " yang merujuk etimon yang hilang") end if not term.unknown_term and term.status == M.data.STATUS.AMBIGUOUS then add_category(categories, "Lema bahasa " .. lang_name .. " yang merujuk etimon yang kabur") end if term.missing_descendants_header then add_category(categories, "Lema bahasa " .. lang_name .. " yang merujuk etimon tanpa bahagian Keturunan") end if term.missing_descendants_entry then add_category(categories, "Lema bahasa " .. lang_name .. " yang merujuk etimon tanpa istilah ini dalam bahagian Keturunan") end -- Kategori peringkat atas (cth., "terbitan tidak ditakrifkan") if config.toplevel_category then add_category(categories, ucfirst(config.toplevel_category) .. " bahasa " .. lang_name) end -- Kategori peminjaman (bor, lbor, slbor, ubor, obor) if config.borrowing_type or config.specialized_borrowing then collect_borrowing_categories(categories, page_lang, term, config, true) end -- Kategori peminjaman daripada pengubahsuai <bor>, <lbor>, atau <slbor> pada istilah kumpulan imbuhan local kw_config = M.data.keywords[keyword] if kw_config and kw_config.affix_categories then if term.bor then local bor_config = { borrowing_type = "borrowed" } collect_borrowing_categories(categories, page_lang, term, bor_config, true) elseif term.lbor then local bor_config = { specialized_borrowing = "learned" } collect_borrowing_categories(categories, page_lang, term, bor_config, true) elseif term.slbor then local bor_config = { specialized_borrowing = "semi-learned" } collect_borrowing_categories(categories, page_lang, term, bor_config, true) end end -- Kategori terbitan berasaskan sumber (sl, calque, pcal) if config.source_category_type then collect_source_derivation_categories(categories, page_lang, term, config) end -- Langkau semua pengkategorian anak jika no_child_categories ditetapkan if not no_child_categories then -- Kategori sumber hanya jika transitif if term_is_transitive then collect_source_categories(categories, page_lang, term, term_chain, get_norm_lang_func) end -- Kategori pos sentiasa (melainkan no_child_categories) collect_pos_categories(categories, page_lang, root_title, term, available_etymon_ids, term_chain, get_norm_lang_func, lang_exc, keyword) end else -- Di bawah peringkat atas, patuhi rantaian induk if parent_chain.source then collect_source_categories(categories, page_lang, term, term_chain, get_norm_lang_func) end if parent_chain.pos then collect_pos_categories(categories, page_lang, root_title, term, available_etymon_ids, term_chain, get_norm_lang_func, lang_exc, keyword) end end -- Rekursi ke dalam anak istilah jika perlu dan status membenarkan if term_chain.recurse and (term.status == M.data.STATUS.OK or term.status == M.data.STATUS.INLINE) then collect(term, term_chain, false) end end end end end -- Keadaan rantaian awal local initial_chain = { passed_through = false, inherited = true, source = true, pos = true, internal_lang = nil, recurse = true, inside_affix = false, } collect(data_tree, initial_chain, true) local cat_list = {} for cat_name, sort_data in pairs(categories) do if sort_data.sort_key ~= nil or sort_data.sort_base ~= nil then table.insert(cat_list, { name = cat_name, sort_key = sort_data.sort_key, sort_base = sort_data.sort_base, }) else table.insert(cat_list, cat_name) end end return cat_list end function export.build(opts) opts = opts or {} local categories = {} if not opts.suppress_categories and not opts.nocat then categories = export.render({ data_tree = opts.data_tree, page_lang = opts.page_lang, available_etymon_ids = opts.available_etymon_ids, senseid_parent_etymon = opts.senseid_parent_etymon, get_norm_lang_func = opts.get_norm_lang_func, lang_exc = opts.lang_exc, }) end local page_lang = opts.page_lang if not page_lang then return categories end local lang_name = page_lang:getCanonicalName() table.insert(categories, "Laman dengan etimon") table.insert(categories, "Lema bahasa " .. lang_name .. " dengan etimon") if opts.tree then table.insert(categories, "Laman dengan pepohon etimologi") table.insert(categories, "Lema bahasa " .. lang_name .. " dengan pepohon etimologi") end if opts.text then table.insert(categories, "Lema bahasa " .. lang_name .. " dengan teks etimologi") end if opts.exnihilo then table.insert(categories, "Perkataan " .. lang_name .. " yang dicipta ex nihilo") end if opts.toplevel_has_inline_etymology then table.insert(categories, "Laman dengan etimon sebaris untuk pautan merah") end if opts.toplevel_redundant_etymology then table.insert(categories, "Laman dengan etimon sebaris lewah") end if opts.toplevel_idless_etymon then table.insert(categories, "Laman yang menggunakan etimon tanpa ID") end if opts.has_mismatched_id then table.insert(categories, "Lema bahasa " .. lang_name .. " yang merujuk etimon dengan ID yang tidak sepadan") end if opts.linked_page_multiple_etymons_idless then table.insert(categories, "Lema bahasa " .. lang_name .. " yang merujuk laman dengan berbilang etimon yang kehilangan ID") end if opts.linked_page_partial_etymology_sections then table.insert(categories, "Lema bahasa " .. lang_name .. " yang merujuk laman dengan bahagian etimologi yang kehilangan etimon") end if opts.text_stop_lang_missing then table.insert(categories, "Laman dengan bahasa henti teks etimologi bukan dalam rantaian") table.insert(categories, "Lema bahasa " .. lang_name .. " dengan bahasa henti teks etimologi bukan dalam rantaian") end return categories end function export.format(entries, lang) if type(entries) ~= "table" or #entries == 0 then return "" end local parts = {} for _, category in ipairs(entries) do if type(category) == "table" and type(category.name) == "string" then table.insert(parts, M.utilities.format_categories({ category.name }, lang, category.sort_key, category.sort_base)) elseif type(category) == "string" then table.insert(parts, M.utilities.format_categories({ category }, lang)) end end return table.concat(parts) end return export a99dvps9ncxffd784973idznesxcyqm Modul:etymon/descendants 828 118629 376772 342822 2026-09-27T18:02:00Z SNN95 2113 kemaskini 376772 Scribunto text/plain local export = {} local M = require("Module:module loader").init({ require = { template_parser = "Module:template parser", links = "Module:links", languages = "Module:languages", }, }) local TRACKABLE_KEYWORDS = { inherited = true, bor = true, lbor = true, slbor = true, derived = true, uder = true, } local DESCENDANT_TEMPLATES = { ["desc"] = true, ["descendant"] = true, ["desctree"] = true, ["descendants tree"] = true, } local SKIPPED_TERMS = { [""] = true, ["-"] = true, } local CHECK_MISSING_HEADER = { missing_header = true, missing_entry = false } local STRIPPED_REF_TEMPLATES = { ref = true, refn = true, } local ENABLE_DESCENDANTS_TRACKING = false local function _resolve_explicit_cache_id(explicit_id, parent_etymon) if parent_etymon then return parent_etymon.id or "*" end return explicit_id end local function _resolve_single_cache_id(id_data) return (type(id_data) == "table" and id_data.id) or id_data or "*" end local function _resolve_cache_id(lookup) if not lookup then return nil end if lookup.id then return lookup.id end if lookup.explicit_id then return _resolve_explicit_cache_id(lookup.explicit_id, lookup.parent_etymon) end if lookup.id_data ~= nil then return _resolve_single_cache_id(lookup.id_data) end return nil end local function _get_cached_check(cache_table, is_toplevel, base_key, cache_id) if not is_toplevel or not cache_table or not base_key or not cache_id then return nil end return cache_table[base_key .. ":" .. cache_id] end local function _store_checks(cache_table, lang_page_key, checks_by_id, redirected_from) if not cache_table or not lang_page_key or not checks_by_id then return end for id, check in pairs(checks_by_id) do cache_table[lang_page_key .. ":" .. id] = check end if redirected_from then for id, check in pairs(checks_by_id) do cache_table[redirected_from .. ":" .. id] = check end end end local function _strip_refs(value) if type(value) ~= "string" or value == "" then return value end local get_node_class = M.template_parser.class_else_type local function trim_local(text) return (type(text) == "string" and text:match("^%s*(.-)%s*$")) or "" end local function lower_local(text) return text and mw.ustring.lower(text) or text end local function template_name_unexpanded(template_node) return lower_local(trim_local(tostring(template_node[1]) or "")) end local function stringify_without_ref_templates(node) if type(node) ~= "table" then return node == nil and "" or tostring(node) end local node_class = get_node_class(node) if node_class == "template" and STRIPPED_REF_TEMPLATES[template_name_unexpanded(node)] then return "" end if node_class == "template" then return tostring(node) end if node_class == "heading" then return tostring(node) end if node_class and node_class ~= "wikitext" then return tostring(node) end local pieces = {} for i = 1, #node do pieces[i] = stringify_without_ref_templates(node[i]) end return table.concat(pieces) end local parsed = M.template_parser.parse(value) local cleaned = stringify_without_ref_templates(parsed) local changed = true while changed do local next_cleaned = mw.ustring.gsub(cleaned, "<%s*[Rr][Ee][Ff][^>]-/>", "") next_cleaned = mw.ustring.gsub(next_cleaned, "<%s*[Rr][Ee][Ff][^>]*>.-<%s*/%s*[Rr][Ee][Ff]%s*>", "") next_cleaned = mw.ustring.gsub(next_cleaned, "{{%s*[Rr][Ee][Ff]%s*}}", "") next_cleaned = mw.ustring.gsub(next_cleaned, "{{%s*[Rr][Ee][Ff]%s*|[^{}]-}}", "") changed = next_cleaned ~= cleaned cleaned = next_cleaned end return cleaned end local function _trim(value) if type(value) ~= "string" then return nil end return value:match("^%s*(.-)%s*$") end local function _lower(value) return value and mw.ustring.lower(value) or value end local function _is_index_in_range(index, start_index, end_index) return index and index >= start_index and index <= end_index end local function _build_parse_index(lang_section) local parsed = M.template_parser.parse(lang_section) local headings = {} local templates = {} for heading in parsed:iterate_nodes("heading") do local heading_name = heading:get_name() table.insert(headings, { index = heading.index or 1, level = heading.level or 0, name = heading_name and _lower(_trim(heading_name) or "") or nil, length = #tostring(heading), }) end for template in parsed:iterate_nodes("template") do local template_name = template:get_name() local template_args = template:get_arguments() table.insert(templates, { index = template.index or 1, name = template_name and _lower(_trim(template_name) or "") or "", args = template_args or {}, }) end return { headings = headings, templates = templates, } end local function _build_regions(lang_section, headings) local content_length = #lang_section local etymology_headings = {} for _, heading in ipairs(headings) do if heading.level == 3 and heading.name and mw.ustring.match(heading.name, "^etimologi") then table.insert(etymology_headings, heading) end end if #etymology_headings == 0 then return { { start_index = 1, end_index = content_length } } end local regions = {} for i = 1, #etymology_headings do local heading = etymology_headings[i] local next_heading = etymology_headings[i + 1] local start_index = heading.index local end_index = next_heading and (next_heading.index - 1) or content_length if i == 1 and heading.index > 1 then local preamble = lang_section:sub(1, heading.index - 1) if preamble:match("%S") then start_index = 1 end end table.insert(regions, { start_index = start_index, end_index = end_index, }) end return regions end local function _count_region_etymons(region, templates, etymon_lang_code) local count = 0 for _, template in ipairs(templates) do if _is_index_in_range(template.index, region.start_index, region.end_index) and template.name == "etymon" and template.args[1] == etymon_lang_code then count = count + 1 end end return count end local function _get_descendants_sections(region, headings) local sections = {} for i = 1, #headings do local heading = headings[i] if _is_index_in_range(heading.index, region.start_index, region.end_index) and heading.name == "turunan" then local body_start = heading.index + heading.length local body_end = region.end_index for j = i + 1, #headings do local next_heading = headings[j] if next_heading.index > region.end_index then break end if next_heading.level <= heading.level then body_end = next_heading.index - 1 break end end table.insert(sections, { start_index = body_start, end_index = body_end, }) end end return sections end local function _template_lang_matches_entry(template_lang_code, entry_full_code, cache) local normalized_code = _trim(template_lang_code) if not normalized_code or normalized_code == "" then return false end local cached = cache[normalized_code] if cached ~= nil then return cached end local template_lang = M.languages.getByCode(normalized_code, nil, true) local is_match = template_lang and template_lang:getFullCode() == entry_full_code or false cache[normalized_code] = is_match return is_match end local function _template_lists_target(template_args, first_term_index, target_page_lower, entry_lang) for arg_index = first_term_index, #template_args do local template_term = _trim(template_args[arg_index]) if template_term and not SKIPPED_TERMS[template_term] then if _lower(template_term) == target_page_lower then return true end local template_page = M.links.get_link_page(template_term, entry_lang) if _lower(template_page) == target_page_lower then return true end end end return false end local function _is_target_listed_in_descendants(descendants_sections, templates, entry_title, entry_lang) if #descendants_sections == 0 then return false end local target_page = M.links.get_link_page(entry_title, entry_lang) local target_page_lower = _lower(target_page) local entry_full_code = entry_lang:getFullCode() local lang_match_cache = {} for _, section in ipairs(descendants_sections) do for _, template in ipairs(templates) do if _is_index_in_range(template.index, section.start_index, section.end_index) and DESCENDANT_TEMPLATES[template.name] then local lang_arg_index = nil for arg_index = 1, #template.args do if _template_lang_matches_entry(template.args[arg_index], entry_full_code, lang_match_cache) then lang_arg_index = arg_index break end end if lang_arg_index and _template_lists_target(template.args, lang_arg_index + 1, target_page_lower, entry_lang) then return true end end end end return false end local function _region_has_descendant_template(region, templates) for _, template in ipairs(templates) do if _is_index_in_range(template.index, region.start_index, region.end_index) and DESCENDANT_TEMPLATES[template.name] then return true end end return false end local function _get_region_check(region, parsed_index, entry_title, entry_lang) local descendants_sections = _get_descendants_sections(region, parsed_index.headings) if #descendants_sections == 0 then if _region_has_descendant_template(region, parsed_index.templates) then local fallback_sections = { { start_index = region.start_index, end_index = region.end_index, } } return { missing_header = false, missing_entry = not _is_target_listed_in_descendants(fallback_sections, parsed_index.templates, entry_title, entry_lang), } end return CHECK_MISSING_HEADER end return { missing_header = false, missing_entry = not _is_target_listed_in_descendants(descendants_sections, parsed_index.templates, entry_title, entry_lang), } end local function _build_checks_by_id(lang_section, etymon_lang_code, found_templates_for_lang, entry_title, entry_lang) local checks_by_id = {} local parsed_index = _build_parse_index(lang_section) local regions = _build_regions(lang_section, parsed_index.headings) local template_list_index = 1 local mapping_failed = false for _, region in ipairs(regions) do local region_etymon_count = _count_region_etymons(region, parsed_index.templates, etymon_lang_code) local region_check = nil if region_etymon_count > 0 then region_check = _get_region_check(region, parsed_index, entry_title, entry_lang) end for _ = 1, region_etymon_count do local found_template_args = found_templates_for_lang[template_list_index] if not found_template_args then mapping_failed = true break end checks_by_id[found_template_args.id or "*"] = region_check template_list_index = template_list_index + 1 end if mapping_failed then break end end if mapping_failed or template_list_index ~= (#found_templates_for_lang + 1) then local global_region = { start_index = 1, end_index = #lang_section } local fallback_check = _get_region_check(global_region, parsed_index, entry_title, entry_lang) checks_by_id = {} for _, template_args in ipairs(found_templates_for_lang) do checks_by_id[template_args.id or "*"] = fallback_check end end return checks_by_id end local function _compute_checks_for_page(opts) opts = opts or {} local found_templates_for_lang = opts.found_templates_for_lang or {} if #found_templates_for_lang == 0 then return {} end local entry_title = opts.entry_title local entry_lang = opts.entry_lang local etymon_lang_code = opts.etymon_lang_code if not entry_title or not entry_lang or not etymon_lang_code then return {} end local sanitized_lang_section = _strip_refs(opts.lang_section or "") return _build_checks_by_id( sanitized_lang_section, etymon_lang_code, found_templates_for_lang, entry_title, entry_lang ) end function export.cache_page_checks(opts) if not ENABLE_DESCENDANTS_TRACKING then return {} end opts = opts or {} local cache_table = opts.cached_descendants_checks local lang_page_key = opts.lang_page_key if not cache_table or not lang_page_key then return {} end local checks_by_id = _compute_checks_for_page(opts) _store_checks(cache_table, lang_page_key, checks_by_id, opts.redirected_from) return checks_by_id end function export.get_lookup_check(opts) if not ENABLE_DESCENDANTS_TRACKING then return nil end opts = opts or {} return _get_cached_check( opts.cached_descendants_checks, opts.is_toplevel, opts.base_key, _resolve_cache_id(opts.lookup) ) end function export.get_term_sync_flags(keyword, term_status, descendants_check) if not ENABLE_DESCENDANTS_TRACKING then return false, false end local should_track = term_status == "ok" and TRACKABLE_KEYWORDS[keyword] == true and descendants_check ~= nil if not should_track then return false, false end return descendants_check.missing_header or false, descendants_check.missing_entry or false end return export 4s7fgrrzlyrph9b5wi7wes38xjypdvh 376791 376772 2026-09-28T00:45:30Z Hakimi97 2668 Betulkan regex 376791 Scribunto text/plain local export = {} local M = require("Module:module loader").init({ require = { template_parser = "Module:template parser", links = "Module:links", languages = "Module:languages", }, }) local TRACKABLE_KEYWORDS = { inherited = true, bor = true, lbor = true, slbor = true, derived = true, uder = true, } local DESCENDANT_TEMPLATES = { ["desc"] = true, ["descendant"] = true, ["desctree"] = true, ["descendants tree"] = true, } local SKIPPED_TERMS = { [""] = true, ["-"] = true, } local CHECK_MISSING_HEADER = { missing_header = true, missing_entry = false } local STRIPPED_REF_TEMPLATES = { ref = true, refn = true, } local ENABLE_DESCENDANTS_TRACKING = false local function _resolve_explicit_cache_id(explicit_id, parent_etymon) if parent_etymon then return parent_etymon.id or "*" end return explicit_id end local function _resolve_single_cache_id(id_data) return (type(id_data) == "table" and id_data.id) or id_data or "*" end local function _resolve_cache_id(lookup) if not lookup then return nil end if lookup.id then return lookup.id end if lookup.explicit_id then return _resolve_explicit_cache_id(lookup.explicit_id, lookup.parent_etymon) end if lookup.id_data ~= nil then return _resolve_single_cache_id(lookup.id_data) end return nil end local function _get_cached_check(cache_table, is_toplevel, base_key, cache_id) if not is_toplevel or not cache_table or not base_key or not cache_id then return nil end return cache_table[base_key .. ":" .. cache_id] end local function _store_checks(cache_table, lang_page_key, checks_by_id, redirected_from) if not cache_table or not lang_page_key or not checks_by_id then return end for id, check in pairs(checks_by_id) do cache_table[lang_page_key .. ":" .. id] = check end if redirected_from then for id, check in pairs(checks_by_id) do cache_table[redirected_from .. ":" .. id] = check end end end local function _strip_refs(value) if type(value) ~= "string" or value == "" then return value end local get_node_class = M.template_parser.class_else_type local function trim_local(text) return (type(text) == "string" and text:match("^%s*(.-)%s*$")) or "" end local function lower_local(text) return text and mw.ustring.lower(text) or text end local function template_name_unexpanded(template_node) return lower_local(trim_local(tostring(template_node[1]) or "")) end local function stringify_without_ref_templates(node) if type(node) ~= "table" then return node == nil and "" or tostring(node) end local node_class = get_node_class(node) if node_class == "template" and STRIPPED_REF_TEMPLATES[template_name_unexpanded(node)] then return "" end if node_class == "template" then return tostring(node) end if node_class == "heading" then return tostring(node) end if node_class and node_class ~= "wikitext" then return tostring(node) end local pieces = {} for i = 1, #node do pieces[i] = stringify_without_ref_templates(node[i]) end return table.concat(pieces) end local parsed = M.template_parser.parse(value) local cleaned = stringify_without_ref_templates(parsed) local changed = true while changed do local next_cleaned = mw.ustring.gsub(cleaned, "<%s*[Rr][Ee][Ff][^>]-/>", "") next_cleaned = mw.ustring.gsub(next_cleaned, "<%s*[Rr][Ee][Ff][^>]*>.-<%s*/%s*[Rr][Ee][Ff]%s*>", "") next_cleaned = mw.ustring.gsub(next_cleaned, "{{%s*[Rr][Ee][Ff]%s*}}", "") next_cleaned = mw.ustring.gsub(next_cleaned, "{{%s*[Rr][Ee][Ff]%s*|[^{}]-}}", "") changed = next_cleaned ~= cleaned cleaned = next_cleaned end return cleaned end local function _trim(value) if type(value) ~= "string" then return nil end return value:match("^%s*(.-)%s*$") end local function _lower(value) return value and mw.ustring.lower(value) or value end local function _is_index_in_range(index, start_index, end_index) return index and index >= start_index and index <= end_index end local function _build_parse_index(lang_section) local parsed = M.template_parser.parse(lang_section) local headings = {} local templates = {} for heading in parsed:iterate_nodes("heading") do local heading_name = heading:get_name() table.insert(headings, { index = heading.index or 1, level = heading.level or 0, name = heading_name and _lower(_trim(heading_name) or "") or nil, length = #tostring(heading), }) end for template in parsed:iterate_nodes("template") do local template_name = template:get_name() local template_args = template:get_arguments() table.insert(templates, { index = template.index or 1, name = template_name and _lower(_trim(template_name) or "") or "", args = template_args or {}, }) end return { headings = headings, templates = templates, } end local function _build_regions(lang_section, headings) local content_length = #lang_section local etymology_headings = {} for _, heading in ipairs(headings) do if heading.level == 3 and heading.name and mw.ustring.match(heading.name, "^[Ee]timologi") then table.insert(etymology_headings, heading) end end if #etymology_headings == 0 then return { { start_index = 1, end_index = content_length } } end local regions = {} for i = 1, #etymology_headings do local heading = etymology_headings[i] local next_heading = etymology_headings[i + 1] local start_index = heading.index local end_index = next_heading and (next_heading.index - 1) or content_length if i == 1 and heading.index > 1 then local preamble = lang_section:sub(1, heading.index - 1) if preamble:match("%S") then start_index = 1 end end table.insert(regions, { start_index = start_index, end_index = end_index, }) end return regions end local function _count_region_etymons(region, templates, etymon_lang_code) local count = 0 for _, template in ipairs(templates) do if _is_index_in_range(template.index, region.start_index, region.end_index) and template.name == "etymon" and template.args[1] == etymon_lang_code then count = count + 1 end end return count end local function _get_descendants_sections(region, headings) local sections = {} for i = 1, #headings do local heading = headings[i] if _is_index_in_range(heading.index, region.start_index, region.end_index) and heading.name == "turunan" then local body_start = heading.index + heading.length local body_end = region.end_index for j = i + 1, #headings do local next_heading = headings[j] if next_heading.index > region.end_index then break end if next_heading.level <= heading.level then body_end = next_heading.index - 1 break end end table.insert(sections, { start_index = body_start, end_index = body_end, }) end end return sections end local function _template_lang_matches_entry(template_lang_code, entry_full_code, cache) local normalized_code = _trim(template_lang_code) if not normalized_code or normalized_code == "" then return false end local cached = cache[normalized_code] if cached ~= nil then return cached end local template_lang = M.languages.getByCode(normalized_code, nil, true) local is_match = template_lang and template_lang:getFullCode() == entry_full_code or false cache[normalized_code] = is_match return is_match end local function _template_lists_target(template_args, first_term_index, target_page_lower, entry_lang) for arg_index = first_term_index, #template_args do local template_term = _trim(template_args[arg_index]) if template_term and not SKIPPED_TERMS[template_term] then if _lower(template_term) == target_page_lower then return true end local template_page = M.links.get_link_page(template_term, entry_lang) if _lower(template_page) == target_page_lower then return true end end end return false end local function _is_target_listed_in_descendants(descendants_sections, templates, entry_title, entry_lang) if #descendants_sections == 0 then return false end local target_page = M.links.get_link_page(entry_title, entry_lang) local target_page_lower = _lower(target_page) local entry_full_code = entry_lang:getFullCode() local lang_match_cache = {} for _, section in ipairs(descendants_sections) do for _, template in ipairs(templates) do if _is_index_in_range(template.index, section.start_index, section.end_index) and DESCENDANT_TEMPLATES[template.name] then local lang_arg_index = nil for arg_index = 1, #template.args do if _template_lang_matches_entry(template.args[arg_index], entry_full_code, lang_match_cache) then lang_arg_index = arg_index break end end if lang_arg_index and _template_lists_target(template.args, lang_arg_index + 1, target_page_lower, entry_lang) then return true end end end end return false end local function _region_has_descendant_template(region, templates) for _, template in ipairs(templates) do if _is_index_in_range(template.index, region.start_index, region.end_index) and DESCENDANT_TEMPLATES[template.name] then return true end end return false end local function _get_region_check(region, parsed_index, entry_title, entry_lang) local descendants_sections = _get_descendants_sections(region, parsed_index.headings) if #descendants_sections == 0 then if _region_has_descendant_template(region, parsed_index.templates) then local fallback_sections = { { start_index = region.start_index, end_index = region.end_index, } } return { missing_header = false, missing_entry = not _is_target_listed_in_descendants(fallback_sections, parsed_index.templates, entry_title, entry_lang), } end return CHECK_MISSING_HEADER end return { missing_header = false, missing_entry = not _is_target_listed_in_descendants(descendants_sections, parsed_index.templates, entry_title, entry_lang), } end local function _build_checks_by_id(lang_section, etymon_lang_code, found_templates_for_lang, entry_title, entry_lang) local checks_by_id = {} local parsed_index = _build_parse_index(lang_section) local regions = _build_regions(lang_section, parsed_index.headings) local template_list_index = 1 local mapping_failed = false for _, region in ipairs(regions) do local region_etymon_count = _count_region_etymons(region, parsed_index.templates, etymon_lang_code) local region_check = nil if region_etymon_count > 0 then region_check = _get_region_check(region, parsed_index, entry_title, entry_lang) end for _ = 1, region_etymon_count do local found_template_args = found_templates_for_lang[template_list_index] if not found_template_args then mapping_failed = true break end checks_by_id[found_template_args.id or "*"] = region_check template_list_index = template_list_index + 1 end if mapping_failed then break end end if mapping_failed or template_list_index ~= (#found_templates_for_lang + 1) then local global_region = { start_index = 1, end_index = #lang_section } local fallback_check = _get_region_check(global_region, parsed_index, entry_title, entry_lang) checks_by_id = {} for _, template_args in ipairs(found_templates_for_lang) do checks_by_id[template_args.id or "*"] = fallback_check end end return checks_by_id end local function _compute_checks_for_page(opts) opts = opts or {} local found_templates_for_lang = opts.found_templates_for_lang or {} if #found_templates_for_lang == 0 then return {} end local entry_title = opts.entry_title local entry_lang = opts.entry_lang local etymon_lang_code = opts.etymon_lang_code if not entry_title or not entry_lang or not etymon_lang_code then return {} end local sanitized_lang_section = _strip_refs(opts.lang_section or "") return _build_checks_by_id( sanitized_lang_section, etymon_lang_code, found_templates_for_lang, entry_title, entry_lang ) end function export.cache_page_checks(opts) if not ENABLE_DESCENDANTS_TRACKING then return {} end opts = opts or {} local cache_table = opts.cached_descendants_checks local lang_page_key = opts.lang_page_key if not cache_table or not lang_page_key then return {} end local checks_by_id = _compute_checks_for_page(opts) _store_checks(cache_table, lang_page_key, checks_by_id, opts.redirected_from) return checks_by_id end function export.get_lookup_check(opts) if not ENABLE_DESCENDANTS_TRACKING then return nil end opts = opts or {} return _get_cached_check( opts.cached_descendants_checks, opts.is_toplevel, opts.base_key, _resolve_cache_id(opts.lookup) ) end function export.get_term_sync_flags(keyword, term_status, descendants_check) if not ENABLE_DESCENDANTS_TRACKING then return false, false end local should_track = term_status == "ok" and TRACKABLE_KEYWORDS[keyword] == true and descendants_check ~= nil if not should_track then return false, false end return descendants_check.missing_header or false, descendants_check.missing_entry or false end return export hz3frtg1989idt47ecdmpmox102vq5y Rekonstruksi:Bahasa Jermanik Purba/fuhsaz 110 145829 376769 375902 2026-09-27T16:59:34Z SNN95 2113 /* Lihat juga */ 376769 wikitext text/x-wiki {{reconstructed}} ==Bahasa Jermanik Purba== ===Etimologi=== {{etymon|gem-pro|id=Q8331|:inh|ine-pro:*púḱsos<id:?>}} Daripada {{inh|gem-pro|ine-pro|*púḱsos||yang berekor}}. Kognat dengan {{cog|sa|पुच्छ|tr=púccha|t=ekor, batang}},<ref name="EDPG">{{R:gem:EDPG|pages=157-8|head=*fuhsa-}}</ref> {{cog|ae|𐬞𐬎𐬯𐬀}}. ===Sebutan=== * {{IPA|gem-pro|/ˈɸux.sɑz/}} ===Kata nama=== {{gem-noun|m}}<ref name="EDPG" />{{tlb|gem-pro|Jermanik Barat}} # [[musang]] ====Infleksi==== {{gem-decl-noun}} ====Perkataan berkaitan==== * {{l|gem-pro|*fuhsinī|gloss=vixen}} * {{l|gem-pro|*fuhǭ|gloss=vixen}} ====Turunan==== * {{desctree|gmw-pro|*fuhs}} ===Lihat juga=== * {{l+|gmq-pro|*rebaʀ|t=musang}} ===Rujukan=== {{reflist}} {{C|gem-pro|Musang}} tp6uytdet99l0wd9j3mn2amumv4cjo3 Wikikamus:id/piring 4 146101 376861 376720 2026-09-28T03:56:21Z ~2026-52009-81 11534 376861 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # pinggan #:{{cp|id|saya makan di atas '''piring'''|Saya makan menggunakan '''pinggan'''}} as0z5lecevyb8b477tnoafeatbcwd2t Wikikamus:id/acak 4 146163 376854 376644 2026-09-28T03:28:45Z Rachmat04 3001 376854 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== === Kata nama === # gambaran sesuatu pemilihan yang tidak terbatas atau, jika terbatas, hendaklah diwujudkan dengan menggunakan pemilihan secara kebetulan ===Kata sifat=== # [[rawak]] #: {{cp|id|Pemenang undian dipilih secara '''acak''' oleh sistem.|Pemenang cabutan bertuah dipilih secara '''rawak''' oleh sistem.}} ===Sebutan=== * {{penyempangan|id|a|cak}} ===Pautan luar=== * {{R:KBBI Daring}} 06p6xao2dtmgmg9tb84zr7j8lpm0s9z Wikikamus:bdr/enselan 4 146276 376736 2026-09-27T13:59:57Z Sipatung 10839 Mencipta laman 376736 wikitext text/x-wiki ==Bahasa {{bahasa|bdr}}== ===Kata nama=== {{inti|bdr|kata nama}} # {{label|1=bdr|2=dialek|3=Sabah}} minyak {{cp|bdr|Aku meli '''enselan''' ta' kadai Gui.|Saya beli '''[[minyak]]''' di kedai Gui.}} 7nu7tdnr5fj77meyjme9zpaougg9rvq Wikikamus:id/tenung 4 146277 376737 2026-09-27T16:00:36Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # kemahiran dll. untuk mengetahui (meramalkan) sesuatu yang ghaib (seperti meramalkan nasib, mencari orang hilang) # ilmu hitam untuk mencederakan orang' 376737 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # kemahiran dll. untuk mengetahui (meramalkan) sesuatu yang ghaib (seperti meramalkan nasib, mencari orang hilang) # ilmu hitam untuk mencederakan orang px7qcvioyymycuza9h74qw7jkumdhkn Wikikamus:id/tenunan 4 146278 376738 2026-09-27T16:01:20Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # produk tenunan; barangan tenunan' 376738 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # produk tenunan; barangan tenunan 256lymgndne7d3w9wkoctbowuu1seh1 Wikikamus:id/tenun 4 146279 376739 2026-09-27T16:02:30Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # produk kraf dalam bentuk bahan (kain) yang diperbuat daripada benang (kapas, sutera, dll.) dengan memasukkan pakan secara melintang ke dalam lungsin' 376739 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata kerja}} # produk kraf dalam bentuk bahan (kain) yang diperbuat daripada benang (kapas, sutera, dll.) dengan memasukkan pakan secara melintang ke dalam lungsin di92p4i96rf81p3ku84130g6cpht4jo Wikikamus:id/menenun 4 146280 376740 2026-09-27T16:03:13Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # membuat barangan tenunan (daripada kapas, benang sutera)' 376740 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata kerja=== {{inti|id|kata kerja}} # membuat barangan tenunan (daripada kapas, benang sutera) g78mwxaneggxjnfk6hgg88u5p6fwevy Wikikamus:id/menentukan 4 146281 376741 2026-09-27T16:04:22Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # memastikan (pasti); menetapkan; memastikan # memutuskan; membuat peruntukan # untuk menentukan (mentakrifkan)' 376741 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata kerja=== {{inti|id|kata kerja}} # memastikan (pasti); menetapkan; memastikan # memutuskan; membuat peruntukan # untuk menentukan (mentakrifkan) 2hi5wjyvqb9kwjci0mo2bg0hazfq3vh Modul:gem-decl-noun 828 146282 376742 2026-09-27T16:04:31Z SNN95 2113 letak dulu, terjemah kemudian 376742 Scribunto text/plain local export = {} local m_inflection_table = require("Module:inflection-table") local m_pron = require("Module:gem-pronunc") local m_links = require("Module:links") local m_utils = require("Module:utilities") local lang = require("Module:languages").getByCode("gem-pro") local i_muts = m_pron.i_mutations local decl_data = require("Module:gem-decl-noun/data") local decl_data_irreg = require("Module:gem-decl-noun/data/irreg") local endings = { ["az"] = "a-m", ["ą"] = "a-n", ["iz"] = "i-mf", ["i"] = "i-n", ["ī"] = "ijo-f", ["į̄"] = "in-f", ["ǭ"] = "n-f", ["ō"] = "o-f", ["ēr"] = "r-mf", ["uz"] = "u-mf", ["u"] = "u-n" } local endings_reverse = { ["a-m"] = "az", ["a-n"] = "ą", ["cons-n"] = "", ["i-mf"] = "iz", ["i-m"] = "iz", ["i-f"] = "iz", ["i-n"] = "i", ["ijo-f"] = "ī", ["in-f"] = "į̄", ["n-m"] = "ô", ["n-n"] = "ô", ["n-f"] = "ǭ", ["o-f"] = "ō", ["r-mf"] = "ēr", ["r-m"] = "ēr", ["r-f"] = "ēr", ["u-mf"] = "uz", ["u-m"] = "uz", ["u-f"] = "uz", ["u-n"] = "u", ["z-n"] = "az", } local function detect_decl(word, stem, gender) if stem and gender then local decl = stem .. "-" .. gender return decl, {mw.ustring.sub(word, 1, -(mw.ustring.len(endings_reverse[decl]) + 1))} elseif stem == "z" and mw.ustring.sub(word, -2) == "az" then -- z-stem return "z-n", {mw.ustring.sub(word, 1, -3)} elseif mw.ustring.find(word, "ô$") then -- an-stem if gender then return "n-" .. gender, {mw.ustring.sub(word, 1, -2)} else error("Gender must be specified for an-stems.") end else for ending, decl in pairs(endings) do if mw.ustring.find(word, ending .. "$") then return decl, {mw.ustring.sub(word, 1, -(mw.ustring.len(ending) + 1))} end end -- No matches, assume consonant stem. Now check for s-stems local stem = "" if mw.ustring.sub(word, -1, -1) == "s" and not mw.ustring.find(mw.ustring.sub(word, -2, -2), "[fhkptþ]") then stem = word else stem = mw.ustring.sub(word, 1, -2) end return (gender and "cons-" .. gender or "cons-mf"), {stem} end end local function add_asterisks(forms, data) for _, form in ipairs(forms) do for i, subform in ipairs(data.forms[form]) do data.forms[form][i] = "*" .. subform end end end -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) local parent_args = frame:getParent().args if mw.title.getCurrentTitle().nsText ~= "Reconstruction" then return end local stems = nil local decl_type = {} local word = mw.loadData("Module:headword/data").pagename local args = {} if not decl_data_irreg[word] then if frame.args.decl then decl_type = frame.args.decl else if parent_args.stem and parent_args.g and parent_args[1] then decl_type = parent_args.stem .. "-" .. parent_args.g stems = {parent_args[1]} else decl_type, stems = detect_decl(word, parent_args.stem, parent_args.g) end end if not decl_type then error("Unknown declension '" .. decl_type .. "'") end args = require("Module:parameters").process(parent_args, decl_data[decl_type].params, true) if stems then for i, stem in ipairs(stems) do args[i] = stem end end end local data = {forms = {}, categories = {}} data.head = parent_args["head"] or nil -- Generate the forms if decl_data_irreg[word] then table.insert(data.categories, "Proto-Germanic irregular nouns") decl_data_irreg[word](parent_args, data) else decl_data[decl_type](args, data) end -- Make the table return make_table(data) end function make_table(data) local function show_form(form) if not form then return "—" end local ret = {} for key, subform in ipairs(form) do if mw.ustring.find(subform, "[iīįǐj]") or mw.ustring.find(subform, "e[mn]") then subform = i_muts(subform) end if subform ~= "—" then subform = "*" .. subform end table.insert(ret, subform) end return table.concat(ret, ", ") end local function repl(param) if param == "decl_type" then return data.decl_type elseif param == "title" then return "*" .. data.forms.nom_sg[1] else return show_form(data.forms[param]) end end local function make_cases(data) local cases = {"nominative", "vocative", "accusative", "genitive", "dative", "instrumental"} local ret = {} for _, case in ipairs(cases) do local case_short = mw.ustring.sub(case, 1, 3) -- assert(false, case_short) table.insert(ret, "|- \n! | " .. case .. "\n") table.insert(ret, "| " .. show_form(data.forms[case_short .. "_sg"]) .. "\n") if data.forms[case_short .. "_pl"] then table.insert(ret, "| " .. show_form(data.forms[case_short .. "_pl"]) .. "\n") end end return table.concat(ret) end local no_plural = data.forms.nom_pl == nil local table_top = m_inflection_table.make_top{ title = 'Declension of <span lang="gem-pro">{{{title}}}</span> ({{{decl_type}}})', palette = 'orange', tall = 'yes', } local table_bottom = m_inflection_table.make_bottom{} local wikicode = table_top .. [=[ ! class="outer" | ! class="outer" | singular ]=] .. (no_plural and "\n" or [=[ ! class="outer" | plural ]=]) .. make_cases(data) .. [=[ ]=] .. table_bottom return (mw.ustring.gsub(wikicode, "{{{([a-z0-9_]+)}}}", repl)) .. m_utils.format_categories(data.categories, lang) end return export 89syd5978ofs1ge46mm2h98jy1gta1q 376750 376742 2026-09-27T16:29:17Z SNN95 2113 kemaskini 376750 Scribunto text/plain local export = {} local m_inflection_table = require("Module:inflection-table") local m_pron = require("Module:gem-pronunc") local m_links = require("Module:links") local m_utils = require("Module:utilities") local lang = require("Module:languages").getByCode("gem-pro") local i_muts = m_pron.i_mutations local decl_data = require("Module:gem-decl-noun/data") local decl_data_irreg = require("Module:gem-decl-noun/data/irreg") local endings = { ["az"] = "a-m", ["ą"] = "a-n", ["iz"] = "i-mf", ["i"] = "i-n", ["ī"] = "ijo-f", ["į̄"] = "in-f", ["ǭ"] = "n-f", ["ō"] = "o-f", ["ēr"] = "r-mf", ["uz"] = "u-mf", ["u"] = "u-n" } local endings_reverse = { ["a-m"] = "az", ["a-n"] = "ą", ["cons-n"] = "", ["i-mf"] = "iz", ["i-m"] = "iz", ["i-f"] = "iz", ["i-n"] = "i", ["ijo-f"] = "ī", ["in-f"] = "į̄", ["n-m"] = "ô", ["n-n"] = "ô", ["n-f"] = "ǭ", ["o-f"] = "ō", ["r-mf"] = "ēr", ["r-m"] = "ēr", ["r-f"] = "ēr", ["u-mf"] = "uz", ["u-m"] = "uz", ["u-f"] = "uz", ["u-n"] = "u", ["z-n"] = "az", } local function detect_decl(word, stem, gender) if stem and gender then local decl = stem .. "-" .. gender return decl, {mw.ustring.sub(word, 1, -(mw.ustring.len(endings_reverse[decl]) + 1))} elseif stem == "z" and mw.ustring.sub(word, -2) == "az" then -- z-stem return "z-n", {mw.ustring.sub(word, 1, -3)} elseif mw.ustring.find(word, "ô$") then -- an-stem if gender then return "n-" .. gender, {mw.ustring.sub(word, 1, -2)} else error("Gender must be specified for an-stems.") end else for ending, decl in pairs(endings) do if mw.ustring.find(word, ending .. "$") then return decl, {mw.ustring.sub(word, 1, -(mw.ustring.len(ending) + 1))} end end -- No matches, assume consonant stem. Now check for s-stems local stem = "" if mw.ustring.sub(word, -1, -1) == "s" and not mw.ustring.find(mw.ustring.sub(word, -2, -2), "[fhkptþ]") then stem = word else stem = mw.ustring.sub(word, 1, -2) end return (gender and "cons-" .. gender or "cons-mf"), {stem} end end local function add_asterisks(forms, data) for _, form in ipairs(forms) do for i, subform in ipairs(data.forms[form]) do data.forms[form][i] = "*" .. subform end end end -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) local parent_args = frame:getParent().args if mw.title.getCurrentTitle().nsText ~= "Rekonstruksi" then return end local stems = nil local decl_type = {} local word = mw.loadData("Module:headword/data").pagename local args = {} if not decl_data_irreg[word] then if frame.args.decl then decl_type = frame.args.decl else if parent_args.stem and parent_args.g and parent_args[1] then decl_type = parent_args.stem .. "-" .. parent_args.g stems = {parent_args[1]} else decl_type, stems = detect_decl(word, parent_args.stem, parent_args.g) end end if not decl_type then error("Unknown declension '" .. decl_type .. "'") end args = require("Module:parameters").process(parent_args, decl_data[decl_type].params, true) if stems then for i, stem in ipairs(stems) do args[i] = stem end end end local data = {forms = {}, categories = {}} data.head = parent_args["head"] or nil -- Generate the forms if decl_data_irreg[word] then table.insert(data.categories, "Kata nama tak teratur bahasa Jermanik Purba") decl_data_irreg[word](parent_args, data) else decl_data[decl_type](args, data) end -- Make the table return make_table(data) end function make_table(data) local function show_form(form) if not form then return "—" end local ret = {} for key, subform in ipairs(form) do if mw.ustring.find(subform, "[iīįǐj]") or mw.ustring.find(subform, "e[mn]") then subform = i_muts(subform) end if subform ~= "—" then subform = "*" .. subform end table.insert(ret, subform) end return table.concat(ret, ", ") end local function repl(param) if param == "decl_type" then return data.decl_type elseif param == "title" then return "*" .. data.forms.nom_sg[1] else return show_form(data.forms[param]) end end local function make_cases(data) local cases = {"nominatif", "vokatif", "akusatif", "genitif", "datif", "instrumental"} local ret = {} for _, case in ipairs(cases) do local case_short = mw.ustring.sub(case, 1, 3) -- assert(false, case_short) table.insert(ret, "|- \n! | " .. case .. "\n") table.insert(ret, "| " .. show_form(data.forms[case_short .. "_sg"]) .. "\n") if data.forms[case_short .. "_pl"] then table.insert(ret, "| " .. show_form(data.forms[case_short .. "_pl"]) .. "\n") end end return table.concat(ret) end local no_plural = data.forms.nom_pl == nil local table_top = m_inflection_table.make_top{ title = 'Deklensi bagi <span lang="gem-pro">{{{title}}}</span> ({{{decl_type}}})', palette = 'orange', tall = 'yes', } local table_bottom = m_inflection_table.make_bottom{} local wikicode = table_top .. [=[ ! class="outer" | ! class="outer" | singular ]=] .. (no_plural and "\n" or [=[ ! class="outer" | plural ]=]) .. make_cases(data) .. [=[ ]=] .. table_bottom return (mw.ustring.gsub(wikicode, "{{{([a-z0-9_]+)}}}", repl)) .. m_utils.format_categories(data.categories, lang) end return export m2962kawvqg4tyhxwbnu9mgnw39fxvl 376751 376750 2026-09-27T16:31:57Z SNN95 2113 376751 Scribunto text/plain local export = {} local m_inflection_table = require("Module:inflection-table") local m_pron = require("Module:gem-pronunc") local m_links = require("Module:links") local m_utils = require("Module:utilities") local lang = require("Module:languages").getByCode("gem-pro") local i_muts = m_pron.i_mutations local decl_data = require("Module:gem-decl-noun/data") local decl_data_irreg = require("Module:gem-decl-noun/data/irreg") local endings = { ["az"] = "a-m", ["ą"] = "a-n", ["iz"] = "i-mf", ["i"] = "i-n", ["ī"] = "ijo-f", ["į̄"] = "in-f", ["ǭ"] = "n-f", ["ō"] = "o-f", ["ēr"] = "r-mf", ["uz"] = "u-mf", ["u"] = "u-n" } local endings_reverse = { ["a-m"] = "az", ["a-n"] = "ą", ["cons-n"] = "", ["i-mf"] = "iz", ["i-m"] = "iz", ["i-f"] = "iz", ["i-n"] = "i", ["ijo-f"] = "ī", ["in-f"] = "į̄", ["n-m"] = "ô", ["n-n"] = "ô", ["n-f"] = "ǭ", ["o-f"] = "ō", ["r-mf"] = "ēr", ["r-m"] = "ēr", ["r-f"] = "ēr", ["u-mf"] = "uz", ["u-m"] = "uz", ["u-f"] = "uz", ["u-n"] = "u", ["z-n"] = "az", } local function detect_decl(word, stem, gender) if stem and gender then local decl = stem .. "-" .. gender return decl, {mw.ustring.sub(word, 1, -(mw.ustring.len(endings_reverse[decl]) + 1))} elseif stem == "z" and mw.ustring.sub(word, -2) == "az" then -- z-stem return "z-n", {mw.ustring.sub(word, 1, -3)} elseif mw.ustring.find(word, "ô$") then -- an-stem if gender then return "n-" .. gender, {mw.ustring.sub(word, 1, -2)} else error("Gender must be specified for an-stems.") end else for ending, decl in pairs(endings) do if mw.ustring.find(word, ending .. "$") then return decl, {mw.ustring.sub(word, 1, -(mw.ustring.len(ending) + 1))} end end -- No matches, assume consonant stem. Now check for s-stems local stem = "" if mw.ustring.sub(word, -1, -1) == "s" and not mw.ustring.find(mw.ustring.sub(word, -2, -2), "[fhkptþ]") then stem = word else stem = mw.ustring.sub(word, 1, -2) end return (gender and "cons-" .. gender or "cons-mf"), {stem} end end local function add_asterisks(forms, data) for _, form in ipairs(forms) do for i, subform in ipairs(data.forms[form]) do data.forms[form][i] = "*" .. subform end end end -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) local parent_args = frame:getParent().args if mw.title.getCurrentTitle().nsText ~= "Rekonstruksi" then return end local stems = nil local decl_type = {} local word = mw.loadData("Module:headword/data").pagename local args = {} if not decl_data_irreg[word] then if frame.args.decl then decl_type = frame.args.decl else if parent_args.stem and parent_args.g and parent_args[1] then decl_type = parent_args.stem .. "-" .. parent_args.g stems = {parent_args[1]} else decl_type, stems = detect_decl(word, parent_args.stem, parent_args.g) end end if not decl_type then error("Unknown declension '" .. decl_type .. "'") end args = require("Module:parameters").process(parent_args, decl_data[decl_type].params, true) if stems then for i, stem in ipairs(stems) do args[i] = stem end end end local data = {forms = {}, categories = {}} data.head = parent_args["head"] or nil -- Generate the forms if decl_data_irreg[word] then table.insert(data.categories, "Kata nama tak teratur bahasa Jermanik Purba") decl_data_irreg[word](parent_args, data) else decl_data[decl_type](args, data) end -- Make the table return make_table(data) end function make_table(data) local function show_form(form) if not form then return "—" end local ret = {} for key, subform in ipairs(form) do if mw.ustring.find(subform, "[iīįǐj]") or mw.ustring.find(subform, "e[mn]") then subform = i_muts(subform) end if subform ~= "—" then subform = "*" .. subform end table.insert(ret, subform) end return table.concat(ret, ", ") end local function repl(param) if param == "decl_type" then return data.decl_type elseif param == "title" then return "*" .. data.forms.nom_sg[1] else return show_form(data.forms[param]) end end local function make_cases(data) local cases = {"nominatif", "vokatif", "akusatif", "genitif", "datif", "instrumental"} local ret = {} for _, case in ipairs(cases) do local case_short = mw.ustring.sub(case, 1, 3) -- assert(false, case_short) table.insert(ret, "|- \n! | " .. case .. "\n") table.insert(ret, "| " .. show_form(data.forms[case_short .. "_sg"]) .. "\n") if data.forms[case_short .. "_pl"] then table.insert(ret, "| " .. show_form(data.forms[case_short .. "_pl"]) .. "\n") end end return table.concat(ret) end local no_plural = data.forms.nom_pl == nil local table_top = m_inflection_table.make_top{ title = 'Deklensi bagi <span lang="gem-pro">{{{title}}}</span> ({{{decl_type}}})', palette = 'orange', tall = 'yes', } local table_bottom = m_inflection_table.make_bottom{} local wikicode = table_top .. [=[ ! class="outer" | ! class="outer" | tunggal ]=] .. (no_plural and "\n" or [=[ ! class="outer" | jamak ]=]) .. make_cases(data) .. [=[ ]=] .. table_bottom return (mw.ustring.gsub(wikicode, "{{{([a-z0-9_]+)}}}", repl)) .. m_utils.format_categories(data.categories, lang) end return export 84ukqfje5lqnqh9ga8909u4wsgy37v1 376792 376751 2026-09-28T00:49:19Z Hakimi97 2668 Deklensi > Tasrif, Tunggal > Mufrad 376792 Scribunto text/plain local export = {} local m_inflection_table = require("Module:inflection-table") local m_pron = require("Module:gem-pronunc") local m_links = require("Module:links") local m_utils = require("Module:utilities") local lang = require("Module:languages").getByCode("gem-pro") local i_muts = m_pron.i_mutations local decl_data = require("Module:gem-decl-noun/data") local decl_data_irreg = require("Module:gem-decl-noun/data/irreg") local endings = { ["az"] = "a-m", ["ą"] = "a-n", ["iz"] = "i-mf", ["i"] = "i-n", ["ī"] = "ijo-f", ["į̄"] = "in-f", ["ǭ"] = "n-f", ["ō"] = "o-f", ["ēr"] = "r-mf", ["uz"] = "u-mf", ["u"] = "u-n" } local endings_reverse = { ["a-m"] = "az", ["a-n"] = "ą", ["cons-n"] = "", ["i-mf"] = "iz", ["i-m"] = "iz", ["i-f"] = "iz", ["i-n"] = "i", ["ijo-f"] = "ī", ["in-f"] = "į̄", ["n-m"] = "ô", ["n-n"] = "ô", ["n-f"] = "ǭ", ["o-f"] = "ō", ["r-mf"] = "ēr", ["r-m"] = "ēr", ["r-f"] = "ēr", ["u-mf"] = "uz", ["u-m"] = "uz", ["u-f"] = "uz", ["u-n"] = "u", ["z-n"] = "az", } local function detect_decl(word, stem, gender) if stem and gender then local decl = stem .. "-" .. gender return decl, {mw.ustring.sub(word, 1, -(mw.ustring.len(endings_reverse[decl]) + 1))} elseif stem == "z" and mw.ustring.sub(word, -2) == "az" then -- z-stem return "z-n", {mw.ustring.sub(word, 1, -3)} elseif mw.ustring.find(word, "ô$") then -- an-stem if gender then return "n-" .. gender, {mw.ustring.sub(word, 1, -2)} else error("Gender must be specified for an-stems.") end else for ending, decl in pairs(endings) do if mw.ustring.find(word, ending .. "$") then return decl, {mw.ustring.sub(word, 1, -(mw.ustring.len(ending) + 1))} end end -- No matches, assume consonant stem. Now check for s-stems local stem = "" if mw.ustring.sub(word, -1, -1) == "s" and not mw.ustring.find(mw.ustring.sub(word, -2, -2), "[fhkptþ]") then stem = word else stem = mw.ustring.sub(word, 1, -2) end return (gender and "cons-" .. gender or "cons-mf"), {stem} end end local function add_asterisks(forms, data) for _, form in ipairs(forms) do for i, subform in ipairs(data.forms[form]) do data.forms[form][i] = "*" .. subform end end end -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) local parent_args = frame:getParent().args if mw.title.getCurrentTitle().nsText ~= "Rekonstruksi" then return end local stems = nil local decl_type = {} local word = mw.loadData("Module:headword/data").pagename local args = {} if not decl_data_irreg[word] then if frame.args.decl then decl_type = frame.args.decl else if parent_args.stem and parent_args.g and parent_args[1] then decl_type = parent_args.stem .. "-" .. parent_args.g stems = {parent_args[1]} else decl_type, stems = detect_decl(word, parent_args.stem, parent_args.g) end end if not decl_type then error("Unknown declension '" .. decl_type .. "'") end args = require("Module:parameters").process(parent_args, decl_data[decl_type].params, true) if stems then for i, stem in ipairs(stems) do args[i] = stem end end end local data = {forms = {}, categories = {}} data.head = parent_args["head"] or nil -- Generate the forms if decl_data_irreg[word] then table.insert(data.categories, "Kata nama tak teratur bahasa Jermanik Purba") decl_data_irreg[word](parent_args, data) else decl_data[decl_type](args, data) end -- Make the table return make_table(data) end function make_table(data) local function show_form(form) if not form then return "—" end local ret = {} for key, subform in ipairs(form) do if mw.ustring.find(subform, "[iīįǐj]") or mw.ustring.find(subform, "e[mn]") then subform = i_muts(subform) end if subform ~= "—" then subform = "*" .. subform end table.insert(ret, subform) end return table.concat(ret, ", ") end local function repl(param) if param == "decl_type" then return data.decl_type elseif param == "title" then return "*" .. data.forms.nom_sg[1] else return show_form(data.forms[param]) end end local function make_cases(data) local cases = {"nominatif", "vokatif", "akusatif", "genitif", "datif", "instrumental"} local ret = {} for _, case in ipairs(cases) do local case_short = mw.ustring.sub(case, 1, 3) -- assert(false, case_short) table.insert(ret, "|- \n! | " .. case .. "\n") table.insert(ret, "| " .. show_form(data.forms[case_short .. "_sg"]) .. "\n") if data.forms[case_short .. "_pl"] then table.insert(ret, "| " .. show_form(data.forms[case_short .. "_pl"]) .. "\n") end end return table.concat(ret) end local no_plural = data.forms.nom_pl == nil local table_top = m_inflection_table.make_top{ title = 'Tasrif bagi <span lang="gem-pro">{{{title}}}</span> ({{{decl_type}}})', palette = 'orange', tall = 'yes', } local table_bottom = m_inflection_table.make_bottom{} local wikicode = table_top .. [=[ ! class="outer" | ! class="outer" | mufrad ]=] .. (no_plural and "\n" or [=[ ! class="outer" | jamak ]=]) .. make_cases(data) .. [=[ ]=] .. table_bottom return (mw.ustring.gsub(wikicode, "{{{([a-z0-9_]+)}}}", repl)) .. m_utils.format_categories(data.categories, lang) end return export og1l8y3cyd7g41sfiopqln0rz62p95g Wikikamus:id/kenaikan 4 146283 376743 2026-09-27T16:05:37Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # mengenai peningkatan; peningkatan; penambahan # kenderaan; tunggangan' 376743 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # mengenai peningkatan; peningkatan; penambahan # kenderaan; tunggangan jn7rs098gu0n74qxkb6yd72iwcf7cyl Templat:gem-decl-noun 10 146284 376744 2026-09-27T16:06:04Z SNN95 2113 Mencipta laman baru dengan kandungan '{{#invoke:gem-decl-noun|show}}<!-- --><noinclude>{{documentation}}</noinclude>' 376744 wikitext text/x-wiki {{#invoke:gem-decl-noun|show}}<!-- --><noinclude>{{documentation}}</noinclude> 4jkmu1vnoswk63rgnvmj4pwdy9ubj5q Wikikamus:id/kejayaan 4 146285 376745 2026-09-27T16:07:17Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # keagungan; kebesaran; kemasyhuran # keadaan yang stabil dan menguntungkan (baik dari segi material mahupun jiwa)' 376745 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # keagungan; kebesaran; kemasyhuran # keadaan yang stabil dan menguntungkan (baik dari segi material mahupun jiwa) mbaegwoe5f690f36h331cbrc5koz1i2 Modul:gem-pronunc 828 146286 376746 2026-09-27T16:07:35Z SNN95 2113 letak dulu, terjemah kemudian 376746 Scribunto text/plain local export = {} local m_IPA = require("Module:IPA") local lang = require("Module:languages").getByCode("gem-pro") local letters_internal = { { "ai", "aj" }, { "au", "aw" }, { "eu", "ew" }, { "iu", "iw" }, { "hw", "hʷ" }, { "kw", "kʷ" }, { "gw", "gʷ" }, { "ē₂", "ë" }, { "į̄", "ǐ" }, { "ǫ̂", "ơ" }, } local phonetic_rules = { { "a", "ɑ" }, { "ā", "ɑː" }, { "ë", "eː" }, { "ē", "ɛː" }, { "ī", "iː" }, { "ō", "ɔː" }, { "ū", "uː" }, { "ê", "ɛːː" }, { "ô", "ɔːː" }, { "ą", "ɑ̃" }, { "į", "ĩ" }, { "ų", "ũ" }, { "ǐ", "ĩː" }, { "ǭ", "ɔ̃ː" }, { "ơ", "ɔ̃ːː" }, { "f", "ɸ" }, { "þ", "θ" }, { "h", "x" }, { "hʷ", "xʷ" }, { "^x", "h" }, { "^xʷ", "hʷ" }, { "b", "β" }, { "^β", "b" }, { "mβ", "mb" }, { "d", "ð" }, { "^ð", "d" }, { "([nlz])ð", "%1d" }, { "g", "ɣ" }, { "nɣʷ", "ŋʷɡʷ" }, { "nɣ", "ŋɡ" }, } local vowels = { "a", "e", "i", "u", "ā", "ē", "ë", "ī", "ō", "ū", "ê", "ô", "ą", "į", "ų", "ǐ", "ǭ", "ơ", "-" } local onsets = { "b", "p", "d", "t", "þ", "g", "k", "kʷ", "gʷ", "f", "s", "h", "hʷ", "z", "l", "m", "n", "r", "j", "w", "bl", "pl", "fl", "br", "pr", "fr", "þl", "wl", "dr", "tr", "þr", "gl", "kl", "hl", "gr", "kr", "hr", "wr", "gn", "kn", "hn", "fn", "dw", "tw", "þw", "kw", "hw", "sp", "st", "sk", "sw", "sl", "sm", "sn", "sw", "spr", "str", "skr", "spl", "skl", } local codas = { "b", "p", "pp", "þ", "d", "t", "f", "g", "k", "h", "s", "z", "l", "m", "n", "r", "j", "w", "hʷ", "ww", "wz", "sp", "st", "sk", "lp", "lt", "lk", "lb", "ld", "lg", "lf", "lþ", "lh", "rp", "rt", "rk", "rb", "rd", "rg", "rf", "rþ", "rh", "mp", "nt", "nk", "nn", "mb", "nd", "ng", "mf", "nþ", "nh", "nhs", "lm", "rl", "rm", "rn", "wh", "wr", "wl", "fl", "sl", "ps", "ts", "ks", "hs", "ls", "ns", "rs", "þs", "sts", "hts", "lks", "lhs", "nks", "rks", "rgz", "rhs", "nþs", "hsl", "lms", "rls", "rms", "rns", "hst", "hsl", "rht", "rkt", "ht", "rht", "nz", "ndz", "dz", "gz", "ngz", "rz", "rbz", "rdz", "zn", "ndr", "ntr", "ngr", "nkr", "nstr", "jp", "jb", "js", "jz", "jt", "jd", "jþ", "jf", "jk", "jg", "jh", "jr", "jst", "jzd", "jts", "jdz", "jks", "jgz", "jsk", "jzg", "jstr", "jzdr", "jn", "jm", "jw", "jþm", "kr", "jgl", "br", "t(t)", } for _, val in ipairs(vowels) do vowels[val] = true end for _, val in ipairs(onsets) do onsets[val] = true end for _, val in ipairs(codas) do codas[val] = true end local function letters_to_internal(word) local phonemes = {} for _, rule in ipairs(letters_internal) do word = mw.ustring.gsub(word, rule[1], rule[2]) end mw.ustring.gsub(word, ".", function(c) table.insert(phonemes, c) end) return phonemes end local function word_from_internal(word) for _, rule in ipairs(letters_internal) do word = mw.ustring.gsub(word, rule[2], rule[1]) end return word end local function get_onset(syll) local consonants = {} for i = 1, #syll do if vowels[syll[i]] then break end table.insert(consonants, syll[i]) end return table.concat(consonants) end local function get_coda(syll) local consonants = {} for i = #syll, 1, -1 do if vowels[syll[i]] then break end table.insert(consonants, 1, syll[i]) end return table.concat(consonants) end local function get_vowel(syll) for i = 1, #syll do if vowels[syll[i]] then return syll[i] end end end -- Split the word into syllables of CV shape local function split_syllables(remainder) local syllables = {} local syll = {} while #remainder > 0 do local phoneme = table.remove(remainder, 1) if vowels[phoneme] then table.insert(syll, phoneme) table.insert(syllables, syll) syll = {} else table.insert(syll, phoneme) end end -- If there are phonemes left, then the word ends in a consonant -- Add them to the last syllable for _, phoneme in ipairs(syll) do table.insert(syllables[#syllables], phoneme) end -- Split consonant clusters between syllables for i, current in ipairs(syllables) do if i > 1 then local previous = syllables[i - 1] local onset = get_onset(current) -- Shift over consonants until the syllable onset is valid while not (onset == "" or onsets[onset]) do table.insert(previous, table.remove(current, 1)) onset = get_onset(current) end -- If there is no vowel at all in this syllable if not get_vowel(current) then for j = 1, #current do table.insert(syllables[i - 1], table.remove(current, 1)) end table.remove(syllables, i) end end end for _, syll in ipairs(syllables) do local onset = get_onset(syll) local coda = get_coda(syll) if not (onset == "" or onsets[onset]) then require("Module:debug").track("gem-ipa/bad onset") error("onset error: [" .. onset .. "]") end if not (coda == "" or codas[coda]) then require("Module:debug").track("gem-ipa/bad coda") error("coda error: [" .. coda .. "]") end end return syllables end local function convert_word(word) -- Convert word to a better internal representation local phonemes = letters_to_internal(word) -- Split into syllables local syllables = split_syllables(phonemes) for i, syll in ipairs(syllables) do for j = 1, #syll - 1 do if syll[j] == syll[j + 1] then syll[j + 1] = "" end end syllables[i] = table.concat(syll) end word = table.concat(syllables, ".") for _, rule in ipairs(phonetic_rules) do word = mw.ustring.gsub(word, rule[1], rule[2]) end return word end local function convert_words(words) words = mw.ustring.lower(words) local result = {} for word in mw.text.gsplit(words, " ") do table.insert(result, convert_word(word)) end return table.concat(result, " ") end function export.show_full(frame) local params = { [1] = { default = mw.title.getCurrentTitle().nsText ~= "Reconstruction" and "wurdą" or mw.loadData("Module:headword/data").pagename } } local args = require("Module:parameters").process(frame:getParent().args, params) local words = args[1]:lower() local categories = {} local out = m_IPA.format_IPA_full { lang = lang, items = {{ pron = "/" .. convert_words(words) .. "/" }} } return out .. require("Module:utilities").format_categories(categories) end function export.show(words) if type(words) == "table" then -- assume a frame words = words.args[1]:lower() or mw.loadData("Module:headword/data").pagename:lower() end return convert_words(words) end local function i_mutation(word) local upperc = false --local dash = false if mw.ustring.find(word, "^%u") then word = mw.ustring.lower(word) upperc = true end --[[if mw.ustring.find(word, "^%-") then word = mw.ustring.sub(word, 2) dash = true end]] local repeated = false local phonemes = letters_to_internal(word) -- Split into syllables local syllables = split_syllables(phonemes) for i, syll in ipairs(syllables) do --[[for j=1, #syll-1 do if syll[j]==syll[j+1] then syll[j+1] = "" repeated = true end end]] syllables[i] = table.concat(syll) end for i = #syllables, 1, -1 do mw.ustring.gsub(syllables[i], "e([mn])", "i%1") if mw.ustring.find(syllables[i], "[bdfghjklmnprstþwz][iīįǐj]") then if not mw.ustring.find(syllables[i], "je") then syllables[i] = mw.ustring.gsub(syllables[i], "e", "i") end if i ~= 1 then syllables[i - 1] = mw.ustring.gsub(syllables[i - 1], "e", "i") end end end local new_word = table.concat(syllables) local vowels_s = "aeiuāēëīōūêôąįųǭį̄ǫ̂" new_word = word_from_internal(new_word) new_word = mw.ustring.gsub(new_word, "uu", "wu") new_word = mw.ustring.gsub(new_word, "([" .. vowels_s .. "]i)u", "%1w") new_word = mw.ustring.gsub(new_word, "([aei])u([" .. vowels_s .. "w])", "%1w%2") new_word = mw.ustring.gsub(new_word, "([aei])i([" .. vowels_s .. "j])", "%1j%2") new_word = mw.ustring.gsub(new_word, "([" .. vowels_s .. "])uj", "%1wj") -- Exception for compound words new_word = mw.ustring.gsub(new_word, "andaulit", "andawlit") if upperc then return mw.ustring.upper(mw.ustring.sub(new_word, 1, 1)) .. mw.ustring.sub(new_word, 2) --elseif dash then -- return "-" .. new_word else return new_word end end function export.determine_sievers(stem) if mw.ustring.find(stem, "[aeiu].[aeiu].$") then -- Two light syllables = one heavy return "ij" elseif mw.ustring.find(stem, "^[aeiu][iubdfghjklmnprstþwz]$") or mw.ustring.find(stem, "[bdfgkjklmnprstþwz][aeiu][iubdfghjklmnprstþwz]$") or mw.ustring.find(stem, "[āēīōū]$") then return "j" else return "ij" end end function export.i_mutations(word) local words = mw.text.split(word, " ") if #words > 1 then local new_word = i_mutation(words[#words]) table.remove(words) table.insert(words, new_word) return table.concat(words, " ") else return i_mutation(word) end end return export b70ow7498repd8vh9e4moz9btxq4dqv 376755 376746 2026-09-27T16:40:02Z SNN95 2113 376755 Scribunto text/plain local export = {} local m_IPA = require("Module:IPA") local lang = require("Module:languages").getByCode("gem-pro") local letters_internal = { { "ai", "aj" }, { "au", "aw" }, { "eu", "ew" }, { "iu", "iw" }, { "hw", "hʷ" }, { "kw", "kʷ" }, { "gw", "gʷ" }, { "ē₂", "ë" }, { "į̄", "ǐ" }, { "ǫ̂", "ơ" }, } local phonetic_rules = { { "a", "ɑ" }, { "ā", "ɑː" }, { "ë", "eː" }, { "ē", "ɛː" }, { "ī", "iː" }, { "ō", "ɔː" }, { "ū", "uː" }, { "ê", "ɛːː" }, { "ô", "ɔːː" }, { "ą", "ɑ̃" }, { "į", "ĩ" }, { "ų", "ũ" }, { "ǐ", "ĩː" }, { "ǭ", "ɔ̃ː" }, { "ơ", "ɔ̃ːː" }, { "f", "ɸ" }, { "þ", "θ" }, { "h", "x" }, { "hʷ", "xʷ" }, { "^x", "h" }, { "^xʷ", "hʷ" }, { "b", "β" }, { "^β", "b" }, { "mβ", "mb" }, { "d", "ð" }, { "^ð", "d" }, { "([nlz])ð", "%1d" }, { "g", "ɣ" }, { "nɣʷ", "ŋʷɡʷ" }, { "nɣ", "ŋɡ" }, } local vowels = { "a", "e", "i", "u", "ā", "ē", "ë", "ī", "ō", "ū", "ê", "ô", "ą", "į", "ų", "ǐ", "ǭ", "ơ", "-" } local onsets = { "b", "p", "d", "t", "þ", "g", "k", "kʷ", "gʷ", "f", "s", "h", "hʷ", "z", "l", "m", "n", "r", "j", "w", "bl", "pl", "fl", "br", "pr", "fr", "þl", "wl", "dr", "tr", "þr", "gl", "kl", "hl", "gr", "kr", "hr", "wr", "gn", "kn", "hn", "fn", "dw", "tw", "þw", "kw", "hw", "sp", "st", "sk", "sw", "sl", "sm", "sn", "sw", "spr", "str", "skr", "spl", "skl", } local codas = { "b", "p", "pp", "þ", "d", "t", "f", "g", "k", "h", "s", "z", "l", "m", "n", "r", "j", "w", "hʷ", "ww", "wz", "sp", "st", "sk", "lp", "lt", "lk", "lb", "ld", "lg", "lf", "lþ", "lh", "rp", "rt", "rk", "rb", "rd", "rg", "rf", "rþ", "rh", "mp", "nt", "nk", "nn", "mb", "nd", "ng", "mf", "nþ", "nh", "nhs", "lm", "rl", "rm", "rn", "wh", "wr", "wl", "fl", "sl", "ps", "ts", "ks", "hs", "ls", "ns", "rs", "þs", "sts", "hts", "lks", "lhs", "nks", "rks", "rgz", "rhs", "nþs", "hsl", "lms", "rls", "rms", "rns", "hst", "hsl", "rht", "rkt", "ht", "rht", "nz", "ndz", "dz", "gz", "ngz", "rz", "rbz", "rdz", "zn", "ndr", "ntr", "ngr", "nkr", "nstr", "jp", "jb", "js", "jz", "jt", "jd", "jþ", "jf", "jk", "jg", "jh", "jr", "jst", "jzd", "jts", "jdz", "jks", "jgz", "jsk", "jzg", "jstr", "jzdr", "jn", "jm", "jw", "jþm", "kr", "jgl", "br", "t(t)", } for _, val in ipairs(vowels) do vowels[val] = true end for _, val in ipairs(onsets) do onsets[val] = true end for _, val in ipairs(codas) do codas[val] = true end local function letters_to_internal(word) local phonemes = {} for _, rule in ipairs(letters_internal) do word = mw.ustring.gsub(word, rule[1], rule[2]) end mw.ustring.gsub(word, ".", function(c) table.insert(phonemes, c) end) return phonemes end local function word_from_internal(word) for _, rule in ipairs(letters_internal) do word = mw.ustring.gsub(word, rule[2], rule[1]) end return word end local function get_onset(syll) local consonants = {} for i = 1, #syll do if vowels[syll[i]] then break end table.insert(consonants, syll[i]) end return table.concat(consonants) end local function get_coda(syll) local consonants = {} for i = #syll, 1, -1 do if vowels[syll[i]] then break end table.insert(consonants, 1, syll[i]) end return table.concat(consonants) end local function get_vowel(syll) for i = 1, #syll do if vowels[syll[i]] then return syll[i] end end end -- Split the word into syllables of CV shape local function split_syllables(remainder) local syllables = {} local syll = {} while #remainder > 0 do local phoneme = table.remove(remainder, 1) if vowels[phoneme] then table.insert(syll, phoneme) table.insert(syllables, syll) syll = {} else table.insert(syll, phoneme) end end -- If there are phonemes left, then the word ends in a consonant -- Add them to the last syllable for _, phoneme in ipairs(syll) do table.insert(syllables[#syllables], phoneme) end -- Split consonant clusters between syllables for i, current in ipairs(syllables) do if i > 1 then local previous = syllables[i - 1] local onset = get_onset(current) -- Shift over consonants until the syllable onset is valid while not (onset == "" or onsets[onset]) do table.insert(previous, table.remove(current, 1)) onset = get_onset(current) end -- If there is no vowel at all in this syllable if not get_vowel(current) then for j = 1, #current do table.insert(syllables[i - 1], table.remove(current, 1)) end table.remove(syllables, i) end end end for _, syll in ipairs(syllables) do local onset = get_onset(syll) local coda = get_coda(syll) if not (onset == "" or onsets[onset]) then require("Module:debug").track("gem-ipa/bad onset") error("onset error: [" .. onset .. "]") end if not (coda == "" or codas[coda]) then require("Module:debug").track("gem-ipa/bad coda") error("coda error: [" .. coda .. "]") end end return syllables end local function convert_word(word) -- Convert word to a better internal representation local phonemes = letters_to_internal(word) -- Split into syllables local syllables = split_syllables(phonemes) for i, syll in ipairs(syllables) do for j = 1, #syll - 1 do if syll[j] == syll[j + 1] then syll[j + 1] = "" end end syllables[i] = table.concat(syll) end word = table.concat(syllables, ".") for _, rule in ipairs(phonetic_rules) do word = mw.ustring.gsub(word, rule[1], rule[2]) end return word end local function convert_words(words) words = mw.ustring.lower(words) local result = {} for word in mw.text.gsplit(words, " ") do table.insert(result, convert_word(word)) end return table.concat(result, " ") end function export.show_full(frame) local params = { [1] = { default = mw.title.getCurrentTitle().nsText ~= "Rekonstruksi" and "wurdą" or mw.loadData("Module:headword/data").pagename } } local args = require("Module:parameters").process(frame:getParent().args, params) local words = args[1]:lower() local categories = {} local out = m_IPA.format_IPA_full { lang = lang, items = {{ pron = "/" .. convert_words(words) .. "/" }} } return out .. require("Module:utilities").format_categories(categories) end function export.show(words) if type(words) == "table" then -- assume a frame words = words.args[1]:lower() or mw.loadData("Module:headword/data").pagename:lower() end return convert_words(words) end local function i_mutation(word) local upperc = false --local dash = false if mw.ustring.find(word, "^%u") then word = mw.ustring.lower(word) upperc = true end --[[if mw.ustring.find(word, "^%-") then word = mw.ustring.sub(word, 2) dash = true end]] local repeated = false local phonemes = letters_to_internal(word) -- Split into syllables local syllables = split_syllables(phonemes) for i, syll in ipairs(syllables) do --[[for j=1, #syll-1 do if syll[j]==syll[j+1] then syll[j+1] = "" repeated = true end end]] syllables[i] = table.concat(syll) end for i = #syllables, 1, -1 do mw.ustring.gsub(syllables[i], "e([mn])", "i%1") if mw.ustring.find(syllables[i], "[bdfghjklmnprstþwz][iīįǐj]") then if not mw.ustring.find(syllables[i], "je") then syllables[i] = mw.ustring.gsub(syllables[i], "e", "i") end if i ~= 1 then syllables[i - 1] = mw.ustring.gsub(syllables[i - 1], "e", "i") end end end local new_word = table.concat(syllables) local vowels_s = "aeiuāēëīōūêôąįųǭį̄ǫ̂" new_word = word_from_internal(new_word) new_word = mw.ustring.gsub(new_word, "uu", "wu") new_word = mw.ustring.gsub(new_word, "([" .. vowels_s .. "]i)u", "%1w") new_word = mw.ustring.gsub(new_word, "([aei])u([" .. vowels_s .. "w])", "%1w%2") new_word = mw.ustring.gsub(new_word, "([aei])i([" .. vowels_s .. "j])", "%1j%2") new_word = mw.ustring.gsub(new_word, "([" .. vowels_s .. "])uj", "%1wj") -- Exception for compound words new_word = mw.ustring.gsub(new_word, "andaulit", "andawlit") if upperc then return mw.ustring.upper(mw.ustring.sub(new_word, 1, 1)) .. mw.ustring.sub(new_word, 2) --elseif dash then -- return "-" .. new_word else return new_word end end function export.determine_sievers(stem) if mw.ustring.find(stem, "[aeiu].[aeiu].$") then -- Two light syllables = one heavy return "ij" elseif mw.ustring.find(stem, "^[aeiu][iubdfghjklmnprstþwz]$") or mw.ustring.find(stem, "[bdfgkjklmnprstþwz][aeiu][iubdfghjklmnprstþwz]$") or mw.ustring.find(stem, "[āēīōū]$") then return "j" else return "ij" end end function export.i_mutations(word) local words = mw.text.split(word, " ") if #words > 1 then local new_word = i_mutation(words[#words]) table.remove(words) table.insert(words, new_word) return table.concat(words, " ") else return i_mutation(word) end end return export jdalnyqoo3ocs3sp3qqueb0hislqppl Wikikamus:id/kejatuhan 4 146287 376747 2026-09-27T16:08:56Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # dilanggar oleh sesuatu yang jatuh{{cp|id|'''Kejatuhan''' daun-daun yang berguguran|Gugurnya daun-daun yang gugur}}' 376747 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata kerja=== {{inti|id|kata kerja}} # dilanggar oleh sesuatu yang jatuh{{cp|id|'''Kejatuhan''' daun-daun yang berguguran|Gugurnya daun-daun yang gugur}} tsqr1dl0dqyhhwifnen4nbeemchlukp Modul:gem-decl-noun/data 828 146288 376748 2026-09-27T16:09:24Z SNN95 2113 letak dulu, terjemah kemudian 376748 Scribunto text/plain local decl_data = {} decl_data["a-m"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["a-m"], {__call = function(self, args, data) local stem = args[1] local stem_i = "" if mw.ustring.sub(stem, -2) == "ij" then stem_i = mw.ustring.sub(stem, 1, -3) .. "ī" data.decl_type = "masculine ja-stem" table.insert(data.categories, "Proto-Germanic ja-stem nouns") elseif mw.ustring.sub(stem, -1) == "j" then stem_i = mw.ustring.sub(stem, 1, -2) .. "i" data.decl_type = "masculine ja-stem" table.insert(data.categories, "Proto-Germanic ja-stem nouns") else stem_i = stem data.decl_type = "masculine a-stem" table.insert(data.categories, "Proto-Germanic a-stem nouns") end data.forms["nom_sg"] = {stem .. "az"} data.forms["voc_sg"] = {stem_i == stem and stem or stem_i} data.forms["acc_sg"] = {stem .. "ą"} data.forms["gen_sg"] = {stem .. "as", stem_i .. (stem_i == stem and "is" or "s")} data.forms["dat_sg"] = {stem .. "ai"} data.forms["ins_sg"] = {stem .. "ō"} if not args.nopl then data.forms["nom_pl"] = {stem .. "ōz", args[1] .. "ōs"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {stem .. "anz"} data.forms["gen_pl"] = {stem .. "ǫ̂"} data.forms["dat_pl"] = {stem .. "amaz"} data.forms["ins_pl"] = {stem .. "amiz"} end end }) decl_data["a-n"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["a-n"], {__call = function(self, args, data) decl_data["a-m"](args, data) data.decl_type = data.decl_type:gsub("masculine", "neuter") data.forms["nom_sg"] = data.forms["acc_sg"] data.forms["voc_sg"] = data.forms["acc_sg"] if not args.nopl then data.forms["nom_pl"] = {args[1] .. "ō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {args[1] .. "ǫ̂"} data.forms["dat_pl"] = {args[1] .. "amaz"} data.forms["ins_pl"] = {args[1] .. "amiz"} end end }) decl_data["acoll-n"] = { params = { [1] = {}, [2] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["acoll-n"], {__call = function(self, args, data) decl_data["a-m"](args, data) data.decl_type = data.decl_type:gsub("masculine", "neuter") data.forms["nom_sg"] = data.forms["acc_sg"] data.forms["voc_sg"] = data.forms["acc_sg"] if not args.nopl then data.forms["nom_pl"] = {args[2] .. "ō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {args[2] .. "ǫ̂"} data.forms["dat_pl"] = {args[2] .. "amaz"} data.forms["ins_pl"] = {args[2] .. "amiz"} end end }) decl_data["cons-mf"] = { params = { [1] = {}, ["nopl"] = {}, ["nomsg"] = {}, ["vocsg"] = {}, }, } setmetatable(decl_data["cons-mf"], {__call = function(self, args, data) local pagename = mw.loadData("Module:headword/data").pagename local s = mw.ustring.sub(pagename, -1, -1) -- Check for s-stems if mw.ustring.sub(pagename, -1, -1) == "s" and not mw.ustring.find(mw.ustring.sub(pagename, -2, -2), "[fhkptþ]") then s = "" end -- (mw.ustring.find(mw.ustring.sub(args[1], -1, -1), "[fhkptþ]") and "s" or "z") data.decl_type = "consonant stem" data.forms["nom_sg"] = {args.nomsg or (args[1] .. s)} data.forms["voc_sg"] = {args.vocsg or args[1]} data.forms["acc_sg"] = {args[1] .. "ų"} data.forms["gen_sg"] = {args[1] .. "iz"} data.forms["dat_sg"] = {args[1] .. "i"} data.forms["ins_sg"] = {args[1] .. "ē"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "iz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "unz"} data.forms["gen_pl"] = {args[1] .. "ǫ̂"} data.forms["dat_pl"] = {args[1] .. "umaz"} data.forms["ins_pl"] = {args[1] .. "umiz"} end table.insert(data.categories, "Proto-Germanic consonant stem nouns") end }) decl_data["cons-n"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["cons-n"], {__call = function(self, args, data) decl_data["cons-mf"](args, data) data.decl_type = "neuter consonant stem" data.forms["nom_sg"] = {args[1]} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] if not args.nopl then data.forms["nom_pl"] = {args[1]} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] end end }) decl_data["i-mf"] = { params = { [1] = {}, ["nopl"] = {}, ["j"] = {}, }, } setmetatable(decl_data["i-mf"], {__call = function(self, args, data) data.decl_type = "i-stem" local j = args.j or require("Module:gem-pronunc").determine_sievers(args[1]) data.forms["nom_sg"] = {args[1] .. "iz"} data.forms["voc_sg"] = {args[1] .. "i"} data.forms["acc_sg"] = {args[1] .. "į"} data.forms["gen_sg"] = {args[1] .. "īz"} data.forms["dat_sg"] = {args[1] .. "ī"} data.forms["ins_sg"] = {args[1] .. "ī"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "īz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "inz"} data.forms["gen_pl"] = {args[1] .. (j or "") .. "ǫ̂"} data.forms["dat_pl"] = {args[1] .. "imaz"} data.forms["ins_pl"] = {args[1] .. "imiz"} end table.insert(data.categories, "Proto-Germanic i-stem nouns") end }) decl_data["tis-f"] = { params = { [1] = {}, [2] = {}, ["nopl"] = {}, ["j"] = {}, }, } setmetatable(decl_data["tis-f"], {__call = function(self, args, data) data.decl_type = "feminine i-stem" local j = args.j or require("Module:gem-pronunc").determine_sievers(args[2]) data.forms["nom_sg"] = {args[1] .. "iz"} data.forms["voc_sg"] = {args[1] .. "i"} data.forms["acc_sg"] = {args[1] .. "į"} data.forms["gen_sg"] = {args[2] .. "īz"} data.forms["dat_sg"] = {args[2] .. "ī"} data.forms["ins_sg"] = {args[2] .. "ī"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "īz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "inz"} data.forms["gen_pl"] = {args[2] .. (j or "") .. "ǫ̂"} data.forms["dat_pl"] = {args[2] .. "imaz"} data.forms["ins_pl"] = {args[2] .. "imiz"} end table.insert(data.categories, "Proto-Germanic i-stem nouns") end }) decl_data["i-n"] = { params = { [1] = {}, ["nopl"] = {}, ["j"] = {}, }, } setmetatable(decl_data["i-n"], {__call = function(self, args, data) decl_data["i-mf"](args, data) data.decl_type = "neuter i-stem" data.forms["nom_sg"] = data.forms["voc_sg"] data.forms["acc_sg"] = data.forms["voc_sg"] if not args.nopl then data.forms["nom_pl"] = {args[1] .. "ī"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] end end }) decl_data["ijo-f"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["ijo-f"], {__call = function(self, args, data) data.decl_type = "ī/jō-stem" local stem = args[1] .. require("Module:gem-pronunc").determine_sievers(args[1]) data.forms["nom_sg"] = {args[1] .. "ī"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {stem .. "ǭ"} data.forms["gen_sg"] = {stem.. "ōz"} data.forms["dat_sg"] = {stem .. "ōi"} data.forms["ins_sg"] = {stem .. "ō"} if not args.nopl then data.forms["nom_pl"] = {stem .. "ôz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {stem .. "ōz"} data.forms["gen_pl"] = {stem .. "ǫ̂"} data.forms["dat_pl"] = {stem .. "ōmaz"} data.forms["ins_pl"] = {stem .. "ōmiz"} end table.insert(data.categories, "Proto-Germanic ī/jō-stem nouns") end }) decl_data["n-f"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["n-f"], {__call = function(self, args, data) data.decl_type = "ōn-stem" data.forms["nom_sg"] = {args[1] .. "ǭ"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {args[1] .. "ōnų"} data.forms["gen_sg"] = {args[1] .. "ōniz"} data.forms["dat_sg"] = {args[1] .. "ōni"} data.forms["ins_sg"] = {args[1] .. "ōnē"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "ōniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "ōnunz"} data.forms["gen_pl"] = {args[1] .. "ōnǫ̂"} data.forms["dat_pl"] = {args[1] .. "ōmaz"} data.forms["ins_pl"] = {args[1] .. "ōmiz"} end table.insert(data.categories, "Proto-Germanic ōn-stem nouns") end }) decl_data["n-m"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["n-m"], {__call = function(self, args, data) data.decl_type = "masculine an-stem" data.forms["nom_sg"] = {args[1] .. "ô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {args[1] .. "anų"} data.forms["gen_sg"] = {args[1].. "iniz"} data.forms["dat_sg"] = {args[1] .. "ini"} data.forms["ins_sg"] = {args[1] .. "inē"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "aniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "anunz"} data.forms["gen_pl"] = {args[1] .. "anǫ̂"} data.forms["dat_pl"] = {args[1] .. "ammaz"} data.forms["ins_pl"] = {args[1] .. "ammiz"} end table.insert(data.categories, "Proto-Germanic an-stem nouns") end }) decl_data["namphi-m"] = { params = { [1] = {}, [2] = {}, [3] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["namphi-m"], {__call = function(self, args, data) data.decl_type = "masculine an-stem" data.forms["nom_sg"] = {args[1] .. "ô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {args[1] .. "anų"} data.forms["gen_sg"] = {args[2].. "az"} data.forms["dat_sg"] = {args[3] .. "ini"} data.forms["ins_sg"] = {args[2] .. "ē"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "aniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[2] .. "unz"} data.forms["gen_pl"] = {args[2] .. "ǫ̂"} data.forms["dat_pl"] = {args[3] .. "ummaz"} data.forms["ins_pl"] = {args[3] .. "ummiz"} end table.insert(data.categories, "Proto-Germanic an-stem nouns") end }) decl_data["n-n"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["n-n"], {__call = function(self, args, data) decl_data["n-m"](args, data) data.decl_type = "neuter an-stem" data.forms["acc_sg"] = data.forms["nom_sg"] if not args.nopl then data.forms["nom_pl"] = {args[1] .. "ōnō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] end table.insert(data.categories, "Proto-Germanic an-stem nouns") end }) decl_data["in-f"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["in-f"], {__call = function(self, args, data) data.decl_type = "īn-stem" data.forms["nom_sg"] = {args[1] .. "į̄"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {args[1] .. "īnų"} data.forms["gen_sg"] = {args[1] .. "īniz"} data.forms["dat_sg"] = {args[1] .. "īni"} data.forms["ins_sg"] = {args[1] .. "īnē"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "īniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "īnunz"} data.forms["gen_pl"] = {args[1] .. "īnǫ̂"} data.forms["dat_pl"] = {args[1] .. "īmaz"} data.forms["ins_pl"] = {args[1] .. "īmiz"} end table.insert(data.categories, "Proto-Germanic īn-stem nouns") end }) decl_data["o-f"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["o-f"], {__call = function(self, args, data) data.decl_type = "ō-stem" data.forms["nom_sg"] = {args[1] .. "ō"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {args[1] .. "ǭ"} data.forms["gen_sg"] = {args[1] .. "ōz"} data.forms["dat_sg"] = {args[1] .. "ōi"} data.forms["ins_sg"] = data.forms["nom_sg"] if not args.nopl then data.forms["nom_pl"] = {args[1] .. "ôz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "ōz"} data.forms["gen_pl"] = {args[1] .. "ǫ̂"} data.forms["dat_pl"] = {args[1] .. "ōmaz"} data.forms["ins_pl"] = {args[1] .. "ōmiz"} end table.insert(data.categories, "Proto-Germanic ō-stem nouns") end }) decl_data["r-mf"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["r-mf"], {__call = function(self, args, data) data.decl_type = "r-stem" data.forms["nom_sg"] = {args[1] .. "ēr"} data.forms["voc_sg"] = {args[1] .. "er"} data.forms["acc_sg"] = {args[1] .. "erų"} data.forms["gen_sg"] = {args[1] .. "urz"} data.forms["dat_sg"] = {args[1] .. "ri"} data.forms["ins_sg"] = {args[1] .. "rē"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "riz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "runz"} data.forms["gen_pl"] = {args[1] .. "rǫ̂"} data.forms["dat_pl"] = {args[1] .. "rumaz"} data.forms["ins_pl"] = {args[1] .. "rumiz"} end table.insert(data.categories, "Proto-Germanic r-stem nouns") end }) decl_data["u-mf"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["u-mf"], {__call = function(self, args, data) data.decl_type = "u-stem" data.forms["nom_sg"] = {args[1] .. "uz"} data.forms["voc_sg"] = {args[1] .. "u"} data.forms["acc_sg"] = {args[1] .. "ų"} data.forms["gen_sg"] = {args[1] .. "auz"} data.forms["dat_sg"] = {args[1] .. "iwi"} data.forms["ins_sg"] = {args[1] .. "ū"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "iwiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "unz"} data.forms["gen_pl"] = {args[1] .. "iwǫ̂"} data.forms["dat_pl"] = {args[1] .. "umaz"} data.forms["ins_pl"] = {args[1] .. "umiz"} end table.insert(data.categories, "Proto-Germanic u-stem nouns") end }) decl_data["u-n"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["u-n"], {__call = function(self, args, data) decl_data["u-mf"](args, data) data.decl_type = "neuter u-stem" data.forms["nom_sg"] = data.forms["voc_sg"] data.forms["acc_sg"] = data.forms["voc_sg"] if not args.nopl then data.forms["nom_pl"] = data.forms["ins_sg"] data.forms["voc_pl"] = data.forms["ins_sg"] data.forms["acc_pl"] = data.forms["ins_sg"] end end }) decl_data["z-n"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["z-n"], {__call = function(self, args, data) data.decl_type = "z-stem" data.forms["nom_sg"] = {args[1] .. "az"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {args[1] .. "iziz"} data.forms["dat_sg"] = {args[1] .. "izi"} data.forms["ins_sg"] = {args[1] .. "izē"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "izō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {args[1] .. "izǫ̂"} data.forms["dat_pl"] = {args[1] .. "izumaz"} data.forms["ins_pl"] = {args[1] .. "izumiz"} end table.insert(data.categories, "Proto-Germanic z-stem nouns") end }) decl_data["irreg"] = {} setmetatable(decl_data["irreg"], {__call = function(self, args, data) local word = mw.loadData("Module:headword/data").pagename irreg_data = require("Module:gem-decl-noun/data/irreg") if irreg_data.irreg[word] then irreg_data.irreg[word](args, data) else error("Irregular inflection not found. Please check Module:gem-decl-noun/data.") end table.insert(data.categories, "Proto-Germanic irregular nouns") end }) return decl_data njah7lvoj6isg1vsr8avl1uh1mfq1n3 376768 376748 2026-09-27T16:58:51Z SNN95 2113 kemaskini 376768 Scribunto text/plain local decl_data = {} decl_data["a-m"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["a-m"], {__call = function(self, args, data) local stem = args[1] local stem_i = "" if mw.ustring.sub(stem, -2) == "ij" then stem_i = mw.ustring.sub(stem, 1, -3) .. "ī" data.decl_type = "pangkal ja maskulin" table.insert(data.categories, "Proto-Germanic ja-stem nouns") elseif mw.ustring.sub(stem, -1) == "j" then stem_i = mw.ustring.sub(stem, 1, -2) .. "i" data.decl_type = "pangkal ja maskulin" table.insert(data.categories, "Proto-Germanic ja-stem nouns") else stem_i = stem data.decl_type = "pangkal a maskulin" table.insert(data.categories, "Kata nama pangkal a bahasa Jermanik Purba") end data.forms["nom_sg"] = {stem .. "az"} data.forms["voc_sg"] = {stem_i == stem and stem or stem_i} data.forms["acc_sg"] = {stem .. "ą"} data.forms["gen_sg"] = {stem .. "as", stem_i .. (stem_i == stem and "is" or "s")} data.forms["dat_sg"] = {stem .. "ai"} data.forms["ins_sg"] = {stem .. "ō"} if not args.nopl then data.forms["nom_pl"] = {stem .. "ōz", args[1] .. "ōs"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {stem .. "anz"} data.forms["gen_pl"] = {stem .. "ǫ̂"} data.forms["dat_pl"] = {stem .. "amaz"} data.forms["ins_pl"] = {stem .. "amiz"} end end }) decl_data["a-n"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["a-n"], {__call = function(self, args, data) decl_data["a-m"](args, data) data.decl_type = data.decl_type:gsub("maskulin", "neuter") data.forms["nom_sg"] = data.forms["acc_sg"] data.forms["voc_sg"] = data.forms["acc_sg"] if not args.nopl then data.forms["nom_pl"] = {args[1] .. "ō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {args[1] .. "ǫ̂"} data.forms["dat_pl"] = {args[1] .. "amaz"} data.forms["ins_pl"] = {args[1] .. "amiz"} end end }) decl_data["acoll-n"] = { params = { [1] = {}, [2] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["acoll-n"], {__call = function(self, args, data) decl_data["a-m"](args, data) data.decl_type = data.decl_type:gsub("maskulin", "neuter") data.forms["nom_sg"] = data.forms["acc_sg"] data.forms["voc_sg"] = data.forms["acc_sg"] if not args.nopl then data.forms["nom_pl"] = {args[2] .. "ō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {args[2] .. "ǫ̂"} data.forms["dat_pl"] = {args[2] .. "amaz"} data.forms["ins_pl"] = {args[2] .. "amiz"} end end }) decl_data["cons-mf"] = { params = { [1] = {}, ["nopl"] = {}, ["nomsg"] = {}, ["vocsg"] = {}, }, } setmetatable(decl_data["cons-mf"], {__call = function(self, args, data) local pagename = mw.loadData("Module:headword/data").pagename local s = mw.ustring.sub(pagename, -1, -1) -- Check for s-stems if mw.ustring.sub(pagename, -1, -1) == "s" and not mw.ustring.find(mw.ustring.sub(pagename, -2, -2), "[fhkptþ]") then s = "" end -- (mw.ustring.find(mw.ustring.sub(args[1], -1, -1), "[fhkptþ]") and "s" or "z") data.decl_type = "pangkal konsonan" data.forms["nom_sg"] = {args.nomsg or (args[1] .. s)} data.forms["voc_sg"] = {args.vocsg or args[1]} data.forms["acc_sg"] = {args[1] .. "ų"} data.forms["gen_sg"] = {args[1] .. "iz"} data.forms["dat_sg"] = {args[1] .. "i"} data.forms["ins_sg"] = {args[1] .. "ē"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "iz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "unz"} data.forms["gen_pl"] = {args[1] .. "ǫ̂"} data.forms["dat_pl"] = {args[1] .. "umaz"} data.forms["ins_pl"] = {args[1] .. "umiz"} end table.insert(data.categories, "Kata nama konsonan bahasa Jermanik Purba") end }) decl_data["cons-n"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["cons-n"], {__call = function(self, args, data) decl_data["cons-mf"](args, data) data.decl_type = "neuter pangkal konsonan" data.forms["nom_sg"] = {args[1]} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] if not args.nopl then data.forms["nom_pl"] = {args[1]} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] end end }) decl_data["i-mf"] = { params = { [1] = {}, ["nopl"] = {}, ["j"] = {}, }, } setmetatable(decl_data["i-mf"], {__call = function(self, args, data) data.decl_type = "pangkal i" local j = args.j or require("Module:gem-pronunc").determine_sievers(args[1]) data.forms["nom_sg"] = {args[1] .. "iz"} data.forms["voc_sg"] = {args[1] .. "i"} data.forms["acc_sg"] = {args[1] .. "į"} data.forms["gen_sg"] = {args[1] .. "īz"} data.forms["dat_sg"] = {args[1] .. "ī"} data.forms["ins_sg"] = {args[1] .. "ī"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "īz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "inz"} data.forms["gen_pl"] = {args[1] .. (j or "") .. "ǫ̂"} data.forms["dat_pl"] = {args[1] .. "imaz"} data.forms["ins_pl"] = {args[1] .. "imiz"} end table.insert(data.categories, "Kata nama pangkal i bahasa Jermanik Purba") end }) decl_data["tis-f"] = { params = { [1] = {}, [2] = {}, ["nopl"] = {}, ["j"] = {}, }, } setmetatable(decl_data["tis-f"], {__call = function(self, args, data) data.decl_type = "pangkal i feminin" local j = args.j or require("Module:gem-pronunc").determine_sievers(args[2]) data.forms["nom_sg"] = {args[1] .. "iz"} data.forms["voc_sg"] = {args[1] .. "i"} data.forms["acc_sg"] = {args[1] .. "į"} data.forms["gen_sg"] = {args[2] .. "īz"} data.forms["dat_sg"] = {args[2] .. "ī"} data.forms["ins_sg"] = {args[2] .. "ī"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "īz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "inz"} data.forms["gen_pl"] = {args[2] .. (j or "") .. "ǫ̂"} data.forms["dat_pl"] = {args[2] .. "imaz"} data.forms["ins_pl"] = {args[2] .. "imiz"} end table.insert(data.categories, "Kata nama pangkal i bahasa Jermanik Purba") end }) decl_data["i-n"] = { params = { [1] = {}, ["nopl"] = {}, ["j"] = {}, }, } setmetatable(decl_data["i-n"], {__call = function(self, args, data) decl_data["i-mf"](args, data) data.decl_type = "pangkal i neuter" data.forms["nom_sg"] = data.forms["voc_sg"] data.forms["acc_sg"] = data.forms["voc_sg"] if not args.nopl then data.forms["nom_pl"] = {args[1] .. "ī"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] end end }) decl_data["ijo-f"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["ijo-f"], {__call = function(self, args, data) data.decl_type = "pangkal ī/jō" local stem = args[1] .. require("Module:gem-pronunc").determine_sievers(args[1]) data.forms["nom_sg"] = {args[1] .. "ī"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {stem .. "ǭ"} data.forms["gen_sg"] = {stem.. "ōz"} data.forms["dat_sg"] = {stem .. "ōi"} data.forms["ins_sg"] = {stem .. "ō"} if not args.nopl then data.forms["nom_pl"] = {stem .. "ôz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {stem .. "ōz"} data.forms["gen_pl"] = {stem .. "ǫ̂"} data.forms["dat_pl"] = {stem .. "ōmaz"} data.forms["ins_pl"] = {stem .. "ōmiz"} end table.insert(data.categories, "Kata nama pangkal ī/jō bahasa Jermanik Purba") end }) decl_data["n-f"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["n-f"], {__call = function(self, args, data) data.decl_type = "pangkal ōn" data.forms["nom_sg"] = {args[1] .. "ǭ"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {args[1] .. "ōnų"} data.forms["gen_sg"] = {args[1] .. "ōniz"} data.forms["dat_sg"] = {args[1] .. "ōni"} data.forms["ins_sg"] = {args[1] .. "ōnē"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "ōniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "ōnunz"} data.forms["gen_pl"] = {args[1] .. "ōnǫ̂"} data.forms["dat_pl"] = {args[1] .. "ōmaz"} data.forms["ins_pl"] = {args[1] .. "ōmiz"} end table.insert(data.categories, "Kata nama pangkal ōn bahasa Jermanik Purba") end }) decl_data["n-m"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["n-m"], {__call = function(self, args, data) data.decl_type = "pangkal an maskulin" data.forms["nom_sg"] = {args[1] .. "ô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {args[1] .. "anų"} data.forms["gen_sg"] = {args[1].. "iniz"} data.forms["dat_sg"] = {args[1] .. "ini"} data.forms["ins_sg"] = {args[1] .. "inē"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "aniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "anunz"} data.forms["gen_pl"] = {args[1] .. "anǫ̂"} data.forms["dat_pl"] = {args[1] .. "ammaz"} data.forms["ins_pl"] = {args[1] .. "ammiz"} end table.insert(data.categories, "Kata nama pangkal an bahasa Jermanik Purba") end }) decl_data["namphi-m"] = { params = { [1] = {}, [2] = {}, [3] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["namphi-m"], {__call = function(self, args, data) data.decl_type = "pangkal an maskulin" data.forms["nom_sg"] = {args[1] .. "ô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {args[1] .. "anų"} data.forms["gen_sg"] = {args[2].. "az"} data.forms["dat_sg"] = {args[3] .. "ini"} data.forms["ins_sg"] = {args[2] .. "ē"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "aniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[2] .. "unz"} data.forms["gen_pl"] = {args[2] .. "ǫ̂"} data.forms["dat_pl"] = {args[3] .. "ummaz"} data.forms["ins_pl"] = {args[3] .. "ummiz"} end table.insert(data.categories, "Kata nama pangkal an bahasa Jermanik Purba") end }) decl_data["n-n"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["n-n"], {__call = function(self, args, data) decl_data["n-m"](args, data) data.decl_type = "pangkal an neuter" data.forms["acc_sg"] = data.forms["nom_sg"] if not args.nopl then data.forms["nom_pl"] = {args[1] .. "ōnō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] end table.insert(data.categories, "Kata nama pangkal an bahasa Jermanik Purba") end }) decl_data["in-f"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["in-f"], {__call = function(self, args, data) data.decl_type = "pangkal īn" data.forms["nom_sg"] = {args[1] .. "į̄"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {args[1] .. "īnų"} data.forms["gen_sg"] = {args[1] .. "īniz"} data.forms["dat_sg"] = {args[1] .. "īni"} data.forms["ins_sg"] = {args[1] .. "īnē"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "īniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "īnunz"} data.forms["gen_pl"] = {args[1] .. "īnǫ̂"} data.forms["dat_pl"] = {args[1] .. "īmaz"} data.forms["ins_pl"] = {args[1] .. "īmiz"} end table.insert(data.categories, "Kata nama pangkal īn bahasa Jermanik Purba") end }) decl_data["o-f"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["o-f"], {__call = function(self, args, data) data.decl_type = "pangkal ō" data.forms["nom_sg"] = {args[1] .. "ō"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {args[1] .. "ǭ"} data.forms["gen_sg"] = {args[1] .. "ōz"} data.forms["dat_sg"] = {args[1] .. "ōi"} data.forms["ins_sg"] = data.forms["nom_sg"] if not args.nopl then data.forms["nom_pl"] = {args[1] .. "ôz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "ōz"} data.forms["gen_pl"] = {args[1] .. "ǫ̂"} data.forms["dat_pl"] = {args[1] .. "ōmaz"} data.forms["ins_pl"] = {args[1] .. "ōmiz"} end table.insert(data.categories, "Kata nama pangkal ō bahasa Jermanik Purba") end }) decl_data["r-mf"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["r-mf"], {__call = function(self, args, data) data.decl_type = "r-stem" data.forms["nom_sg"] = {args[1] .. "ēr"} data.forms["voc_sg"] = {args[1] .. "er"} data.forms["acc_sg"] = {args[1] .. "erų"} data.forms["gen_sg"] = {args[1] .. "urz"} data.forms["dat_sg"] = {args[1] .. "ri"} data.forms["ins_sg"] = {args[1] .. "rē"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "riz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "runz"} data.forms["gen_pl"] = {args[1] .. "rǫ̂"} data.forms["dat_pl"] = {args[1] .. "rumaz"} data.forms["ins_pl"] = {args[1] .. "rumiz"} end table.insert(data.categories, "Kata nama pangkal r bahasa Jermanik Purba") end }) decl_data["u-mf"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["u-mf"], {__call = function(self, args, data) data.decl_type = "pangkal u" data.forms["nom_sg"] = {args[1] .. "uz"} data.forms["voc_sg"] = {args[1] .. "u"} data.forms["acc_sg"] = {args[1] .. "ų"} data.forms["gen_sg"] = {args[1] .. "auz"} data.forms["dat_sg"] = {args[1] .. "iwi"} data.forms["ins_sg"] = {args[1] .. "ū"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "iwiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "unz"} data.forms["gen_pl"] = {args[1] .. "iwǫ̂"} data.forms["dat_pl"] = {args[1] .. "umaz"} data.forms["ins_pl"] = {args[1] .. "umiz"} end table.insert(data.categories, "Kata nama pangkal u bahasa Jermanik Purba") end }) decl_data["u-n"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["u-n"], {__call = function(self, args, data) decl_data["u-mf"](args, data) data.decl_type = "neuter pangkal u" data.forms["nom_sg"] = data.forms["voc_sg"] data.forms["acc_sg"] = data.forms["voc_sg"] if not args.nopl then data.forms["nom_pl"] = data.forms["ins_sg"] data.forms["voc_pl"] = data.forms["ins_sg"] data.forms["acc_pl"] = data.forms["ins_sg"] end end }) decl_data["z-n"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["z-n"], {__call = function(self, args, data) data.decl_type = "pangkal z" data.forms["nom_sg"] = {args[1] .. "az"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {args[1] .. "iziz"} data.forms["dat_sg"] = {args[1] .. "izi"} data.forms["ins_sg"] = {args[1] .. "izē"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "izō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {args[1] .. "izǫ̂"} data.forms["dat_pl"] = {args[1] .. "izumaz"} data.forms["ins_pl"] = {args[1] .. "izumiz"} end table.insert(data.categories, "Kata nama pangkal z bahasa Jermanik Purba") end }) decl_data["irreg"] = {} setmetatable(decl_data["irreg"], {__call = function(self, args, data) local word = mw.loadData("Module:headword/data").pagename irreg_data = require("Module:gem-decl-noun/data/irreg") if irreg_data.irreg[word] then irreg_data.irreg[word](args, data) else error("Irregular inflection not found. Please check Module:gem-decl-noun/data.") end table.insert(data.categories, "Kata nama tak tentu bahasa Jermanik Purba") end }) return decl_data o8ijrlq28v0qv040v7ga3btiqpf03rs Modul:gem-decl-noun/data/irreg 828 146289 376749 2026-09-27T16:11:31Z SNN95 2113 Mencipta laman baru dengan kandungan 'irreg_data = {} ------ Consonant stems ------ irreg_data["aigin"] = function(args, data) data.decl_type = "neuter consonant stem" data.forms["nom_sg"] = {"aigin"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"aiginþiz"} data.forms["dat_sg"] = {"aiginþi"} data.forms["ins_sg"] = {"aiginþē"} data.forms["nom_pl"] = {"aiginþ"} data.forms["voc_pl"] = data.forms["nom_pl"] d...' 376749 Scribunto text/plain irreg_data = {} ------ Consonant stems ------ irreg_data["aigin"] = function(args, data) data.decl_type = "neuter consonant stem" data.forms["nom_sg"] = {"aigin"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"aiginþiz"} data.forms["dat_sg"] = {"aiginþi"} data.forms["ins_sg"] = {"aiginþē"} data.forms["nom_pl"] = {"aiginþ"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"aiginþǫ̂"} data.forms["dat_pl"] = {"aiginþumaz"} data.forms["ins_pl"] = {"aiginþumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["alu"] = function(args, data) data.decl_type = "neuter consonant stem" data.forms["nom_sg"] = {"alu"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"aluþiz"} data.forms["dat_sg"] = {"aluþi"} data.forms["ins_sg"] = {"aluþē"} data.forms["nom_pl"] = {"aluþ"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"aluþǫ̂"} data.forms["dat_pl"] = {"aluþumaz"} data.forms["ins_pl"] = {"aluþumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["asunz"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"asunz"} data.forms["voc_sg"] = {"asų"} data.forms["acc_sg"] = {"asnų"} data.forms["gen_sg"] = {"asniz"} data.forms["dat_sg"] = {"asni"} data.forms["ins_sg"] = {"asnē"} data.forms["nom_pl"] = {"asniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"asnunz"} data.forms["gen_pl"] = {"asnǫ̂"} data.forms["dat_pl"] = {"asnumaz"} data.forms["ins_pl"] = {"asnumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["berô"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"berô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {"bernų"} data.forms["gen_sg"] = {"berniz"} data.forms["dat_sg"] = {"berni"} data.forms["ins_sg"] = {"bernē"} data.forms["nom_pl"] = {"berniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"bernunz"} data.forms["gen_pl"] = {"bernǫ̂"} data.forms["dat_pl"] = {"bernumaz"} data.forms["ins_pl"] = {"bernumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["ēbanþs"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"ēbanþs"} data.forms["voc_sg"] = {"ēbanþ"} data.forms["acc_sg"] = {"ēbanþų"} data.forms["gen_sg"] = {"ēbundiz"} data.forms["dat_sg"] = {"ēbundi"} data.forms["ins_sg"] = {"ēbundē"} data.forms["nom_pl"] = {"ēbanþiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"ēbanþunz"} data.forms["gen_pl"] = {"ēbundǫ̂"} data.forms["dat_pl"] = {"ēbundumaz"} data.forms["ins_pl"] = {"ēbundumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["gǭ"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"gǭ"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {"gōmų"} data.forms["gen_sg"] = {"gimiz"} data.forms["dat_sg"] = {"gimi"} data.forms["ins_sg"] = {"gimē"} data.forms["nom_pl"] = {"gōmiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"gōmunz"} data.forms["gen_pl"] = {"gimǫ̂"} data.forms["dat_pl"] = {"gimaz"} data.forms["ins_pl"] = {"gimiz"} table.insert(data.categories, "Proto-Germanic irregular nouns") end irreg_data["ili"] = function(args, data) data.decl_type = "neuter consonant stem" data.forms["nom_sg"] = {"ili"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"iliþiz"} data.forms["dat_sg"] = {"iliþi"} data.forms["ins_sg"] = {"iliþē"} data.forms["nom_pl"] = {"iliþ"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"iliþǫ̂"} data.forms["dat_pl"] = {"iliþumaz"} data.forms["ins_pl"] = {"iliþumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["kōz"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"kōz"} data.forms["voc_sg"] = {"kō"} data.forms["acc_sg"] = {"kōǭ"} data.forms["gen_sg"] = {"kūiz"} data.forms["dat_sg"] = {"kūī"} data.forms["ins_sg"] = {"kūē"} data.forms["nom_pl"] = {"kōiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"kōnz"} data.forms["gen_pl"] = {"kūǫ̂"} data.forms["dat_pl"] = {"kūmaz"} data.forms["ins_pl"] = {"kūmiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["mann-"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"mann-", "manô", "mannô"} data.forms["voc_sg"] = {"mann"} data.forms["acc_sg"] = {"mannų"} data.forms["gen_sg"] = {"manniz"} data.forms["dat_sg"] = {"manni"} data.forms["ins_sg"] = {"mannē"} data.forms["nom_pl"] = {"manniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"mannunz"} data.forms["gen_pl"] = {"mannǫ̂"} data.forms["dat_pl"] = {"mannumaz"} data.forms["ins_pl"] = {"mannumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["gawjamann-"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"gawjamann-", "gawjamanô", "gawjamannô"} data.forms["voc_sg"] = {"gawjamann"} data.forms["acc_sg"] = {"gawjamannų"} data.forms["gen_sg"] = {"gawjamanniz"} data.forms["dat_sg"] = {"gawjamanni"} data.forms["ins_sg"] = {"gawjamannē"} data.forms["nom_pl"] = {"gawjamanniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"gawjamannunz"} data.forms["gen_pl"] = {"gawjamannǫ̂"} data.forms["dat_pl"] = {"gawjamannumaz"} data.forms["ins_pl"] = {"gawjamannumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["kaupamann-"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"kaupamann-", "kaupamanô", "kaupamannô"} data.forms["voc_sg"] = {"kaupamann"} data.forms["acc_sg"] = {"kaupamannų"} data.forms["gen_sg"] = {"kaupamanniz"} data.forms["dat_sg"] = {"kaupamanni"} data.forms["ins_sg"] = {"kaupamannē"} data.forms["nom_pl"] = {"kaupamanniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"kaupamannunz"} data.forms["gen_pl"] = {"kaupamannǫ̂"} data.forms["dat_pl"] = {"kaupamannumaz"} data.forms["ins_pl"] = {"kaupamannumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["skipamann-"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"skipamann-", "skipamanô", "skipamannô"} data.forms["voc_sg"] = {"skipamann"} data.forms["acc_sg"] = {"skipamannų"} data.forms["gen_sg"] = {"skipamanniz"} data.forms["dat_sg"] = {"skipamanni"} data.forms["ins_sg"] = {"skipamannē"} data.forms["nom_pl"] = {"skipamanniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"skipamannunz"} data.forms["gen_pl"] = {"skipamannǫ̂"} data.forms["dat_pl"] = {"skipamannumaz"} data.forms["ins_pl"] = {"skipamannumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["harjamann-"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"harjamann-", "harjamanô", "harjamannô"} data.forms["voc_sg"] = {"harjamann"} data.forms["acc_sg"] = {"harjamannų"} data.forms["gen_sg"] = {"harjamanniz"} data.forms["dat_sg"] = {"harjamanni"} data.forms["ins_sg"] = {"harjamannē"} data.forms["nom_pl"] = {"harjamanniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"harjamannunz"} data.forms["gen_pl"] = {"harjamannǫ̂"} data.forms["dat_pl"] = {"harjamannumaz"} data.forms["ins_pl"] = {"harjamannumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["metaþs"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"metaþs"} data.forms["voc_sg"] = {"metaþ"} data.forms["acc_sg"] = {"metaþų"} data.forms["gen_sg"] = {"metadiz"} data.forms["dat_sg"] = {"metadi"} data.forms["ins_sg"] = {"metadē"} data.forms["nom_pl"] = {"metaþiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"metaþunz"} data.forms["gen_pl"] = {"metadǫ̂"} data.forms["dat_pl"] = {"metadumaz"} data.forms["ins_pl"] = {"metadumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["mili"] = function(args, data) data.decl_type = "neuter consonant stem" data.forms["nom_sg"] = {"mili"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"milidiz"} data.forms["dat_sg"] = {"milidi"} data.forms["ins_sg"] = {"milidē"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["stuþs"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"stuþs"} data.forms["voc_sg"] = {"stuþ"} data.forms["acc_sg"] = {"stuþų"} data.forms["gen_sg"] = {"studiz"} data.forms["dat_sg"] = {"studi"} data.forms["ins_sg"] = {"studē"} data.forms["nom_pl"] = {"stuþiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"stuþunz"} data.forms["gen_pl"] = {"studǫ̂"} data.forms["dat_pl"] = {"studumaz"} data.forms["ins_pl"] = {"studumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["sūz"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"sūz"} data.forms["voc_sg"] = {"sū"} data.forms["acc_sg"] = {"suwų"} data.forms["gen_sg"] = {"suwiz"} data.forms["dat_sg"] = {"suwi"} data.forms["ins_sg"] = {"sūē"} data.forms["nom_pl"] = {"suwiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"suwunz"} data.forms["gen_pl"] = {"sūǫ̂"} data.forms["dat_pl"] = {"suwumaz"} data.forms["ins_pl"] = {"suwumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["tanþs"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"tanþs"} data.forms["voc_sg"] = {"tanþ"} data.forms["acc_sg"] = {"tanþų"} data.forms["gen_sg"] = {"tundiz"} data.forms["dat_sg"] = {"tundi"} data.forms["ins_sg"] = {"tundē"} data.forms["nom_pl"] = {"tanþiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"tanþunz"} data.forms["gen_pl"] = {"tundǫ̂"} data.forms["dat_pl"] = {"tundumaz"} data.forms["ins_pl"] = {"tundumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["wrōts"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"wrōts"} data.forms["voc_sg"] = {"wrōt"} data.forms["acc_sg"] = {"wrōtų"} data.forms["gen_sg"] = {"wurtiz"} data.forms["dat_sg"] = {"wurti"} data.forms["ins_sg"] = {"wurtē"} data.forms["nom_pl"] = {"wrōtiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"wrōtunz"} data.forms["gen_pl"] = {"wurtǫ̂"} data.forms["dat_pl"] = {"wurtumaz"} data.forms["ins_pl"] = {"wurtumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end ------ i-stems ------ irreg_data["burþiz"] = function(args, data) if not args[1] then irreg_data["burþiz"]({""}, data) return end data.decl_type = "i-stem" data.forms["nom_sg"] = {args[1] .. "burþiz"} data.forms["voc_sg"] = {args[1] .. "burþi"} data.forms["acc_sg"] = {args[1] .. "burþį"} data.forms["gen_sg"] = {args[1] .. "burdīz"} data.forms["dat_sg"] = {args[1] .. "burdī"} data.forms["ins_sg"] = {args[1] .. "burdī"} data.forms["nom_pl"] = {args[1] .. "burþīz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "burþīnz"} data.forms["gen_pl"] = {args[1] .. "burdijǫ̂"} data.forms["dat_pl"] = {args[1] .. "burdimaz"} data.forms["ins_pl"] = {args[1] .. "burdimiz"} table.insert(data.categories, "Proto-Germanic i-stem nouns") end irreg_data["fraburþiz"] = function(args, data) irreg_data["burþiz"]({"fra"}, data) end irreg_data["gaburþiz"] = function(args, data) irreg_data["burþiz"]({"ga"}, data) end irreg_data["kinþiz"] = function(args, data) data.decl_type = "i-stem" data.forms["nom_sg"] = {"kinþiz"} data.forms["voc_sg"] = {"kinþi"} data.forms["acc_sg"] = {"kinþį"} data.forms["gen_sg"] = {"kundīz"} data.forms["dat_sg"] = {"kundī"} data.forms["ins_sg"] = {"kundī"} data.forms["nom_pl"] = {"kinþīz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"kinþīnz"} data.forms["gen_pl"] = {"kundijǫ̂"} data.forms["dat_pl"] = {"kundimaz"} data.forms["ins_pl"] = {"kundimiz"} table.insert(data.categories, "Proto-Germanic i-stem nouns") end irreg_data["kumþiz"] = function(args, data) data.decl_type = "i-stem" data.forms["nom_sg"] = {"kumþiz"} data.forms["voc_sg"] = {"kumþi"} data.forms["acc_sg"] = {"kumþį"} data.forms["gen_sg"] = {"kundīz"} data.forms["dat_sg"] = {"kundī"} data.forms["ins_sg"] = {"kundī"} data.forms["nom_pl"] = {"kumþīz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"kumþīnz"} data.forms["gen_pl"] = {"kundijǫ̂"} data.forms["dat_pl"] = {"kundimaz"} data.forms["ins_pl"] = {"kundimiz"} table.insert(data.categories, "Proto-Germanic i-stem nouns") end ------ u-stems ------ irreg_data["grunduz"] = function(args, data) data.decl_type = "u-stem" data.forms["nom_sg"] = {"grumþuz"} data.forms["voc_sg"] = {"grumþu"} data.forms["acc_sg"] = {"grumþų"} data.forms["gen_sg"] = {"grundauz"} data.forms["dat_sg"] = {"grundiwi"} data.forms["ins_sg"] = {"grundū"} data.forms["nom_pl"] = {"grumþiwiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"grumþunz"} data.forms["gen_pl"] = {"grundiwǫ̂"} data.forms["dat_pl"] = {"grundumaz"} data.forms["ins_pl"] = {"grundumiz"} table.insert(data.categories, "Proto-Germanic u-stem nouns") end ------ i/jo stems ------ irreg_data["akwisī"] = function(args, data) data.decl_type = "ī/jō-stem" data.forms["nom_sg"] = {"akwisī"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {"akuzijǭ"} data.forms["gen_sg"] = {"akuzijōz"} data.forms["dat_sg"] = {"akuzijōi"} data.forms["ins_sg"] = {"akuzijō"} data.forms["nom_pl"] = {"akuzijôz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"akuzijōz"} data.forms["gen_pl"] = {"akuzijǫ̂"} data.forms["dat_pl"] = {"akuzijōmaz"} data.forms["ins_pl"] = {"akuzijōmiz"} table.insert(data.categories, "Proto-Germanic ī/jō-stem nouns") end ------ n-stems ------ irreg_data["abô"] = function(args, data) data.decl_type = "masculine an-stem" data.forms["nom_sg"] = {"abô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {"abanų"} data.forms["gen_sg"] = {"abniz"} data.forms["dat_sg"] = {"abni"} data.forms["ins_sg"] = {"abnē"} data.forms["nom_pl"] = {"abniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"abnuz"} data.forms["gen_pl"] = {"abnǫ̂"} data.forms["dat_pl"] = {"abnamaz"} data.forms["ins_pl"] = {"abnamiz"} table.insert(data.categories, "Proto-Germanic an-stem nouns") end irreg_data["arô"] = function(args, data) data.decl_type = "masculine an-stem" data.forms["nom_sg"] = {"arô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {"arnų"} data.forms["gen_sg"] = {"arniz"} data.forms["dat_sg"] = {"arni"} data.forms["ins_sg"] = {"arnē"} data.forms["nom_pl"] = {"arniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"arnunz"} data.forms["gen_pl"] = {"arnǫ̂"} data.forms["dat_pl"] = {"arnumaz"} data.forms["ins_pl"] = {"arnumiz"} table.insert(data.categories, "Proto-Germanic an-stem nouns") end irreg_data["hersô"] = function(args, data) data.decl_type = "neuter an-stem" data.forms["nom_sg"] = {"hersô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {"hersnų"} data.forms["gen_sg"] = {"hirzniz"} data.forms["dat_sg"] = {"hirzni"} data.forms["ins_sg"] = {"hirznē"} data.forms["nom_pl"] = {"hersnō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"herznǫ̂"} data.forms["dat_pl"] = {"herznamaz"} data.forms["ins_pl"] = {"herznamiz"} table.insert(data.categories, "Proto-Germanic an-stem nouns") end irreg_data["namô"] = function(args, data) data.decl_type = "neuter an-stem" data.forms["nom_sg"] = {"namô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"namniz"} data.forms["dat_sg"] = {"namni"} data.forms["ins_sg"] = {"namnē"} data.forms["nom_pl"] = {"namnō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"namnǫ̂"} data.forms["dat_pl"] = {"namnamaz"} data.forms["ins_pl"] = {"namnamiz"} table.insert(data.categories, "Proto-Germanic an-stem nouns") end irreg_data["sēmô"] = function(args, data) data.decl_type = "neuter an-stem" data.forms["nom_sg"] = {"sēmô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"sēmniz"} data.forms["dat_sg"] = {"sēmni"} data.forms["ins_sg"] = {"sēmnē"} data.forms["nom_pl"] = {"sēmnō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"sēmnǫ̂"} data.forms["dat_pl"] = {"sēmnamaz"} data.forms["ins_pl"] = {"sēmnamiz"} table.insert(data.categories, "Proto-Germanic an-stem nouns") end irreg_data["uhsô"] = function(args, data) data.decl_type = "masculine an-stem" data.forms["nom_sg"] = {"uhsô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {"uhsanų"} data.forms["gen_sg"] = {"uhsniz"} data.forms["dat_sg"] = {"uhsni"} data.forms["ins_sg"] = {"uhsnē"} data.forms["nom_pl"] = {"uhsniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"uhsnuz"} data.forms["gen_pl"] = {"uhsnǫ̂"} data.forms["dat_pl"] = {"uhsnamaz"} data.forms["ins_pl"] = {"uhsnamiz"} table.insert(data.categories, "Proto-Germanic an-stem nouns") end irreg_data["bijǭ"] = function(args, data) data.decl_type = "feminine on-stem" data.forms["nom_sg"] = {"bijǭ"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {"bijōnų"} data.forms["gen_sg"] = {"biniz"} data.forms["dat_sg"] = {"binini"} data.forms["ins_sg"] = {"binē"} data.forms["nom_pl"] = {"bijōniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"binunz"} data.forms["gen_pl"] = {"binǫ̂"} data.forms["dat_pl"] = {"bijummiz"} data.forms["ins_pl"] = {"binōmiz"} table.insert(data.categories, "Proto-Germanic irregular nouns") end irreg_data["rīgǭ"] = function(args, data) data.decl_type = "feminine on-stem" data.forms["nom_sg"] = {"rīgǭ"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {"rīgōnų"} data.forms["gen_sg"] = {"rikkiz"} data.forms["dat_sg"] = {"rikkini"} data.forms["ins_sg"] = {"rikkē"} data.forms["nom_pl"] = {"rīgōniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"rikkunz"} data.forms["gen_pl"] = {"rikkǫ̂"} data.forms["dat_pl"] = {"rīgummiz"} data.forms["ins_pl"] = {"rikkōmiz"} table.insert(data.categories, "Proto-Germanic irregular nouns") end ------ Miscellaneous ------ irreg_data["fōr"] = function(args, data) data.decl_type = "paradigm " .. args[1] data.forms["nom_sg"] = {"fōr"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] if args[1] == "1" then data.forms["gen_sg"] = {"funiz"} data.forms["dat_sg"] = {"funi"} data.forms["ins_sg"] = {"funē"} elseif args[1] == "2" then data.forms["gen_sg"] = {"fuiniz"} data.forms["dat_sg"] = {"fuini"} data.forms["ins_sg"] = {"fuinē"} elseif args[1] == "3" then data.forms["gen_sg"] = {"funiniz"} data.forms["dat_sg"] = {"funini"} data.forms["ins_sg"] = {"funinē"} end end irreg_data["watōr"] = function(args, data) data.decl_type = "heteroclitic, irregular" data.forms["nom_sg"] = {"watōr"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"watiniz"} data.forms["dat_sg"] = {"watini"} data.forms["ins_sg"] = {"watinē"} data.forms["nom_pl"] = {"watnō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"watnǫ̂"} data.forms["dat_pl"] = {"watnamaz"} data.forms["ins_pl"] = {"watnamiz"} end irreg_data["eudur"] = function(args, data) data.decl_type = "heteroclitic, irregular" data.forms["nom_sg"] = {"eudur"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"ūdraz"} data.forms["dat_sg"] = {"ūdiri"} data.forms["ins_sg"] = {"ūdrē"} end return irreg_data 6kewxhsyw3r4m273hcujijiujyn8fx9 Templat:inflection-box-top 10 146290 376752 2026-09-27T16:35:47Z SNN95 2113 Mencipta laman baru dengan kandungan '<includeonly>{{#invoke:inflection-table|box_top}}</includeonly><noinclude>{{documentation}}</noinclude>' 376752 wikitext text/x-wiki <includeonly>{{#invoke:inflection-table|box_top}}</includeonly><noinclude>{{documentation}}</noinclude> 7y3tspnbmugu7px243sqf0yi4tu29ny Wikikamus:id/kendit 4 146291 376753 2026-09-27T16:38:37Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # tali pinggang diperbuat daripada kain' 376753 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # tali pinggang diperbuat daripada kain k13hoqv00cg3qbfsjw6g7cscgh01q53 Wikikamus:id/nomina 4 146292 376754 2026-09-27T16:39:21Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # sukan lawan pedang tradisional Jepun' 376754 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # sukan lawan pedang tradisional Jepun 086mi45bkxy54vuwaxcdjkrynr5zr23 Wikikamus:id/kendong 4 146293 376756 2026-09-27T16:40:18Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # membawanya berbalut' 376756 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata kerja=== {{inti|id|kata kerja}} # membawanya berbalut aclxwwhzayae7b0vg3shohk2js1mvs4 Wikikamus:id/kendur 4 146294 376757 2026-09-27T16:41:12Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # tiada ketegangan (tentang tali dsb.) # tidak ketat (tentang ikatan)' 376757 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata sifat=== {{inti|id|kata sifat}} # tiada ketegangan (tentang tali dsb.) # tidak ketat (tentang ikatan) m96898mrvrczdy7t0lti6r7vlyedfbr Wikikamus:id/kelenturan 4 146295 376758 2026-09-27T16:41:58Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # mengenai (keadaan) fleksibiliti' 376758 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # mengenai (keadaan) fleksibiliti 2m4hqhky0o2nen14cwhvnzdnwnwifzl Wikikamus:id/kekakuan 4 146296 376759 2026-09-27T16:43:22Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # perkara yang kaku; kejanggalan{{cp|id|Ia tersenyum sebentar demi menghindari '''kekakuan''' di dalam pergaulan.|Dia tersenyum sekejap untuk mengelakkan kejanggalan sosial.}}' 376759 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # perkara yang kaku; kejanggalan{{cp|id|Ia tersenyum sebentar demi menghindari '''kekakuan''' di dalam pergaulan.|Dia tersenyum sekejap untuk mengelakkan kejanggalan sosial.}} 9nehsc6frvabohewehrnu5d733bml90 Wikikamus:id/kecanggungan 4 146297 376760 2026-09-27T16:44:50Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # sikap kaku (kekok); kekakuan{{cp|id|Dalam penyesuaian diri kadang-kadang timbul '''kecanggungan'''.|Dalam pelarasan kadang-kadang timbul kejanggalan.}}' 376760 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # sikap kaku (kekok); kekakuan{{cp|id|Dalam penyesuaian diri kadang-kadang timbul '''kecanggungan'''.|Dalam pelarasan kadang-kadang timbul kejanggalan.}} oloq36pgd0nqwd456x38fq9ray4l0r7 Wikikamus:id/cerewet 4 146298 376761 2026-09-27T16:46:50Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # suka mengkritik (mengejek, memanggil nama); banyak mulut; sindir; mengomel{{cp|id|Pembantu rumah tangga tidak suka bekerja pada nyonya rumah yang '''cerewet'''.|Pembantu rumah tidak suka bekerja untuk pelayan wanita yang cerewet.}}' 376761 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata sifat=== {{inti|id|kata sifat}} # suka mengkritik (mengejek, memanggil nama); banyak mulut; sindir; mengomel{{cp|id|Pembantu rumah tangga tidak suka bekerja pada nyonya rumah yang '''cerewet'''.|Pembantu rumah tidak suka bekerja untuk pelayan wanita yang cerewet.}} 41mfij3sr5dza9ltvsibwdnqp3i1usp Wikikamus:id/cerepu 4 146299 376762 2026-09-27T16:48:17Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # kasut yang diperbuat daripada kulit yang tidak disapu{{cp|id|Untuk berjalan kaki sejauh itu, Kakek lebih suka mengenakan cerepu daripada sandal biasa.|Untuk berjalan sejauh itu, Atuk lebih suka memakai cerpu daripada sandal biasa.}}' 376762 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # kasut yang diperbuat daripada kulit yang tidak disapu{{cp|id|Untuk berjalan kaki sejauh itu, Kakek lebih suka mengenakan cerepu daripada sandal biasa.|Untuk berjalan sejauh itu, Atuk lebih suka memakai cerpu daripada sandal biasa.}} clzotlytfbcaiymr2t1oavqt40y9w6s Wikikamus:id/bimbang 4 146300 376763 2026-09-27T16:51:04Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # (perasaan) tidak pasti (kurang amanah); teragak-agak{{cp|id|Ia masih '''bimbang''' menerima usul itu.|Dia masih teragak-agak untuk menerima lamaran itu.}} # (merasa) bimbang; cemas{{cp|id|Ia selalu '''bimbang''' memikirkan nasib anaknya yang merantau di negeri orang.|Dia sentiasa risau akan nasib anaknya yang telah berhijrah ke negara lain.}}' 376763 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata sifat=== {{inti|id|kata sifat}} # (perasaan) tidak pasti (kurang amanah); teragak-agak{{cp|id|Ia masih '''bimbang''' menerima usul itu.|Dia masih teragak-agak untuk menerima lamaran itu.}} # (merasa) bimbang; cemas{{cp|id|Ia selalu '''bimbang''' memikirkan nasib anaknya yang merantau di negeri orang.|Dia sentiasa risau akan nasib anaknya yang telah berhijrah ke negara lain.}} gtd0v4ztviqkk6jrrg33h5vi9wgcwk0 Wikikamus:id/gelisah 4 146301 376764 2026-09-27T16:53:42Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # resah, sentiasa bimbang (tentang perasaan); resah (tentang tidur); tidak sabar untuk menunggu lagi, dan sebagainya; cemas{{cp|id|Semua penduduk '''gelisah''' mendengar desas-desus bahwa rumah mereka akan digusur.|Semua penduduk berasa gelisah setelah mendengar khabar angin bahawa mereka akan diusir dari rumah.}}' 376764 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata sifat=== {{inti|id|kata sifat}} # resah, sentiasa bimbang (tentang perasaan); resah (tentang tidur); tidak sabar untuk menunggu lagi, dan sebagainya; cemas{{cp|id|Semua penduduk '''gelisah''' mendengar desas-desus bahwa rumah mereka akan digusur.|Semua penduduk berasa gelisah setelah mendengar khabar angin bahawa mereka akan diusir dari rumah.}} hia535d51zk9g7antbux902je2z64mg Wikikamus:id/bergolak 4 146302 376765 2026-09-27T16:56:45Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # menggelegak; mendidih sambil berbuih # bergelora dengan hebat; tidak tenang (tentang keadaan politik dan sebagainya); berlaku kerusuhan (huru-hara dan sebagainya) # gelisah hati (resah)' 376765 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata kerja=== {{inti|id|kata kerja}} # menggelegak; mendidih sambil berbuih # bergelora dengan hebat; tidak tenang (tentang keadaan politik dan sebagainya); berlaku kerusuhan (huru-hara dan sebagainya) # gelisah hati (resah) r77r2csnfrlsp12kuc5mgzz35wxhb9p Wikikamus:id/bergelagak 4 146303 376766 2026-09-27T16:57:38Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # berbual-bual dan berbunyi (seperti air mendidih ketika direbus)' 376766 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata kerja=== {{inti|id|kata kerja}} # berbual-bual dan berbunyi (seperti air mendidih ketika direbus) n73v7j7516g1qnu8kl8uqbro8zgt3p5 Templat:l+ 10 146304 376767 2026-09-27T16:58:07Z SNN95 2113 Mencipta laman baru dengan kandungan '<includeonly><onlyinclude>{{safesubst:<noinclude/>#invoke:links/templates|l_term_t|langname=1}}</onlyinclude></includeonly><!-- -->{{l+|ms|perkataan}}{{documentation}}' 376767 wikitext text/x-wiki <includeonly><onlyinclude>{{safesubst:<noinclude/>#invoke:links/templates|l_term_t|langname=1}}</onlyinclude></includeonly><!-- -->{{l+|ms|perkataan}}{{documentation}} fozodcgcrrxvrcpare21rn1zod5dk40 Wikikamus:id/abad 4 146305 376770 2026-09-27T17:00:06Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # tempoh seratus tahun{{cp|id|Bangunan itu diperkirakan dapat bertahan satu '''abad'''.|Bangunan itu dianggarkan dapat bertahan selama satu abad.}} # jangka masa selama seratus tahun{{cp|id|'''Abad''' ke-20 mulai pada tahun 1901 sampai tahun 2000.|Abad ke-20 bermula pada tahun 1901 hingga tahun 2000.}} # zaman (yang tempohnya tidak tentu) # ma...' 376770 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # tempoh seratus tahun{{cp|id|Bangunan itu diperkirakan dapat bertahan satu '''abad'''.|Bangunan itu dianggarkan dapat bertahan selama satu abad.}} # jangka masa selama seratus tahun{{cp|id|'''Abad''' ke-20 mulai pada tahun 1901 sampai tahun 2000.|Abad ke-20 bermula pada tahun 1901 hingga tahun 2000.}} # zaman (yang tempohnya tidak tentu) # masa yang kekal dan tidak berkesudahan lnli364m878qrjvp6h67rxi7blwynl2 Wikikamus:bew/dableg 4 146306 376773 2026-09-27T18:19:41Z Nadiarhamadanitaa 11528 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # degil #:{{cp|id|Tu bocah dableg amat. Dibilangin, malah nyengir baé|Kanak-kanak yang degil biasanya sukar mendengar nasihat guru}}' 376773 wikitext text/x-wiki ==Bahasa {{bahasa|bew}}== ===Kata sifat=== {{inti|bew|kata sifat}} # degil #:{{cp|id|Tu bocah dableg amat. Dibilangin, malah nyengir baé|Kanak-kanak yang degil biasanya sukar mendengar nasihat guru}} h407yjfd66jufhlogbh5jerqq08sgoi Wikikamus:bew/encing 4 146307 376775 2026-09-27T18:23:34Z Nadiarhamadanitaa 11528 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== # pakcik #:{{cp|id|Rumah encing kaga’ jauh dari setapsiun kerèta|Semalam pakcik menghantar buah rambutan segar ke rumah kami}}' 376775 wikitext text/x-wiki ==Bahasa {{bahasa|bew}}== ===Kata nama=== # pakcik #:{{cp|id|Rumah encing kaga’ jauh dari setapsiun kerèta|Semalam pakcik menghantar buah rambutan segar ke rumah kami}} kx45cfsctztamg1fwo3tf38uklrdalb 376776 376775 2026-09-27T18:25:57Z Nadiarhamadanitaa 11528 376776 wikitext text/x-wiki ==Bahasa {{bahasa|bew}}== ===Kata nama=== # encing #:pakcik{{cp|id|Rumah encing kaga’ jauh dari setapsiun kerèta|Semalam pakcik menghantar buah rambutan segar ke rumah kami}} 9x343az33vbaemze84w2z9gfcsm7j75 376778 376776 2026-09-27T18:29:31Z Nadiarhamadanitaa 11528 376778 wikitext text/x-wiki ==Bahasa {{bahasa|bew}}== ===Kata nama=== # pakcik #:{{cp|id|Rumah encing kaga’ jauh dari setapsiun kerèta|Semalam pakcik menghantar buah rambutan segar ke rumah kami.}} 6m3mk0lqse689anpstwghb4xp9dexmq 376779 376778 2026-09-27T18:31:56Z Nadiarhamadanitaa 11528 376779 wikitext text/x-wiki ==Bahasa {{bahasa|bew}}== ===Kata nama=== '''encing''' # pakcik #:{{cp|id|Rumah encing kaga’ jauh dari setapsiun kerèta|Semalam pakcik menghantar buah rambutan segar ke rumah kami.}} fubujocjdxgv93fxi42gt4w25y0l46c Wikikamus:bew/pakcik 4 146308 376777 2026-09-27T18:27:02Z Nadiarhamadanitaa 11528 Mencipta laman kosong 376777 wikitext text/x-wiki phoiac9h4m842xq45sp7s6u21eteeq1 Wikikamus:bew/kaya' 4 146309 376780 2026-09-27T18:34:00Z Nadiarhamadanitaa 11528 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Frasa=== {{inti|{{safesubst:ROOTPAGENAME}}|frasa}} # nampak #:{{cp|id|Abetnya pera’ kaya’ orang kaga’ tau diajarin sopan santun|Dari jauh rumah banglo itu nampak begitu tersergam indah}}' 376780 wikitext text/x-wiki ==Bahasa {{bahasa|bew}}== ===Frasa=== {{inti|bew|frasa}} # nampak #:{{cp|id|Abetnya pera’ kaya’ orang kaga’ tau diajarin sopan santun|Dari jauh rumah banglo itu nampak begitu tersergam indah}} eumnht5mhsneptcuhx9x6wthkuneq0a Wikikamus:bew/pelesiran 4 146310 376781 2026-09-27T18:35:36Z Nadiarhamadanitaa 11528 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # pesiar #:{{cp|id|Udah lama kaga’ pelesiran ke tempat sodara di udik|Kapal pesiar mewah itu berlabuh di pelabuhan pagi tadi}}' 376781 wikitext text/x-wiki ==Bahasa {{bahasa|bew}}== ===Kata kerja=== {{inti|bew|kata kerja}} # pesiar #:{{cp|id|Udah lama kaga’ pelesiran ke tempat sodara di udik|Kapal pesiar mewah itu berlabuh di pelabuhan pagi tadi}} 7jyekf7k08izph8evff1tsss1g93xzd Wikikamus:bew/ringkes 4 146311 376782 2026-09-27T18:37:01Z Nadiarhamadanitaa 11528 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # kemas #:{{cp|id|Sebelon berangkat, tu barang kudu lu ringkesin dulu’ biar kaga’ ribet|Bilik tidur tetamu itu sentiasa kemas dan teratur}}' 376782 wikitext text/x-wiki ==Bahasa {{bahasa|bew}}== ===Kata kerja=== {{inti|bew|kata kerja}} # kemas #:{{cp|id|Sebelon berangkat, tu barang kudu lu ringkesin dulu’ biar kaga’ ribet|Bilik tidur tetamu itu sentiasa kemas dan teratur}} gvsipxnnp4zn5hzy23zb8we9r170qf7 Wikikamus:bew/waras 4 146312 376783 2026-09-27T18:38:27Z Nadiarhamadanitaa 11528 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # sihat #:{{cp|id|Alhamdulillah, marèn, sih, awak pada cikaan. Sekarang, udah waras|Senaman berterusan membantu mengekalkan tubuh badan yang sihat}}' 376783 wikitext text/x-wiki ==Bahasa {{bahasa|bew}}== ===Kata sifat=== {{inti|bew|kata sifat}} # sihat #:{{cp|id|Alhamdulillah, marèn, sih, awak pada cikaan. Sekarang, udah waras|Senaman berterusan membantu mengekalkan tubuh badan yang sihat}} sz0zb1vacrk73pgubfxqtnn4rxb62md Wikikamus:en/stubborn 4 146313 376784 2026-09-27T18:39:55Z Nadiarhamadanitaa 11528 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # degil #:{{cp|id|The child was very stubborn and difficult to advise|Kanak-kanak yang degil biasanya sukar mendengar nasihat guru}}' 376784 wikitext text/x-wiki ==Bahasa {{bahasa|en}}== ===Kata sifat=== {{inti|en|kata sifat}} # degil #:{{cp|id|The child was very stubborn and difficult to advise|Kanak-kanak yang degil biasanya sukar mendengar nasihat guru}} ba70ok2nq3vh224tr1lcomilxfa5ujd Wikikamus:en/uncle 4 146314 376785 2026-09-27T18:41:50Z Nadiarhamadanitaa 11528 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # pakcik #:{{cp|id|Yesterday my uncle came to visit our house.|Semalam pakcik menghantar buah rambutan segar ke rumah kami}}' 376785 wikitext text/x-wiki ==Bahasa {{bahasa|en}}== ===Kata nama=== {{inti|en|kata nama}} # pakcik #:{{cp|id|Yesterday my uncle came to visit our house.|Semalam pakcik menghantar buah rambutan segar ke rumah kami}} n0okpnuz9bvr74a65enkvs3x3cqnw8m Wikikamus:en/like 4 146315 376786 2026-09-27T18:43:24Z Nadiarhamadanitaa 11528 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Frasa=== {{inti|{{safesubst:ROOTPAGENAME}}|frasa}} # nampak #:{{cp|id|My little brother's face is very much like my father's when he was young|Dari jauh rumah banglo itu nampak begitu tersergam indah}}' 376786 wikitext text/x-wiki ==Bahasa {{bahasa|en}}== ===Frasa=== {{inti|en|frasa}} # nampak #:{{cp|id|My little brother's face is very much like my father's when he was young|Dari jauh rumah banglo itu nampak begitu tersergam indah}} 8gkon622byocmzfab1yt3zx9atac90e Wikikamus:en/tour 4 146316 376787 2026-09-27T18:45:43Z Nadiarhamadanitaa 11528 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # pesiar #:{{cp|id|Yogyakarta city is a favorite tourist destination for tourists|Kapal pesiar mewah itu berlabuh di pelabuhan pagi tadi}}' 376787 wikitext text/x-wiki ==Bahasa {{bahasa|en}}== ===Kata kerja=== {{inti|en|kata kerja}} # pesiar #:{{cp|id|Yogyakarta city is a favorite tourist destination for tourists|Kapal pesiar mewah itu berlabuh di pelabuhan pagi tadi}} pf5ysxyp7fk39p9rdyo6k75rs5hhnib Wikikamus:en/neat 4 146317 376788 2026-09-27T18:47:29Z Nadiarhamadanitaa 11528 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # kemas #:{{cp|id|His desk is always neatly arranged at all times|Bilik tidur tetamu itu sentiasa kemas dan teratur}}' 376788 wikitext text/x-wiki ==Bahasa {{bahasa|en}}== ===Kata kerja=== {{inti|en|kata kerja}} # kemas #:{{cp|id|His desk is always neatly arranged at all times|Bilik tidur tetamu itu sentiasa kemas dan teratur}} dq6hh82amrk7myf0hrwmk5jv39cmpya Wikikamus:en/healthy 4 146318 376789 2026-09-27T18:48:59Z Nadiarhamadanitaa 11528 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # sihat #:{{cp|id|Eating vegetables and fruit is important to keep the body healthy|Senaman berterusan membantu mengekalkan tubuh badan yang sihat}}' 376789 wikitext text/x-wiki ==Bahasa {{bahasa|en}}== ===Kata sifat=== {{inti|en|kata sifat}} # sihat #:{{cp|id|Eating vegetables and fruit is important to keep the body healthy|Senaman berterusan membantu mengekalkan tubuh badan yang sihat}} 1whywnkx0h4urwen696zycdagqks90n salowe 0 146319 376793 2026-09-28T02:26:07Z Siswanto Unilak 11022 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===salowe=== {{lb|ms|kata benda}} # {{lb|ms|Pelalawan}} celana <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|tepanjang salowe awak.|kepanjangan celana aku.}}' 376793 wikitext text/x-wiki ==Bahasa Melayu== ===salowe=== {{lb|ms|kata benda}} # {{lb|ms|Pelalawan}} celana <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|tepanjang salowe awak.|kepanjangan celana aku.}} pvnylqudemculbn3v6ibdr7pvurmuyh imau 0 146320 376794 2026-09-28T02:27:04Z Siswanto Unilak 11022 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===imau=== {{lb|ms|kata benda}} # {{lb|ms|Pelalawan}} harimau <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|bose aimau tu.|besar harimau itu.}}' 376794 wikitext text/x-wiki ==Bahasa Melayu== ===imau=== {{lb|ms|kata benda}} # {{lb|ms|Pelalawan}} harimau <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|bose aimau tu.|besar harimau itu.}} ecd8jncugtxv8vmzzgb2476ddvjdejh indak 0 146321 376795 2026-09-28T02:28:29Z Siswanto Unilak 11022 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===indak=== {{lb|ms|kata keterangan}} # {{lb|ms|Pelalawan}} tidak <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|indak menetu kawan tu.|tidak tau teman itu.}}' 376795 wikitext text/x-wiki ==Bahasa Melayu== ===indak=== {{lb|ms|kata keterangan}} # {{lb|ms|Pelalawan}} tidak <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|indak menetu kawan tu.|tidak tau teman itu.}} kurpdrcaal5rgg7dftzmgjregoqcare atan 0 146322 376796 2026-09-28T02:31:24Z Siswanto Unilak 11022 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===atan=== {{lb|ms|kata ganti}} # {{lb|ms|Pelalawan}} kakek <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|atana nak kemano?.|kakek mau kemana?.}}' 376796 wikitext text/x-wiki ==Bahasa Melayu== ===atan=== {{lb|ms|kata ganti}} # {{lb|ms|Pelalawan}} kakek <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|atana nak kemano?.|kakek mau kemana?.}} cs2d8hrwqh1xnochfx6ulfk6u6108xh telungkop 0 146323 376797 2026-09-28T02:34:15Z Siswanto Unilak 11022 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===telungkop=== {{lb|ms|kata kerja}} # {{lb|ms|Pelalawan}} jatuh <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|dikau telongkat kat meno?.|kamu terjatuh dimana?.}}' 376797 wikitext text/x-wiki ==Bahasa Melayu== ===telungkop=== {{lb|ms|kata kerja}} # {{lb|ms|Pelalawan}} jatuh <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|dikau telongkat kat meno?.|kamu terjatuh dimana?.}} lf3eawf3bnm8ei4ar44nq7diyv96rej betino 0 146324 376798 2026-09-28T02:35:47Z Siswanto Unilak 11022 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===betino=== {{lb|ms|kata ganti}} # {{lb|ms|Pelalawan}} perempuan <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|apo dibuat betino tu?.|Apa yang dibuat sama perempuan itu?.}}' 376798 wikitext text/x-wiki ==Bahasa Melayu== ===betino=== {{lb|ms|kata ganti}} # {{lb|ms|Pelalawan}} perempuan <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|apo dibuat betino tu?.|Apa yang dibuat sama perempuan itu?.}} hn3yz3vzqbewgonshshq82d6b0mtwgm Wikikamus:id/translasi 4 146325 376799 2026-09-28T02:35:50Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # pemindahan semua titik dalam suatu satah pada jarak dan arah yang sama' 376799 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # pemindahan semua titik dalam suatu satah pada jarak dan arah yang sama nxak3kyvo0pkrg8j64cv8pe7tzjjgqg kebulow 0 146326 376800 2026-09-28T02:37:05Z Siswanto Unilak 11022 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===kebulow=== {{lb|ms|kata sifat}} # {{lb|ms|Pelalawan}} lapar <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|awak kebulow sangat.|saya sangat lapar.}}' 376800 wikitext text/x-wiki ==Bahasa Melayu== ===kebulow=== {{lb|ms|kata sifat}} # {{lb|ms|Pelalawan}} lapar <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|awak kebulow sangat.|saya sangat lapar.}} t4cl3z9clnqq5nxushbuix2mts8lq6n Wikikamus:id/transliterasi 4 146327 376801 2026-09-28T02:37:17Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # penyalinan dengan penggantian huruf daripada satu abjad kepada abjad yang lain{{cp|id|Untuk mengetahui sastra Melayu Klasik lebih mendalam, perlu dilakukan '''transliterasi''' dari tulisan Arab Melayu ke dalam tulisan Latin.|Untuk memahami kesusasteraan Melayu Klasik dengan lebih mendalam, perlu dilakukan transliterasi daripada tulisan Arab...' 376801 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # penyalinan dengan penggantian huruf daripada satu abjad kepada abjad yang lain{{cp|id|Untuk mengetahui sastra Melayu Klasik lebih mendalam, perlu dilakukan '''transliterasi''' dari tulisan Arab Melayu ke dalam tulisan Latin.|Untuk memahami kesusasteraan Melayu Klasik dengan lebih mendalam, perlu dilakukan transliterasi daripada tulisan Arab Melayu kepada tulisan Rumi.}} j0cx4wkdi849ikqfpni7ikf6qniw1kz Wikikamus:id/translokasi 4 146328 376802 2026-09-28T02:38:58Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # pemindahan tempat # pemindahan makanan dalam tumbuhan dari tempat penghasilan atau penyimpanan ke bahagian yang memerlukannya' 376802 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # pemindahan tempat # pemindahan makanan dalam tumbuhan dari tempat penghasilan atau penyimpanan ke bahagian yang memerlukannya 2ymmvvhi1nt0juwxc348115z5c89veb Wikikamus:id/translusens 4 146329 376803 2026-09-28T02:39:44Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # bersifat separa lutsinar; dapat ditembusi cahaya' 376803 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata sifat=== {{inti|id|kata sifat}} # bersifat separa lutsinar; dapat ditembusi cahaya q8oahrtoye6mqjfcdmaaxmm0o9dgy32 cemmane 0 146330 376804 2026-09-28T02:39:47Z Siswanto Unilak 11022 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===cemmana=== {{lb|ms|kata tanya}} # {{lb|ms|Pelalawan}} bagaimana <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|cemmana pogi awak.|bagaimana pergi saya.}}' 376804 wikitext text/x-wiki ==Bahasa Melayu== ===cemmana=== {{lb|ms|kata tanya}} # {{lb|ms|Pelalawan}} bagaimana <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|cemmana pogi awak.|bagaimana pergi saya.}} l2xp2dqqgnzohnpqe4yuondq0p5kran Wikikamus:id/rujak 4 146331 376805 2026-09-28T02:40:59Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # makanan yang dibuat daripada buah-buahan, kadangkala dicampur dengan sayur-sayuran yang dihiris, ditumbuk dan sebagainya, kemudian dibubuh perencah yang terdiri daripada asam, gula, cili dan sebagainya' 376805 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # makanan yang dibuat daripada buah-buahan, kadangkala dicampur dengan sayur-sayuran yang dihiris, ditumbuk dan sebagainya, kemudian dibubuh perencah yang terdiri daripada asam, gula, cili dan sebagainya savtmy1k2cwonymgxhrp2r1dddqrhly Wikikamus:id/rujak bebek 4 146332 376806 2026-09-28T02:41:46Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # rujak yang bahannya ditumbuk sehingga lumat; rujak tumbuk' 376806 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # rujak yang bahannya ditumbuk sehingga lumat; rujak tumbuk i7ql3bscotrru65noikgt69s4ivqb2e seloghoh 0 146333 376807 2026-09-28T02:41:47Z Siswanto Unilak 11022 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===seloghoh=== {{lb|ms|kata sifat}} # {{lb|ms|Bwngkalis}} bercanda <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|dikau sologhoh.|kamu bercanda.}}' 376807 wikitext text/x-wiki ==Bahasa Melayu== ===seloghoh=== {{lb|ms|kata sifat}} # {{lb|ms|Bwngkalis}} bercanda <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|dikau sologhoh.|kamu bercanda.}} rr5fpqtuq60m2mru0zo7dvj9gv900di Wikikamus:id/rujak buah dingin 4 146334 376808 2026-09-28T02:42:40Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # rujak yang buah-buahannya disejukkan terlebih dahulu' 376808 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # rujak yang buah-buahannya disejukkan terlebih dahulu 1smwduum8f8cau6ixef96aukjfefe9h Wikikamus:id/rujak cingur 4 146335 376809 2026-09-28T02:43:38Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # rujak yang bahannya terdiri daripada hirisan cingur, sayur-sayuran, buah-buahan, tauhu, tempe, dengan perencah petis' 376809 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # rujak yang bahannya terdiri daripada hirisan cingur, sayur-sayuran, buah-buahan, tauhu, tempe, dengan perencah petis j6v92dd39bl528hivroanf9n9zl7dm7 ansow 0 146336 376810 2026-09-28T02:44:27Z Siswanto Unilak 11022 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===ansow=== {{lb|ms|kata ganti}} # {{lb|ms|Pelalawan}} duluan <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|beansow lagi.|duluanlah lagi.}}' 376810 wikitext text/x-wiki ==Bahasa Melayu== ===ansow=== {{lb|ms|kata ganti}} # {{lb|ms|Pelalawan}} duluan <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|beansow lagi.|duluanlah lagi.}} 4z33anrfkpk9zqkt822n2hrim4osjto Wikikamus:id/cingur 4 146337 376811 2026-09-28T02:44:46Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # hidung dan bibir atas kerbau atau lembu' 376811 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # hidung dan bibir atas kerbau atau lembu 462tommqa47m86r9ru6veh8ip6sn6bv ngeleto 0 146338 376812 2026-09-28T02:46:00Z Siswanto Unilak 11022 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===neleto=== {{lb|ms|kata benda}} # {{lb|ms|Bengkalis}} gemetar <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|ngeleto badan awak.|gemetar badan ku.}}' 376812 wikitext text/x-wiki ==Bahasa Melayu== ===neleto=== {{lb|ms|kata benda}} # {{lb|ms|Bengkalis}} gemetar <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|ngeleto badan awak.|gemetar badan ku.}} 0erf795fqa77eb8wnp51ku5p83aof8n Wikikamus:id/cingkat 4 146339 376813 2026-09-28T02:46:19Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # buah kelapa yang masih muda' 376813 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # buah kelapa yang masih muda 0rfl0fv694y0upow62g8arkfx2ylgbs Wikikamus:id/cingge 4 146340 376814 2026-09-28T02:47:04Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # perarakan orang Cina yang berpakaian dengan pelbagai jenis pakaian sempena perayaan besar masyarakat Cina' 376814 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # perarakan orang Cina yang berpakaian dengan pelbagai jenis pakaian sempena perayaan besar masyarakat Cina 65a263s7vpn901a9x92sfxm53vqyeq8 Wikikamus:id/cingam 4 146341 376815 2026-09-28T02:48:05Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # perdu yang banyak bercabang, tingginya hingga 5 m, kayunya biasanya dibuat senduk, pendayung dan sebagainya, daunnya digunakan sebagai ubat untuk sakit perut; ''Scyphiphora hydrophyllacea''' 376815 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # perdu yang banyak bercabang, tingginya hingga 5 m, kayunya biasanya dibuat senduk, pendayung dan sebagainya, daunnya digunakan sebagai ubat untuk sakit perut; ''Scyphiphora hydrophyllacea'' nvs2x5khnrbt3pu4bvolhkqzh7u1nay koja 0 146342 376816 2026-09-28T02:48:29Z Siswanto Unilak 11022 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===bekoja=== {{lb|ms|kata kerja}} # {{lb|ms|Rokan Hilir}} berkerja <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|bekojo kau?.|bekerja kamu?.}}' 376816 wikitext text/x-wiki ==Bahasa Melayu== ===bekoja=== {{lb|ms|kata kerja}} # {{lb|ms|Rokan Hilir}} berkerja <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|bekojo kau?.|bekerja kamu?.}} oblsuxe9ujr6dn2gvk9w2x265hmbi7y Wikikamus:id/cingak-cinguk 4 146343 376817 2026-09-28T02:48:57Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # memandang ke kiri dan ke kanan (untuk mencari sesuatu)' 376817 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata kerja=== {{inti|id|kata kerja}} # memandang ke kiri dan ke kanan (untuk mencari sesuatu) 4orlrk9siiopl9qrulofu1ud64o6imh Wikikamus:id/cing 4 146344 376818 2026-09-28T02:49:43Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # tiruan bunyi syiling jatuh di atas batu' 376818 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # tiruan bunyi syiling jatuh di atas batu c78y6gh7mkodpixd0xtw1is7m2cqf2w cangkung 0 146345 376819 2026-09-28T02:49:48Z Siswanto Unilak 11022 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===cangkung=== {{lb|ms|kata kerja}} # {{lb|ms|Rokan Hilir}} celana <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|menyakung awak ni.|jongkok kita ini.}}' 376819 wikitext text/x-wiki ==Bahasa Melayu== ===cangkung=== {{lb|ms|kata kerja}} # {{lb|ms|Rokan Hilir}} celana <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|menyakung awak ni.|jongkok kita ini.}} ebca0rlacfnjhefsxpdg2zrehc5n0cj tekelub 0 146346 376820 2026-09-28T02:51:23Z Siswanto Unilak 11022 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===tekelub=== {{lb|ms|kata kerja}} # {{lb|ms|Rokan Hilir}} celana <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|dikau tekelub dimano?.|kamu terjatuh dimana?.}}' 376820 wikitext text/x-wiki ==Bahasa Melayu== ===tekelub=== {{lb|ms|kata kerja}} # {{lb|ms|Rokan Hilir}} celana <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|dikau tekelub dimano?.|kamu terjatuh dimana?.}} 0c9s9vvkwvt0bsy972e3lxsvp0bvr4t Wikikamus:id/cendera mata 4 146347 376821 2026-09-28T02:51:38Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # pemberian (sebagai kenang-kenangan, sebagai tanda ingatan dan sebagainya); tanda mata # kekasih; buah hati' 376821 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # pemberian (sebagai kenang-kenangan, sebagai tanda ingatan dan sebagainya); tanda mata # kekasih; buah hati 5ydxnt7rd2oozv69gxn8ho88difu0gq Wikikamus:id/cenderai 4 146348 376822 2026-09-28T02:52:30Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # pokok, biasanya kayunya bengkok, tingginya sehingga 17 m, dapat dijadikan arang yang bermutu tinggi, daunnya digunakan sebagai ubat; ''Grewia paniculata''' 376822 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # pokok, biasanya kayunya bengkok, tingginya sehingga 17 m, dapat dijadikan arang yang bermutu tinggi, daunnya digunakan sebagai ubat; ''Grewia paniculata'' dzhomio2wn843fqic9zi67nshrj7cad berembus 0 146349 376823 2026-09-28T02:53:31Z Siswanto Unilak 11022 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===berembus=== {{lb|ms|kata kerja}} # {{lb|ms|Rokan Hilir}} celana <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|berembuslah lagi dikau sano.|pergilah kamu lagi kesana.}}' 376823 wikitext text/x-wiki ==Bahasa Melayu== ===berembus=== {{lb|ms|kata kerja}} # {{lb|ms|Rokan Hilir}} celana <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|berembuslah lagi dikau sano.|pergilah kamu lagi kesana.}} kvexhkgnn3p1lnjmin9xrp8nl7i3kjo bonta 0 146350 376824 2026-09-28T02:54:57Z Siswanto Unilak 11022 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===salowe=== {{lb|ms|kata keteranga}} # {{lb|ms|Rokan Hilir}} sebentar <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|bonta lagi awak pogi.|sebentar lagi saya pergi.}}' 376824 wikitext text/x-wiki ==Bahasa Melayu== ===salowe=== {{lb|ms|kata keteranga}} # {{lb|ms|Rokan Hilir}} sebentar <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|bonta lagi awak pogi.|sebentar lagi saya pergi.}} 2x9mzsnix08epgvmpj652zk7hjd4q8k uwo 0 146351 376825 2026-09-28T02:56:14Z Siswanto Unilak 11022 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===ewo=== {{lb|ms|kata ganto}} # {{lb|ms|Siak}} celana <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|dimano uwo kahang?.|dimana nenek sekarang?.}}' 376825 wikitext text/x-wiki ==Bahasa Melayu== ===ewo=== {{lb|ms|kata ganto}} # {{lb|ms|Siak}} celana <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|dimano uwo kahang?.|dimana nenek sekarang?.}} deyhkcqv6dzeg55opvhmtaelno9n25z Wikikamus:id/kenang-kenangan 4 146352 376826 2026-09-28T02:57:19Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # sesuatu yang menjadi kenangan (tetap dalam ingatan){{cp|id|Peristiwa itu merupakan '''kenang-kenangan''' yang tidak akan terlupakan selama hidupku.|Peristiwa itu merupakan kenangan yang tidak akan dilupakan sepanjang hidupku.}} # sesuatu yang diberikan sebagai tanda mata; cenderamata{{cp|id|Cincin itu kuberikan sebagai '''kenang-kenangan'''...' 376826 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # sesuatu yang menjadi kenangan (tetap dalam ingatan){{cp|id|Peristiwa itu merupakan '''kenang-kenangan''' yang tidak akan terlupakan selama hidupku.|Peristiwa itu merupakan kenangan yang tidak akan dilupakan sepanjang hidupku.}} # sesuatu yang diberikan sebagai tanda mata; cenderamata{{cp|id|Cincin itu kuberikan sebagai '''kenang-kenangan''' untukmu.|Cincin itu kuberikan sebagai kenang-kenangan untukmu.}} # sesuatu yang dimaksudkan untuk dikenang{{cp|id|Apakah '''kenang-kenangan'''mu setelah kembali dari Eropa?|Apakah kenang-kenanganmu setelah pulang dari Eropah?}} 59ph4cf20d1v24zqkt62mlqlucwt6oa mak usu 0 146353 376827 2026-09-28T02:57:19Z Siswanto Unilak 11022 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===mak usu=== {{lb|ms|kata siak}} # {{lb|ms|Siak}} tante <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|mak usu nak kemano?.|tante mau kemana.}}' 376827 wikitext text/x-wiki ==Bahasa Melayu== ===mak usu=== {{lb|ms|kata siak}} # {{lb|ms|Siak}} tante <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|mak usu nak kemano?.|tante mau kemana.}} s77sb94v127q1jyqmyazm3rk260ynjo nio 0 146354 376828 2026-09-28T02:59:39Z Siswanto Unilak 11022 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===nio=== {{lb|ms|kata Pelalawan}} # {{lb|ms|Pelalawan}} kelapa <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|bedak tu minum ae nio.|anak itu minum air kelapa.}}' 376828 wikitext text/x-wiki ==Bahasa Melayu== ===nio=== {{lb|ms|kata Pelalawan}} # {{lb|ms|Pelalawan}} kelapa <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|bedak tu minum ae nio.|anak itu minum air kelapa.}} fi1p39grna97ivpqcpmvi979cftgtu5 Wikikamus:id/oleh-oleh 4 146355 376829 2026-09-28T03:00:01Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # sesuatu yang dibawa pulang dari perjalanan; buah tangan{{cp|id|Ini '''oleh-oleh''' dari ayahku yang baru pulang dari Eropa.|Ini buah tangan daripada ayahku yang baru pulang dari Eropah.}}' 376829 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # sesuatu yang dibawa pulang dari perjalanan; buah tangan{{cp|id|Ini '''oleh-oleh''' dari ayahku yang baru pulang dari Eropa.|Ini buah tangan daripada ayahku yang baru pulang dari Eropah.}} h1d9up22ia9hy2wia4f39d04wtkolvb Wikikamus:id/antaran 4 146356 376830 2026-09-28T03:01:28Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # barang yang dihantar (dikirimkan) # wang dan sebagainya yang diberikan oleh pihak lelaki kepada bakal mentua # orang yang menghantar' 376830 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # barang yang dihantar (dikirimkan) # wang dan sebagainya yang diberikan oleh pihak lelaki kepada bakal mentua # orang yang menghantar sa6x9hkql4gbnr23nayyhmrm3umt5ol sogan 0 146357 376831 2026-09-28T03:02:46Z Siswanto Unilak 11022 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===sogan=== {{lb|ms|kata sifat}} # {{lb|ms|Pelalawan}} malas <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|sogan betul awak di buat inyo.|malas sekali aku dibuat dia.}}' 376831 wikitext text/x-wiki ==Bahasa Melayu== ===sogan=== {{lb|ms|kata sifat}} # {{lb|ms|Pelalawan}} malas <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|sogan betul awak di buat inyo.|malas sekali aku dibuat dia.}} l3w2wwn2eplrzjqapoj36u2l6ftu0jo Wikikamus:id/senggang 4 146358 376832 2026-09-28T03:02:56Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # terluang atau lapang (tentang masa); tidak sibuk{{cp|id|Pada waktu '''senggang''' ia biasa membaca buku.|Pada waktu senggang, dia biasa membaca buku.}}' 376832 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata sifat=== {{inti|id|kata sifat}} # terluang atau lapang (tentang masa); tidak sibuk{{cp|id|Pada waktu '''senggang''' ia biasa membaca buku.|Pada waktu senggang, dia biasa membaca buku.}} 1lqp0vckwz4zydgyo03k115jv47drc6 Wikikamus:id/senggat 4 146359 376833 2026-09-28T03:04:06Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # batas (tanda) yang menunjukkan tahap ukuran (pada pembaris kayu dan sebagainya)' 376833 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # batas (tanda) yang menunjukkan tahap ukuran (pada pembaris kayu dan sebagainya) h17ppe461zgbwr9jbjrbj3ombrhe0g5 boreh 0 146360 376834 2026-09-28T03:05:07Z Siswanto Unilak 11022 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===boreh=== {{lb|ms|kata benda}} # {{lb|ms|Rokan Hulu}} beras <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|bole bores kat kodai.|memebeli beras di warung.}}' 376834 wikitext text/x-wiki ==Bahasa Melayu== ===boreh=== {{lb|ms|kata benda}} # {{lb|ms|Rokan Hulu}} beras <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|bole bores kat kodai.|memebeli beras di warung.}} jt6fucg4ntwfmastkurelv452l3mktf Wikikamus:id/senggeruk 4 146361 376835 2026-09-28T03:05:22Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # tembakau untuk dihidu-hidu # ubat bius untuk orang yang akan dibedah' 376835 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # tembakau untuk dihidu-hidu # ubat bius untuk orang yang akan dibedah 772kb8nbwpzrb39zrr3p8z9bv23unyk Wikikamus:id/sanad 4 146362 376836 2026-09-28T03:07:40Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # sandaran, hubungan atau rangkaian perkara yang boleh dipercayai # rangkaian perawi hadis sampai kepada Nabi Muhammad {{cp|id|Hadis itu telah diriwayatkan oleh Imam Bukhari dengan '''sanad''' yang baik.|Hadis itu telah diriwayatkan oleh Imam al-Bukhari dengan sanad yang baik.}}' 376836 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # sandaran, hubungan atau rangkaian perkara yang boleh dipercayai # rangkaian perawi hadis sampai kepada Nabi Muhammad {{cp|id|Hadis itu telah diriwayatkan oleh Imam Bukhari dengan '''sanad''' yang baik.|Hadis itu telah diriwayatkan oleh Imam al-Bukhari dengan sanad yang baik.}} b7umaqzkxgzp2dws4iy3zl3y3zp93hn Wikikamus:id/sanak 4 146363 376837 2026-09-28T03:08:23Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # saudara; keluarga' 376837 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # saudara; keluarga rs5xwnoo1pjvw7irzhkpseiljvfcrzo Wikikamus:id/sanak saudara 4 146364 376838 2026-09-28T03:09:29Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # orang yang masih mempunyai hubungan kekeluargaan; saudara-mara' 376838 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # orang yang masih mempunyai hubungan kekeluargaan; saudara-mara i42rx3bfy7a5kekeigtamajoghqbw34 Wikikamus:id/sana sini 4 146365 376839 2026-09-28T03:10:15Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # di mana-mana; di sana sini' 376839 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # di mana-mana; di sana sini s95hxud8sd9jlci4fr7ggs63qplun2o Wikikamus:id/sanatogen 4 146366 376840 2026-09-28T03:11:05Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # ubat dalam bentuk cecair untuk menguatkan darah' 376840 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # ubat dalam bentuk cecair untuk menguatkan darah gu7z4uc2bp5rv5f261wngsclzlxxg5c Wikikamus:id/sanatorium 4 146367 376841 2026-09-28T03:11:59Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # hospital yang juga berfungsi sebagai tempat merawat pesakit penyakit paru-paru dengan gabungan rawatan, diet dan senaman yang ketat   # tempat berehat untuk menyembuhkan orang yang menghidap penyakit tertentu # tempat penyembuhan bagi orang yang menghidap penyakit kronik' 376841 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # hospital yang juga berfungsi sebagai tempat merawat pesakit penyakit paru-paru dengan gabungan rawatan, diet dan senaman yang ketat   # tempat berehat untuk menyembuhkan orang yang menghidap penyakit tertentu # tempat penyembuhan bagi orang yang menghidap penyakit kronik bgc7s1vgtjmwo1j9tlecpvtymavzslg Wikikamus:id/sanawiah 4 146368 376842 2026-09-28T03:13:43Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # tingkat menengah pertama (sekolah agama Islam){{cp|id|Pesantren ini memiliki tingkat '''sanawiah''' dan aliah dengan lama belajar enam tahun.|Pesantren ini mempunyai tingkat sanawiah dan aliah dengan tempoh pengajian selama enam tahun.}}' 376842 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # tingkat menengah pertama (sekolah agama Islam){{cp|id|Pesantren ini memiliki tingkat '''sanawiah''' dan aliah dengan lama belajar enam tahun.|Pesantren ini mempunyai tingkat sanawiah dan aliah dengan tempoh pengajian selama enam tahun.}} 2xn9xob101cyas51eh3p5zsn8yz92vh Wikikamus:id/gadai 4 146369 376843 2026-09-28T03:14:48Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # meminjam wang dalam tempoh tertentu dengan menyerahkan barang sebagai cagaran; jika telah sampai tempohnya dan tidak ditebus, barang itu menjadi hak pemberi pinjaman' 376843 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata kerja=== {{inti|id|kata kerja}} # meminjam wang dalam tempoh tertentu dengan menyerahkan barang sebagai cagaran; jika telah sampai tempohnya dan tidak ditebus, barang itu menjadi hak pemberi pinjaman hu7pfyqki3oakkaqexn2sree6qyv5z4 376844 376843 2026-09-28T03:15:53Z Rachmat04 3001 376844 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata kerja=== {{inti|id|kata kerja}} # meminjam wang dalam tempoh tertentu dengan menyerahkan barang sebagai cagaran; jika telah sampai tempohnya dan tidak ditebus, barang itu menjadi hak pemberi pinjaman === Kata nama === {{inti|id|kata kerja}} # barang yang diserahkan sebagai cagaran hutang # kredit jangka pendek dengan cagaran yang tempohnya tiga bulan dan boleh dilanjutkan setiap kali sekiranya tidak ditamatkan oleh salah satu pihak yang berkenaan oimnklex2hf5qrqh58jbjyr4mqgqbik Wikikamus:id/bergadai 4 146370 376845 2026-09-28T03:17:21Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # meminjam wang dengan menyerahkan barang sebagai cagaran{{cp|id|Ia terpaksa '''bergadai''' untuk membayar kontrak rumahnya.|Dia terpaksa menggadai untuk membayar kontrak rumahnya.}}' 376845 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata kerja=== {{inti|id|kata kerja}} # meminjam wang dengan menyerahkan barang sebagai cagaran{{cp|id|Ia terpaksa '''bergadai''' untuk membayar kontrak rumahnya.|Dia terpaksa menggadai untuk membayar kontrak rumahnya.}} 16kae3wo17ae00pv38cfk6n99jrcgii Wikikamus:id/bergadang 4 146371 376846 2026-09-28T03:18:04Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # berjaga (tidak tidur pada waktu malam)' 376846 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata kerja=== {{inti|id|kata kerja}} # berjaga (tidak tidur pada waktu malam) eid6s273lwez1ywcawb5wgethep6u2g Wikikamus:id/bergaduh 4 146372 376847 2026-09-28T03:21:11Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # berbuat gaduh (ribut, kecoh){{cp|id|Jangan '''bergaduh''' di sini karena ada orang sakit!|Jangan bergaduh di sini kerana ada orang sakit!}} # bertengkar; bercekcok{{cp|id|Tidak putus-putusnya ia '''bergaduh''' dengan istrinya.|Dia tidak putus-putus bergaduh dengan isterinya.}} # bercampur aduk; bercampur baur{{cp|id|Yang buruk dengan yang...' 376847 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata kerja=== {{inti|id|kata kerja}} # berbuat gaduh (ribut, kecoh){{cp|id|Jangan '''bergaduh''' di sini karena ada orang sakit!|Jangan bergaduh di sini kerana ada orang sakit!}} # bertengkar; bercekcok{{cp|id|Tidak putus-putusnya ia '''bergaduh''' dengan istrinya.|Dia tidak putus-putus bergaduh dengan isterinya.}} # bercampur aduk; bercampur baur{{cp|id|Yang buruk dengan yang baik '''bergaduh''', susah dibedakan lagi.|Yang buruk dengan yang baik bercampur aduk sehingga sukar dibezakan lagi.}} 3fxr2354sr122jl34q3yajpt2183sqc Wikikamus:id/gaduh 4 146373 376848 2026-09-28T03:22:38Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # kecoh dan gempar akibat perkelahian (pertengkaran dan sebagainya); ribut; huru-hara{{cp|id|Yang membuat '''gaduh''' telah ditahan polisi.|Orang yang membuat kecoh itu telah ditahan oleh polis.}}' 376848 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata sifat=== {{inti|id|kata sifat}} # kecoh dan gempar akibat perkelahian (pertengkaran dan sebagainya); ribut; huru-hara{{cp|id|Yang membuat '''gaduh''' telah ditahan polisi.|Orang yang membuat kecoh itu telah ditahan oleh polis.}} gjxfrxe89t0civjy0b20szilkconvwx Wikikamus:id/abdi masyarakat 4 146374 376849 2026-09-28T03:23:40Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # pegawai kerajaan yang pada dasarnya berkewajipan berkhidmat kepada masyarakat' 376849 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # pegawai kerajaan yang pada dasarnya berkewajipan berkhidmat kepada masyarakat 37q3xjg7c8el57h9f5do5m42xar2q7s Wikikamus:id/abu soda 4 146375 376850 2026-09-28T03:25:00Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # natrium karbonat komersial, berupa serbuk yang larut dalam air tetapi tidak larut dalam alkohol, digunakan dalam pembuatan kaca dan penapisan petroleum, sabun dan detergen' 376850 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # natrium karbonat komersial, berupa serbuk yang larut dalam air tetapi tidak larut dalam alkohol, digunakan dalam pembuatan kaca dan penapisan petroleum, sabun dan detergen 3jo0fu9wf45nd1ep1ph11h215aa5qx2 Wikikamus:id/abu terbang 4 146376 376851 2026-09-28T03:25:38Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # buangan berbentuk zarah halus yang tidak mudah terbakar dan terperangkap dalam aliran gas yang keluar dari dalam relau abu' 376851 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # buangan berbentuk zarah halus yang tidak mudah terbakar dan terperangkap dalam aliran gas yang keluar dari dalam relau abu rp0eamq53je9zdm3i0u1t5a1qe9swnd Wikikamus:id/abu tulang 4 146377 376852 2026-09-28T03:26:16Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # serbuk putih yang tertinggal selepas tulang dibakar di udara terbuka' 376852 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # serbuk putih yang tertinggal selepas tulang dibakar di udara terbuka 36lwxhszkz2owkjz28ox6aojcvics78 Wikikamus:id/abu vulkanis 4 146378 376853 2026-09-28T03:26:52Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # zarah lava yang halus yang terhembus ketika gunung berapi meletus; kadangkala zarah ini terhembus sangat tinggi sehingga jatuh di tempat yang sangat jauh' 376853 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # zarah lava yang halus yang terhembus ketika gunung berapi meletus; kadangkala zarah ini terhembus sangat tinggi sehingga jatuh di tempat yang sangat jauh mbyztx8n8xa0ol2tv0ueollmx9enjv9 Wikikamus:id/acak-acakan 4 146379 376855 2026-09-28T03:29:39Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # tidak teratur; tidak cermat; sambil lewa; kacau' 376855 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata sifat=== {{inti|id|kata sifat}} # tidak teratur; tidak cermat; sambil lewa; kacau bntqyj30hbn9iahv6j6yseyxol6nk78 Wikikamus:id/acala 4 146380 376856 2026-09-28T03:30:19Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # arca yang tidak dapat dipindahkan, biasanya diperbuat daripada batu dan diletakkan di tempat yang paling suci dalam rumah pemujaan' 376856 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata sifat=== {{inti|id|kata sifat}} # arca yang tidak dapat dipindahkan, biasanya diperbuat daripada batu dan diletakkan di tempat yang paling suci dalam rumah pemujaan jmdehq5vl82igg706zumjgw6hwfy6fj Wikikamus:id/acang 4 146381 376857 2026-09-28T03:31:08Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # perkakas kecil yang digunakan untuk menunjukkan keadaan air dalam cerek dan sebagainya' 376857 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # perkakas kecil yang digunakan untuk menunjukkan keadaan air dalam cerek dan sebagainya 05lxi2nsbkixeelah3vr1mvatufaqc7 Wikikamus:id/acang-acang kampung 4 146382 376858 2026-09-28T03:32:09Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Frasa=== {{inti|{{safesubst:ROOTPAGENAME}}|frasa}} # orang yang dipercayai oleh penduduk sekampung; para cerdik pandai di kampung' 376858 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Frasa=== {{inti|id|frasa}} # orang yang dipercayai oleh penduduk sekampung; para cerdik pandai di kampung t9e76bvyv4mwiyqewlioz7lgjtabyvw Wikikamus:id/acar 4 146383 376859 2026-09-28T03:32:53Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # makanan yang dibuat daripada buah-buahan atau sayur-sayuran, dibubuh rempah dan diasamkan' 376859 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # makanan yang dibuat daripada buah-buahan atau sayur-sayuran, dibubuh rempah dan diasamkan np723n1r4yjuo6tohf4h52iqgw6r6p0 Wikikamus:id/hajatan 4 146384 376860 2026-09-28T03:34:21Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # acara (seperti majlis resepsi dan kenduri){{cp|id|Dalam bulan Maulid ini banyak orang mengadakan '''hajatan'''.|Pada bulan Maulid ini, ramai orang mengadakan kenduri.}}' 376860 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # acara (seperti majlis resepsi dan kenduri){{cp|id|Dalam bulan Maulid ini banyak orang mengadakan '''hajatan'''.|Pada bulan Maulid ini, ramai orang mengadakan kenduri.}} 07a7fgxzov7cid5ro154ge7oy331qw3 Wikikamus:id/tuli 4 146385 376862 2026-09-28T03:58:07Z Affandy Murad 9103 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # pekak #:{{cp|id|Penyakit infeksi telinga dapat membuat seseorang '''tuli'''.|Penyakitan bejangkit telinga boleh membuat seseorang '''pekak'''.}}' 376862 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # pekak #:{{cp|id|Penyakit infeksi telinga dapat membuat seseorang '''tuli'''.|Penyakitan bejangkit telinga boleh membuat seseorang '''pekak'''.}} 4eww5scq6g5xtefec5kol9os1wlnzyt Wikikamus:id/ranjang 4 146386 376863 2026-09-28T03:59:46Z Affandy Murad 9103 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # tilam #:{{cp|id|'''Kasur''' empuk diletakkan di atas ranjang kayu jati.|'''Tilam''' empuk diletakkan di atas katil kayu jati.}}' 376863 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # tilam #:{{cp|id|'''Kasur''' empuk diletakkan di atas ranjang kayu jati.|'''Tilam''' empuk diletakkan di atas katil kayu jati.}} jo3jpqdufd53nrd8vw6wajh1zp55uh2 Wikikamus:id/coba 4 146387 376864 2026-09-28T04:01:18Z Affandy Murad 9103 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # cuba #:{{cp|id|Mari kita '''coba''' metode pembelajaran yang baru ini..|Jom '''cuba''' kaedah pembelajaran baharu ini.}}' 376864 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # cuba #:{{cp|id|Mari kita '''coba''' metode pembelajaran yang baru ini..|Jom '''cuba''' kaedah pembelajaran baharu ini.}} mhnmjxmoww0gh2c341qubq22cfuvu38 376865 376864 2026-09-28T04:02:09Z Affandy Murad 9103 376865 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata kerja=== {{inti|id|kata nama}} # cuba #:{{cp|id|Mari kita '''coba''' metode pembelajaran yang baru ini..|Jom '''cuba''' kaedah pembelajaran baharu ini.}} muu7ocjo0myzeom12aj628m89yp6bpc 376866 376865 2026-09-28T04:03:59Z Affandy Murad 9103 376866 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata kerja=== {{inti|id|kata kerja}} # cuba #:{{cp|id|Mari kita '''coba''' metode pembelajaran yang baru ini..|Jom '''cuba''' kaedah pembelajaran baharu ini.}} 1pli4pmk2kwxubo6easvsler3l6fb2w 376867 376866 2026-09-28T04:06:40Z Affandy Murad 9103 376867 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata kerja=== {{inti|id|kata kerja}} # cuba #:{{cp|id|Saya '''ingin''' belajar bahasa asing saat liburan nanti.|Saya '''nak''' belajar bahasa asing semasa cuti akan datang.}} 8q355s9q0g21yqfu3j5vghe9e5h16ez 376869 376867 2026-09-28T04:08:28Z Affandy Murad 9103 376869 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata kerja=== {{inti|id|kata kerja}} # cuba #:{{cp|id|Mari kita '''coba''' metode pembelajaran yang baru ini..|Jom '''cuba''' kaedah pembelajaran baharu ini.}} 1pli4pmk2kwxubo6easvsler3l6fb2w Wikikamus:id/ingin 4 146388 376868 2026-09-28T04:07:58Z Affandy Murad 9103 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|id}}== ===Kata kerja=== {{inti|id|kata kerja}} # nak #:{{cp|id|Saya '''ingin''' belajar bahasa asing saat liburan nanti.|Saya '''nak''' belajar bahasa asing semasa cuti akan datang.}}' 376868 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata kerja=== {{inti|id|kata kerja}} # nak #:{{cp|id|Saya '''ingin''' belajar bahasa asing saat liburan nanti.|Saya '''nak''' belajar bahasa asing semasa cuti akan datang.}} 4ly8kfkkud7ax89sb0uvxuehy2lqt2c Wikikamus:id/gembira 4 146389 376870 2026-09-28T04:11:43Z Affandy Murad 9103 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|id}}== ===Kata sifat=== {{inti|id|kata sifat}} # teruja #:{{cp|id|Keluarga merayakan kelulusannya dengan penuh '''gembira'''.|Keluarga itu menyambut majlis graduasinya dengan '''teruja'''.}}' 376870 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata sifat=== {{inti|id|kata sifat}} # teruja #:{{cp|id|Keluarga merayakan kelulusannya dengan penuh '''gembira'''.|Keluarga itu menyambut majlis graduasinya dengan '''teruja'''.}} hgceqjjgqv6ytw4ohkv8q2by0ghqow1 Wikikamus:id/terbatas 4 146390 376871 2026-09-28T04:15:30Z Affandy Murad 9103 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|id}}== ===Kata sifat=== {{inti|id|kata sifat}} # terhad #:{{cp|id|Jumlah tiket konser sangat '''terbatas''' untuk umum.|Bilangan tiket konsert sangat '''terhad''' untuk orang ramai.}}' 376871 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata sifat=== {{inti|id|kata sifat}} # terhad #:{{cp|id|Jumlah tiket konser sangat '''terbatas''' untuk umum.|Bilangan tiket konsert sangat '''terhad''' untuk orang ramai.}} 27u1tleydtu2vrdegskwlsofetx3y4f Wikikamus:id/jelas 4 146391 376872 2026-09-28T04:19:04Z Affandy Murad 9103 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|id}}== ===Kata sifat=== {{inti|id|kata sifat}} # zahir #:{{cp|id|Penjelasan guru di kelas sangat '''jelas''' dan mudah dipahami.|Penerangan guru di dalam kelas sangat '''zahir''' dan mudah difahami.}}' 376872 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata sifat=== {{inti|id|kata sifat}} # zahir #:{{cp|id|Penjelasan guru di kelas sangat '''jelas''' dan mudah dipahami.|Penerangan guru di dalam kelas sangat '''zahir''' dan mudah difahami.}} frcxeb4vo1yxx4mg30vns0ule9v1t2h Wikikamus:bdr/entelo 4 146392 376874 2026-09-28T08:09:31Z Sipatung 10839 Tambah ayat 376874 wikitext text/x-wiki ==Bahasa {{bahasa|bdr}}== ===Kata nama=== {{inti|bdr|kata nama}} # {{label|1=bdr|2=dialek|3=Sabah}} telur {{cp|bdr|Aku ngelos '''entelo''' manuk.|Saya merebus '''[[telur]]''' ayam.}} 3wum512gpprw6qrlov2a2ej1b8ukdsg Wikikamus:id/berjulat 4 146393 376875 2026-09-28T08:46:15Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # bersambung berturut-turut; tidak habis-habis' 376875 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata kerja=== {{inti|id|kata kerja}} # bersambung berturut-turut; tidak habis-habis fcpqng0hu51bz807zf1cv1x4zdtyf2v Wikikamus:id/berjuluk 4 146394 376876 2026-09-28T08:47:55Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # mempunyai gelaran{{cp|id|Lini tengah tim '''berjuluk''' Macan Kemayoran.|Bahagian tengah pasukan bergelar Harimau Kemayoran.}}' 376876 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata kerja=== {{inti|id|kata kerja}} # mempunyai gelaran{{cp|id|Lini tengah tim '''berjuluk''' Macan Kemayoran.|Bahagian tengah pasukan bergelar Harimau Kemayoran.}} hu4np74r3z6j1g2ne16s9xilnjgkyj8 Wikikamus:id/berjumat 4 146395 376877 2026-09-28T08:48:36Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # menunaikan solat secara berjemaah di masjid pada hari Jumaat dengan cara dan waktu tertentu (pada siang hari sekitar waktu solat Zuhur); menunaikan solat Jumaat' 376877 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata kerja=== {{inti|id|kata kerja}} # menunaikan solat secara berjemaah di masjid pada hari Jumaat dengan cara dan waktu tertentu (pada siang hari sekitar waktu solat Zuhur); menunaikan solat Jumaat hmh5j1tkze7oxcb15sg1psna36a7sr3 Wikikamus:id/berjumbul-jumbul 4 146396 376878 2026-09-28T08:49:31Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # (dalam keadaan) terkatung-katung turun naik; terapung-apung' 376878 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata sifat=== {{inti|id|kata sifat}} # (dalam keadaan) terkatung-katung turun naik; terapung-apung s6t2xw96dyv2wrazdtylsxa3teliy0k Wikikamus:id/berjungkir 4 146397 376879 2026-09-28T08:50:27Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # jatuh terbalik (meletakkan badan) dengan kepala di bawah dan kaki di atas; bertunggang' 376879 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata kerja=== {{inti|id|kata kerja}} # jatuh terbalik (meletakkan badan) dengan kepala di bawah dan kaki di atas; bertunggang penttxlibdogvaa4mtgj0gnofwz9gqk Wikikamus:id/cob 4 146398 376880 2026-09-28T08:51:28Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # menggerak-gerakkan badan ke atas dan ke bawah (semasa berjalan dengan pantas)' 376880 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata kerja=== {{inti|id|kata kerja}} # menggerak-gerakkan badan ke atas dan ke bawah (semasa berjalan dengan pantas) r3k5gh4c7ig32dbkzbl01990vmzfklx Wikikamus:id/cobaan 4 146399 376881 2026-09-28T08:52:13Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # sesuatu yang digunakan untuk menguji (ketabahan, keimanan dan sebagainya)' 376881 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # sesuatu yang digunakan untuk menguji (ketabahan, keimanan dan sebagainya) cbw4v1x3dz2c4rdjyzunzig9mdan8f7 Wikikamus:id/godaan 4 146400 376882 2026-09-28T08:53:38Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # sesuatu yang dapat menggoda ketabahan hati # gangguan' 376882 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # sesuatu yang dapat menggoda ketabahan hati # gangguan sbwjsepbglzowbxsrcxl0y0zrn3291s Wikikamus:id/godong 4 146401 376883 2026-09-28T08:54:33Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # bahagian bawah rumah bertiang yang digunakan untuk menyimpan peralatan dan hasil pertanian dan sebagainya' 376883 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # bahagian bawah rumah bertiang yang digunakan untuk menyimpan peralatan dan hasil pertanian dan sebagainya d5o07umb7ayhzvwhv3kc7k5ai7qytr2 Wikikamus:id/gogos 4 146402 376884 2026-09-28T08:55:33Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # terhakis (rosak) bahagian bawah atau runtuh akibat terhakis oleh aliran air (tentang tanah)' 376884 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata sifat=== {{inti|id|kata sifat}} # terhakis (rosak) bahagian bawah atau runtuh akibat terhakis oleh aliran air (tentang tanah) 5osa4dz95ccpfo68mlj1o5jandxi05q Wikikamus:id/gogosok 4 146403 376885 2026-09-28T08:56:14Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # penganan yang dibuat daripada beras pulut dan santan, dibungkus dengan daun pisang, berbentuk bulat panjang dan dipanggang di atas bara api' 376885 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # penganan yang dibuat daripada beras pulut dan santan, dibungkus dengan daun pisang, berbentuk bulat panjang dan dipanggang di atas bara api dudn5yatniwv6mz4fv8c3fcjn1rlajn Wikikamus:id/gokar 4 146404 376886 2026-09-28T08:57:20Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # pedati kecil atau kereta kecil (untuk kanak-kanak) yang ditolak atau ditarik # rangka kecil beroda yang digunakan untuk membantu kanak-kanak belajar berjalan # kereta lumba kecil yang tidak berbumbung' 376886 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # pedati kecil atau kereta kecil (untuk kanak-kanak) yang ditolak atau ditarik # rangka kecil beroda yang digunakan untuk membantu kanak-kanak belajar berjalan # kereta lumba kecil yang tidak berbumbung jpz7qp9pytk80c8kcjfjz8zoeaa3lq5 Wikikamus:id/golak-galik cuaca cerah 4 146405 376887 2026-09-28T08:58:25Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Frasa=== {{inti|{{safesubst:ROOTPAGENAME}}|frasa}} # turbulens yang berlaku bukan di dalam awan, biasanya disebabkan oleh pemanasan dan perbezaan angin mendatar dalam lapisan udara' 376887 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Frasa=== {{inti|id|frasa}} # turbulens yang berlaku bukan di dalam awan, biasanya disebabkan oleh pemanasan dan perbezaan angin mendatar dalam lapisan udara 6u82zr3v0v1zcxynzbdh074glcfry02 Wikikamus:id/golak-galik 4 146406 376888 2026-09-28T08:59:07Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata kerja=== {{inti|{{safesubst:ROOTPAGENAME}}|kata kerja}} # berbalik-balik; berjungkir balik; berpusing balik' 376888 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata kerja=== {{inti|id|kata kerja}} # berbalik-balik; berjungkir balik; berpusing balik enxh4kgqbjj5zdgjtfkpqo7i5xmndgs Wikikamus:id/akhirulkalam 4 146407 376889 2026-09-28T09:00:23Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # ungkapan yang digunakan untuk mengakhiri surat, huraian, pidato dan sebagainya' 376889 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # ungkapan yang digunakan untuk mengakhiri surat, huraian, pidato dan sebagainya rlq2f65y1o7nwnjvae6g3hz4y1tkiuy Wikikamus:id/akhirusanah 4 146408 376890 2026-09-28T09:01:41Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # akhir tahun{{cp|id|Khataman Alquran kali ini merupakan khataman '''akhirusanah''' menjelang bulan Ramadan.|Khataman al-Quran kali ini merupakan khataman akhir tahun menjelang bulan Ramadan.}}' 376890 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # akhir tahun{{cp|id|Khataman Alquran kali ini merupakan khataman '''akhirusanah''' menjelang bulan Ramadan.|Khataman al-Quran kali ini merupakan khataman akhir tahun menjelang bulan Ramadan.}} qcioqpph5qukfu0qrd0b5hf3td10pzj Wikikamus:id/integritas 4 146409 376891 2026-09-28T09:02:44Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # mutu, sifat atau keadaan yang menunjukkan kesatuan yang utuh sehingga mempunyai potensi dan keupayaan yang memancarkan kewibawaan; kejujuran' 376891 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # mutu, sifat atau keadaan yang menunjukkan kesatuan yang utuh sehingga mempunyai potensi dan keupayaan yang memancarkan kewibawaan; kejujuran nir28e4m7uhjo8eqe3743inqmt81lds Wikikamus:id/integritas nasional 4 146410 376892 2026-09-28T09:03:36Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Frasa=== {{inti|{{safesubst:ROOTPAGENAME}}|frasa}} # wujudnya keutuhan prinsip moral dan etika bangsa dalam kehidupan bernegara' 376892 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Frasa=== {{inti|id|frasa}} # wujudnya keutuhan prinsip moral dan etika bangsa dalam kehidupan bernegara sp7f6fas5fdxkfov1aw4ilzzl15jdte Wikikamus:id/integritas pembekuan 4 146411 376893 2026-09-28T09:04:23Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Frasa=== {{inti|{{safesubst:ROOTPAGENAME}}|frasa}} # jisim ais yang besar yang mendap pada setiap unit luas' 376893 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Frasa=== {{inti|id|frasa}} # jisim ais yang besar yang mendap pada setiap unit luas c78kqfcwa0kdqyod9ne7cabpdk7x8ee Wikikamus:id/integumen 4 146412 376894 2026-09-28T09:06:10Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # sesuatu yang meliputi atau melapisi # lapisan terluar bakal biji yang akan berkembang menjadi selaput biji' 376894 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # sesuatu yang meliputi atau melapisi # lapisan terluar bakal biji yang akan berkembang menjadi selaput biji ota5jmn3cehiornejsowmrz1faxkfx2 Wikikamus:id/intelek 4 146413 376895 2026-09-28T09:07:20Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # daya atau proses pemikiran yang lebih tinggi yang berkaitan dengan pengetahuan; daya akal budi; kecerdasan berfikir' 376895 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # daya atau proses pemikiran yang lebih tinggi yang berkaitan dengan pengetahuan; daya akal budi; kecerdasan berfikir 2zew5h566fgfn311p34hzww3ooqrjkq Wikikamus:id/intelektual 4 146414 376896 2026-09-28T09:09:01Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # (yang) mempunyai kecerdasan yang tinggi; cendekiawan # keseluruhan pengertian atau kesedaran, terutama yang berkaitan dengan pemikiran dan pemahaman === Kata sifat === {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # cerdas, berakal dan berfikiran jernih berdasarkan ilmu pengetahuan' 376896 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # (yang) mempunyai kecerdasan yang tinggi; cendekiawan # keseluruhan pengertian atau kesedaran, terutama yang berkaitan dengan pemikiran dan pemahaman === Kata sifat === {{inti|id|kata nama}} # cerdas, berakal dan berfikiran jernih berdasarkan ilmu pengetahuan mtwmmvjqhhw32qh9jqdb05s5uhx864z 376897 376896 2026-09-28T09:09:24Z Rachmat04 3001 376897 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # (yang) mempunyai kecerdasan yang tinggi; cendekiawan # keseluruhan pengertian atau kesedaran, terutama yang berkaitan dengan pemikiran dan pemahaman === Kata sifat === {{inti|id|kata sifat}} # cerdas, berakal dan berfikiran jernih berdasarkan ilmu pengetahuan 8hagz2z9empoqlpmyv487y4bf1zb4n4 Wikikamus:id/intelektualisasi 4 146415 376898 2026-09-28T09:10:09Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # proses, cara atau perbuatan menjadikan sesuatu berdasarkan ketajaman fikiran; pencendekiaan' 376898 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # proses, cara atau perbuatan menjadikan sesuatu berdasarkan ketajaman fikiran; pencendekiaan pli371fjmn2t01k9qrsndbcq3l5uzdl Wikikamus:id/intelektualisme 4 146416 376899 2026-09-28T09:10:49Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # ketaatan atau kesetiaan terhadap latihan daya fikir dan pencarian sesuatu berdasarkan ilmu pengetahuan' 376899 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # ketaatan atau kesetiaan terhadap latihan daya fikir dan pencarian sesuatu berdasarkan ilmu pengetahuan g8r032aku3rk5rdkhzn72ipswl8do5k Wikikamus:id/inteligen 4 146417 376901 2026-09-28T09:12:55Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # mempunyai atau menunjukkan tahap kecerdasan yang tinggi; berfikiran tajam; cerdas; berakal' 376901 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata sifat=== {{inti|id|kata sifat}} # mempunyai atau menunjukkan tahap kecerdasan yang tinggi; berfikiran tajam; cerdas; berakal 5ecexg5omke7zo48h4sv11xfwfinf8b Wikikamus:id/inteligensi 4 146418 376902 2026-09-28T09:13:39Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # daya tindak balas atau penyesuaian yang cepat dan tepat, sama ada secara fizikal atau mental, terhadap pengalaman baharu, yang menjadikan pengalaman dan pengetahuan yang telah dimiliki bersedia untuk digunakan apabila berhadapan dengan fakta atau keadaan baharu; kecerdasan' 376902 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # daya tindak balas atau penyesuaian yang cepat dan tepat, sama ada secara fizikal atau mental, terhadap pengalaman baharu, yang menjadikan pengalaman dan pengetahuan yang telah dimiliki bersedia untuk digunakan apabila berhadapan dengan fakta atau keadaan baharu; kecerdasan 5rfrcizar8p7x830ooh5j4pyufy932x Wikikamus:id/inteligensia 4 146419 376903 2026-09-28T09:14:20Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # golongan cerdik pandai; para cendekiawan' 376903 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # golongan cerdik pandai; para cendekiawan 5pmvls3uut5ebeb33ctcakikplwbvhq Wikikamus:id/intelijen 4 146420 376904 2026-09-28T09:15:11Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # orang yang bertugas mencari atau mengintip seseorang; perkhidmatan rahsia' 376904 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # orang yang bertugas mencari atau mengintip seseorang; perkhidmatan rahsia qq28myykwi9cvx2y9d79au2482i7dpa Wikikamus:id/intendans 4 146421 376905 2026-09-28T09:15:52Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # bahagian organisasi ketenteraan yang mengurus makanan, pakaian dan bahan-bahan lain' 376905 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # bahagian organisasi ketenteraan yang mengurus makanan, pakaian dan bahan-bahan lain 7xiq46r55roy4mzu11ncbiiyqzyvwvy Wikikamus:id/intens 4 146422 376906 2026-09-28T09:16:44Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # hebat atau sangat kuat (tentang kekuatan, kesan dan sebagainya) # tinggi (tentang mutu) # bergelora, penuh semangat, berapi-api, berkobar-kobar (tentang perasaan) # sangat emosional (tentang orang)' 376906 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata sifat=== {{inti|id|kata sifat}} # hebat atau sangat kuat (tentang kekuatan, kesan dan sebagainya) # tinggi (tentang mutu) # bergelora, penuh semangat, berapi-api, berkobar-kobar (tentang perasaan) # sangat emosional (tentang orang) g02rdutkc556w8ioplcjxs9dsy0bv6r Wikikamus:id/intensi 4 146423 376907 2026-09-28T09:18:45Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # maksud; tujuan{{cp|id|Terdapat hubungan antara gaya hidup, konsep diri, citra produk, dan sistem nilai dengan '''intensi''' konsumen wanita mau membeli kosmetika lokal.|Terdapat hubungan antara gaya hidup, konsep diri, imej produk dan sistem nilai dengan niat pengguna wanita untuk membeli kosmetik tempatan.}} # keinginan atau permohonan khus...' 376907 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # maksud; tujuan{{cp|id|Terdapat hubungan antara gaya hidup, konsep diri, citra produk, dan sistem nilai dengan '''intensi''' konsumen wanita mau membeli kosmetika lokal.|Terdapat hubungan antara gaya hidup, konsep diri, imej produk dan sistem nilai dengan niat pengguna wanita untuk membeli kosmetik tempatan.}} # keinginan atau permohonan khusus yang diajukan oleh umat dalam upacara misa # himpunan atribut atau ciri yang menerangkan sesuatu yang boleh dirujuk dengan kata tertentu (dibezakan daripada ekstensi) gx7j1wnbq75ljd6lb0gcvtfouwo9acz Wikikamus:id/intensif 4 146424 376908 2026-09-28T09:19:50Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # secara bersungguh-sungguh dan berterusan dalam mengerjakan sesuatu sehingga memperoleh hasil yang optimum' 376908 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata sifat=== {{inti|id|kata sifat}} # secara bersungguh-sungguh dan berterusan dalam mengerjakan sesuatu sehingga memperoleh hasil yang optimum chhuyldmq8oay1c4dwd510y6kvgbymg Wikikamus:id/intensifikasi 4 146425 376909 2026-09-28T09:20:45Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # perihal meningkatkan kegiatan yang lebih hebat' 376909 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # perihal meningkatkan kegiatan yang lebih hebat o1dvswbn6se6m5n7ygy66hmm3wcp26i Wikikamus:id/intensional 4 146426 376910 2026-09-28T09:22:09Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata sifat=== {{inti|{{safesubst:ROOTPAGENAME}}|kata sifat}} # berdasarkan niat atau keinginan{{cp|id|Kesalahan prosedur itu harus dilihat dalam konteks apakah '''intensional''' atau tanpa niat.|Kesalahan prosedur itu harus dilihat dalam konteks sama ada disengajakan atau tidak.}}' 376910 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata sifat=== {{inti|id|kata sifat}} # berdasarkan niat atau keinginan{{cp|id|Kesalahan prosedur itu harus dilihat dalam konteks apakah '''intensional''' atau tanpa niat.|Kesalahan prosedur itu harus dilihat dalam konteks sama ada disengajakan atau tidak.}} 0mptxngyn9yz0abasdg42353x0zalrm Wikikamus:id/intensitas 4 146427 376911 2026-09-28T09:22:53Z Rachmat04 3001 Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{safesubst:ROOTPAGENAME}}}}== ===Kata nama=== {{inti|{{safesubst:ROOTPAGENAME}}|kata nama}} # keadaan, tahap atau ukuran keintensifan' 376911 wikitext text/x-wiki ==Bahasa {{bahasa|id}}== ===Kata nama=== {{inti|id|kata nama}} # keadaan, tahap atau ukuran keintensifan tji2w39hsdag3wlktxn3zyly98635q9 bangko 0 146428 376912 2026-09-28T09:24:50Z Thurama 11516 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===Kata benda=== {{lb|ms|kata benda}} # {{lb|ms|Siak}} Bangku <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> ===Kata sifat=== {{lb|ms|kata sifat}} # {{lb|ms|Siak}} Tempat peristirahatan atau tempat duduk duduk <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> ===Kata benda=== {{lb|ms|kata benda}} # {{lb|ms|Siak}} Pohon Bakau <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Mel...' 376912 wikitext text/x-wiki ==Bahasa Melayu== ===Kata benda=== {{lb|ms|kata benda}} # {{lb|ms|Siak}} Bangku <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> ===Kata sifat=== {{lb|ms|kata sifat}} # {{lb|ms|Siak}} Tempat peristirahatan atau tempat duduk duduk <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> ===Kata benda=== {{lb|ms|kata benda}} # {{lb|ms|Siak}} Pohon Bakau <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> shse9szpqk71dy9qau1u70d3c3x4wac 376913 376912 2026-09-28T09:27:44Z Thurama 11516 376913 wikitext text/x-wiki ==Bahasa Melayu== {{lb|ms|kata benda}} # {{lb|ms|Siak}} Bangku {{lb|ms|kata sifat}} # {{lb|ms|Siak}} Tempat peristirahatan atau tempat duduk duduk {{lb|ms|kata benda}} # {{lb|ms|Siak}} Pohon Bakau <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> h6mdc6xz699tatr8dcxghlc4wn2s47t Wikikamus:ms/Songkek 4 146429 376914 2026-09-28T09:32:24Z Thurama 11516 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===Kata nama=== {{inti|ms|kata nama}} # {{lb|ms|Pekanbaru}} Kain tenunan <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai-->' 376914 wikitext text/x-wiki ==Bahasa Melayu== ===Kata nama=== {{inti|ms|kata nama}} # {{lb|ms|Pekanbaru}} Kain tenunan <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> g94ozdrvhq7iwinqjnk580f4xb41e2f Wikikamus:ms/Tanjak 4 146430 376915 2026-09-28T09:40:54Z Thurama 11516 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===Kata nama=== {{inti|ms|kata nama}} # {{lb|ms|Pekanbaru}} Menanjak; Naik; Menjulang keatas. Penutup kepala tradisional pria yang dipakai oleh sultan, pangeran, dan kaum bangsawan sebagai simbol kehormatan, wibawa, serta jati diri. <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai-->' 376915 wikitext text/x-wiki ==Bahasa Melayu== ===Kata nama=== {{inti|ms|kata nama}} # {{lb|ms|Pekanbaru}} Menanjak; Naik; Menjulang keatas. Penutup kepala tradisional pria yang dipakai oleh sultan, pangeran, dan kaum bangsawan sebagai simbol kehormatan, wibawa, serta jati diri. <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> 2lfuzsg8728oxn7fxh3k7ztiif8qh10 Wikikamus:ms/Ba'a 4 146431 376916 2026-09-28T09:48:07Z Thurama 11516 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===Kata sifat=== {{inti|ms|kata sifat}} # {{lb|ms|Pekanbaru}} bagaimana <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai-->' 376916 wikitext text/x-wiki ==Bahasa Melayu== ===Kata sifat=== {{inti|ms|kata sifat}} # {{lb|ms|Pekanbaru}} bagaimana <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> 86ktq4x8bzmhwlgkdssiqh06r30z3t6 Wikikamus:ms/Terkarang 4 146432 376917 2026-09-28T09:55:56Z Thurama 11516 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===Kata nama=== {{inti|ms|kata nama}} # {{lb|ms|Pekanbaru}} Dikarang; dirangkai <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|buku iko terkarang oleh.<!--Ganti dengan contoh ayat dalam bahasa Melayu Pekanbaru-->|buku ini dikarang oleh.<!--Ganti dengan terjemahan contoh ayat dalam Bahasa Melayu Piawai-->}}' 376917 wikitext text/x-wiki ==Bahasa Melayu== ===Kata nama=== {{inti|ms|kata nama}} # {{lb|ms|Pekanbaru}} Dikarang; dirangkai <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|buku iko terkarang oleh.<!--Ganti dengan contoh ayat dalam bahasa Melayu Pekanbaru-->|buku ini dikarang oleh.<!--Ganti dengan terjemahan contoh ayat dalam Bahasa Melayu Piawai-->}} ry4cvec1k8cigg0y4ljwgyolc2dzny5 Wikikamus:ms/Kemojo 4 146433 376918 2026-09-28T09:57:58Z Thurama 11516 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===Kata benda=== {{inti|ms|kata benda}} # {{lb|ms|Pekanbaru}} Kamboja; bunga kamboja<!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai-->' 376918 wikitext text/x-wiki ==Bahasa Melayu== ===Kata benda=== {{inti|ms|kata benda}} # {{lb|ms|Pekanbaru}} Kamboja; bunga kamboja<!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> 9ruefayl20i2g7ebd9l4hzqmmsgj2rc Wikikamus:ms/Babezo 4 146434 376919 2026-09-28T11:19:51Z Thurama 11516 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===Kata sifat=== {{inti|ms|kata sifat}} # {{lb|ms|Pekanbaru}} berbeda <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai-->' 376919 wikitext text/x-wiki ==Bahasa Melayu== ===Kata sifat=== {{inti|ms|kata sifat}} # {{lb|ms|Pekanbaru}} berbeda <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> j2gnwsshm0yppu8muq1e1nyrhytyied Wikikamus:ms/Anduang 4 146435 376920 2026-09-28T11:22:20Z Thurama 11516 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===Kata sifat=== {{inti|ms|kata sifat}} # {{lb|ms|Pekanbaru}} ibu <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai-->' 376920 wikitext text/x-wiki ==Bahasa Melayu== ===Kata sifat=== {{inti|ms|kata sifat}} # {{lb|ms|Pekanbaru}} ibu <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> 3y7hq1yy8s62xysrlgtdt2qvlw3zgj7 Wikikamus:ms/Pawako 4 146436 376921 2026-09-28T11:25:27Z Thurama 11516 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===Kata nama=== {{inti|ms|kata nama}} # {{lb|ms|Pekanbaru}} kepala pengurus kota <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai-->' 376921 wikitext text/x-wiki ==Bahasa Melayu== ===Kata nama=== {{inti|ms|kata nama}} # {{lb|ms|Pekanbaru}} kepala pengurus kota <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> sguhyrric8drh2jsvwd6snkji528kc4 Wikikamus:ms/Kuau 4 146437 376922 2026-09-28T11:32:47Z Thurama 11516 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===Kata nama=== {{inti|ms|kata nama}} # {{lb|ms|Pekanbaru}} nama pohon, pohon kuau<!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai-->' 376922 wikitext text/x-wiki ==Bahasa Melayu== ===Kata nama=== {{inti|ms|kata nama}} # {{lb|ms|Pekanbaru}} nama pohon, pohon kuau<!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> n1mib9j5ni2af7b20dnqb6bxnd9i1ww Wikikamus:ms/Tobek 4 146438 376923 2026-09-28T11:34:09Z Thurama 11516 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===Kata nama=== {{inti|ms|kata nama}} # {{lb|ms|Pekanbaru}} kolam; biasanya untuk ikan<!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|Contoh ayat.<!--Ganti dengan contoh ayat dalam bahasa Melayu Pekanbaru-->|Terjemahan.<!--Ganti dengan terjemahan contoh ayat dalam Bahasa Melayu Piawai-->}}' 376923 wikitext text/x-wiki ==Bahasa Melayu== ===Kata nama=== {{inti|ms|kata nama}} # {{lb|ms|Pekanbaru}} kolam; biasanya untuk ikan<!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|Contoh ayat.<!--Ganti dengan contoh ayat dalam bahasa Melayu Pekanbaru-->|Terjemahan.<!--Ganti dengan terjemahan contoh ayat dalam Bahasa Melayu Piawai-->}} ol8dajqhh52n91z0zk3sn9mjr3ckhmj Wikikamus:ms/Siko 4 146439 376924 2026-09-28T11:35:24Z Thurama 11516 Mencipta laman baru dengan kandungan '==Bahasa Melayu== ===Kata kerja=== {{inti|ms|kata kerja}} # {{lb|ms|Pekanbaru}} sini; disini <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|siko dulu ayat.<!--Ganti dengan contoh ayat dalam bahasa Melayu Pekanbaru-->|kesini lah.<!--Ganti dengan terjemahan contoh ayat dalam Bahasa Melayu Piawai-->}}' 376924 wikitext text/x-wiki ==Bahasa Melayu== ===Kata kerja=== {{inti|ms|kata kerja}} # {{lb|ms|Pekanbaru}} sini; disini <!--Ganti dengan erti kata yang dimasukkan dalam Bahasa Melayu Piawai--> #: {{cp|ms|siko dulu ayat.<!--Ganti dengan contoh ayat dalam bahasa Melayu Pekanbaru-->|kesini lah.<!--Ganti dengan terjemahan contoh ayat dalam Bahasa Melayu Piawai-->}} 7yf5fgfbwpz3whkottjoas3p6dtn252