ဝိက်ရှေန်နရဳ
mnwwiktionary
https://mnw.wiktionary.org/wiki/%E1%80%9D%E1%80%AD%E1%80%80%E1%80%BA%E1%80%9B%E1%80%BE%E1%80%B1%E1%80%94%E1%80%BA%E1%80%94%E1%80%9B%E1%80%B3:%E1%80%99%E1%80%AF%E1%80%80%E1%80%BA%E1%80%9C%E1%80%AD%E1%80%80%E1%80%BA%E1%80%90%E1%80%99%E1%80%BA
MediaWiki 1.47.0-wmf.11
case-sensitive
မဳဒဳယာ
တၟေင်
ဓရီုကျာ
ညးလွပ်
ညးလွပ် ဓရီုကျာ
ဝိက်ရှေန်နရဳ
ဝိက်ရှေန်နရဳ ဓရီုကျာ
ဝှာင်
ဝှာင် ဓရီုကျာ
မဳဒဳယာဝဳကဳ
မဳဒဳယာဝဳကဳ ဓရီုကျာ
ထာမ်ပလိက်
ထာမ်ပလိက် ဓရီုကျာ
ရီု
ရီု ဓရီုကျာ
ကဏ္ဍ
ကဏ္ဍ ဓရီုကျာ
အဆက်လက္ကရဴ
အဆက်လက္ကရဴ ဓရီုကျာ
ကာရန်
ကာရန် ဓရီုကျာ
အဘိဓာန်
အဘိဓာန် ဓရီုကျာ
ဗီုပြၚ်သိုၚ်တၟိ
ဗီုပြၚ်သိုၚ်တၟိ ဓရီုကျာ
TimedText
TimedText talk
မဝ်ဂျူ
မဝ်ဂျူ ဓရီုကျာ
Event
Event talk
မဝ်ဂျူ:documentation
828
639
399030
398388
2026-07-17T13:43:14Z
咽頭べさ
33
399030
Scribunto
text/plain
local export = {}
local array_module = "Module:array"
local debug_track_module = "Module:debug/track"
local frame_module = "Module:frame"
local fun_is_callable_module = "Module:fun/isCallable"
local languages_module = "Module:languages"
local links_module = "Module:links"
local load_module = "Module:load"
local module_categorization_module = "Module:module categorization"
local number_list_show_module = "Module:number list/show"
local chemical_element_list_show_module = "Module:chemical element list/show"
local pages_module = "Module:pages"
local parameters_module = "Module:parameters"
local scripts_module = "Module:scripts"
local string_endswith_module = "Module:string/endswith"
local string_gline_module = "Module:string/gline"
local string_insert_module = "Module:string/insert"
local string_startswith_module = "Module:string/startswith"
local string_utilities_module = "Module:string utilities"
local template_parser_module = "Module:template parser"
local title_exists_module = "Module:title/exists"
local title_new_title_module = "Module:title/newTitle"
local concat = table.concat
local error = error
local full_url = mw.uri.fullUrl
local get_current_title = mw.title.getCurrentTitle
local insert = table.insert
local ipairs = ipairs
local list_to_text = mw.text.listToText
local new_message = mw.message.new
local pcall = pcall
local require = require
local tonumber = tonumber
local tostring = tostring
local type = type
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
local function Array(...)
Array = require(array_module)
return Array(...)
end
local function categorize_module(...)
categorize_module = require(module_categorization_module).categorize
return categorize_module(...)
end
local function debug_track(...)
debug_track = require(debug_track_module)
return debug_track(...)
end
local function endswith(...)
endswith = require(string_endswith_module)
return endswith(...)
end
local function expand_template(...)
expand_template = require(frame_module).expandTemplate
return expand_template(...)
end
local function find_templates(...)
find_templates = require(template_parser_module).find_templates
return find_templates(...)
end
local function full_link(...)
full_link = require(links_module).full_link
return full_link(...)
end
local function get_lang(...)
get_lang = require(languages_module).getByCode
return get_lang(...)
end
local function get_pagetype(...)
get_pagetype = require(pages_module).get_pagetype
return get_pagetype(...)
end
local function get_script(...)
get_script = require(scripts_module).getByCode
return get_script(...)
end
local function gline(...)
gline = require(string_gline_module)
return gline(...)
end
local function is_callable(...)
is_callable = require(fun_is_callable_module)
return is_callable(...)
end
local function is_documentation(...)
is_documentation = require(pages_module).is_documentation
return is_documentation(...)
end
local function is_sandbox(...)
is_sandbox = require(pages_module).is_sandbox
return is_sandbox(...)
end
local function new_title(...)
new_title = require(title_new_title_module)
return new_title(...)
end
local function number_list_show_table(...)
number_list_show_table = require(number_list_show_module).table
return number_list_show_table(...)
end
local function chemical_element_list_show_table(...)
chemical_element_list_show_table = require(chemical_element_list_show_module).table
return chemical_element_list_show_table(...)
end
local function preprocess(...)
preprocess = require(frame_module).preprocess
return preprocess(...)
end
local function process_params(...)
process_params = require(parameters_module).process
return process_params(...)
end
local function safe_load_data(...)
safe_load_data = require(load_module).safe_load_data
return safe_load_data(...)
end
local function split(...)
split = require(string_utilities_module).split
return split(...)
end
local function startswith(...)
startswith = require(string_startswith_module)
return startswith(...)
end
local function string_insert(...)
string_insert = require(string_insert_module)
return string_insert(...)
end
local function title_exists(...)
title_exists = require(title_exists_module)
return title_exists(...)
end
local function ugsub(...)
ugsub = require(string_utilities_module).gsub
return ugsub(...)
end
local function umatch(...)
umatch = require(string_utilities_module).match
return umatch(...)
end
local skins = {
["common"] = "",
["vector"] = "Vector",
["monobook"] = "Monobook",
["cologneblue"] = "Cologne Blue",
["modern"] = "Modern",
}
local function track(page)
debug_track("documentation/" .. page)
return true
end
local function compare_pages(page1, page2, text)
return "[" .. tostring(
full_url("Special:ComparePages", { page1 = page1, page2 = page2 }))
.. " " .. text .. "]"
end
-- Avoid transcluding [[Module:languages/cache]] everywhere.
local lang_cache = setmetatable({}, {
__index = function(self, k)
return require("မဝ်ဂျူ:languages/cache")[k]
end
})
local function zh_link(word)
return full_link {
lang = lang_cache.zh,
term = word
}
end
local function make_languages_data_documentation(title, cats, division)
local doc_template, module_cat
if endswith(division, "/extra") then
division = division:sub(1, -7)
doc_template = "language extradata documentation"
module_cat = "စရၚ်မဝ်ဂျူအရေဝ်ဘာသာရပ်စပ်အပဵုဂမၠိုၚ်"
else
doc_template = "language data documentation"
module_cat = "မဝ်ဂျူစရၚ်အရေဝ်ဘာသာဂမၠိုၚ်"
end
local sort_key
if division == "exceptional" then
sort_key = "x"
else
sort_key = division:gsub("/", "")
end
cats:insert(module_cat .. "|" .. sort_key)
return {
title = doc_template
}
end
local function make_Unicode_data_documentation(title, cats)
local subpage, first_three_of_code_point
= title.fullText:match("^မဝ်ဂျူ:Unicode data/([^/]+)/(%x%x%x)$")
if subpage == "names" or subpage == "images" or subpage == "emoji images" then
local low, high =
tonumber(first_three_of_code_point .. "000", 16),
tonumber(first_three_of_code_point .. "FFF", 16)
local text, text_type
if subpage == "names" then
text_type = "titles of images"
elseif subpage == "images" then
text_type = "titles of images"
elseif subpage == "emoji images" then
text_type = "emoji-style images"
end
text = string.format(
"This data module contains the " .. text_type .. " of " ..
"[[Appendix:Unicode|Unicode]] code points within the range U+%04X to U+%04X.",
low, high)
if subpage == "images" and safe_load_data("Module:Unicode data/emoji images/" .. first_three_of_code_point) then
text = text ..
" This list includes the text variants of emojis. For the list of emoji variants of those characters, see [[Module:Unicode data/emoji images/" ..
first_three_of_code_point .. "]]."
elseif subpage == "emoji images" then
text = text ..
" For text-style images, see [[Module:Unicode data/images/" .. first_three_of_code_point .. "]]."
end
return text
end
end
local function insert_lang_data_module_cats(cats, langcode, overall_data_module_cat)
local lang = lang_cache[langcode]
if lang then
local langname
if lang._fullCode then
langname = lang_cache[lang._fullCode]:getCanonicalName()
else
langname = lang:getCanonicalName()
end
cats:insert(overall_data_module_cat .. "|" .. langname)
cats:insert("မဝ်ဂျူ" .. langname .. "ဂမၠိုၚ်")
cats:insert("စရၚ်မဝ်ဂျူ" .. langname .. "ဂမၠိုၚ်")
return lang, langname
end
end
--[=[
This provides categories and documentation for various data modules, so that [[Category:Uncategorized modules]] isn't
unnecessarily cluttered. It is a list of tables, each of which have the following possible fields:
`regex` (required): A Lua pattern to match the module's title. If it matches, the data in this entry will be used.
Any captures in the pattern can by referenced in the `cat` field using %1 for the first capture, %2 for the
second, etc. (often used for creating the sortkey for the category). In addition, the captures are passed to the
`process` function as the third and subsequent parameters.
`process` (optional): This may be a function or a string. If it is a function, it is called as follows:
`process(TITLE, CATS, CAPTURE1, CAPTURE2, ...)`
where:
* TITLE is a title object describing the module's title; see
[https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Title_objects].
* CATS is an array object (see [[Module:array]]) of categories that the module will be added to.
* CAPTURE1, CAPTURE2, ... contain any captures in the `regex` field.
The return value of `process` should either be a string (which will be used as the module's documentation), or a
table specifying the name of a template to expand to get the documentation, along with the arguments to that
template. In the latter format, the template name (bare, without the "Template:" prefix) should be in the `title`
field, and any arguments should be in `args; in this case, the template name will be listed above the generated
documentation as the source of the documentation, along with an edit button to edit the template's contents.
If, however, the return value of the `process` function is a string, any template invocations will be expanded
using frame:preprocess(), and [[Module:documentation]] will be listed as the source of the documentation.
If `process` itself is a string rather than a function, it should name a submodule under
[[Module:documentation/functions/]] which returns a function, of the same type as described above. This submodule
will be specified as the source of the documentation (unless it returns a table naming a template to expand to get
the documentation, as described above).
If `process` is omitted entirely, the module will have no documentation.
`cat` (optional): A string naming the category into which the module should be placed, or a list of such strings.
Captures specified in `regex` may be referenced in this string using %1 for the first capture, %2 for the second,
etc. It is also possible to add categories in the `process` function by inserting them into the passed-in CATS
array (the second parameter).
]=]
local module_regex = {
{
regex = "^မဝ်ဂျူ:languages/data/(3/%l/extra)$",
process = make_languages_data_documentation,
},
{
regex = "^မဝ်ဂျူ:languages/data/(3/%l)$",
process = make_languages_data_documentation,
},
{
regex = "^မဝ်ဂျူ:languages/data/(2/extra)$",
process = make_languages_data_documentation,
},
{
regex = "^မဝ်ဂျူ:languages/data/(2)$",
process = make_languages_data_documentation,
},
{
regex = "^မဝ်ဂျူ:languages/data/(exceptional/extra)$",
process = make_languages_data_documentation,
},
{
regex = "^မဝ်ဂျူ:languages/data/(exceptional)$",
process = make_languages_data_documentation,
},
{
regex = "^မဝ်ဂျူ:languages/.+$",
cat = "မဝ်ဂျူအရေဝ်ဘာသာကဵုအက္ခရ်ဂမၠိုၚ်",
},
{
regex = "^မဝ်ဂျူ:scripts/.+$",
cat = "မဝ်ဂျူအရေဝ်ဘာသာကဵုအက္ခရ်ဂမၠိုၚ်",
},
{
regex = "^မဝ်ဂျူ:data tables/data..?.?.?$",
cat = "နိဿဲပါ်ခြာမဝ်ဂျူစရၚ်အၚ်ဂမၠိုၚ်",
},
{
regex = "^မဝ်ဂျူ:zh/data/dial%-pron/.+$",
cat = "စရၚ်မဝ်ဂျူဆေၚ်စပ်ကဵုပ္တိတ်ရမျာၚ်အရေဝ်တၞဟ်ခြာဘာသာကြုက်ဂမၠိုၚ်",
process = "zh dial or syn",
},
{
regex = "^မဝ်ဂျူ:zh/data/dial%-syn/.+$",
cat = "စရၚ်မဝ်ဂျူအရေဝ်တၞဟ်ခြာအဓိပ္ပာဲတုပ်နကဵုဘာသာကြုက်ဂမၠိုၚ်",
process = "zh dial or syn",
},
{
regex = "^မဝ်ဂျူ:zh/data/glyph%-data/.+$",
cat = "စရၚ်မဝ်ဂျူဗျဉ်ကြုက်ဗီုပြၚ်မဆေၚ်စပ်ကဵုဝၚ်ဂမၠိုၚ်",
process = function(title, cats)
local character = title.fullText:match("^မဝ်ဂျူ:zh/data/glyph%-data/(.+)")
if character then
return ("မဝ်ဂျူတဏအ်မထိၚ်ဒဝ်လဝ်စရၚ်လ္တူမဆေၚ်စပ်ကဵုဝၚ်ဗီုပြၚ်ဗျဉ်ကြုက်နကဵုဝေါဟာ %s။")
:format(zh_link(character))
end
end,
},
{
regex = "^မဝ်ဂျူ:zh/data/ltc%-pron/(.+)$",
cat = "စရၚ်ပတိတ်ရမျာၚ်မဝ်ဂျူကြုက်လဒေါဝ်ဂမၠိုၚ်|%1",
process = "zh data",
},
{
regex = "^မဝ်ဂျူ:zh/data/och%-pron%-BS/(.+)$",
cat = "မဝ်ဂျူဒေတာဗွဟ်ရမ္သာၚ်(Baxter-Sagart)ကြုက်တြေံဂမၠိုၚ်|%1",
process = "zh data",
},
{
regex = "^မဝ်ဂျူ:zh/data/och%-pron%-ZS/(.+)$",
cat = "စရၚ်မဝ်ဂျူကြုက်တြေံဗီုပတိတ်ရမျာၚ် (Zhengzhang) ဂမၠိုၚ်|%1",
process = "zh data",
},
{
-- capture rest of zh/data submodules
regex = "^မဝ်ဂျူ:zh/data/(.+)$",
cat = "စရၚ်မဝ်ဂျူကြုက်ဂမၠိုၚ်|%1",
},
{
regex = "^မဝ်ဂျူ:mul/guoxue%-data/cjk%-?(.*)$",
process = "guoxue-data",
},
{
regex = "^မဝ်ဂျူ:Unicode data/(.+)$",
cat = "မဝ်ဂျူစရၚ်ယူနဳကုတ်ဂမၠိုၚ်|%1",
process = make_Unicode_data_documentation,
},
{
regex = "^မဝ်ဂျူ:number list/data/(.+)$",
process = function(title, cats, lang_code)
local lang = insert_lang_data_module_cats(cats, lang_code, "မဝ်ဂျူစရၚ်ဂၞန်ဂမၠိုၚ်")
if lang then
return ("This module contains data on various types of numbers in %s.\n%s")
:format(lang:makeCategoryLink(), number_list_show_table() or "")
end
end,
},
{
regex = "^မဝ်ဂျူ:chemical element list/data/(.+)$",
process = function(title, cats, lang_code)
local lang = insert_lang_data_module_cats(cats, lang_code, "မဝ်ဂျူဒေတာလက္ချဏ်ဝိသေသဆေၚ်စပ်ကဵုကွတ်ဗေဒဓါတုဂမၠိုၚ်")
if lang then
return ("This module contains data on chemical elements in %s.\n%s")
:format(lang:makeCategoryLink(), chemical_element_list_show_table() or "")
end
end,
},
{
regex = "^မဝ်ဂျူ:accel/(.+)$",
process = function(title, cats)
local lang_code = title.subpageText
local lang = lang_cache[lang_code]
if lang then
cats:insert("မဝ်ဂျူ" .. lang:getCanonicalName() .. "ဂမၠိုၚ်|accel")
cats:insert(("မဝ်ဂျူဒကုတ်ဍောတ်အေက်သာယ်ဂမၠိုၚ်|%s"):format(lang:getCanonicalName()))
return ("This module contains new entry creation rules for %s; see [[WT:ACCEL]] for an overview, and [[Module:accel]] for information on creating new rules.")
:format(lang:makeCategoryLink())
end
end,
},
{
regex = "^မဝ်ဂျူ:inc%-ash/dial/data/(.+)$",
cat = "မဝ်ဂျူအခါန်ကာန် ပရာကရေတ်ဂမၠိုၚ်|%1",
process = function(title, cats)
local word = title.fullText:match("^မဝ်ဂျူ:inc%-ash/dial/data/(.+)$")
if word then
local lang = lang_cache["inc-ash"]
return ("This module contains data on the pronunciation of %s in dialects of %s.")
:format(full_link({ term = word, lang = lang }, "term"),
lang:makeCategoryLink())
end
end,
},
{
regex = "^.+%-translit$",
process = "translit",
},
{
regex = "^မဝ်ဂျူ:form of/lang%-data/(.+)$",
process = function(title, cats, lang_code)
local lang, langname = insert_lang_data_module_cats(cats, lang_code, "စရၚ်မဝ်ဂျူကွက်ဒက်စုတ်သမ္တီအရေဝ်ဘာသာချိုတ်ချိုတ်ပၠိုတ်ပၠိုတ်ဂမၠိုၚ်")
if lang then
-- FIXME, display more info.
return "This module contains language-specific form-of data (tags, shortcuts, base lemma params. etc.) for " ..
langname .. "."
end
end
},
{
regex = "^မဝ်ဂျူ:labels/data/lang/(.+)$",
process = function(title, cats, lang_code)
local lang = insert_lang_data_module_cats(cats, lang_code, "စရၚ်မဝ်ဂျူကွက်ဒက်စုတ်သမ္တီအရေဝ်ဘာသာချိုတ်ချိုတ်ပၠိုတ်ပၠိုတ်ဂမၠိုၚ်")
if lang then
return {
title = "label language-specific data documentation",
args = { [1] = lang_code },
}
end
end
},
{
regex = "^မဝ်ဂျူ:category tree/lang/(.+)$",
process = function(title, cats, lang_code)
local lang, langname = insert_lang_data_module_cats(cats, lang_code, "တၞံမဝ်ဂျူဂၠေံဂၠေံဂမၠိုၚ်/ကဏ္ဍဒကုတ်တံလိက်")
if lang then
return "This module handles generating the descriptions and categorization for " ..
langname .. " category pages "
.. "of the format \"" .. langname .. " LABEL\" where LABEL can be any text. Examples are "
.. "[[:Category:Bulgarian conjugation 2.1 verbs]] and [[:Category:Russian velar-stem neuter-form nouns]]. "
.. "This module is part of the category tree system, which is a general framework for generating the "
.. "descriptions and categorization of category pages.\n\n"
.. "For more information, see [[Module:category tree/lang/documentation]].\n\n"
.. "'''NOTE:''' If you add a new language-specific module, you must add the language code to the "
.. "list at the top of [[Module:category tree/lang]] in order for the module to be recognized."
end
end
},
{
regex = "^မဝ်ဂျူ:category tree/topic/(.+)$",
process = function(title, cats, submodule)
cats:insert("ကဏ္ဍတၞံစရၚ်မဝ်ဂျူဂမၠိုၚ်/ပရောပရာသဳကၠဳ| ")
return {
title = "topic cat data submodule documentation"
}
end
},
{
regex = "^မဝ်ဂျူ:category tree/(.+)$",
process = function(title, cats, submodule)
cats:insert("တၞံကဏ္ဍစရၚ်မဝ်ဂျူဂမၠိုၚ်| ")
return {
title = "category tree data submodule documentation"
}
end
},
{
regex = "^မဝ်ဂျူ:ja/data/(.+)$",
cat = "စရၚ်မဝ်ဂျူဂျပါန်ဂမၠိုၚ်|%1",
},
{
regex = "^မဝ်ဂျူ:fi%-dialects/data/feature/Kettunen1940 ([0-9]+)$",
cat = "စရၚ်မဝ်ဂျူအရေဝ်တၞဟ်ခြာနကဵုဘာသာဖေန်လာန်ဂမၠိုၚ်|%1",
process = function(title, cats, shard)
return "This module contains shard " .. shard .. " of the online version of Lauri Kettunen's 1940 work " ..
"''Suomen murteet III A. Murrekartasto'' (\"Finnish dialects III A: Dialect atlas\"). " ..
"It was imported and converted from urn:nbn:fi:csc-kata20151130145346403821, published by the " ..
"''Kotimaisten kielten keskus'' under the CC BY 4.0 license."
end
},
{
regex = "^မဝ်ဂျူ:fi%-dialects/data/feature/(.+)",
cat = "စရၚ်မဝ်ဂျူအရေဝ်တၞဟ်ခြာနကဵုဘာသာဖေန်လာန်ဂမၠိုၚ်|%1",
},
{
regex = "^မဝ်ဂျူ:fi%-dialects/data/word/(.+)",
cat = "စရၚ်မဝ်ဂျူအရေဝ်တၞဟ်ခြာနကဵုဘာသာဖေန်လာန်ဂမၠိုၚ်|%1",
},
{
regex = "^မဝ်ဂျူ:Swadesh/data/([%l-]+)$",
process = function(title, cats, lang_code)
local lang, langname = insert_lang_data_module_cats(cats, lang_code, "မဝ်ဂျူသွဳဒေါတ်ဂမၠိုၚ်")
if lang then
return "မဝ်ဂျူတဏအ်ဝွံ မဆက်ဆောံဆေၚ်စပ်ကဵုစရၚ်သွဳဒေါတ်နကဵုဝေါဟာတံမူလအပ္ဍဲဘာသာ" .. langname .. "ဂမၠိုၚ်။"
end
end
},
{
regex = "^မဝ်ဂျူ:Swadesh/data/([%l-]+)/([^/]*)$",
process = function(title, cats, lang_code, variety)
local lang, langname = insert_lang_data_module_cats(cats, lang_code, "မဝ်ဂျူသွဳဒေါတ်ဂမၠိုၚ်")
if lang then
local prefix = "မဝ်ဂျူတဏအ်ဝွံ မဆက်ဆောံဆေၚ်စပ်ကဵုစရၚ်သွဳဒေါတ်နကဵုဝေါဟာတံမူလအပ္ဍဲ "
local etym_lang = get_lang(variety, nil, "allow etym")
if etym_lang then
return ("%s %s သီုကဵုအရာနာနာသာ်နူ %sဂမၠိုၚ်။"):format(prefix, etym_lang:getCanonicalName(), langname)
end
local script = get_script(variety)
if script then
return ("သဵုကဵုအက္ခရ် %s %s %s ဂမၠိုၚ်။"):format(prefix, langname, script:getCanonicalName())
end
return ("%s %s သီုကဵုအရာနာနာသာ်နူ %sဂမၠိုၚ်။"):format(prefix, variety, langname)
end
end
},
{
regex = "^မဝ်ဂျူ:typing%-aids",
process = function(title, cats)
local data_suffix = title.fullText:match("^မဝ်ဂျူ:typing%-aids/data/(.+)$")
local sortkey
if data_suffix then
if data_suffix:find "^[%l-]+$" then
local lang = get_lang(data_suffix)
if lang then
sortkey = lang:getCanonicalName()
cats:insert("စရၚ်မဝ်ဂျူ" .. sortkey .. "ဂမၠိုၚ်")
end
elseif data_suffix:find "^%u%l%l%l$" then
local script = get_script(data_suffix)
if script then
sortkey = script:getCanonicalName()
cats:insert(script:getCategoryName())
end
end
cats:insert("စရၚ်မဝ်ဂျူမစုတ်ပၠောပ်ဗျဉ်ဂမၠိုၚ်|" .. (sortkey or data_suffix))
end
end,
},
{
regex = "^မဝ်ဂျူ:R:([%l-]+):(.+)$",
process = function(title, cats, lang_code, refname)
local lang = lang_cache[lang_code]
if lang then
cats:insert("မဝ်ဂျူ" .. lang:getCanonicalName() .. "ဂမၠိုၚ်|" .. refname)
cats:insert(("မဝ်ဂျူနိဿဲဂမၠိုၚ်|%s"):format(lang:getCanonicalName()))
return "မဝ်ဂျူတဏအ်ဝွံ မရပ်စပ်ဆေၚ်စပ်ကဵုထာမ်ပလိက်နိဿဲနကဵု {{temp|R:" .. lang_code .. ":" .. refname .. "}}ဂမၠိုၚ်။"
end
end,
},
{
regex = "^မဝ်ဂျူ:Quotations/([%l-]+)/?(.*)",
process = "Quotation",
},
{
regex = "^မဝ်ဂျူ:affix/lang%-data/([%l-]+)",
process = "affix lang-data",
},
{
regex = "^မဝ်ဂျူ:dialect synonyms/([%l-]+)$",
process = function(title, cats, lang_code)
local lang = lang_cache[lang_code]
if lang then
local langname = lang:getCanonicalName()
cats:insert("စရၚ်မဝ်ဂျူအရေဝ်တၞဟ်ခြာအဓိပ္ပာဲတုပ်ဂမၠိုၚ်|" .. langname)
cats:insert("စရၚ်မဝ်ဂျူအရေဝ်တၞဟ်ခြာအဓိပ္ပာဲတုပ်နကဵုဘာသာ" .. langname .. "ဂမၠိုၚ်| ")
return "မဝ်ဂျူတဏအ်ဝွံ မဆက်ဆောံစရၚ်လ္တူအရာနာနာသာ်ဗွဲတၟေၚ်ဆေၚ်စပ်ကဵုဘာသာ" .. langname .. "၊ သွက်မရပ်စပ်နူကဵု " ..
"{{tl|ဝေါဟာဇာတိအဓိပ္ပါဲတုပ်ဂမၠိုၚ်}}။ ဆေၚ်စပ်ကဵုဝေါဟာမဆက်ဆောံအဓိပ္ပါဲတုပ်အဇေတ်အဍာံဂှ်မနွံဒၟံၚ်ပ္ဍဲမဝ်ဂျူတန်ဍောတ်ဂမၠိုၚ်။\n\n" ..
"==== Language data module structure ====\n" ..
"* <code>export.title</code> — optional; table title template (e.g. \"Regional synonyms of %s\").\n" ..
"* <code>export.columns</code> — optional; list of column headers for location hierarchy (e.g. {\"Dialect group\", \"Dialect\", \"Location\"}).\n" ..
"* <code>export.notes</code> — optional; table of note keys to text.\n" ..
"* <code>export.sources</code> — optional; table of source keys to text.\n" ..
"* <code>export.note_aliases</code> — optional; alias map for notes.\n" ..
"* <code>export.varieties</code> — required; nested table of variety nodes. Each node must have <code>name</code>; array part holds children. Node keys can include <code>text_display</code>, <code>color</code>, <code>code</code>, <code>wikidata</code>, <code>lat</code>, <code>long</code>, and language-specific keys (e.g. <code>persian</code>, <code>armenian</code>, <code>chinese</code>).\n\n" ..
expand_template({ title = 'dial syn', args = { lang_code, ["demo mode"] = "y" } })
end
end,
},
{
regex = "^မဝ်ဂျူ:dialect synonyms/([%l-]+)/([^/]+)$",
process = function(title, cats, lang_code, term)
local lang = lang_cache[lang_code]
if lang then
local langname = lang:getCanonicalName()
cats:insert("စရၚ်မဝ်ဂျူအရေဝ်တၞဟ်ခြာအဓိပ္ပာဲတုပ်ဂမၠိုၚ်|" .. langname)
cats:insert("စရၚ်မဝ်ဂျူအရေဝ်တၞဟ်ခြာအဓိပ္ပာဲတုပ်နကဵုဘာသာ" .. langname .. "ဂမၠိုၚ်|" .. term)
return ("%s\n\n%s"):format(
"==== Term/sense module structure ====\n" ..
"* <code>export.title</code> — optional; custom table title (e.g. \"Realization of 'strong R' between vowels\"). Overrides the language default.\n" ..
"* <code>export.meaning</code> — optional; meaning/gloss (alternative to <code>gloss</code>).\n" ..
"* <code>export.gloss</code> — optional; short meaning for the table.\n" ..
"* <code>export.note</code> — optional; single note key or string, or list of note keys.\n" ..
"* <code>export.notes</code> — optional; list of note keys.\n" ..
"* <code>export.source</code> / <code>export.sources</code> — optional; source keys.\n" ..
"* <code>export.last_column</code> — optional; label for the data column (default \"Words\"; e.g. \"Realization\").\n" ..
"* <code>export.syns</code> — required; table mapping variety/location names (keys from the language data module) to a list of term entries. Each entry can be a string or a table (e.g. <code>{ ipa = \"[ɽ]\" }</code> or <code>{ term = \"word\" }</code>).\n\n" ..
"Example (custom title and data column, IPA realizations):\n" ..
"<pre>\nlocal export = {}\n\nexport.title = \"Realization of 'strong R' between vowels\"\n" ..
"export.meaning = \"\"\nexport.note = \"realization of 'strong R' between vowels\"\n" ..
"export.last_column = \"Realization\"\n\nexport.syns = {\n\t[\"ALERS-158\"] = { { ipa = \"[ɽ]\" } },\n\t[\"ALERS-175\"] = { { ipa = \"[x]\" } },\n}\n\nreturn export\n</pre>\n\n",
expand_template({ title = 'dial syn', args = { lang_code, term } }))
end
end,
},
{
regex = "^မဝ်ဂျူ:dialect synonyms/([%l-]+)/([^/]+)/([^/]+)$",
process = function(title, cats, lang_code, term, id)
local lang = lang_cache[lang_code]
if lang then
local langname = lang:getCanonicalName()
cats:insert("စရၚ်မဝ်ဂျူအရေဝ်တၞဟ်ခြာအဓိပ္ပာဲတုပ်ဂမၠိုၚ်|" .. langname)
cats:insert("စရၚ်မဝ်ဂျူအရေဝ်တၞဟ်ခြာအဓိပ္ပာဲတုပ်နကဵုဘာသာ" .. langname .. "ဂမၠိုၚ်|" .. term)
return ("%s\n\n%s"):format(
"==== Term/sense module structure ====\n" ..
"* <code>export.title</code> — optional; custom table title (e.g. \"Realization of 'strong R' between vowels\"). Overrides the language default.\n" ..
"* <code>export.meaning</code> — optional; meaning/gloss (alternative to <code>gloss</code>).\n" ..
"* <code>export.gloss</code> — optional; short meaning for the table.\n" ..
"* <code>export.note</code> — optional; single note key or string, or list of note keys.\n" ..
"* <code>export.notes</code> — optional; list of note keys.\n" ..
"* <code>export.source</code> / <code>export.sources</code> — optional; source keys.\n" ..
"* <code>export.last_column</code> — optional; label for the data column (default \"Words\"; e.g. \"Realization\").\n" ..
"* <code>export.syns</code> — required; table mapping variety/location names (keys from the language data module) to a list of term entries. Each entry can be a string or a table (e.g. <code>{ ipa = \"[ɽ]\" }</code> or <code>{ term = \"word\" }</code>).\n\n" ..
"Example (custom title and data column, IPA realizations):\n" ..
"<pre>\nlocal export = {}\n\nexport.title = \"Realization of 'strong R' between vowels\"\n" ..
"export.meaning = \"\"\nexport.note = \"realization of 'strong R' between vowels\"\n" ..
"export.last_column = \"Realization\"\n\nexport.syns = {\n\t[\"ALERS-158\"] = { { ipa = \"[ɽ]\" } },\n\t[\"ALERS-175\"] = { { ipa = \"[x]\" } },\n}\n\nreturn export\n</pre>\n\n",
expand_template({ title = 'dial syn', args = { lang_code, term, id = id } }))
end
end,
},
{
regex = "^မဝ်ဂျူ:bibliography/data/([%l-]+)$",
process = function(title, cats, lang_code)
if lang_code == "preload" then
return 'Used as a base model for other languages when the button "create new language submodule" is clicked.'
end
local page = require(title.fullText).bib_page
if not page then
page = lang_cache[lang_code]:getCanonicalName()
if page then
cats:insert("မဝ်ဂျူ" .. page .. "ဂမၠိုၚ်")
end
end
cats:insert("မဝ်ဂျူနိဿဲဂမၠိုၚ်")
return "This module holds bibliographical data for " ..
page .. ". For the formatted bibliography see '''[[Appendix:Bibliography/" .. page .. "]]'''."
end,
},
}
function export.show(frame)
local boolean_default_false = { type = "boolean", default = false }
local args = process_params(frame.args, {
["hr"] = true,
["for"] = true,
["from"] = true,
["allowondoc"] = boolean_default_false, -- Don't throw an error if used on a documentation subpage.
["notsubpage"] = boolean_default_false,
["nodoc"] = boolean_default_false,
["nolinks"] = boolean_default_false, -- suppress all "Useful links"
["nosandbox"] = boolean_default_false, -- supress sandbox
})
local output = Array('\n<div class="documentation" style="display:block; clear:both">\n')
local cats = Array()
local nodoc = args.nodoc
if (not args.hr) or (args.hr == "above") then
output:insert("----\n")
end
local title = args["for"] and new_title(args["for"]) or get_current_title()
local doc_title = args.from ~= "-" and new_title(args.from or title.fullText .. '/documentation') or nil
local contentModel = title.contentModel
local pagetype, is_script_or_stylesheet = get_pagetype(title)
local preload, fallback_docs, doc_content, old_doc_title, user_name, skin_name, needs_doc
local doc_content_source = "မဝ်ဂျူ:documentation"
local auto_generated_cat_source
local cats_auto_generated = false
if not args.allowondoc and is_documentation(title) then
-- TODO: merge with {{documentation subpage}}, and choose behaviour based on the page type.
error("This template should not be used on a documentation page. Please use [[Template:documentation subpage]].")
elseif is_sandbox(title) then
local sandbox_ns = title.nsText
preload = ("ထာမ်ပလိက်:documentation/preload%s%sSandbox"):format(
sandbox_ns == "မဝ်ဂျူ" and sandbox_ns or "ထာမ်ပလိက်",
title.rootText:match("^ညးလွပ်:(.+)") and "ညးလွပ်" or ""
)
elseif pagetype:match("%f[%w]gadget%f[%W]") then
preload = "ထာမ်ပလိက်:documentation/preloadGadget"
elseif pagetype:match("%f[%w]script%f[%W]") then -- .js
if title.nsText == "မဳဒဳယာဝဳကဳ" then
preload = "ထာမ်ပလိက်:documentation/preloadMediaWikiJavaScript"
else
preload = "ထာမ်ပလိက်:documentation/preloadTemplate" -- XXX
if title.nsText == "ညးလွပ်" then
user_name = title.rootText
end
end
is_script_or_stylesheet = true
elseif pagetype:match("%f[%w]stylesheet%f[%W]") then -- .css
preload = "ထာမ်ပလိက်:documentation/preloadTemplate" -- XXX
if title.nsText == "User" then
user_name = title.rootText
end
is_script_or_stylesheet = true
elseif contentModel == "Scribunto" then -- Exclude pages in Module: which aren't Scribunto.
preload = "ထာမ်ပလိက်:documentation/preloadModule"
elseif pagetype:match("%f[%w]template%f[%W]") or pagetype:match("%f[%w]project%f[%W]") then
preload = "ထာမ်ပလိက်:documentation/preloadTemplate"
end
if doc_title and doc_title.isRedirect then
old_doc_title = doc_title
doc_title = doc_title.redirectTarget
end
output:insert("<dl class=\"plainlinks\" style=\"font-size: smaller;\">")
local function get_module_doc_and_cats(categories_only)
cats_auto_generated = true
local automatic_cats = nil
if user_name then
fallback_docs = "documentation/fallback/user module"
automatic_cats = { "မဝ်ဂျူကဠာဗ္တဳညးလွပ်ဂမၠိုၚ်" }
else
for _, data in ipairs(module_regex) do
local captures = { umatch(title.fullText, data.regex) }
if #captures > 0 then
local cat, process_function
if is_callable(data.process) then
process_function = data.process
elseif type(data.process) == "string" then
doc_content_source = "မဝ်ဂျူ:documentation/functions/" .. data.process
process_function = require(doc_content_source)
end
if process_function then
doc_content = process_function(title, cats, unpack(captures))
end
if type(doc_content) == "table" then
doc_content_source = doc_content.title and "ထာမ်ပလိက်:" .. doc_content.title or doc_content_source
doc_content = expand_template(doc_content)
elseif doc_content ~= nil then
doc_content = preprocess(doc_content)
end
cat = data.cat
if cat then
if type(cat) == "string" then
cat = { cat }
end
for _, c in ipairs(cat) do
insert(cats, (ugsub(title.fullText, data.regex, c)))
end
end
break
end
end
end
if title.subpageText == "ထာမ်ပလိက်" then
cats:insert("မဝ်ဂျူထာမ်ပလိက်အိန်တာဖှေတ်ဂမၠိုၚ်")
end
if automatic_cats then
for _, c in ipairs(automatic_cats) do
cats:insert(c)
end
end
if #cats == 0 then
local auto_cats = categorize_module(frame, "return raw", "noerror")
if #auto_cats > 0 then
auto_generated_cat_source = "မဝ်ဂျူ:module categorization"
end
for _, category in ipairs(auto_cats) do
cats:insert(category)
end
end
-- meaning module is not in user’s sandbox or one of many datamodule boring series
needs_doc = not categories_only and not (automatic_cats or doc_content or fallback_docs)
end
-- Override automatic documentation, if present.
if doc_title and doc_title.exists then
local cats_auto_generated_text = ""
if contentModel == "Scribunto" then
local doc_page_content = doc_title.content
-- Track then do nothing if there are uses of includeonly. The
-- pattern is slightly too permissive, but any false-positives are
-- obvious typos that should be corrected.
if doc_page_content:lower():match("</?includeonly%f[%s/>][^>]*>") then
track("module-includeonly")
else
-- Check for uses of {{module cat}}. find_templates treats the
-- input as transcluded by default (i.e. it parses the wikitext
-- which will be transcluded through to the module page).
local module_cat
for template in find_templates(doc_page_content) do
if template:get_name() == "module cat" then
module_cat = true
break
end
end
if not module_cat then
get_module_doc_and_cats("categories only")
auto_generated_cat_source = auto_generated_cat_source or doc_content_source
cats_auto_generated_text = " Categories were auto-generated by [[" ..
auto_generated_cat_source .. "]]. <sup>[[" ..
new_title(auto_generated_cat_source):fullUrl { action = "ပလေဝ်ဒါန်" } .. " ပလေဝ်ဒါန်]]</sup>"
end
end
end
output:insert(
"<dd><i style=\"font-size: larger;\">ပွမဗက် " ..
"[[ရီု:စရၚ်ထာမ်ပလိက်ကဵုမဝ်ဂျူဂမၠိုၚ်|လိက်စၟတ်သမ္တီ]]မချူလဝ်နကဵုခၞံဗဒှ်အပ္ဍဲ [[" ..
doc_title.fullText .. "]]အတေံ။ " .. "<sup>[[" .. doc_title:fullUrl { action = "ပလေဝ်ဒါန်" } .. " ပလေဝ်ဒါန်]]</sup>" ..
cats_auto_generated_text .. "</i></dd>")
else
if contentModel == "ထာမ်ပလိက်" then
get_module_doc_and_cats(false)
elseif title.nsText == "Template" then
--cats:insert("Uncategorized templates")
needs_doc = not (fallback_docs or nodoc)
elseif user_name and is_script_or_stylesheet then
skin_name = skins[title.text:sub(#title.rootText + 1):match("^/(%l+)%.[jc]ss?$")]
if skin_name then
fallback_docs = "documentation/fallback/user " .. contentModel
end
end
if doc_content then
output:insert(
"<dd><i style=\"font-size: larger;\">မဆေၚ်စပ်ကဵုပွမဗက်က္ကရဴ " ..
"[[ရီု:စရၚ်ထာမ်ပလိက်ကဵုမဝ်ဂျူဂမၠိုၚ်|လိက်စၟတ်သမ္တီမချူလဝ်]]ဂှ် " ..
"ကၠောန်ပ္တိတ်လဝ်နူကဵု [[" .. doc_content_source .. "]]။ <sup>[[" ..
new_title(doc_content_source):fullUrl { action = "ပလေဝ်ဒါန်" } ..
" ပလေဝ်ဒါန်]]</sup> </i></dd>")
elseif not nodoc then
if doc_title then
output:insert(
"<dd><i style=\"font-size: larger;\">" .. pagetype ..
" တဏအ်ဝွံဟွံမွဲကဵု[[ရီု:စရၚ်ထာမ်ပလိက်ကဵုမဝ်ဂျူဂမၠိုၚ်|လိက်စၟတ်သမ္တီမချူလဝ်နကဵုမုက်လိက်ဓမၠေံ]]။ " ..
(fallback_docs and "ဇကုမသ္ပမာန်နကဵု " or "သ္ပဂုန်တုဲ ") ..
"[" .. doc_title:fullUrl { action = "ပလေဝ်ဒါန်", preload = preload }
.. " ဍဵုခၞံဗဒှ်ဏံညိ]။</i></dd>\n")
else
output:insert(
"<dd><i style=\"font-size: larger; color: var(--wikt-palette-red-9,#FF0000);\">Unable to auto-generate " ..
"documentation for this " .. pagetype .. ".</i></dd>\n")
end
end
end
if startswith(title.fullText, "မဳဒဳယာဝဳကဳ:Gadget-") then
local is_gadget = false
for line in gline(new_title("မဳဒဳယာဝဳကဳ:Gadgets-definition").content) do
local gadget, items = line:match("^%*%s*(%a[%w_-]*)%[.-%]|(.+)$")
if not gadget then
gadget, items = line:match("^%*%s*(%a[%w_-]*)|(.+)$")
end
if gadget then
items = Array(split(items, "|"))
for i, item in ipairs(items) do
if title.fullText == ("မဳဒဳယာဝဳကဳ:Gadget-" .. item) then
is_gadget = true
output:insert("<dd> ''အက္ခရ်တဏအ်ဝွံဟွံသေၚ်ကဵုဒကုတ်ဆေၚ်စပ်ကဵု <code> လဵုဒှ်ဒှ်ရအဴ")
output:insert(gadget)
output:insert("</code> gadget ([")
output:insert(tostring(full_url("မဳဒဳယာဝဳကဳ:Gadgets-definition", { action = "ပလေဝ်ဒါန်" })))
output:insert(" edit definitions])'' <dl>")
output:insert("<dd> ''Description ([")
output:insert(tostring(full_url("မဳဒဳယာဝဳကဳ:Gadget-" .. gadget, { action = "ပလေဝ်ဒါန်" })))
output:insert(" ပလေဝ်ဒါန်])'': ")
output:insert(preprocess(new_message('Gadget-' .. gadget):plain()))
output:insert(" </dd>")
items:remove(i)
if #items > 0 then
for j, item in ipairs(items) do
items[j] = '[[မဳဒဳယာဝဳကဳ:Gadget-' .. item .. '|' .. item .. ']]'
end
output:insert("<dd> ''Other parts'': ")
output:insert(list_to_text(items))
output:insert("</dd>")
end
output:insert("</dl></dd>")
break
end
end
end
end
if not is_gadget then
output:insert("<dd> ''အက္ခရ်တဏအ်ဝွံဟွံသေၚ်ကဵုဒကုတ်ဆေၚ်စပ်ကဵု [")
output:insert(tostring(full_url("Special:Gadgets", { uselang = "mnw" })))
output:insert(' gadget] ([')
output:insert(tostring(full_url("MediaWiki:Gadgets-definition", { action = "ပလေဝ်ဒါန်" })))
output:insert(' ပလေဝ်ဒါန်ဝေါဟာအဓိပ္ပါဲဂမၠိုၚ်])လဵုဒှ်ဒှ်ရအဴ။</dd>')
-- else
-- cats:insert("Wiktionary gadgets")
end
end
if old_doc_title then
output:insert("<dd> ''Redirected from'' [")
output:insert(old_doc_title:fullUrl { redirect = "ဟွံ" })
output:insert(" ")
output:insert(old_doc_title.fullText)
output:insert("] ([")
output:insert(old_doc_title:fullUrl { action = "ပလေဝ်ဒါန်" })
output:insert(" ပလေဝ်ဒါန်])။</dd>\n")
end
if not args.nolinks then
local links = Array()
if title.isSubpage and not args.notsubpage then
links:insert("[[:" .. title.nsText .. ":" .. title.rootText .. "|မုက်လိက်တံရိုဟ်]]")
links:insert("[[Special:PrefixIndex/" .. title.nsText .. ":" .. title.rootText .. "/|တံရိုဟ်မုက်လိက်ဓမၠေံဂမၠိုၚ်]]")
else
links:insert("[[Special:PrefixIndex/" .. title.fullText .. "/|စရၚ်မုက်လိက်ဓမၠေံ]]")
end
links:insert(
"[" ..
tostring(full_url("တၟေၚ်:လေန်စၠောအ်နူလဵုရော/" .. title.fullText, { hidetrans = true, hideredirs = true })) ..
" လေန်ဂမၠိုၚ်]")
if contentModel ~= "Scribunto" then
links:insert(
"[" ..
tostring(full_url("တၟေၚ်:လေန်စၠောအ်နူလဵုရော/" .. title.fullText, { hidelinks = true, hidetrans = true })) ..
" မပြံၚ်လှာဲဂၠံၚ်ဍာဲဂမၠိုၚ်]")
end
if is_script_or_stylesheet then
if user_name then
links:insert("[[Special:MyPage" .. title.text:sub(#title.rootText + 1) .. "|ဒြပ်ဇကု]]")
end
else
links:insert(
"[" ..
tostring(full_url("တၟေၚ်:လေန်စၠောအ်နူလဵုရော/" .. title.fullText, { hidelinks = true, hideredirs = true })) ..
" ပရေၚ်မပံၚ်စပ်ဂမၠိုၚ်]")
end
if contentModel == "Scribunto" then
local is_testcases = title.isSubpage and title.subpageText == "testcases"
local without_subpage = title.nsText .. ":" .. title.baseText
if is_testcases then
links:insert("[[:" .. without_subpage .. "|tested module]]")
else
links:insert("[[" .. title.fullText .. "/testcases|testcases]]")
end
if user_name then
links:insert("[[ညးလွပ်:" .. user_name .. "|မုက်လိက်ညးလွပ်]]")
links:insert("[[ညးလွပ် ဓရီုကျာ:" .. user_name .. "|မုက်လိက်ဓရီုကျာညးလွပ်]]")
links:insert("[[Special:PrefixIndex/ညးလွပ်:" .. user_name .. "/|လ္ဂာံညးလွပ်ဂမၠိုၚ်]]")
-- If sandbox module, add a link to the module that this is a sandbox of.
-- Exclude user sandbox modules like [[User:Dine2016/sandbox]].
elseif title.text:find("^sandbox%d*/") or title.text:find("/sandbox%d*%f[/%z]") then
cats:insert("မဝ်ဂျူကဠာဗ္တဳဂမၠိုၚ်")
-- Sandbox modules don’t really need documentation.
needs_doc = false
-- Don't track user sandbox modules.
local text_title = new_title(title.text)
if not (text_title and text_title.nsText == "User") then
local diff
local sandbox_of = title.text:match("^(.*)/sandbox%d*%f[/%z]")
if sandbox_of then
track("sandbox to be moved")
else
sandbox_of = title.text:match("^sandbox%d*/(.*)$")
end
if not sandbox_of then
error(("Internal error: Something wrong, couldn't extract sandbox-of module from title '%s'")
:format(title.text))
end
sandbox_of = title.nsText .. ":" .. sandbox_of
if title_exists(sandbox_of) then
diff = " (" .. compare_pages(title.fullText, sandbox_of, "diff") .. ")"
else
track("no sandbox of")
end
links:insert("[[:" .. sandbox_of .. "|ကဠာသံၚ်ဗ္တဳမဆေၚ်စပ်ကဵု]]" .. (diff or ""))
end
-- If not a sandbox module, add link to sandbox module.
-- Sometimes there are multiple sandboxes for a single module:
-- [[Module:sandbox/sa-pronunc]], [[Module:sandbox2/sa-pronunc]].
else
local sandbox_title
local user_prefix, user_rest = title.text:match("^(ညးလွပ်:.-/)(.*)$")
if not user_prefix then
user_prefix = ""
user_rest = title.text
end
sandbox_title = title.nsText .. ":" .. user_prefix .. "sandbox/" .. user_rest
local sandbox_link = "[[:" .. sandbox_title .. "|ကဠာသံၚ်ဗ္တဳ]]"
local diff
if title_exists(sandbox_title) then
diff = " (" .. compare_pages(title.fullText, sandbox_title, "diff") .. ")"
end
links:insert(sandbox_link .. (diff or ""))
end
end
if title.nsText == "Template" then
-- Error search: all(any namespace), hastemplate (show pages using the template), insource (show source code), incategory (any/specific error) -- [[mw:Help:CirrusSearch]], [[w:Help:Searching/Regex]]
-- apparently same with/without: &profile=advanced&fulltext=1
local errorq = 'searchengineselect=mediawiki&search=all: hastemplate:\"' ..
title.rootText .. '\" insource:\"' .. title.rootText .. '\" incategory:'
local eincategory =
"Pages_with_module_errors|ParserFunction_errors|DisplayTitle_errors|Pages_with_ISBN_errors|Pages_with_ISSN_errors|Pages_with_reference_errors|Pages_with_syntax_highlighting_errors|Pages_with_TemplateStyles_errors"
links:insert(
'[' .. tostring(full_url('Special:Search', errorq .. eincategory)) .. ' မဗၠေတ်ဗၠေၚ်ဂမၠိုၚ်]'
.. ' (' ..
'[' .. tostring(full_url('Special:Search', errorq .. 'ParserFunction_errors')) .. ' မပါ်ပ္တိတ်တၞဟ်ခြာပိုဒ်]'
.. '/' ..
'[' .. tostring(full_url('Special:Search', errorq .. 'Pages_with_module_errors')) .. ' မဝ်ဂျူ]'
.. ')'
)
if title.isSubpage and title.text:find("/sandbox%d*%f[/%z]") then -- This is a sandbox template.
-- At the moment there are no user sandbox templates with subpage
-- “/sandbox”.
cats:insert("ထာမ်ပလိက်ကဠာဗ္တဳဂမၠိုၚ်")
-- Sandbox templates don’t really need documentation.
needs_doc = false
-- Will behave badly if “/sandbox” occurs twice in title!
local sandbox_of = title.fullText:gsub("/sandbox%d*%f[/%z]", "")
local diff
if title_exists(sandbox_of) then
diff = " (" .. compare_pages(title.fullText, sandbox_of, "diff") .. ")"
else
track("no sandbox of")
end
links:insert("[[:" .. sandbox_of .. "|sandbox of]]" .. (diff or ""))
-- This is a template that can have a sandbox.
elseif not args.nosandbox then -- unless we tell it not to
local sandbox_title = title.fullText .. "/sandbox"
local diff
if title_exists(sandbox_title) then
diff = " (" .. compare_pages(title.fullText, sandbox_title, "diff") .. ")"
end
links:insert("[[:" .. sandbox_title .. "|ကဠာသံၚ်ဗ္တဳ]]" .. (diff or ""))
end
end
if #links > 0 then
output:insert("<dd> ''လေန်မရပ်စပ်သုၚ်စောဲ'': " .. links:concat(" • ") .. "</dd>")
end
end
output:insert("</dl>\n")
-- Show error from [[Module:category tree/topic cat/data]] on its submodules'
-- documentation to, for instance, warn about duplicate labels.
if startswith(title.fullText, "မဝ်ဂျူ:category tree/topic/") then
local ok, err = pcall(require, "မဝ်ဂျူ:category tree/topic/data")
if not ok then
output:insert('<span class="error">' .. err .. '</span>\n\n')
end
end
if doc_title and doc_title.exists then
-- Override automatic documentation, if present.
doc_content = expand_template { title = doc_title.fullText }
elseif not doc_content and fallback_docs then
doc_content = expand_template {
title = fallback_docs,
args = {
['user'] = user_name,
['page'] = title.fullText,
['skin name'] = skin_name,
},
}
end
if doc_content then
output:insert(doc_content)
end
output:insert(('\n<%s style="clear: both;" />'):format(args.hr == "below" and "hr" or "br"))
if cats_auto_generated and not cats[1] and (not doc_content or not doc_content:find("%[%[ကဏ္ဍ:")) then
if contentModel == "Scribunto" then
cats:insert("မဝ်ဂျူဟွံမွဲကဵုကဏ္ဍဂမၠိုၚ်")
-- elseif title.nsText == "Template" then
-- cats:insert("Uncategorized templates")
end
end
if needs_doc then
cats:insert("ထာမ်ပလိက်ကဵုမဝ်ဂျူမနွံပၟိက်လိက်စၟတ်မချူသမ္တီပတိုန်လဝ်ဂမၠိုၚ်")
end
for _, cat in ipairs(cats) do
output:insert("[[ကဏ္ဍ:" .. cat .. "]]")
end
output:insert("</div>\n")
return output:concat()
end
function export.module_auto_doc_table()
local parts = {}
local function ins(text)
insert(parts, text)
end
ins('{|class="wikitable"')
ins("! ရဳဂျေတ်သ် !! ကဏ္ဍ !! မဝ်ဂျူပွမဗ္ဒုၚ်ဂမၠိုၚ်")
for _, spec in ipairs(module_regex) do
local cat_text
local cats = spec.cat
if cats then
local cat_parts = {}
if type(cats) == "string" then
cats = { cats }
end
for _, cat in ipairs(cats) do
insert(cat_parts, ("<code>%s</code>"):format((cat:gsub("|", "|"))))
end
cat_text = concat(cat_parts, ", ")
else
cat_text = "''(unspecified)''"
end
ins("|-")
ins(("| <code>%s</code> || %s || %s"):format(spec.regex, cat_text,
is_callable(spec.process) and "''(handled internally)''" or
type(spec.process) == "string" and ("[[Module:documentation/functions/%s]]"):format(spec.process) or
"''(no documentation generator)''"))
end
ins("|}")
return concat(parts, "\n")
end
-- Used by {{translit module documentation}}.
function export.translitModuleLangList(frame)
local pagename, subpage
if frame.args[1] then
pagename = frame.args[1]
else
local title = get_current_title()
subpage = title.subpageText
pagename = title.text
if subpage ~= pagename then
pagename = title.rootText
end
end
local translitModule = pagename
local languageObjects = require("မဝ်ဂျူ:languages/byTranslitModule")(translitModule)
local codeInPagename = pagename:match("^([%l-]+)%-.*translit$")
local categories = Array()
local codeInPagenameInList = false
if codeInPagename then
if languageObjects[1] and subpage ~= "documentation" then
local agreement = languageObjects[2] and "ဂမၠိုၚ်" or ""
categories:insert("[[ကဏ္ဍ:မဝ်ဂျူကၠာဲမအခဝ်မရပ်စပ်နူကဵု " ..
#languageObjects .. " အရေဝ်ဘာသာ" .. agreement .. "]]")
end
languageObjects = Array(languageObjects)
:filter(
function(lang)
local result = lang:getCode() ~= codeInPagename
codeInPagenameInList = codeInPagenameInList or result
return result
end)
end
if subpage ~= "documentation" then
for script_code in pagename:gmatch("%f[^-%z]%u%l%l%l%f[-]") do
local script = get_script(script_code)
if script then
categories:insert("[[ကဏ္ဍ:" .. script:getCategoryName() .. "]]")
end
end
end
if subpage ~= "documentation" and not title_exists("မဝ်ဂျူ:" .. pagename .. "/testcases") then
categories:insert("[[ကဏ္ဍ:မဝ်ဂျူကၠာဲမအခဝ်လ္ပာ်မ္ၚးကိစ္စစမ်ၜတ်မုက်ဂၠေံဂၠေံဂမၠိုၚ်]]")
end
if not languageObjects[1] then
return categories:concat()
end
local langs = Array(languageObjects)
:sort(
function(lang1, lang2)
return lang1:getCode() < lang2:getCode()
end)
-- This will not error because languageObjects is not empty.
:map(languageObjects[1].makeCategoryLink)
:serialCommaJoin()
return "It is " .. (codeInPagenameInList and "also" or "") ..
" used to transliterate " .. langs .. "." .. categories:concat()
end
-- Used by {{strip diacritics module documentation}}.
function export.stripDiacriticsModuleLangList(frame)
local pagename, subpage
if frame.args[1] then
pagename = frame.args[1]
else
local title = get_current_title()
subpage = title.subpageText
pagename = title.text
if subpage ~= pagename then
pagename = title.rootText
end
end
local stripDiacriticsModule = pagename
local languageObjects = require("မဝ်ဂျူ:languages/byStripDiacriticsModule")(stripDiacriticsModule)
local codeInPagename = pagename:match("^([%l-]+)%-.*stripdiacritics$")
local categories = Array()
local codeInPagenameInList = false
if codeInPagename then
if languageObjects[1] and subpage ~= "documentation" then
local agreement = languageObjects[2] and "ဂမၠိုၚ်" or ""
categories:insert("[[ကဏ္ဍ:မဝ်ဂျူပွမကၠောန်ပ္တိတ်ယၟုပၞော်လုပ်မရပ်စပ်နူကဵု " ..
#languageObjects .. " အရေဝ်ဘာသာ" .. agreement .. "]]")
end
languageObjects = Array(languageObjects)
:filter(
function(lang)
local result = lang:getCode() ~= codeInPagename
codeInPagenameInList = codeInPagenameInList or result
return result
end)
end
if subpage ~= "documentation" then
for script_code in pagename:gmatch("%f[^-%z]%u%l%l%l%f[-]") do
local script = get_script(script_code)
if script then
categories:insert("[[ကဏ္ဍ:" .. script:getCategoryName() .. "]]")
end
end
end
if subpage ~= "documentation" and not title_exists("မဝ်ဂျူ:" .. pagename .. "/testcases") then
categories:insert("[[ကဏ္ဍ:မဝ်ဂျူပွမကၠောန်ပ္တိတ်စုတ်ပၠောပ်ယၟုမနွံကဵုကိစ္စစမ်ၜတ်ရံၚ်မုက်လိက်ဂၠေံဂၠေံဂမၠိုၚ်]]]")
end
if not languageObjects[1] then
return categories:concat()
end
local langs = Array(languageObjects)
:sort(
function(lang1, lang2)
return lang1:getCode() < lang2:getCode()
end)
-- This will not error because languageObjects is not empty.
:map(languageObjects[1].makeCategoryLink)
:serialCommaJoin()
return "It is " .. (codeInPagenameInList and "also" or "") ..
" used to strip diacritics for " .. langs .. "." .. categories:concat()
end
-- Used by {{sortkey module documentation}}.
function export.sortkeyModuleLangList(frame)
local pagename, subpage
if frame.args[1] then
pagename = frame.args[1]
else
local title = get_current_title()
subpage = title.subpageText
pagename = title.text
if subpage ~= pagename then
pagename = title.rootText
end
end
local sortkeyModule = pagename
local languageObjects = require("Module:languages/bySortkeyModule")(sortkeyModule)
local codeInPagename = pagename:match("^([%l-]+)%-.*sortkey$")
local categories = Array()
local codeInPagenameInList = false
if codeInPagename then
if languageObjects[1] and subpage ~= "documentation" then
local agreement = languageObjects[2] and "s" or ""
categories:insert("[[ကဏ္ဍ:မဝ်ဂျူပွမကၠောန်ပ္တိတ်ပါ်အဇာကဳမရပ်နူကဵု " ..
#languageObjects .. "ဘာသာဂမၠိုၚ်" .. agreement .. "]]")
end
languageObjects = Array(languageObjects)
:filter(
function(lang)
local result = lang:getCode() ~= codeInPagename
codeInPagenameInList = codeInPagenameInList or result
return result
end)
end
if subpage ~= "documentation" then
for script_code in pagename:gmatch("%f[^-%z]%u%l%l%l%f[-]") do
local script = get_script(script_code)
if script then
categories:insert("[[ကဏ္ဍ:" .. script:getCategoryName() .. "]]")
end
end
end
if subpage ~= "documentation" and not title_exists("မဝ်ဂျူ:" .. pagename .. "/testcases") then
categories:insert("[[ကဏ္ဍ:မဝ်ဂျူပွမကၠောန်ပ္တိတ်ပါ်အဇာကဳမနွံကဵုကိစ္စစမ်ၜတ်ရံၚ်မုက်လိက်ဂၠေံဂၠေံဂမၠိုၚ်]]")
end
if not languageObjects[1] then
return categories:concat()
end
local langs = Array(languageObjects)
:sort(
function(lang1, lang2)
return lang1:getCode() < lang2:getCode()
end)
-- This will not error because languageObjects is not empty.
:map(languageObjects[1].makeCategoryLink)
:serialCommaJoin()
return "It is " .. (codeInPagenameInList and "also" or "") ..
" used to sort " .. langs .. "." .. categories:concat()
end
return export
jtoond1ue60d145j5er70b0rxut9c6d
မဝ်ဂျူ:etymology languages/data
828
723
399022
397879
2026-07-17T13:14:55Z
Intobesa.bot
1035
Bot: ပွမကၠာဲစုတ်ယၟုနူဘာသာအၚ်္ဂလိက်
399022
Scribunto
text/plain
local m_langdata = require("Module:languages/data")
-- Loaded on demand, as it may not be needed (depending on the data).
local function u(...)
u = require("Module:string utilities").char
return u(...)
end
local c = m_langdata.chars
local p = m_langdata.puaChars
local s = m_langdata.shared
local m = {}
----------------------------------------------------------------------------------------------------------------------
-- Afroasiatic varieties --
----------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
-- Berber varieties --
--------------------------------------------------------------------------------------
m["shi-med"] = {
"Medieval Tashelhit",
34152,
"shi",
}
-- Tuareg lects
m["thv"] = {
"Tamahaq",
56703,
"tmh",
}
m["ttq"] = {
"Tawellemmet",
56390,
"tmh",
}
m["taq"] = {
"Tamasheq",
4670066,
"tmh",
}
m["thz"] = {
"Tayert",
56388,
"tmh",
}
m["thv-ght"] = {
"Ghat",
47012900,
"thv",
}
--------------------------------------------------------------------------------------
-- Cushitic varieties --
--------------------------------------------------------------------------------------
-- Oromo varieties
m["hae"] = {
"Harar Oromo",
5330355,
"om",
aliases = {"Eastern Oromo"},
}
m["gax"] = {
"Borana",
2910610,
"om",
aliases = {"Southern Oromo"},
}
m["orc"] = {
"Orma",
2919128,
"om",
}
m["ssn"] = {
"Waata",
3501553,
"om",
}
--------------------------------------------------------------------------------------
-- Egyptian varieties --
--------------------------------------------------------------------------------------
-----------------------------------------------------
-- Ancient Egyptian varieties --
-----------------------------------------------------
m["egy-old"] = {
"အဳဂျေပ်တြေံ",
447117,
"egy",
}
m["egy-mid"] = {
"အဳဂျေပ်လဒေါဝ်",
657330,
"egy",
aliases = {"Classical Egyptian"},
}
m["egy-nmi"] = {
"Neo-Middle Egyptian",
123735278,
"egy",
aliases = {"Égyptien de tradition", "Traditional Egyptian"},
}
m["egy-lat"] = {
"အဳဂျေပ်လဇုဲ",
1852329,
"egy",
}
-----------------------------------------------------
-- Coptic varieties --
-----------------------------------------------------
m["cop-akh"] = {
"Akhmimic Coptic",
125176464,
"cop",
aliases = {"Akhmimic"},
}
m["cop-boh"] = {
"Bohairic Coptic",
890733,
"cop",
aliases = {"Bohairic", "Memphitic Coptic", "Memphitic"},
}
m["cop-ggg"] = {
"Coptic Dialect G",
nil,
"cop",
aliases = {"Dialect G", "Mansuric Coptic", "Mansuric"},
}
m["cop-jjj"] = {
"Coptic Dialect J",
nil,
"cop",
}
m["cop-kkk"] = {
"Coptic Dialect K",
nil,
"cop",
}
m["cop-ppp"] = {
"Coptic Dialect P",
nil,
"cop",
aliases = {"Proto-Theban Coptic", "Palaeo-Theban Coptic"},
}
m["cop-fay"] = {
"Fayyumic Coptic",
1399115,
"cop",
aliases = {"Fayyumic", "Faiyumic Coptic", "Faiyumic", "Fayumic Coptic", "Fayumic",
"Bashmuric Coptic", "Bashmuric"},
}
m["cop-her"] = {
"Hermopolitan Coptic",
nil,
"cop",
aliases = {"Hermopolitan", "Coptic Dialect H", "Ashmuninic", "Ashmuninic Coptic"},
}
m["cop-lyc"] = {
"Lycopolitan Coptic",
nil,
"cop",
aliases = {
"Lycopolitan",
"Assiutic Coptic", "Asyutic Coptic", "Assiutic", "Asyutic",
"Lyco-Diospolitan Coptic", "Lyco-Diospolitan",
"Subakhmimic Coptic", "Subakhmimic"
},
}
m["cop-old"] = {
"Old Coptic",
115518040,
"cop",
}
m["cop-oxy"] = {
"Oxyrhynchite Coptic",
nil,
"cop",
aliases = {"Oxyrhynchite", "Mesokemic Coptic", "Mesokemic", "Middle Egyptian Coptic"},
}
m["cop-ply"] = {
"Proto-Lycopolitan Coptic",
nil,
"cop",
aliases = {"Coptic Dialect i", "Proto-Lyco-Diospolitan Coptic"},
}
m["cop-sah"] = {
"Sahidic Coptic",
2645851,
"cop",
aliases = {"Sahidic", "Saidic Coptic", "Saidic", "Thebaic Coptic", "Thebaic"},
}
--------------------------------------------------------------------------------------
-- Semitic varieties --
--------------------------------------------------------------------------------------
-----------------------------------------------------
-- Akkadian varieties --
-----------------------------------------------------
m["akk-old"] = {
"Old Akkadian",
nil,
"akk",
}
m["akk-obb"] = {
"Old Babylonian",
nil,
"akk",
}
m["akk-oas"] = {
"Old Assyrian",
nil,
"akk",
}
m["akk-mbb"] = {
"Middle Babylonian",
nil,
"akk",
}
m["akk-mas"] = {
"Middle Assyrian",
nil,
"akk",
}
m["akk-nbb"] = {
"Neo-Babylonian",
nil,
"akk",
}
m["akk-nas"] = {
"Neo-Assyrian",
nil,
"akk",
}
m["akk-lbb"] = {
"Late Babylonian",
nil,
"akk",
}
m["akk-stb"] = {
"Standard Babylonian",
nil,
"akk",
}
-----------------------------------------------------
-- Arabic varieties --
-----------------------------------------------------
m["jrb"] = {
"Judeo-Arabic",
37733,
"ar",
pseudo_families = "qfa-jew",
}
m["apc-leb"] = {
"Lebanese North Levantine Arabic",
1516642,
"apc",
aliases = {"Lebanese Arabic"},
}
m["apc-sle"] = {
"South Lebanese North Levantine Arabic",
14206590,
"apc",
aliases = {"South Lebanese Arabic"},
}
m["apc-nle"] = {
"North Lebanese North Levantine Arabic",
nil,
"apc",
aliases = {"North Lebanese Arabic"},
}
m["apc-syr"] = {
"Syrian North Levantine Arabic",
2143071,
"apc",
aliases = {"Syrian Arabic"},
}
m["apc-ale"] = {
"Aleppine North Levantine Arabic",
7056921,
"apc-syr",
aliases = {"Aleppo Arabic", "Aleppine Arabic"},
}
m["apc-dam"] = {
"Damascene North Levantine Arabic",
12237466,
"apc-syr",
aliases = {"Damascus Arabic", "Damascene Arabic"},
}
m["acm-khu"] = {
"Khuzestani Arabic",
1040944,
"acm",
}
-----------------------------------------------------
-- Aramaic varieties --
-----------------------------------------------------
m["arc-bib"] = {
"Biblical Aramaic",
843235,
"arc",
family = "sem-are",
}
m["arc-cpa"] = {
"Christian Palestinian Aramaic",
60790119,
"arc",
family = "sem-arw",
aliases = {"Melkite Aramaic", "Palestinian Syriac", "Syropalestinian Aramaic"},
}
m["arc-imp"] = {
"Imperial Aramaic",
7079491,
"arc",
aliases = {"Official Aramaic"},
}
m["arc-hat"] = {
"Hatran Aramaic",
3832926,
"arc",
family = "sem-are",
}
m["arc-jla"] = {
"Jewish Literary Aramaic",
105952842,
"arc",
pseudo_families = "qfa-jew",
}
m["arc-nab"] = {
"Nabataean Aramaic",
36178,
"arc",
}
m["arc-old"] = {
"Old Aramaic",
3398392,
"arc",
}
m["arc-pal"] = {
"Palmyrene Aramaic",
1510113,
"arc",
family = "sem-arw",
}
m["tmr"] = {
"Jewish Babylonian Aramaic",
33407,
"arc",
family = "sem-ase",
pseudo_families = "qfa-jew",
}
m["jpa"] = {
"Jewish Palestinian Aramaic",
948909,
"arc",
family = "sem-arw",
aliases = {"Galilean Aramaic"},
pseudo_families = "qfa-jew",
}
-----------------------------------------------------
-- Hebrew varieties --
-----------------------------------------------------
m["hbo"] = {
"Biblical Hebrew",
1982248,
"he",
aliases = {"Classical Hebrew"},
}
m["he-mis"] = {
"Mishnaic Hebrew",
1649362,
"he",
ancestors = "hbo",
}
m["he-med"] = {
"Medieval Hebrew",
2712572,
"he",
ancestors = "he-mis",
}
m["he-IL"] = {
"Israeli Hebrew",
8141,
"he",
}
----------------------------------------------------------------------------------------------------------------------
-- Ainu varieties --
----------------------------------------------------------------------------------------------------------------------
m["ain-hok"] = {
"Hokkaido Ainu",
20968488,
"ain",
aliases = {"Hokkaidō Ainu"},
}
m["ain-kur"] = {
"Kuril Ainu",
20967012,
"ain",
}
m["ain-sak"] = {
"Sakhalin Ainu",
20747371,
"ain",
}
----------------------------------------------------------------------------------------------------------------------
-- American indigenous varieties --
----------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-- Inuit varieties --
-----------------------------------------------------
m["esi"] = {
"North Alaskan Inupiatun",
nil,
"ik"
}
m["esk"] = {
"Northwest Alaskan Inupiatun",
25559714,
"ik"
}
-----------------------------------------------------
-- Iroquoian varieties --
-----------------------------------------------------
m["iro-ohu"] = {
"Old Wendat",
nil,
"wdt",
}
m["iro-omo"] = {
"Old Mohawk",
nil,
"moh",
}
m["iro-oon"] = {
"Old Onondaga",
nil,
"ono",
}
-----------------------------------------------------
-- Tupi-Guarani varieties --
-----------------------------------------------------
-- Old Tupi varieties
m["tpw-lga"] = {
"Língua Geral Amazônica",
18275323,
"tpw",
aliases = {"Língua Geral"},
}
m["tpw-lgp"] = {
"Língua Geral Paulista",
2669239,
"tpw",
}
----------------------------------------------------------------------------------------------------------------------
-- Austroasiatic varieties --
----------------------------------------------------------------------------------------------------------------------
-- Khmer varieties
m["okz-ang"] = {
"ခမေန်တြေံ အာန်ခေါဝ်ရဳယာန်",
nil,
"okz",
wikipedia_article = "Khmer language#Historical periods",
}
m["okz-pre"] = {
"ခမေန်တြေံ ကၠာ-အာန်ခေါဝ်ရဳယာန်",
nil,
"okz",
wikipedia_article = "Khmer language#Historical periods",
}
-- Central Nicobarese varieties
m["ncb-cam"] = {
"Camorta",
5026908,
"ncb",
aliases = {"Kamorta"},
}
m["ncb-kat"] = {
"Katchal",
17064263,
"ncb",
aliases = {"Tehnu"},
}
m["ncb-nan"] = {
"Nancowry",
6962504,
"ncb",
aliases = {"Nankwari"},
}
----------------------------------------------------------------------------------------------------------------------
-- Austronesian varieties --
----------------------------------------------------------------------------------------------------------------------
-- Malay and related varieties
m["ms-old"] = { -- this has the ISO code 'omy'
"Old Malay",
nil,
"ms",
}
m["ms-cla"] = {
"Classical Malay",
nil,
"ms",
ancestors = "ms-old",
}
m["pse-bsm"] = {
"Besemah",
nil,
"pse",
}
m["bew-kot"] = {
"Betawi Kota",
nil,
"bew",
aliases = {"Urban Betawi"}, -- in Jakarta
}
-- Philippine varieties
m["xnn"] = {
"Northern Kankanaey",
12953609,
"kne",
aliases = {"Northern Kankanay", "Northern Kankana-ey"},
}
m["tl-old"] = {
"Old Tagalog",
12967437,
"tl",
}
m["tl-cls"] = {
"Classical Tagalog",
nil,
"tl",
}
----------------------------------------------------------------------------------------------------------------------
-- Caucasian varieties --
----------------------------------------------------------------------------------------------------------------------
-- Kartvelian varieties
m["ka-mid"] = {
"Middle Georgian",
nil,
"ka",
ancestors = "oge",
}
----------------------------------------------------------------------------------------------------------------------
-- Dravidian varieties --
----------------------------------------------------------------------------------------------------------------------
m["ta-mid"] = {
"Middle Tamil",
20987434,
"ta",
}
m["kn-hav"] = {
"Havigannada",
24276369,
"kn",
}
m["kn-kun"] = {
"Kundagannada",
6444255,
"kn",
}
----------------------------------------------------------------------------------------------------------------------
-- Indo-European varieties --
----------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
-- Albanian varieties --
--------------------------------------------------------------------------------------
m["aln"] = {
"Gheg Albanian",
181037,
"sq",
aliases = {"Gheg"},
}
m["aae"] = {
"Arbëresh Albanian",
1075302,
"als",
aliases = {"Arbëreshë", "Arbëresh"},
}
m["aat"] = {
"Arvanitika Albanian",
29347,
"als",
aliases = {"Arvanitika"},
}
m["als"] = {
"Tosk Albanian",
180937,
"sq",
aliases = {"Tosk"},
}
--------------------------------------------------------------------------------------
-- Armenian varieties --
--------------------------------------------------------------------------------------
m["hyw"] = {
"Western Armenian",
180945,
"hy",
}
m["hye"] = {
"Eastern Armenian",
181059,
"hy",
}
--------------------------------------------------------------------------------------
-- Balto-Slavic varieties --
--------------------------------------------------------------------------------------
-------------------------------------------------------------------------
-- Baltic varieties --
-------------------------------------------------------------------------
m["bat-pro"] = {
"ဗေါဝ်တေတ်-အခိုက်ကၞာ",
1703347,
"ine-bsl-pro",
}
m["bat-dni"] = {
"Dnieper Baltic",
4163178,
"bat-pro",
family = "bat",
aliases = {"Dniepr Baltic", "Dnieper-Oka Baltic", "Dniepr-Oka Baltic"},
}
m["bat-gol"] = {
"Golyad",
4142855,
"bat-dni",
aliases = {"Eastern Galindian", "East Galindian"},
}
-------------------------------------------------------------------------
-- Slavic varieties --
-------------------------------------------------------------------------
-----------------------------------------------------
-- Bulgarian varieties --
-----------------------------------------------------
m["cu-bgm"] = {
"ဗူလ်ဂရဳယာန် လဒေါဝ်",
12294897,
"cu",
ancestors = "cu"
}
-----------------------------------------------------
-- Church Slavonic varieties --
-----------------------------------------------------
-- Old Moscow Church Slavonic deleted as it seems not distinct enough from Russian (Synodal) Church Slavonic.
m["zls-chs-ru"] = {
"Russian Church Slavonic",
21662400,
"zls-chs",
aliases = {"Synodal Church Slavonic", "New Moscow Church Slavonic", "Novomoskovsk Church Slavonic"},
}
m["zls-chs-uk"] = {
"Ukrainian Church Slavonic",
12153548,
"zls-chs",
aliases = {"Rusyn Church Slavonic", "Belarusian Church Slavonic"},
}
--[=[
-- Not sure about these yet.
m["zls-chs-bg"] = {
"Bulgarian Church Slavonic",
nil,
"zls-chs",
}
m["zls-chs-cs"] = {
"Czech Church Slavonic",
nil,
"zls-chs",
}
m["zls-chs-hr"] = {
"Croatian Church Slavonic",
nil,
"zls-chs",
}
m["zls-chs-mk"] = {
"Macedonian Church Slavonic",
nil,
"zls-chs",
}
m["zls-chs-ro"] = {
"Romanian Church Slavonic",
nil,
"zls-chs",
}
m["zls-chs-sr"] = {
"Serbian Church Slavonic",
nil,
"zls-chs",
}
]=]
-----------------------------------------------------
-- Czech varieties --
-----------------------------------------------------
m["cs-ear"] = {
"Early Modern Czech",
nil,
"cs",
ancestors = "zlw-ocs"
}
-----------------------------------------------------
-- East Slavic varieties --
-----------------------------------------------------
m["zle-ops"] = {
"Old Pskovian",
4167885,
"zle-ono",
}
m["zle-mru"] = {
"ရုသျှာ လဒေါဝ်",
35228,
"ru",
"Cyrs",
ancestors = "orv",
translit = "ru-translit",
strip_diacritics = {
Cyrs = {
remove_diacritics = c.grave .. c.acute .. c.diaer,
},
},
}
m["zle-mbe"] = {
"Middle Belarusian",
13211,
"zle-ort",
ancestors = "zle-ort",
}
m["zle-muk"] = {
"ယူကရိန် လဒေါဝ်",
13211,
"zle-ort",
ancestors = "zle-ort",
}
m["uk-CA"] = {
"Canadian Ukrainian",
4161010,
"uk",
}
m["crp-cpr-kya"] = {
"Kyakhta Chinese Pidgin Russian",
1062960,
"crp-cpr",
}
-----------------------------------------------------
-- Polish varieties --
-----------------------------------------------------
m["zlw-mpl"] = {
"ပဝ်လာန် လဒေါဝ်",
402878,
"pl",
ancestors = "zlw-opl",
strip_diacritics = {
remove_diacritics = c.acute,
remove_exceptions = {"Ć", "ć", "Ń", "ń", "Ó", "ó", "Ś", "ś", "Ź", "ź"},
},
}
m["pl-gre"] = {
"Greater Polish",
4106789,
"pl",
}
m["pl-les"] = {
"Lesser Polish",
361709,
"pl",
}
m["pl-mas"] = {
"Masovian Polish",
4274559,
"pl",
}
m["pl-gor"] = {
"Goral",
452889,
"pl",
}
-----------------------------------------------------
-- Serbo-Croatian varieties --
-----------------------------------------------------
m["ckm"] = {
"Chakavian Serbo-Croatian",
337565,
"sh",
aliases = {"Čakavian"},
}
m["kjv"] = {
"Kajkavian Serbo-Croatian",
838165,
"sh",
}
m["sh-tor"] = { -- Linguist code srp-tor
"Torlakian Serbo-Croatian",
1078803,
"sh",
aliases = {"Torlak"},
}
--------------------------------------------------------------------------------------
-- Celtic varieties --
--------------------------------------------------------------------------------------
-----------------------------------------------------
-- Brythonic varieties --
-----------------------------------------------------
m["bry-ear"] = {
"Early Brythonic",
nil,
"cel-bry-pro",
}
m["bry-lat"] = {
"Late Brythonic",
nil,
"cel-bry-pro",
}
-----------------------------------------------------
-- Gaulish varieties --
-----------------------------------------------------
m["xcg"] = {
"Cisalpine Gaulish",
3832927,
"cel-gau",
}
m["xtg"] = {
"Transalpine Gaulish",
29977,
"cel-gau",
}
-----------------------------------------------------
-- Welsh varieties --
-----------------------------------------------------
m["cy-nor"] = {
"North Wales Welsh",
13127692,
"cy",
aliases = {"North Walian Welsh", "Northern Welsh"},
}
m["cy-sou"] = {
"South Wales Welsh",
13127689,
"cy",
aliases = {"South Walian Welsh", "Southern Welsh"},
}
--------------------------------------------------------------------------------------
-- Germanic varieties --
--------------------------------------------------------------------------------------
-- Proto-West Germanic varieties
m["frk"] = {
"Frankish",
10860505,
"gmw-pro",
family = "gmw-frk",
aliases = {"Old Frankish"},
}
m["gem-sue"] = {
"Suevic",
134600275,
"gmw-pro",
aliases = {"Suebian"},
}
m["gmw-afr-pro"] = {
"Proto-Anglo-Frisian",
134603379,
"gmw-nsg-pro",
family = "gmw-afr",
}
m["gmw-nsg-pro"] = {
"Proto-North Sea Germanic",
134603374,
"gmw-pro",
family = "gmw-nsg",
aliases = {"Proto-Ingvaeonic"},
}
-----------------------------------------------------
-- Dutch varieties --
-----------------------------------------------------
m["nl-BE"] = {
"Belgian Dutch",
34147,
"nl",
aliases = {"Flemish", "Flemish Dutch", "Southern Dutch"},
}
-----------------------------------------------------
-- English and Scots varieties --
-----------------------------------------------------
-- English varieties
m["en-AU"] = {
"Australian English",
44679,
"en",
}
m["en-GB"] = {
"British English",
7979,
"en",
}
m["en-GB-SCT"] = {
"Scottish English",
1553250,
"en-GB",
}
m["en-GB-WLS"] = {
"Welsh English",
2363292,
"en-GB",
}
m["en-IM"] = {
"Manx English",
6753295,
"en-GB",
}
m["en-aae"] = {
"Australian Aboriginal English",
783347,
"en-AU",
}
m["en-ear"] = {
"Early Modern English",
1472196,
"en",
ancestors = "enm",
aliases = {"Early New English"},
}
m["en-geo"] = {
"Geordie",
653421,
"en",
ancestors = "enm-nor",
}
m["en-IE"] = { -- FIXME: "IE" doesn't cover Northern Ireland
"Irish English",
665624,
"en",
}
m["en-uls"] = {
"Ulster English",
6840826,
"en-IE",
}
m["en-GB-NIR"] = {
"Northern Irish English",
6840826, -- actually the code for Ulster English
"en-uls",
}
m["en-NNN"] = { -- NA = Namibia; NNN is NATO 3-letter code for North America
"North American English",
7053766,
"en",
ietf_subtag = "en-021" -- 021 = UN M49 code for "Northern America" (i.e. North America wihout Central America or the Caribbean)
}
m["en-US"] = {
"American English",
7976,
"en-NNN",
}
m["en-NZ"] = {
"New Zealand English",
44661,
"en"
}
m["en-ZA"] = {
"South African English",
1156228,
"en"
}
m["en-US-CA"] = {
"California English",
1026812,
"en-US",
}
m["en-CA"] = {
"Canadian English",
44676,
"en-US",
}
m["en-HK"] = {
"Hong Kong English",
1068863,
"en",
}
m["en-IN"] = {
"Indian English",
1348800,
"en",
}
m["pld"] = {
"Polari",
1359130,
"en",
}
-- Scots varieties
m["sco-ins"] = {
"Insular Scots",
16919205,
"sco",
}
m["sco-uls"] = {
"Ulster Scots",
201966,
"sco",
}
m["sco-nor"] = {
"Northern Scots",
16928150,
"sco",
}
m["sco-sou"] = {
"Southern Scots",
7570457,
"sco",
aliases = {"South Scots", "Borders Scots"},
}
-- Middle English varieties
m["enm-esc"] = { -- Part of Middle English until it developed into Middle Scots.
"Early Scots",
5326738,
"enm",
ancestors = "enm-nor",
aliases = {"Old Scots", "Scottish Middle English"},
}
m["enm-emi"] = {
"East Midland Middle English",
134238810,
"enm",
ancestors = "ang-ang", -- Technically ang-mer, but attested Mercian is mostly WM IIRC
}
m["enm-ken"] = {
"Kentish Middle English",
134238532,
"enm",
ancestors = "ang-ken",
}
m["enm-nor"] = {
"Northern Middle English",
134238541,
"enm",
ancestors = "ang-nor",
}
m["enm-sou"] = {
"Southern Middle English",
134238528,
"enm",
ancestors = "ang-wsx",
}
m["enm-wmi"] = {
"West Midland Middle English",
134238824,
"enm",
ancestors = "ang-mer",
}
-- Old English varieties
-- Includes both Mercian and Northumbrian.
m["ang-ang"] = {
"Anglian Old English",
121142917,
"ang",
}
m["ang-ken"] = {
"Kentish Old English",
11687485,
"ang",
}
m["ang-mer"] = {
"Mercian Old English",
602072,
"ang-ang",
}
m["ang-nor"] = {
"Northumbrian Old English",
1798915,
"ang-ang",
}
m["ang-wsx"] = {
"West Saxon Old English",
2658603,
"ang",
}
-----------------------------------------------------
-- High German varieties --
-----------------------------------------------------
-- (modern) German varieties
m["de-AT"] = {
"Austrian German",
306626,
"de",
}
m["de-AT-vie"] = {
"Viennese German",
56474,
"de-AT",
}
m["de-CH"] = {
"Switzerland German",
1366643,
"de",
aliases = {"Schweizer Hochdeutsch", "Swiss Standard German", "Swiss High German"},
}
m["de-bal"] = {
"Baltic German",
15785413,
"de",
}
m["de-ear"] = {
"Early New High German",
1472199,
"de",
ancestors = "gmh",
aliases = {"Early Modern High German"},
}
m["ksh"] = {
"Kölsch",
4624,
"gmw-cfr",
}
m["pfl"] = {
"Palatine German",
23014,
"gmw-rfr",
aliases = {"Pfälzisch", "Pälzisch", "Palatinate German"},
}
m["sli"] = {
"Silesian East Central German",
152965,
"gmw-ecg",
aliases = {"Silesian"},
}
m["sxu"] = {
"Upper Saxon German",
699284,
"gmw-ecg",
}
-- Old High German varieties
m["lng"] = {
"Lombardic",
35972,
"goh",
}
-- Alemannic German varieties
m["gsw-low"] = {
"Low Alemannic German",
503724,
"gsw",
}
m["gsw-FR-als"] = {
"Alsatian Alemannic German",
8786,
"gsw-low",
}
m["gsw-hig"] = {
"High Alemannic German",
503728,
"gsw",
}
m["gsw-hst"] = {
"Highest Alemannic German",
687538,
"gsw",
}
m["wae"] = {
"Walser German",
680517,
"gsw-hst",
}
-----------------------------------------------------
-- Low German varieties --
-----------------------------------------------------
m["nds-de"] = {
"German Low German",
25433,
"nds",
ietf_subtag = "nds-DE", -- should we make this the actual code?
wikimedia_codes = "nds",
}
m["nds-nl"] = {
"Dutch Low Saxon",
516137,
"nds",
ietf_subtag = "nds-NL", -- should we make this the actual code?
wikimedia_codes = "nds-nl",
}
m["act"] = {
"Achterhoeks",
153627,
"nds-nl",
aliases = {"Achterhoek", "Achterhooks"},
}
m["drt"] = {
"Drents",
2736709,
"nds-nl",
aliases = {"Drèents", "Dreins", "Dreints", "Drints"},
}
m["frs"] = {
"East Frisian Low German",
149208,
"nds-de",
aliases = {"East Frisian", "East Frisian Low Saxon"},
}
m["gos"] = {
"Gronings",
508854,
"nds-nl",
aliases = {"Grunnegs", "Grönnegs"},
}
m["nds-lpr"] = {
"Low Prussian",
33982,
"nds-de",
}
m["sdz"] = {
"Sallands",
3436668,
"nds-nl",
aliases = {"Sallaans", "Sallaands"},
}
m["stl"] = {
"Stellingwerfs",
506010,
"nds-nl",
aliases = {"Stellingwarfs"},
}
m["twd"] = {
"Twents",
497363,
"nds-nl",
aliases = {"Tweants"},
}
m["vel"] = {
"Veluws",
2484810,
"nds-nl",
}
m["wep"] = {
"Westphalian",
505655,
"nds-de",
aliases = {"Westfalish", "Westphalien"},
}
-----------------------------------------------------
-- North Frisian varieties --
-----------------------------------------------------
m["frr-ins"] = {
"Insular North Frisian",
110629610,
"frr",
}
m["frr-fam"] = {
"Föhr-Amrum North Frisian",
110629601,
"frr-ins",
}
m["frr-foh"] = {
"Föhr North Frisian",
28185,
"frr-fam",
aliases = {"Föhr Frisian", "Fering",
"Ferring", -- Glottolog
},
varieties = {"Aasdring", "Weesdring"},
}
m["frr-amr"] = {
"Amrum North Frisian",
28192,
"frr-fam",
aliases = {"Amrum Frisian", "Amrum", "Öömrang"},
}
m["frr-hel"] = {
"Heligoland North Frisian",
28086,
"frr-ins",
aliases = {"Heligoland Frisian", "Halunder", "Heligolandic Frisian", "Heligolandic North Frisian",
"Helgoland Frisian", "Helgoland North Frisian", "Helgoland"},
}
m["frr-syl"] = {
"Sylt North Frisian",
28181,
"frr-ins",
aliases = {"Sylt Frisian", "Söl'ring",
"Sölreng", -- Glottolog
},
}
m["frr-mai"] = {
"Mainland North Frisian",
110629626,
"frr",
}
m["frr-hal"] = {
"Halligen North Frisian",
28177,
"frr-mai",
aliases = {"Halligen Frisian", "Halifreesk", "Hallingen Frisian", "Hallingen North Frisian",
"Hallingen", -- Glottolog
},
}
m["frr-moo"] = {
"Mooring North Frisian",
28187,
"frr-mai",
aliases = {"Bökingharde North Frisian", "Bökingharde Frisian", "Böökinghiirder frasch",
"Mooring", "Moring",
},
varieties = {{"East Mooring", "Ostermooring"}, {"West Mooring", "Westermooring"}},
}
m["frr-kar"] = {
"Karrharde North Frisian",
28191,
"frr-mai",
aliases = {"Karrharde Frisian", "Karrharder",
},
}
m["frr-goe"] = {
-- Technically this refers to three adjacent dialects (Northern, Central and Southern), the latter of which went
-- extinct in 1980-1981. As a result, Glottolog speaks of "Norder-Mittelgoesharde", referring to the remaining two.
"Goesharde North Frisian",
28183,
"frr-mai",
aliases = {"Norder-Mittelgoesharde North Frisian", "Norder-Mittelgoesharde Frisian", "Norder-Mittelgoesharde",
"Goesharde Frisian", "Goesharde", "Gooshiirder",
},
}
m["frr-wie"] = {
"Wiedingharde North Frisian",
28171,
"frr-mai",
aliases = {"Wiedingharde Frisian", "Wiedingharde", "Wiringhiirder freesk",
},
}
-----------------------------------------------------
-- Old Norse varieties --
-----------------------------------------------------
m["non-grn"] = {
"Greenlandic Norse",
855236,
"non-own",
}
m["non-oen"] = {
"Old East Norse",
10498031,
"non",
ancestors = "non",
}
m["non-own"] = {
"Old West Norse",
2377483,
"non",
ancestors = "non",
}
-----------------------------------------------------
-- Old Swedish varieties --
-----------------------------------------------------
m["gmq-osw-lat"] = {
"Late Old Swedish",
10723594,
"gmq-osw",
ancestors = "gmq-osw",
}
--------------------------------------------------------------------------------------
-- Greek varieties --
--------------------------------------------------------------------------------------
m["qsb-grc"] = {
"Pre-Greek",
965052,
"und",
family = "qfa-sub",
}
m["grc-aeo"] = {
"Aeolic Greek",
406373,
"grc",
aliases = {"Lesbic Greek", "Lesbian Greek", "Aeolian Greek"},
}
m["grc-arc"] = {
"Arcadian Greek",
nil,
"grc-arp",
}
m["grc-arp"] = {
"Arcadocypriot Greek",
499602,
"grc",
}
m["grc-att"] = {
"Attic Greek",
506588,
"grc",
}
m["grc-boi"] = {
"Boeotian Greek",
406373,
"grc-aeo",
}
m["grc-cyp"] = {
"Cypriot Ancient Greek", -- to distinguish from Cypriot Greek below
nil,
"grc-arp",
}
m["grc-dor"] = {
"Doric Greek",
285494,
"grc",
}
m["grc-ela"] = {
"Elean Greek",
nil,
"grc",
}
m["grc-epi"] = {
"Epic Greek",
990062,
"grc",
aliases = {"Homeric Greek"},
}
m["grc-ion"] = {
"Ionic Greek",
504165,
"grc",
}
m["grc-koi"] = {
"ဂရေတ် ခါဝ်အိန်",
107358,
"grc",
ancestors = "grc-att",
aliases = {"Hellenistic Greek"},
}
m["grc-kre"] = {
"Cretan Ancient Greek", -- to distinguish from Cretan Greek below
nil,
"grc-dor",
}
m["grc-opl"] = {
"Opuntian Locrian",
nil,
"grc",
}
m["grc-ozl"] = {
"Ozolian Locrian",
nil,
"grc",
}
m["grc-pam"] = {
"Pamphylian Greek",
2271793,
"grc",
}
m["grc-ths"] = {
"Thessalian Greek",
406373,
"grc-aeo",
}
m["gkm"] = {
"Byzantine Greek",
36387,
"grc",
ancestors = "grc-koi",
aliases = {"Medieval Greek"},
}
m["el-cyp"] = {
"Cypriot Greek",
245899,
"el",
aliases = {"Cypriotic Greek"},
}
m["el-pap"] = {
"Paphian Greek",
nil,
"el",
}
m["el-crt"] = {
"Cretan Greek",
588306,
"el",
}
m["el-kth"] = {
"Katharevousa",
35961,
"el",
"Polyt",
ancestors = "gkm",
aliases = {"Katharevousa Greek"},
-- Polyt display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["el-kal"] = {
"Kaliarda",
12878658,
"el",
}
--------------------------------------------------------------------------------------
-- Indo-Iranian varieties --
--------------------------------------------------------------------------------------
-------------------------------------------------------------------------
-- Indo-Aryan varieties --
-------------------------------------------------------------------------
-- reconstructed intermediate stages
m["pra-pro"] = {
"Proto-New Indo-Aryan",
nil,
"pra",
}
m["inc-ash-pro"] = {
"Proto-Middle Indo-Aryan",
nil,
"inc-ash",
}
m["inc-mit"] = {
"Mitanni",
1986700,
"inc-pro",
}
m["bra-old"] = {
"Old Braj",
nil,
"bra",
}
-- Apabhramsas
m["inc-aav"] = {
"အဝဟတာ",
nil,
"inc-apa",
aliases = {"Abahattha"},
}
m["inc-asa"] = {
"သဥူရေသဳနဳ အာပ်ပါပရာမ်သာ",
nil,
"inc-apa",
}
m["inc-agu"] = {
"ဂူဂျာရာ အာပ်ပါပရာမ်သာ",
nil,
"inc-apa",
}
m["inc-aka"] = {
"ခေပ်သမဳရဳ အာပ်ပါပရာမ်သာ",
nil,
"inc-apa",
}
m["inc-ama"] = {
"မဟာရာတ်သပ်ထရဳ အာပ်ပါပရာမ်သာ",
nil,
"inc-apa",
}
m["inc-ata"] = {
"တာကာ အာပ်ပါပရာမ်သာ",
nil,
"inc-apa",
}
m["inc-avr"] = {
"ဝရာခါဒါ အာပ်ပါပရာမ်သာ",
nil,
"inc-apa",
}
-- Assamese varieties
m["as-bkm"] = {
"Barpetia Kamrupi Assamese",
30642960,
"as",
}
m["as-nkm"] = {
"Nalbaria Kamrupi Assamese",
85787678,
"as",
}
m["as-pkm"] = {
"Palasbaria Kamrupi Assamese",
nil,
"as",
}
-- Bengali varieties
m["bn-dvn"] = {
"Dhakaiya Vaṅga Bengali",
48726851,
"bn", -- Eastern Bengali variety
}
m["bn-nvn"] = {
"Noakhailla Vaṅga Bengali",
107548681,
"bn", -- Eastern Bengali variety
}
-- Dhivehi varieties
m["dv-old"] = {
"Old Dhivehi",
117790875,
"dv",
}
m["dv-mul"] = {
"Mulaku Dhivehi",
nil,
"dv",
aliases = {"Mulaku Divehi", "Mulaku Bas"},
}
m["dv-huv"] = {
"Huvadhu Dhivehi",
nil,
"dv",
aliases = {"Huvadhu Divehi", "Huvadhu Bas"},
}
m["dv-add"] = {
"Addu Dhivehi",
nil,
"dv",
aliases = {"Addu Divehi", "Addu Bas"},
}
-- Gujarati varieties
m["gu-kat"] = {
"Kathiyawadi",
nil,
"gu",
aliases = {"Kathiyawadi Gujarati", "Kathiawadi"},
}
m["gu-lda"] = {
"Lisan ud-Dawat Gujarati",
nil,
"gu",
aliases = {"Lisan ud-Dawat", "LDA"},
}
-- Hindi varieties
m["hi-mum"] = {
"Bombay Hindi",
3543151,
"hi",
aliases = {"Mumbai Hindi", "Bambaiyya Hindi"},
}
m["hi-mid"] = {
"Middle Hindi",
nil,
"inc-ohi",
ancestors = "inc-ohi",
}
-- Konkani varieties
m["kok-mid"] = {
"Middle Konkani",
nil,
"kok",
aliases = {"Medieval Konkani"},
}
m["kok-old"] = {
"Old Konkani",
nil,
"kok",
aliases = {"Early Konkani"},
}
-- Prakrits
m["pra-ard"] = {
"အာတ်ဓၟဂါတ်ဒဳ ပရာကရေတ်",
35217,
"pra",
aliases = {"Ardhamagadhi"},
}
m["pra-hel"] = {
"ဟေဠူ ပရာကရေတ်",
15080869,
"pra",
aliases = {"Elu", "Elu Prakrit", "Helu"},
}
m["pra-kha"] = {
"ခါဿာ ပရာကရေတ်",
nil,
"pra",
aliases = {"Khasa"},
}
m["pra-mag"] = {
"မဂ္ဂဒိ ပရာကရေတ်", -- Not to be confused with Magahi (mag)
2652214,
"pra",
aliases = {"Magadhi"},
}
m["pra-mah"] = {
"မဟာရာတ်ထရဳ ပရာကရေတ်",
2586773,
"pra",
aliases = {"Maharashtri Prakrit", "Maharastri", "Maharashtri"},
}
m["pra-pai"] = {
"ပါအေတ်သာသဳ ပရာကရေတ်",
2995607,
"pra-sau",
aliases = {"Paisaci", "Paisachi"},
ancestors = "pra-sau"
}
m["pra-sau"] = {
"သောရာသေနဳ ပရာကရေတ်",
2452885,
"pra",
aliases = {"Sauraseni", "Shauraseni"},
}
m["pra-ava"] = {
"အဗါန်တဳ",
nil,
"pra",
aliases = {"Avanti Prakrit"},
}
m["pra-pra"] = {
"ပရာသဳယျာ",
nil,
"pra",
aliases = {"Pracya Prakrit"},
}
m["pra-bah"] = {
"ပါလိကဳ",
nil,
"pra",
aliases = {"Bahliki Prakrit"},
}
m["pra-dak"] = {
"ထေတ်သဳနတာယျ",
nil,
"pra",
aliases = {"Daksinatya Prakrit"},
}
m["pra-sak"] = {
"သာကာရဳ",
nil,
"pra",
aliases = {"Sakari Prakrit"},
}
m["pra-can"] = {
"ခေန်ဒါလဳ",
nil,
"pra",
aliases = {"Candali Prakrit"},
}
m["pra-sab"] = {
"သာဗါရဳ",
nil,
"pra",
aliases = {"Sabari Prakrit"},
}
m["pra-abh"] = {
"အဖိရဳ",
nil,
"pra",
aliases = {"Abhiri Prakrit"},
}
m["pra-dra"] = {
"ဒရာမဳလဳ",
nil,
"pra",
aliases = {"Dramili Prakrit"},
}
m["pra-odr"] = {
"အဝ်ဒရဳ",
nil,
"pra",
aliases = {"Odri Prakrit"},
}
-- Punjabi varieties
m["pnb"] = {
"Western Punjabi",
58635,
"pa",
"pa-Arab",
}
-- Sanskrit varieties
m["vsn"] = {
"Vedic Sanskrit",
36858,
"sa",
}
m["cls"] = {
"Classical Sanskrit",
9333703,
"sa",
}
m["sa-bhs"] = {
"Buddhist Hybrid Sanskrit",
248758,
"sa",
}
m["sa-bra"] = {
"Brahmanic Sanskrit",
139822891,
"vsn",
}
m["sa-epi"] = {
"Epic Sanskrit",
56702805,
"cls",
}
m["sa-neo"] = {
"New Sanskrit",
nil,
"sa",
}
m["sa-rig"] = {
"Rigvedic Sanskrit",
139822680,
"vsn",
}
-- Sinhalese varieties
m["si-med"] = {
"Medieval Sinhalese",
nil,
"si",
aliases = {"Medieval Sinhala"},
}
-------------------------------------------------------------------------
-- Iranian varieties --
-------------------------------------------------------------------------
m["qsb-bma"] = {
"the BMAC substrate",
133187435,
"und",
family = "qfa-sub",
aliases = {"the Bactria-Margiana substrate", "the Bactria-Margiana Archaeological Complex substrate"},
}
-- Historical and current Iranian dialects
m["ae-old"] = {
"Old Avestan",
29572,
"ae",
aliases = {"Gathic Avestan"},
}
m["ae-yng"] = {
"Younger Avestan",
29572,
"ae-old",
aliases = {"Young Avestan"},
}
m["bcc"] = {
"Southern Balochi",
33049,
"bal",
aliases = {"Southern Baluchi"},
}
m["bgp"] = {
"Eastern Balochi",
33049,
"bal",
aliases = {"Eastern Baluchi"},
}
m["bgn"] = {
"Western Balochi",
33049,
"bal",
aliases = {"Western Baluchi"},
}
m["bsg-ban"] = {
"Bandari",
nil,
"bsg",
}
m["bsg-hor"] = {
"Hormozi",
nil,
"bsg",
}
m["bsg-min"] = {
"Minabi",
nil,
"bsg",
}
m["kho-old"] = {
"Old Khotanese",
nil,
"kho",
}
m["kho-lat"] = {
"Late Khotanese",
nil,
"kho-old",
}
m["peo-ear"] = {
"Early Old Persian",
nil,
"peo",
}
m["peo-lat"] = {
"Late Old Persian",
nil,
"peo",
}
m["pal-ear"] = {
"Early Middle Persian",
nil,
"pal",
}
m["pal-lat"] = {
"Late Middle Persian",
nil,
"pal",
ancestors = "pal-ear",
}
m["ps-nwe"] = {
"Northwestern Pashto",
nil,
"ps",
}
m["ps-cgi"] = {
"Central Ghilzay",
nil,
"ps-nwe",
}
m["ps-mah"] = {
"Mahsudi",
nil,
"ps-nwe",
}
m["ps-nea"] = {
"Northeastern Pashto",
nil,
"ps",
}
m["ps-afr"] = {
"Afridi",
nil,
"ps-nea",
}
m["ps-bng"] = {
"Bangash",
nil,
"ps-nea",
}
m["ps-xat"] = {
"Khatak",
nil,
"ps-nea",
}
m["ps-pes"] = {
"Peshawari",
nil,
"ps-nea",
}
m["ps-sea"] = {
"Southeastern Pashto",
nil,
"ps",
}
m["ps-ban"] = {
"Bannu",
nil,
"ps-sea",
}
m["ps-kak"] = {
"Kakari",
nil,
"ps-sea",
}
m["ps-ser"] = {
"Sher",
nil,
"ps-sea",
}
m["ps-waz"] = {
"Waziri",
12274473,
"ps-sea",
}
m["ps-swe"] = {
"Southwestern Pashto",
nil,
"ps",
}
m["ps-kan"] = {
"Kandahari",
nil,
"ps-swe",
}
m["ps-jad"] = {
"Jadrani",
nil,
"ps",
ancestors = "ira-pat-pro"
}
m["xme-azr"] = {
"Old Azari",
nil,
"xme-ott",
aliases = {"Old Azeri", "Azari", "Azeri", "Āḏarī", "Adari", "Adhari"},
}
m["xme-ttc-cen"] = {
"Central Tati",
nil,
"xme-ott",
}
m["xme-ttc-eas"] = {
"Eastern Tati",
nil,
"xme-ott",
}
m["xme-ttc-nor"] = {
"Northern Tati",
nil,
"xme-ott",
}
m["xme-ttc-sou"] = {
"Southern Tati",
nil,
"xme-ott",
}
m["xme-ttc-wes"] = {
"Western Tati",
nil,
"xme-ott",
}
m["xmn"] = {
"Manichaean Middle Persian",
nil,
"pal-lat",
}
m["fa-ear"] = {
"Early New Persian",
127413796,
"fa",
ancestors = "pal-lat",
translit = "fa-cls-translit",
}
m["fa-cls"] = {
"Classical Persian",
9168,
"fa",
ancestors = "fa-ear",
translit = "fa-cls-translit",
}
m["fa-ira"] = {
"Iranian Persian",
3513637,
"fa",
aliases = {"Modern Persian", "Western Persian"},
translit = "fa-ira-translit",
}
m["prs"] = {
"Dari",
178440,
"fa",
aliases = {"Dari Persian", "Central Persian", "Eastern Persian", "Afghan Persian"},
translit = "fa-cls-translit",
}
m["haz"] = {
"Hazaragi",
33398,
"prs",
translit = "fa-cls-translit",
}
m["os-dig"] = {
"Digor Ossetian",
3027861,
"os",
aliases = {"Digoron", "Digor"},
}
m["os-iro"] = {
"Iron Ossetian",
nil,
"os",
aliases = {"Iron"},
}
m["sog-ear"] = {
"Early Sogdian",
nil,
"sog",
}
m["sog-lat"] = {
"Late Sogdian",
nil,
"sog-ear",
}
m["ro-MD"] = {
"Moldovan",
36392,
"ro",
aliases = {"Moldavian"},
}
m["oru-kan"] = {
"Kaniguram",
6363164,
"oru",
}
m["oru-log"] = {
"Logar",
nil,
"oru",
}
m["oos"] = {
"Old Ossetic",
65455882,
"xln",
}
m["oos-ear"] = {
"Early Old Ossetic",
nil,
"oos",
}
m["oos-lat"] = {
"Late Old Ossetic",
nil,
"oos",
}
m["rdb-jir"] = {
"Jirofti",
nil,
"rdb",
}
m["rdb-kah"] = {
"Kahnuji",
nil,
"rdb",
}
-- Southwestern Fars lects
m["fay-bur"] = {
"Burenjani",
nil,
"fay",
}
m["fay-bsh"] = {
"Bushehri",
nil,
"fay",
}
m["fay-dsh"] = {
"Dashtaki",
nil,
"fay",
}
m["fay-dav"] = {
"Davani",
5228140,
"fay",
}
m["fay-eze"] = {
"Emamzada Esmaili",
nil,
"fay",
}
m["fay-gav"] = {
"Gavkoshaki",
nil,
"fay",
}
m["fay-kho"] = {
"Khollari",
nil,
"fay",
}
m["fay-kon"] = {
"Kondazi",
nil,
"fay",
}
m["fay-kzo"] = {
"Old Kazeruni",
nil,
"fay",
}
m["fay-mas"] = {
"Masarami",
nil,
"fay",
}
m["fay-pap"] = {
"Papuni",
nil,
"fay",
}
m["fay-sam"] = {
"Samghani",
nil,
"fay",
}
m["fay-shr"] = {
"Shirazi",
nil,
"fay",
}
m["fay-sho"] = {
"Old Shirazi",
nil,
"fay",
}
m["fay-kar"] = {
"Khargi",
nil,
"fay",
}
m["fay-sor"] = {
"Sorkhi",
nil,
"fay",
}
-- Talysh lects
m["tly-cen"] = {
"Central Talysh",
nil,
"tly",
}
m["tly-asa"] = {
"Asalemi",
nil,
"tly-cen",
}
m["tly-kar"] = {
"Karganrudi",
nil,
"tly-cen",
}
m["tly-tul"] = {
"Tularudi",
nil,
"tly-cen",
}
m["tly-tal"] = {
"Taleshdulabi",
nil,
"tly-cen",
}
m["tly-nor"] = {
"Northern Talysh",
nil,
"tly",
}
m["tly-aze"] = {
"Azerbaijani Talysh",
nil,
"tly-nor",
}
m["tly-anb"] = {
"Anbarani",
nil,
"tly-nor",
}
m["tly-sou"] = {
"Southern Talysh",
nil,
"tly",
}
m["tly-fum"] = {
"Fumani",
nil,
"tly-sou",
}
m["tly-msu"] = {
"Masulei",
nil,
"tly-sou",
}
m["tly-msa"] = {
"Masali",
nil,
"tly-sou",
}
m["tly-san"] = {
"Shandarmani",
nil,
"tly-sou",
}
-- Tafreshi lects
m["xme-amo"] = {
"Amorehi",
nil,
"xme-taf",
}
m["atn"] = {
"Ashtiani",
3436590,
"xme-taf",
}
m["xme-bor"] = {
"Borujerdi",
nil,
"xme-taf",
}
m["xme-ham"] = {
"Hamadani",
6302426,
"xme-taf",
}
m["xme-kah"] = {
"Kahaki",
nil,
"xme-taf",
}
m["vaf"] = {
"Vafsi",
32611,
"xme-taf",
}
-- Kermanic lects
m["kfm"] = {
"Khunsari",
6403030,
"xme-ker",
}
m["xme-mah"] = {
"Mahallati",
nil,
"xme-ker",
}
m["xme-von"] = {
"Vonishuni",
nil,
"xme-ker",
}
m["xme-bdr"] = {
"Badrudi",
nil,
"xme-ker",
}
m["xme-del"] = {
"Delijani",
nil,
"xme-ker",
}
m["xme-kas"] = {
"Kashani",
nil,
"xme-ker",
}
m["xme-kes"] = {
"Kesehi",
nil,
"xme-ker",
}
m["xme-mey"] = {
"Meymehi",
nil,
"xme-ker",
}
m["ntz"] = {
"Natanzi",
6968399,
"xme-ker",
}
m["xme-abz"] = {
"Abuzeydabadi",
nil,
"xme-ker",
}
m["xme-aby"] = {
"Abyanehi",
nil,
"xme-ker",
}
m["xme-far"] = {
"Farizandi",
nil,
"xme-ker",
}
m["xme-jow"] = {
"Jowshaqani",
nil,
"xme-ker",
}
m["xme-nas"] = {
"Nashalji",
nil,
"xme-ker",
}
m["xme-qoh"] = {
"Qohrudi",
nil,
"xme-ker",
}
m["xme-yar"] = {
"Yarandi",
nil,
"xme-ker",
}
m["soj"] = {
"Soi",
7930463,
"xme-ker",
aliases = {"Sohi"},
}
m["xme-tar"] = {
"Tari",
nil,
"xme-ker",
}
m["gzi"] = {
"Gazi",
5529130,
"xme-ker",
}
m["xme-sed"] = {
"Sedehi",
nil,
"xme-ker",
}
m["xme-ard"] = {
"Ardestani",
nil,
"xme-ker",
}
m["xme-zef"] = {
"Zefrehi",
nil,
"xme-ker",
}
m["xme-isf"] = {
"Isfahani",
nil,
"xme-ker",
}
m["xme-kaf"] = {
"Kafroni",
nil,
"xme-ker",
}
m["xme-vrz"] = {
"Varzenehi",
nil,
"xme-ker",
}
m["xme-xur"] = {
"Khuri",
nil,
"xme-ker",
}
m["nyq"] = {
"Nayini",
6983146,
"xme-ker",
}
m["xme-ana"] = {
"Anaraki",
nil,
"xme-ker",
}
m["gbz"] = {
"Zoroastrian Dari",
32389,
"xme-ker",
aliases = {"Behdināni", "Gabri", "Gavrŭni", "Gabrōni"},
}
m["xme-krm"] = {
"Kermani",
nil,
"xme-ker",
}
m["xme-yaz"] = {
"Yazdi",
nil,
"xme-ker",
}
m["xme-bid"] = {
"Bidhandi",
nil,
"xme-ker",
}
m["xme-bij"] = {
"Bijagani",
nil,
"xme-ker",
}
m["xme-cim"] = {
"Chimehi",
nil,
"xme-ker",
}
m["xme-han"] = {
"Hanjani",
nil,
"xme-ker",
}
m["xme-kom"] = {
"Komjani",
nil,
"xme-ker",
}
m["xme-nar"] = {
"Naraqi",
nil,
"xme-ker",
}
m["xme-nus"] = {
"Nushabadi",
nil,
"xme-ker",
}
m["xme-qal"] = {
"Qalhari",
nil,
"xme-ker",
}
m["xme-trh"] = {
"Tarehi",
nil,
"xme-ker",
}
m["xme-val"] = {
"Valujerdi",
nil,
"xme-ker",
}
m["xme-var"] = {
"Varani",
nil,
"xme-ker",
}
m["xme-zor"] = {
"Zori",
nil,
"xme-ker",
}
-- Ramandi lects
m["tks-ebr"] = {
"Ebrahimabadi",
nil,
"tks",
}
m["tks-sag"] = {
"Sagzabadi",
nil,
"tks",
}
m["tks-esf"] = {
"Esfarvarini",
nil,
"tks",
}
m["tks-tak"] = {
"Takestani",
nil,
"tks",
}
m["tks-cal"] = {
"Chali Tati",
nil,
"tks",
aliases = {"Chāli"},
}
m["tks-dan"] = {
"Danesfani",
nil,
"tks",
}
m["tks-xia"] = {
"Khiaraji",
nil,
"tks",
}
m["tks-xoz"] = {
"Khoznini",
nil,
"tks",
}
-- Shughni dialects
m["sgh-bro"] = {
"Bartangi-Oroshori",
nil,
"sgh",
}
m["sgh-bar"] = {
"Bartangi",
nil,
"sgh-bro",
}
m["sgh-oro"] = {
"Oroshori",
nil,
"sgh-bro",
aliases = {"Roshorvi"},
}
m["sgh-rsx"] = {
"Roshani-Khufi",
nil,
"sgh",
}
m["sgh-xuf"] = {
"Khufi",
2562249,
"sgh-rsx",
aliases = {"Xufi", "Xūfī"},
}
m["sgh-ros"] = {
"Roshani",
2597566,
"sgh-rsx",
aliases = {"Rushani", "Rōšāni"},
}
m["sgh-xgb"] = {
"Khughni-Bajui",
nil,
"sgh",
}
m["sgh-xug"] = {
"Khughni",
nil,
"sgh-xgb",
}
m["sgh-baj"] = {
"Bajui",
nil,
"sgh-xgb",
}
-------------------------------------------------------------------------
-- Nuristani varieties --
-------------------------------------------------------------------------
m["bsh-kat"] = {
"Kativiri",
2605045,
"bsh",
aliases = {"Katə́viri"},
}
m["xvi"] = {
"Kamviri",
1193495,
"bsh",
aliases = {"Kamvíri"},
}
m["bsh-mum"] = {
"Mumviri",
nil,
"bsh",
aliases = {"Mumvíri"},
}
--------------------------------------------------------------------------------------
-- Italic varieties --
--------------------------------------------------------------------------------------
-------------------------------------------------------------------------
-- Latin varieties --
-------------------------------------------------------------------------
-- Latin varieties by period
m["itc-ola"] = {
"လပ်တေန်တြေံ",
12289,
"la",
"Latn, Ital",
translit = {
Ital = "Ital-translit"
},
}
m["itc-lan"] = {
"Lanuvian",
16890829,
"itc-ola",
aliases = {"Lanuvine"},
}
m["itc-pra"] = {
"Praenestine",
16889772,
"itc-ola",
aliases = {"Praenestinian"},
}
m["la-cla"] = {
"လပ်တေန်ဝၚ်ဂန္ထ",
253854,
"la",
}
m["la-vul"] = {
"လပ်တေန်အရိုၚ်",
37560,
"la-cla",
}
m["la-afr"] = {
"African Romance",
162064,
"roa-pro",
}
m["la-lat"] = {
"လပ်တေန်လဇုဲ",
1503113,
"la",
ancestors = "la-cla",
}
m["la-med"] = {
"လပ်တေန် ခေတ်လဒေါဝ်",
1163234,
"la",
ancestors = "la-lat",
}
m["la-eme"] = {
"လပ်တေန်ခေတ်လဒေါဝ်ဗွဲမပြဟ်",
nil,
"la-med",
}
m["la-ecc"] = {
"သာသနာခရေတ်လပ်တေန်",
1247932,
"la",
aliases = {"Church Latin", "Liturgical Latin"},
ancestors = "la-lat",
}
m["la-ren"] = {
"လပ်တေန်ခေတ်ကလေၚ်ပလေဝ်ပ္တိုန်တၟိ",
499083,
"la",
ancestors = "la-med",
}
m["la-new"] = {
"လပ်တေန်တၟိ",
1248221,
"la",
aliases = {"Modern Latin"},
ancestors = "la-ren",
}
m["la-con"] = {
"လပ်တေန်ခေတ်ပြိုၚ်ပ္ကာန်",
1246397,
"la-new",
}
-------------------------------------------------------------------------
-- Miscellaneous Italic varieties --
-------------------------------------------------------------------------
m["xfa-cap"] = {
"Capenate",
133182969,
"xfa",
}
m["osc-luc"] = {
"Lucanian",
3265025,
"osc",
}
m["osc-sam"] = {
"Samnite",
133184287,
"osc",
}
-------------------------------------------------------------------------
-- Romance varieties --
-------------------------------------------------------------------------
m["roa-pro"] = {
"Proto-Romance",
3408029,
"la-lat",
ancestors = "la-vul",
}
-----------------------------------------------------
-- Catalan varieties --
-----------------------------------------------------
m["ca-val"] = {
"Valencian",
32641,
"ca",
}
-----------------------------------------------------
-- Franco-Provençal varieties --
-----------------------------------------------------
m["frp-old"] = {
"Old Franco-Provençal",
nil,
"frp",
}
-----------------------------------------------------
-- French and derived creole varieties --
-----------------------------------------------------
m["fro-nor"] = {
"Old Northern French",
2044917,
"fro",
aliases = {"Old Norman", "Old Norman French"},
}
m["fro-pic"] = {
"Picard Old French",
nil,
"fro",
}
m["xno"] = {
"Anglo-Norman",
35214,
"fro-nor",
}
m["xno-law"] = {
"Law French",
2044323,
"xno",
}
m["zrp"] = {
"Zarphatic",
36994,
"fro",
aliases = {"Judeo-French"},
pseudo_families = "qfa-jew",
}
m["fr-CA"] = {
"Canadian French",
1450506,
"fr",
}
m["fr-CH"] = {
"Swiss French",
1480152,
"fr",
}
m["fr-aca"] = {
"Acadian French",
415109,
"fr",
}
m["fr-lou"] = {
"Louisiana French",
3083213,
"fr",
}
m["fr-mis"] = {
"Missouri French",
3083210,
"fr",
}
m["frc"] = {
"Cajun French",
880301,
"fr-lou",
}
m["ht-sdm"] = {
"Saint Dominican Creole French",
nil,
"ht",
ancestors = "fr",
}
-- Norman varieties
m["nrf-grn"] = {
"Guernsey Norman",
56428,
"nrf",
aliases = {"Guernsey"},
}
m["nrf-jer"] = {
"Jersey Norman",
56430,
"nrf",
aliases = {"Jersey"},
}
-----------------------------------------------------
-- Gallo-Italic varieties --
-----------------------------------------------------
m["egl-old"] = {
"Old Emilian",
nil,
"egl",
}
m["lij-old"] = {
"လဳဂူရဳယာန်တြေံ",
nil,
"lij",
aliases = {"Old Genoese"},
}
m["lmo-old"] = {
"လောန်ဗါတ်တြေံ",
97165320,
"lmo",
}
m["pms-old"] = {
"Old Piedmontese",
nil,
"pms",
aliases = {"Old Piemontese"},
}
m["vec-old"] = {
"Old Venetan",
nil,
"vec",
aliases = {"Old Venetian"},
}
m["rgn-old"] = {
"Old Romagnol",
nil,
"rgn",
}
-----------------------------------------------------
-- Italo-Romance varieties --
-----------------------------------------------------
-- Italian varieties
m["roa-oit"] = {
"Old Italian",
nil,
"it",
}
m["it-CH"] = {
"Switzerland Italian",
672147,
"it",
}
-- Other Italo-Romance varieties
m["nap-old"] = {
"Old Neapolitan",
nil,
"nap",
}
m["scn-old"] = {
"Old Sicilian",
nil,
"scn",
}
-----------------------------------------------------
-- Occitan varieties --
-----------------------------------------------------
m["oc-auv"] = {
"Auvergnat",
35359,
"oc",
aliases = {"Auvernhat", "Auvergnese"},
}
m["oc-gas"] = {
"ဂေါသ်သကာန်",
35735,
"oc",
}
-- standardized dialect of Gascon
m["oc-ara"] = {
"Aranese",
10196,
"oc-gas",
}
m["oc-lan"] = {
"လာမ်ဂဝေအ်ဒံက်ဃှေန်",
942602,
"oc",
aliases = {"Lengadocian"},
}
m["oc-lim"] = {
"လိမူသေန်",
427614,
"oc",
}
m["oc-pro"] = {
"ဖရဝ်ဗေန်သော",
241243,
"oc",
aliases = {"Provencal"},
}
m["oc-pro-old"] = {
"ဖရဝ်ဗေန်သောတြေံ",
2779185,
"pro",
}
m["oc-viv"] = {
"ဝဳဝါရုဝ်-အောဖှာၚ်",
1649613,
"oc",
}
m["oc-jud"] = {
"Shuadit",
56472,
"oc",
aliases = {
"Chouhadite", "Chouhadit", "Chouadite", "Chouadit", "Shuhadit",
"Judeo-Occitan", "Judæo-Occitan", "Judaeo-Occitan",
"Judeo-Provençal", "Judæo-Provençal", "Judaeo-Provençal",
"Judeo-Provencal", "Judaeo-Provencal",
"Judeo-Comtadin", "Judæo-Comtadin", "Judaeo-Comtadin",
},
pseudo_families = "qfa-jew",
}
-----------------------------------------------------
-- Portuguese and derived creole varieties --
-----------------------------------------------------
-- Portuguese
m["pt-BR"] = {
"Brazilian Portuguese",
750553,
"pt",
}
m["pt-PT"] = {
"European Portuguese",
922399,
"pt",
}
-- Kabuverdianu (Cape Verde Creole, Cape Verdean Creole)
m["kea-bar"] = {
"Barlavento Kabuverdianu",
2217638,
"kea",
aliases = {"Barlavento", "Barlavento Creole", "Sampadjudu"},
}
m["kea-bvi"] = {
"Boa Vista Kabuverdianu",
16501837,
"kea-bar",
aliases = {"Boa Vista Creole"},
}
m["kea-sal"] = {
"Sal Kabuverdianu",
18707467,
"kea-bar",
aliases = {"Sal Creole"},
}
m["kea-saa"] = {
"Santo Antão Kabuverdianu",
18707472,
"kea-bar",
aliases = {"Santo Antão Creole"},
}
m["kea-sni"] = {
"São Nicolau Kabuverdianu",
18707549,
"kea-bar",
aliases = {"São Nicolau Creole"},
}
m["kea-svi"] = {
"São Vicente Kabuverdianu",
18707550,
"kea-bar",
aliases = {"São Vicente Creole"},
}
m["kea-sot"] = {
"Sotavento Kabuverdianu",
10261559,
"kea",
aliases = {"Sotavento", "Sotavento Creole", "Badiu"},
}
m["kea-bra"] = {
"Brava Kabuverdianu",
18670181,
"kea-sot",
aliases = {"Brava Creole"},
}
m["kea-fog"] = {
"Fogo Kabuverdianu",
18706861,
"kea-sot",
aliases = {"Fogo Creole"},
}
m["kea-mai"] = {
"Maio Kabuverdianu",
18707286,
"kea-sot",
aliases = {"Maio Creole"},
}
m["kea-san"] = {
"Santiago Kabuverdianu",
35117,
"kea-sot",
aliases = {"Santiago Creole"},
}
m["kea-alu"] = {
"ALUPEC Kabuverdianu",
375704,
"kea",
aliases = {"ALUPEC", "Alfabeto Unificado para a Escrita do Cabo-Verdiano"},
}
-----------------------------------------------------
-- Rhaeto-Romance varieties --
-----------------------------------------------------
-- Friulian varieties
m["fur-old"] = {
"Old Friulian",
nil,
"fur",
}
-- Ladin varieties
m["lld-amp"] = {
"Ampezan Ladin",
25617466,
"lld",
aliases = {"Anpezan", "Ampezan", "Ampezzan", "Ampezzano"},
}
m["lld-bad"] = {
"Badiot Ladin",
3706562,
"lld",
aliases = {"Badiot", "Badioto", "Badiotto"},
}
m["lld-cad"] = {
"Cadorino Ladin",
3706570,
"lld",
aliases = {"Cadorino"},
}
m["lld-fas"] = {
"Fascian Ladin",
742627,
"lld",
aliases = {"Fascian", "Fassano"},
}
m["lld-fod"] = {
"Fodom Ladin",
3706605,
"lld",
aliases = {"Fodom", "Livinallese"},
}
m["lld-for"] = {
"Fornes Ladin",
5470374,
"lld",
aliases = {"Fornes"},
}
m["lld-ghe"] = {
"Gherdëina Ladin",
3706597,
"lld",
aliases = {"Gherdëina", "Gardenese", "Val Gardena"},
}
m["lld-non"] = {
"Nones Ladin",
1055027,
"lld",
aliases = {"Nones", "Noneso"},
}
-- Romansh varieties
m["rm-old"] = {
"Old Romansh",
nil,
"rm",
}
m["rm-put"] = {
"Puter Romansh",
688309,
"rm",
aliases = {"Puter", "Putèr", "Upper Engadine", "rm-puter"},
}
m["rm-srm"] = {
"Surmiran Romansh",
690216,
"rm",
aliases = {"Surmiran", "rm-surmiran",
"Surmiran-Albula", -- Glottolog
},
}
m["rm-srs"] = {
"Sursilvan Romansh",
688348,
"rm",
aliases = {"Sursilvan", "rm-sursilv"},
}
m["rm-sut"] = {
"Sutsilvan Romansh",
688272,
"rm",
aliases = {"Sutsilvan", "rm-sutsilv"},
varieties = {"Scharans Sutsilvan"}, -- per Glottolog
}
m["rm-val"] = {
"Vallader Romansh",
690226,
"rm",
aliases = {"Vallader", "Putèr", "Lower Engadine", "rm-vallader"},
}
m["rm-gri"] = {
"Rumantsch Grischun",
688873,
"rm",
aliases = {"rm-rumgr"},
}
-----------------------------------------------------
-- Sardinian varieties --
-----------------------------------------------------
m["sc-old"] = {
"Old Sardinian",
nil,
"sc",
}
m["sc-src"] = {
"Logudorese",
777974,
"sc",
aliases = {"Logudorese Sardinian"},
}
m["sc-nuo"] = {
"Nuorese",
nil,
"sc-src",
aliases = {"Nuorese Sardinian"},
}
m["sc-sro"] = {
"Campidanese",
35348,
"sc",
aliases = {"Campidanese Sardinian"},
}
-----------------------------------------------------
-- Spanish varieties --
-----------------------------------------------------
m["es-ear"] = {
"Early Modern Spanish",
5364419,
"es",
}
m["es-AR"] = {
"Rioplatense Spanish",
509780,
"es",
}
m["es-BO"] = {
"Bolivian Spanish",
510730,
"es",
}
m["es-CL"] = {
"Chilean Spanish",
857295,
"es",
}
m["es-CO"] = {
"Colombian Spanish",
1115875,
"es",
}
m["es-CU"] = {
"Cuban Spanish",
824909,
"es",
}
m["es-MX"] = {
"Mexican Spanish",
616620,
"es",
}
m["es-PE"] = {
"Peruvian Spanish",
736236,
"es",
}
m["es-PH"] = {
"Philippine Spanish",
22091406,
"es",
}
m["es-US"] = {
"United States Spanish",
2301077,
"es",
aliases = {"US Spanish"},
}
--use label "US Spanish" to put Spanish terms in this category
m["es-PR"] = {
"Puerto Rican Spanish",
7258609,
"es",
}
m["es-VE"] = {
"Venezuelan Spanish",
840017,
"es",
}
m["es-lun"] = {
"Lunfardo",
1401612,
"es",
}
----------------------------------------------------------------------------------------------------------------------
-- Japonic varieties --
----------------------------------------------------------------------------------------------------------------------
-- Japanese varieties
m["ja-mid"] = {
"ဂျပါန် လဒေါဝ်",
6841474,
"ojp",
ancestors = "ojp",
}
m["ja-mid-ear"] = {
"Early Middle Japanese",
182695,
"ja-mid",
}
m["ja-mid-lat"] = {
"ဂျပါန်တြေံခေတ်လဇုဲ",
1816184,
"ja-mid",
ancestors = "ja-mid-ear",
}
m["ja-ear"] = {
"Early Modern Japanese",
5326692,
"ja",
ancestors = "ja-mid-lat",
}
m["ojp-eas"] = {
"Eastern Old Japanese",
65247957,
"ojp",
}
m["ja-cla"] = {
"Classical Japanese",
1332057,
"ja",
-- FIXME: This is redundant because Classical Japanese is considered a child of (Modern) Japanese, which has ja-mid-ear
-- (as well as ja-mid-lat) as ancestors. However, the intent here is that the *direct* ancestor of ja-cla is ja-mid-ear
-- and ja-mid-lat is not an ancestor. Need to rethink ancestor handling.
-- ancestors = "ja-mid-ear",
}
----------------------------------------------------------------------------------------------------------------------
-- Koreanic varieties --
----------------------------------------------------------------------------------------------------------------------
-- Korean varieties
m["oko-lat"] = {
"ကိုဝ်ရဳယျာတြေံခေတ်လဇုဲ",
nil,
"oko",
}
m["okm-ear"] = {
"Early Middle Korean",
nil,
"okm",
}
m["ko-cen"] = {
"Central Korean",
nil,
"ko",
}
m["ko-gyg"] = {
"Gyeonggi Korean",
485492,
"ko-cen",
aliases = {"Seoul Korean"},
}
m["ko-chu"] = {
"Chungcheong Korean",
625800,
"ko-cen",
aliases = {"Hoseo Korean"},
}
m["ko-hwa"] = {
"Hwanghae Korean",
16183706,
"ko-cen",
}
m["ko-gan"] = {
"Gangwon Korean",
11260444,
"ko-cen",
aliases = {"Yeongdong Korean"},
}
m["ko-gys"] = {
"Gyeongsang Korean",
488002,
"ko",
aliases = {"Southeastern Korean"},
}
m["ko-jeo"] = {
"Jeolla Korean",
11250166,
"ko",
aliases = {"Southwestern Korean"},
}
m["ko-pyo"] = {
"Pyongan Korean",
7263142,
"ko",
aliases = {"Northwestern Korean"},
}
m["ko-ham"] = {
"Hamgyong Korean",
860702,
"ko",
aliases = {"Northeastern Korean"},
}
m["ko-yuk"] = {
"Yukjin Korean",
16171275,
"ko",
aliases = {"Yukchin Korean", "Ryukjin Korean", "Ryukchin Korean"},
}
----------------------------------------------------------------------------------------------------------------------
-- Mongolic varieties --
----------------------------------------------------------------------------------------------------------------------
m["xng-ear"] = {
"Early Middle Mongol",
nil,
"xng",
}
m["xng-lat"] = {
"Late Middle Mongol",
nil,
"xng",
ancestors = "xng-ear",
}
m["mn-kha"] = {
"Khalkha Mongolian",
6399808,
"mn",
aliases = {"Khalkha"},
}
m["mn-ord"] = {
"Ordos Mongolian",
716904,
"mn",
aliases = {"Ordos"},
}
m["mn-cha"] = {
"Chakhar Mongolian",
907425,
"mn",
aliases = {"Chakhar"},
}
m["mn-khr"] = {
"Khorchin Mongolian",
3196210,
"mn",
aliases = {"Khorchin"},
}
----------------------------------------------------------------------------------------------------------------------
-- Niger-Congo varieties --
----------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-- Akan varieties --
-----------------------------------------------------
m["tw"] = {
"Twi Akan",
36850,
"ak",
aliases = {"Twi"},
}
m["abr"] = {
"Abron",
34831,
"tw",
aliases = {"Brong", "Bono", "Bono Twi"},
}
m["tw-asa"] = {
"Asante Twi",
19261685,
"tw",
aliases = {"Asante", "Ashanti", "Ashante"},
}
m["tw-aku"] = {
"Akuapem Twi",
31150449,
"tw",
aliases = {"Akuapem", "Akuapim", "Akwapem Twi", "Akwapi"},
}
m["fat"] = {
"Fante Akan",
35570,
"ak",
aliases = {"Fante", "Fanti", "Fantse", "Mfantse"},
}
m["wss"] = {
"Wasa",
36914,
"ak",
}
-- creole
m["alv-kro"] = {
"Kromanti",
1093206,
"crp-mar",
}
-----------------------------------------------------
-- Bantu varieties --
-----------------------------------------------------
m["bnt-cmn"] = {
"Common Bantu",
nil,
"bnt-pro",
}
m["xh-bha"] = {
"Bhaca",
4900493,
"xh",
aliases = {"isiBhaca", "IsiBhaca"},
}
-- Rwanda-Rundi varieties
m["rw-kin"] = {
"Kinyarwanda",
33573,
"rw",
aliases = {"Rwanda"},
}
m["rw-run"] = {
"Kirundi",
33583,
"rw",
aliases = {"Rundi"},
}
-----------------------------------------------------
-- Fula varieties --
-----------------------------------------------------
m["fuc"] = {
"Pulaar",
1420205,
"ff",
}
m["fuf"] = {
"Pular",
3915357,
"ff",
}
m["ffm"] = {
"Maasina Fulfulde",
3915322,
"ff",
}
m["fue"] = {
-- no enwiki entry as of yet but frwiki and pmswiki have one
"Borgu Fulfulde",
12952426,
"ff",
}
m["fuh"] = {
-- no enwiki entry as of yet but frwiki and pmswiki have one
"Western Niger Fulfulde",
12952430,
"ff",
}
m["fuq"] = {
-- no enwiki entry as of yet but frwiki, hrwiki and pmswiki have one
"Central-Eastern Niger Fulfulde",
12628799,
"ff",
}
m["fuv"] = {
-- no enwiki entry as of yet but dewiki, frwiki, hrwiki, pmswiki and swwiki have one
"Nigerian Fulfulde",
36129,
"ff",
}
m["fub"] = {
-- no enwiki entry as of yet but dewiki, frwiki, hrwiki, pmswiki, ptwiki, swwiki and yowiki have one
"Adamawa Fulfulde",
34776,
"ff",
}
m["fui"] = {
-- no enwiki entry as of yet but pmswiki and swwiki have one
"Bagirmi Fulfulde",
11003859,
"ff",
}
----------------------------------------------------------------------------------------------------------------------
-- Papuan varieties --
----------------------------------------------------------------------------------------------------------------------
m["kze"] = {
"Kosena",
12952663,
"auy",
}
m["ont"] = {
"Ontenu",
3352827,
"gaj",
aliases = {"Ontena"},
}
----------------------------------------------------------------------------------------------------------------------
-- Salishan varieties --
----------------------------------------------------------------------------------------------------------------------
m["lut-nor"] = {
"Northern Lushootseed",
nil,
"lut",
aliases = {"Northern Puget Sound Salish"},
}
m["slh"] = {
"Southern Lushootseed",
7997684,
"lut",
aliases = {"Southern Puget Sound Salish", "Twulshootseed", "Whulshootseed"},
}
m["ska"] = {
"Skagit",
12642471,
"lut-nor",
}
m["sno"] = {
"Snohomish",
25559662,
"lut-nor",
}
----------------------------------------------------------------------------------------------------------------------
-- Sino-Tibetan varieties --
----------------------------------------------------------------------------------------------------------------------
m["tbq-pro"] = {
"ဗၟာ-တိဗဝ်တဝ် အခိုက်ကၞာ",
7251864,
"sit-pro",
}
-----------------------------------------------------
-- Chinese varieties --
-----------------------------------------------------
------------- Old Chinese, Middle Chinese -------------
m["och-ear"] = {
"Early Old Chinese",
nil,
"och",
}
m["och-lat"] = {
"Late Old Chinese",
nil,
"och",
}
m["ltc-ear"] = {
"Early Middle Chinese",
nil,
"ltc",
}
m["ltc-lat"] = {
"Late Middle Chinese",
nil,
"ltc",
}
------------- Classical/Literary varieties -------------
-- FIXME: Temporary.
m["lzh-shi"] = {
"Traditional Chinese poetry",
1759242,
"lzh",
}
-- FIXME: Temporary.
m["lzh-cii"] = {
"Ci",
1091366,
"lzh",
}
-- FIXME: Temporary.
m["lzh-yue"] = {
"Classical Cantonese",
nil,
"lzh",
}
-- FIXME: Temporary.
m["lzh-cmn"] = {
"Classical Mandarin",
nil,
"lzh",
}
-- FIXME: Temporary.
m["lzh-tai"] = {
"Classical Taishanese",
nil,
"lzh",
}
-- FIXME: Temporary.
m["lzh-cmn-TW"] = {
"Classical Taiwanese Mandarin",
nil,
"lzh-cmn",
}
-- FIXME: Temporary.
m["lzh-VI"] = {
"Vietnamese Classical Chinese",
17034227,
"lzh",
}
-- FIXME: Temporary.
m["lzh-KO"] = {
"Korean Classical Chinese",
10496257,
"lzh",
ietf_subtag = "lzh-KR" -- KR = South Korea, as there is no code for Korea as a whole
}
-- FIXME: Temporary.
m["lzh-lit"] = {
"Literary Chinese",
nil,
"lzh",
}
-- FIXME: Temporary. FIXME: Do we need this? How does it differ from Old Chinese?
m["lzh-pre"] = {
"Pre-Classical Chinese",
nil,
"lzh",
}
------------- Written Vernacular varieties -------------
-- FIXME: Temporary.
m["cmn-wvc"] = {
"Written vernacular Mandarin",
783605,
"cmn",
}
-- FIXME: Temporary. FIXME: How does this differ from "Literary Cantonese"?
m["yue-wvc"] = {
"Written vernacular Cantonese",
nil,
"yue",
}
-- FIXME: Temporary.
m["zhx-tai-wvc"] = {
"Written vernacular Taishanese",
nil,
"zhx-tai",
}
------------- Mandarin varieties -------------
-- FIXME: Temporary. NOTE: The Linguist List assigns the "w:Beijing dialect" (Wikidata 1147606) the code "cmn-bej" and
-- the larger "w:Beijing Mandarin (division of Mandarin)" dialect group (Wikidata 2169652; what we call "Beijingic
-- Mandarin", after Glottolog) the code "cmn-bei".
m["cmn-bei"] = {
"Beijing Mandarin",
1147606,
"cmn-bec",
}
-- FIXME: Temporary.
m["cmn-bec"] = {
"Beijingic Mandarin",
2169652,
"cmn",
}
-- FIXME: Temporary. NOTE: The Linguist List uses the code cmn-zho.
m["cmn-cep"] = {
"Central Plains Mandarin",
3048775,
"cmn",
aliases = {"Zhongyuan Mandarin"},
}
m["cmn-ear"] = {
"Early Mandarin",
837169,
"cmn",
ancestors = "ltc",
}
-- FIXME: Temporary.
m["cmn-gua"] = {
"Guanzhong Mandarin",
3431648,
"cmn-cep",
}
-- FIXME: Temporary. Appears to be a subdialect of Guiliu Mandarin, which in turn is a subdialect of Southwestern Mandarin.
m["cmn-gui"] = {
"Guilin Mandarin",
11111636,
"cmn-sow",
}
m["cmn-jhu"] = {
"Jianghuai Mandarin",
2128953,
"cmn",
aliases = {"Lower Yangtze Mandarin"},
}
-- FIXME: Temporary.
m["cmn-lan"] = {
"Lanyin Mandarin",
662754,
"cmn",
}
-- FIXME: Temporary.
m["cmn-MY"] = {
"Malaysian Mandarin",
13646143,
"cmn",
}
-- FIXME: Temporary.
m["cmn-nan"] = {
"Nanjing Mandarin",
2681098,
"cmn-jhu",
}
-- FIXME: Temporary.
m["cmn-noe"] = {
"Northeastern Mandarin",
1064504,
"cmn",
}
-- FIXME: Temporary.
m["cmn-PH"] = {
"Philippine Mandarin",
7185155,
"cmn",
}
-- FIXME: Temporary.
m["cmn-SG"] = {
"Singapore Mandarin",
1048980,
"cmn",
}
-- FIXME: Temporary.
m["cmn-sow"] = {
"Southwestern Mandarin",
2609239,
"cmn",
}
-- FIXME: Temporary. Appears to be a subdialect of Jilu Mandarin.
m["cmn-tia"] = {
"Tianjin Mandarin",
7800220,
"cmn",
}
-- FIXME: Temporary. NOTE: Wikidata also has Q4380827 "Taiwanese Mandarin", defined as "rare dialect of Standard Chinese
-- (Mandarin) used in Taiwan, which is strongly influenced by Taiwanese Hokkien; mostly used by elderlies" and having no
-- English Wikipedia article (but see w:zh:臺灣國語).
m["cmn-TW"] = {
"Taiwanese Mandarin",
262828,
"cmn",
}
-- FIXME: Temporary. Appears to be a subdialect of Wu-Tian Mandarin, in turn a subdialect of Southwestern Mandarin.
-- Given the code cmn-xwu in the Linguist List.
m["cmn-wuh"] = {
"Wuhan Mandarin",
11124731,
"cmn-sow",
aliases = {"Wuhanese"},
}
-- FIXME: Temporary. Appears to be a subdialect of Lanyin Mandarin.
m["cmn-xin"] = {
"Xining Mandarin",
nil,
"cmn-lan",
}
-- FIXME: Temporary.
m["cmn-yan"] = {
"Yangzhou Mandarin",
nil,
"cmn-jhu",
}
------------- Cantonese varieties -------------
-- FIXME: Temporary.
m["yue-gua"] = {
"Guangzhou Cantonese",
nil,
"yue",
}
-- FIXME: Temporary. Given the codes yue-yue or yue-can in the Linguist List.
m["yue-HK"] = {
"Hong Kong Cantonese",
5894342,
"yue",
}
-- FIXME: Temporary. FIXME: How does this differ from "Written vernacular Cantonese"?
m["yue-lit"] = {
"Literary Cantonese",
2472605,
"yue",
}
------------- Wu varieties -------------
m["wuu-han"] = {
"Hangzhounese",
5648144,
"wuu",
}
m["wuu-nin"] = {
"Ningbonese",
3972199,
"wuu",
}
-- FIXME: Temporary.
m["wuu-nor"] = {
"Northern Wu",
7675988,
"wuu",
aliases = {"Taihu Wu"},
}
-- FIXME: Temporary? Subvariety of Taihu Wu. NOTE: "chm" stands for Chongming, the main dialect, to avoid a conflict
-- with Shanghainese.
m["wuu-chm"] = {
"Shadi Wu",
6112340,
"wuu-nor",
}
m["wuu-sha"] = {
"Shanghainese",
36718,
"wuu-nor",
}
m["wuu-suz"] = {
"Suzhounese",
831744,
"wuu-nor",
}
-- FIXME: Temporary. May be converted into a full language and/or split.
m["wuu-wen"] = {
"Wenzhounese",
710218,
"wuu",
}
------------- Xiang varieties -------------
m["hsn-lou"] = {
"Loudi Xiang",
10943823,
"hsn-old",
}
m["hsn-hya"] = {
"Hengyang Xiang",
20689035,
"hsn-hzh",
}
m["hsn-hzh"] = {
"Hengzhou Xiang",
nil,
"hsn",
}
m["hsn-new"] = {
"New Xiang",
7012696,
"hsn",
aliases = {"Chang-Yi"},
}
m["hsn-old"] = {
"Old Xiang",
7085453,
"hsn",
aliases = {"Lou-Shao"},
}
------------- Hakka varieties -------------
-- FIXME: Temporary.
m["hak-dab"] = {
"Dabu Hakka",
19855566,
"hak", -- formerly hak-TW but seems to be spoken primary in Dabu County in Guangdong
}
-- FIXME: Temporary.
m["hak-eam"] = {
"Early Modern Hakka",
nil,
"hak",
}
-- FIXME: Temporary.
m["hak-hai"] = {
"Hailu Hakka",
17038519,
"hak", -- often considered a Taiwanese lect but also spoken in [[Shanwei]], [[Guangdong]]
}
-- FIXME: Temporary.
m["hak-HK"] = {
"Hong Kong Hakka",
2675834,
"hak",
}
-- FIXME: Temporary.
m["hak-hui"] = {
"Huiyang Hakka",
16873881,
"hak",
}
-- FIXME: Temporary.
m["hak-hui-MY"] = {
"Malaysian Huiyang Hakka",
nil,
"hak-hui",
}
-- FIXME: Temporary. Similar to and possibly the parent of Sixian Hakka in Taiwan.
m["hak-mei"] = {
"Meixian Hakka",
839295,
"hak",
aliases = {"Moiyan Hakka", "Meizhou Hakka"},
}
-- FIXME: Temporary.
m["hak-six"] = {
"Sixian Hakka",
9668261,
"hak-TW",
}
-- FIXME: Temporary.
m["hak-TW"] = {
"Taiwanese Hakka",
2391532,
"hak",
}
-- FIXME: Temporary.
m["hak-zha"] = {
"Zhao'an Hakka",
6703311,
"hak",
aliases = {"Zhangzhou Hakka"},
}
-- Southern Min varieties --
m["nan-anx"] = {
"Anxi Hokkien",
97064149,
"nan-qua",
}
m["nan-cha"] = {
"Changtai Hokkien",
nil,
"nan-zha",
}
m["nan-hou"] = {
"Houlu Min",
19855492,
"nan-dat",
}
m["nan-hui"] = {
"Hui'an Hokkien",
16241797,
"nan-qua",
}
m["nan-jin"] = {
"Jinjiang Hokkien",
11089375,
"nan-qua",
}
m["nan-kin"] = {
"Kinmenese Hokkien",
56278342,
"nan-xia",
aliases = {"Kinmen Hokkien"},
}
m["nan-med"] = {
"Medan Hokkien",
6805114,
"nan-zha",
}
m["nan-pen"] = {
"Penang Hokkien",
11120689,
"nan-zha",
}
m["nan-hbl-PH"] = {
"Philippine Hokkien",
3236692,
"nan-qua",
}
m["nan-qia"] = {
"Qianlu Min",
19842517,
"nan-dat",
}
m["nan-qua"] = {
"Quanzhou Hokkien",
2251677,
"nan-hbl",
aliases = {"Chinchew", "Choanchew"},
}
-- FIXME: Temporary? Derived from both Quanzhou and Zhangzhou Hokkien.
m["nan-hbl-SG"] = {
"Singapore Hokkien",
3846528,
"nan-hbl",
}
m["nan-spm"] = {
"Southern Malaysian Hokkien",
7570322,
"nan-qua",
aliases = {"Southern Malaysia Hokkien", "Southern Peninsular Malaysian Hokkien", "Southern Peninsular Malaysia Hokkien"}
}
m["nan-hbl-TW"] = {
"Taiwanese Hokkien",
36778,
"nan-hbl",
}
m["nan-ton"] = {
"Tong'an Hokkien",
nil,
"nan-xia",
}
m["nan-xia"] = {
"Xiamen Hokkien",
68744,
"nan-hbl",
aliases = {"Amoy", "Amoyese", "Amoynese", "Xiamenese"},
}
m["nan-yon"] = {
"Yongchun Hokkien",
65118728,
"nan-qua",
}
m["nan-zha"] = {
"Zhangzhou Hokkien",
8070492,
"nan-hbl",
aliases = {"Changchew", "Chiangchew", "Changchow"},
}
m["nan-zho"] = {
"Zhao'an Hokkien",
65118728,
"nan-zha",
aliases = {"Zhao'an", "Chawan", "Chawan Hokkien"},
}
m["nan-zhp"] = {
"Zhangping Hokkien",
15937822,
"nan-zha",
}
------------- Other Min varieties -------------
-- FIXME: Temporary. Affiliation within Min uncertain; some combination of Eastern and Southern.
m["zhx-zho"] = {
"Zhongshan Min",
8070958,
"zh",
}
------------- Other Chinese varieties -------------
-- FIXME: Temporary. Affiliation within Chinese uncertain; possibly Yue.
m["zhx-dan"] = {
"Danzhou Chinese",
2578935,
"zh",
}
------------- Chinese romanization varieties -------------
-- [[Wiktionary:Information desk/2022/June#Etymology Coding Issue]]
-- [[Wiktionary:Grease pit/2022/June#Transliteration Systems in Etymologies 2]]
m["cmn-pinyin"] = {
"Hanyu Pinyin",
42222,
"cmn",
aliases = {"Pinyin"},
}
m["cmn-tongyong"] = {
"Tongyong Pinyin",
700739,
"cmn",
}
m["cmn-wadegiles"] = {
"Wade–Giles",
208442,
"cmn",
aliases = {"Wade-Giles", "Wade Giles"},
}
m["zh-postal"] = {
"Postal Romanization",
151868,
"zh",
}
-- Chinese cyrillization
m["cmn-palladius"] = {
"Palladius",
1234239,
"cmn",
aliases = {"Palladius system"},
}
-----------------------------------------------------
-- Tibetic varieties --
-----------------------------------------------------
m["adx"] = {
"Amdo Tibetan",
56509,
"bo",
}
m["kbg"] = {
"Khamba",
12952626,
"bo",
}
m["khg"] = {
"Khams Tibetan",
56601,
"bo",
}
m["tsk"] = {
"Tseku",
11159532,
"bo",
}
----------------------------------------------------------------------------------------------------------------------
-- Tai-Kadai varieties --
----------------------------------------------------------------------------------------------------------------------
m["th-old"] = {
"သေံတြေံ",
nil,
"tai-swe-pro",
wikipedia_article = "Thai language#Old Thai",
}
m["th-suk"] = {
"သူခိုဝ်ထိုၚ် သေံတြေံ", -- 1238-1438. Cannot use "Sukhothai Thai" as Sukhothai is the current city and "Sukhothai Thai" is a lect.
nil,
"th-old",
aliases = {"Sukhothai Siamese"},
wikipedia_article = "Thai language#Old Thai",
}
m["th-ayu"] = {
"အယုဒ္ဓယ သေံတြေံ", -- 1351-1767. Cannot use "Ayutthaya Thai" as Ayutthaya is the current city.
nil,
"th-old",
aliases = {"Ayutthaya Siamese"},
wikipedia_article = "Thai language#Old Thai",
}
--[[
m["th-new"] = {
"Hacked Thai", -- temporary for testing new translit/display methods
nil,
"th",
translit = "User:Benwing2/th-scraping-translit",
display_text = "User:Benwing2/th-scraping-translit",
strip_diacritics = "User:Benwing2/th-scraping-translit",
preprocess_links = "User:Benwing2/th-scraping-translit",
}
]]
m["tai-shz"] = {
"Shangsi Zhuang",
13216,
"za",
}
----------------------------------------------------------------------------------------------------------------------
-- Turkic varieties --
----------------------------------------------------------------------------------------------------------------------
m["trk-cmn-pro"] = {
"Proto-Common Turkic",
1126028,
"trk-pro",
}
m["trk-ogr-pro"] = {
"Proto-Oghur",
1422731,
"trk-pro",
family = "trk-ogr",
}
m["trk-bul-pro"] = {
"Proto-Bulgar",
nil,
"trk-ogr-pro",
}
m["trk-ogz-pro"] = {
"Proto-Oghuz",
494600,
"trk-pro",
family = "trk-ogz",
aliases = {"Southwestern Common Turkic"},
}
m["crh-dbj"] = {
"Dobrujan Tatar",
12811566,
"crh",
aliases = {"Romanian Tatar"},
}
m["cv-ana"] = {
"Anatri Chuvash",
nil,
"cv",
aliases = {"Anatri", "Lower Chuvash"},
}
m["cv-mid"] = {
"Middle Chuvash",
nil,
"cv",
ancestors = "cv-old",
}
m["cv-old"] = {
"Old Chuvash",
nil,
"cv",
ancestors = "xbo-vol",
}
m["cv-vir"] = {
"Viryal Chuvash",
4278332,
"cv",
aliases = {"Viryal", "Upper Chuvash"},
}
m["kjh-fyu"] = {
"Fuyu Kyrgyz",
2598963,
"kjh",
aliases = {"Fuyu Kirgiz", "Fuyu Kirghiz", "Manchurian Kyrgyz", "Manchurian Kirgiz", "Manchurian Kirghiz"},
}
m["klj-arg"] = {
"Arghu",
33455,
"klj",
ancestors = "trk-cmn-pro",
}
m["otk-kir"] = {
"Old Kirghiz",
83142,
"otk",
aliases = {"Yenisei Turkic", "Yenisei Kyrgyz"},
}
m["otk-ork"] = {
"Orkhon Turkic",
31295480,
"otk",
}
m["qwm-cum"] = {
"Cuman",
1075050,
"qwm",
aliases = {"Kuman", "Polovtsian", "Polovcian"},
}
m["qwm-arm"] = {
"Armeno-Kipchak",
2027503,
"qwm",
ancestors = "qwm-cum",
aliases = {"Xıpçaχ tili", "Tatarça"},
}
m["qwm-mam"] = {
"Mamluk-Kipchak",
4279942,
"qwm",
aliases = {"Mameluk-Kipchak"},
}
m["az-cls"] = {
"Classical Azerbaijani",
nil,
"az",
aliases = {"Classical Azeri"},
}
m["qxq"] = {
"Qashqai",
13192,
"az",
aliases = {"Qaşqay", "Qashqayi", "Kashkai", "Kashkay"},
}
m["tr-CY"] = {
"Cypriot Turkish",
7917392,
"tr",
}
m["uz-afg"] = {
-- NOTE: has ISO 639-3 code uzs assigned to it.
"Afghan Uzbek",
1066787,
"uz",
aliases = {"Southern Uzbek"},
translit = "uz-afg-translit",
}
m["xbo-dan"] = {
"Danube Bulgar",
nil,
"xbo",
}
m["xbo-vol"] = {
"Volga Bulgar",
nil,
"xbo",
}
----------------------------------------------------------------------------------------------------------------------
-- Uralic varieties --
----------------------------------------------------------------------------------------------------------------------
m["fiu-pro"] = {
"ဖေန်နဝ်-ဥူဂရေတ်-အခိုက်ကၞာ",
79890,
"urj-pro",
}
m["urj-fpr-pro"] = {
"ဖေန်နဝ်-ပဵုမေတ်-အခိုက်ကၞာ",
nil,
"urj-pro",
}
m["krl-nor"] = {
"North Karelian",
125501196,
"krl",
}
m["krl-sou"] = {
"South Karelian",
129812730,
"krl",
}
m["mns-eas"] = {
"Eastern Mansi",
30311755,
"mns-cen",
}
m["mns-wes"] = {
"Western Mansi",
30311756,
"mns-cen",
}
----------------------------------------------------------------------------------------------------------------------
-- Yeneseian varieties --
----------------------------------------------------------------------------------------------------------------------
m["qfa-yke-pro"] = {
"Proto-Ketic",
nil,
"qfa-yen-pro",
family = "qfa-yke",
}
m["qfa-yko-pro"] = {
"Proto-Kottic",
nil,
"qfa-yen-pro",
family = "qfa-yko",
}
m["qfa-yrn-pro"] = {
"Proto-Arinic",
nil,
"qfa-yen-pro",
family = "qfa-yrn",
}
m["qfa-ypm-pro"] = {
"Proto-Pumpokolic",
nil,
"qfa-yen-pro",
family = "qfa-ypm",
}
----------------------------------------------------------------------------------------------------------------------
-- Miscellaneous varieties --
----------------------------------------------------------------------------------------------------------------------
m["mul-tax"] = {
"taxonomic name",
522190,
"mul",
}
-----------------------------------------------------
-- Elamite varieties --
-----------------------------------------------------
m["elx-old"] = {
"Old Elamite",
nil,
"elx",
}
m["elx-mid"] = {
"Middle Elamite",
nil,
"elx",
}
m["elx-neo"] = {
"Neo-Elamite",
nil,
"elx",
}
m["elx-ach"] = {
"Achaemenid Elamite",
nil,
"elx",
}
-----------------------------------------------------
-- Substrates --
-----------------------------------------------------
-- Pre-Roman substrates
m["qsb-ibe"] = {
"Paleo-Hispanic",
246801,
"und",
family = "qfa-sub",
aliases = {"Palaeo-Hispanic", "Paleohispanic", "Palaeohispanic", "Paleo-Iberian", "Palaeo-Iberian"},
}
m["qsb-bal"] = {
"Paleo-Balkan",
1815070,
"und",
family = "qfa-sub",
aliases = {"Palaeo-Balkan", "Paleobalkan", "Palaeobalkan"},
}
m["xaq"] = {
"Aquitanian",
500522,
"euq-pro",
family = "euq",
}
return require("Module:languages").finalizeData(m, "language", true)
r7xk3dsgps61m4iza7y2j1rgp2ou5ey
399023
399022
2026-07-17T13:15:46Z
Intobesa.bot
1035
Bot: ပွမကၠာဲစုတ်ယၟုနူဘာသာအၚ်္ဂလိက်
399023
Scribunto
text/plain
local m_langdata = require("Module:languages/data")
-- Loaded on demand, as it may not be needed (depending on the data).
local function u(...)
u = require("Module:string utilities").char
return u(...)
end
local c = m_langdata.chars
local p = m_langdata.puaChars
local s = m_langdata.shared
local m = {}
----------------------------------------------------------------------------------------------------------------------
-- Afroasiatic varieties --
----------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
-- Berber varieties --
--------------------------------------------------------------------------------------
m["shi-med"] = {
"Medieval Tashelhit",
34152,
"shi",
}
-- Tuareg lects
m["thv"] = {
"Tamahaq",
56703,
"tmh",
}
m["ttq"] = {
"Tawellemmet",
56390,
"tmh",
}
m["taq"] = {
"Tamasheq",
4670066,
"tmh",
}
m["thz"] = {
"Tayert",
56388,
"tmh",
}
m["thv-ght"] = {
"Ghat",
47012900,
"thv",
}
--------------------------------------------------------------------------------------
-- Cushitic varieties --
--------------------------------------------------------------------------------------
-- Oromo varieties
m["hae"] = {
"Harar Oromo",
5330355,
"om",
aliases = {"Eastern Oromo"},
}
m["gax"] = {
"Borana",
2910610,
"om",
aliases = {"Southern Oromo"},
}
m["orc"] = {
"Orma",
2919128,
"om",
}
m["ssn"] = {
"Waata",
3501553,
"om",
}
--------------------------------------------------------------------------------------
-- Egyptian varieties --
--------------------------------------------------------------------------------------
-----------------------------------------------------
-- Ancient Egyptian varieties --
-----------------------------------------------------
m["egy-old"] = {
"အဳဂျေပ်တြေံ",
447117,
"egy",
}
m["egy-mid"] = {
"အဳဂျေပ်လဒေါဝ်",
657330,
"egy",
aliases = {"Classical Egyptian"},
}
m["egy-nmi"] = {
"Neo-Middle Egyptian",
123735278,
"egy",
aliases = {"Égyptien de tradition", "Traditional Egyptian"},
}
m["egy-lat"] = {
"အဳဂျေပ်လဇုဲ",
1852329,
"egy",
}
-----------------------------------------------------
-- Coptic varieties --
-----------------------------------------------------
m["cop-akh"] = {
"Akhmimic Coptic",
125176464,
"cop",
aliases = {"Akhmimic"},
}
m["cop-boh"] = {
"Bohairic Coptic",
890733,
"cop",
aliases = {"Bohairic", "Memphitic Coptic", "Memphitic"},
}
m["cop-ggg"] = {
"Coptic Dialect G",
nil,
"cop",
aliases = {"Dialect G", "Mansuric Coptic", "Mansuric"},
}
m["cop-jjj"] = {
"Coptic Dialect J",
nil,
"cop",
}
m["cop-kkk"] = {
"Coptic Dialect K",
nil,
"cop",
}
m["cop-ppp"] = {
"Coptic Dialect P",
nil,
"cop",
aliases = {"Proto-Theban Coptic", "Palaeo-Theban Coptic"},
}
m["cop-fay"] = {
"Fayyumic Coptic",
1399115,
"cop",
aliases = {"Fayyumic", "Faiyumic Coptic", "Faiyumic", "Fayumic Coptic", "Fayumic",
"Bashmuric Coptic", "Bashmuric"},
}
m["cop-her"] = {
"Hermopolitan Coptic",
nil,
"cop",
aliases = {"Hermopolitan", "Coptic Dialect H", "Ashmuninic", "Ashmuninic Coptic"},
}
m["cop-lyc"] = {
"Lycopolitan Coptic",
nil,
"cop",
aliases = {
"Lycopolitan",
"Assiutic Coptic", "Asyutic Coptic", "Assiutic", "Asyutic",
"Lyco-Diospolitan Coptic", "Lyco-Diospolitan",
"Subakhmimic Coptic", "Subakhmimic"
},
}
m["cop-old"] = {
"Old Coptic",
115518040,
"cop",
}
m["cop-oxy"] = {
"Oxyrhynchite Coptic",
nil,
"cop",
aliases = {"Oxyrhynchite", "Mesokemic Coptic", "Mesokemic", "Middle Egyptian Coptic"},
}
m["cop-ply"] = {
"Proto-Lycopolitan Coptic",
nil,
"cop",
aliases = {"Coptic Dialect i", "Proto-Lyco-Diospolitan Coptic"},
}
m["cop-sah"] = {
"Sahidic Coptic",
2645851,
"cop",
aliases = {"Sahidic", "Saidic Coptic", "Saidic", "Thebaic Coptic", "Thebaic"},
}
--------------------------------------------------------------------------------------
-- Semitic varieties --
--------------------------------------------------------------------------------------
-----------------------------------------------------
-- Akkadian varieties --
-----------------------------------------------------
m["akk-old"] = {
"Old Akkadian",
nil,
"akk",
}
m["akk-obb"] = {
"Old Babylonian",
nil,
"akk",
}
m["akk-oas"] = {
"Old Assyrian",
nil,
"akk",
}
m["akk-mbb"] = {
"Middle Babylonian",
nil,
"akk",
}
m["akk-mas"] = {
"Middle Assyrian",
nil,
"akk",
}
m["akk-nbb"] = {
"Neo-Babylonian",
nil,
"akk",
}
m["akk-nas"] = {
"Neo-Assyrian",
nil,
"akk",
}
m["akk-lbb"] = {
"Late Babylonian",
nil,
"akk",
}
m["akk-stb"] = {
"Standard Babylonian",
nil,
"akk",
}
-----------------------------------------------------
-- Arabic varieties --
-----------------------------------------------------
m["jrb"] = {
"Judeo-Arabic",
37733,
"ar",
pseudo_families = "qfa-jew",
}
m["apc-leb"] = {
"Lebanese North Levantine Arabic",
1516642,
"apc",
aliases = {"Lebanese Arabic"},
}
m["apc-sle"] = {
"South Lebanese North Levantine Arabic",
14206590,
"apc",
aliases = {"South Lebanese Arabic"},
}
m["apc-nle"] = {
"North Lebanese North Levantine Arabic",
nil,
"apc",
aliases = {"North Lebanese Arabic"},
}
m["apc-syr"] = {
"Syrian North Levantine Arabic",
2143071,
"apc",
aliases = {"Syrian Arabic"},
}
m["apc-ale"] = {
"Aleppine North Levantine Arabic",
7056921,
"apc-syr",
aliases = {"Aleppo Arabic", "Aleppine Arabic"},
}
m["apc-dam"] = {
"Damascene North Levantine Arabic",
12237466,
"apc-syr",
aliases = {"Damascus Arabic", "Damascene Arabic"},
}
m["acm-khu"] = {
"Khuzestani Arabic",
1040944,
"acm",
}
-----------------------------------------------------
-- Aramaic varieties --
-----------------------------------------------------
m["arc-bib"] = {
"Biblical Aramaic",
843235,
"arc",
family = "sem-are",
}
m["arc-cpa"] = {
"Christian Palestinian Aramaic",
60790119,
"arc",
family = "sem-arw",
aliases = {"Melkite Aramaic", "Palestinian Syriac", "Syropalestinian Aramaic"},
}
m["arc-imp"] = {
"Imperial Aramaic",
7079491,
"arc",
aliases = {"Official Aramaic"},
}
m["arc-hat"] = {
"Hatran Aramaic",
3832926,
"arc",
family = "sem-are",
}
m["arc-jla"] = {
"Jewish Literary Aramaic",
105952842,
"arc",
pseudo_families = "qfa-jew",
}
m["arc-nab"] = {
"Nabataean Aramaic",
36178,
"arc",
}
m["arc-old"] = {
"Old Aramaic",
3398392,
"arc",
}
m["arc-pal"] = {
"Palmyrene Aramaic",
1510113,
"arc",
family = "sem-arw",
}
m["tmr"] = {
"Jewish Babylonian Aramaic",
33407,
"arc",
family = "sem-ase",
pseudo_families = "qfa-jew",
}
m["jpa"] = {
"Jewish Palestinian Aramaic",
948909,
"arc",
family = "sem-arw",
aliases = {"Galilean Aramaic"},
pseudo_families = "qfa-jew",
}
-----------------------------------------------------
-- Hebrew varieties --
-----------------------------------------------------
m["hbo"] = {
"Biblical Hebrew",
1982248,
"he",
aliases = {"Classical Hebrew"},
}
m["he-mis"] = {
"Mishnaic Hebrew",
1649362,
"he",
ancestors = "hbo",
}
m["he-med"] = {
"Medieval Hebrew",
2712572,
"he",
ancestors = "he-mis",
}
m["he-IL"] = {
"Israeli Hebrew",
8141,
"he",
}
----------------------------------------------------------------------------------------------------------------------
-- Ainu varieties --
----------------------------------------------------------------------------------------------------------------------
m["ain-hok"] = {
"Hokkaido Ainu",
20968488,
"ain",
aliases = {"Hokkaidō Ainu"},
}
m["ain-kur"] = {
"Kuril Ainu",
20967012,
"ain",
}
m["ain-sak"] = {
"Sakhalin Ainu",
20747371,
"ain",
}
----------------------------------------------------------------------------------------------------------------------
-- American indigenous varieties --
----------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-- Inuit varieties --
-----------------------------------------------------
m["esi"] = {
"North Alaskan Inupiatun",
nil,
"ik"
}
m["esk"] = {
"Northwest Alaskan Inupiatun",
25559714,
"ik"
}
-----------------------------------------------------
-- Iroquoian varieties --
-----------------------------------------------------
m["iro-ohu"] = {
"Old Wendat",
nil,
"wdt",
}
m["iro-omo"] = {
"Old Mohawk",
nil,
"moh",
}
m["iro-oon"] = {
"Old Onondaga",
nil,
"ono",
}
-----------------------------------------------------
-- Tupi-Guarani varieties --
-----------------------------------------------------
-- Old Tupi varieties
m["tpw-lga"] = {
"Língua Geral Amazônica",
18275323,
"tpw",
aliases = {"Língua Geral"},
}
m["tpw-lgp"] = {
"Língua Geral Paulista",
2669239,
"tpw",
}
----------------------------------------------------------------------------------------------------------------------
-- Austroasiatic varieties --
----------------------------------------------------------------------------------------------------------------------
-- Khmer varieties
m["okz-ang"] = {
"ခမေန်တြေံ အာန်ခေါဝ်ရဳယာန်",
nil,
"okz",
wikipedia_article = "Khmer language#Historical periods",
}
m["okz-pre"] = {
"ခမေန်တြေံ ကၠာ-အာန်ခေါဝ်ရဳယာန်",
nil,
"okz",
wikipedia_article = "Khmer language#Historical periods",
}
-- Central Nicobarese varieties
m["ncb-cam"] = {
"Camorta",
5026908,
"ncb",
aliases = {"Kamorta"},
}
m["ncb-kat"] = {
"Katchal",
17064263,
"ncb",
aliases = {"Tehnu"},
}
m["ncb-nan"] = {
"Nancowry",
6962504,
"ncb",
aliases = {"Nankwari"},
}
----------------------------------------------------------------------------------------------------------------------
-- Austronesian varieties --
----------------------------------------------------------------------------------------------------------------------
-- Malay and related varieties
m["ms-old"] = { -- this has the ISO code 'omy'
"Old Malay",
nil,
"ms",
}
m["ms-cla"] = {
"Classical Malay",
nil,
"ms",
ancestors = "ms-old",
}
m["pse-bsm"] = {
"Besemah",
nil,
"pse",
}
m["bew-kot"] = {
"Betawi Kota",
nil,
"bew",
aliases = {"Urban Betawi"}, -- in Jakarta
}
-- Philippine varieties
m["xnn"] = {
"Northern Kankanaey",
12953609,
"kne",
aliases = {"Northern Kankanay", "Northern Kankana-ey"},
}
m["tl-old"] = {
"Old Tagalog",
12967437,
"tl",
}
m["tl-cls"] = {
"Classical Tagalog",
nil,
"tl",
}
----------------------------------------------------------------------------------------------------------------------
-- Caucasian varieties --
----------------------------------------------------------------------------------------------------------------------
-- Kartvelian varieties
m["ka-mid"] = {
"Middle Georgian",
nil,
"ka",
ancestors = "oge",
}
----------------------------------------------------------------------------------------------------------------------
-- Dravidian varieties --
----------------------------------------------------------------------------------------------------------------------
m["ta-mid"] = {
"Middle Tamil",
20987434,
"ta",
}
m["kn-hav"] = {
"Havigannada",
24276369,
"kn",
}
m["kn-kun"] = {
"Kundagannada",
6444255,
"kn",
}
----------------------------------------------------------------------------------------------------------------------
-- Indo-European varieties --
----------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
-- Albanian varieties --
--------------------------------------------------------------------------------------
m["aln"] = {
"Gheg Albanian",
181037,
"sq",
aliases = {"Gheg"},
}
m["aae"] = {
"Arbëresh Albanian",
1075302,
"als",
aliases = {"Arbëreshë", "Arbëresh"},
}
m["aat"] = {
"Arvanitika Albanian",
29347,
"als",
aliases = {"Arvanitika"},
}
m["als"] = {
"Tosk Albanian",
180937,
"sq",
aliases = {"Tosk"},
}
--------------------------------------------------------------------------------------
-- Armenian varieties --
--------------------------------------------------------------------------------------
m["hyw"] = {
"Western Armenian",
180945,
"hy",
}
m["hye"] = {
"Eastern Armenian",
181059,
"hy",
}
--------------------------------------------------------------------------------------
-- Balto-Slavic varieties --
--------------------------------------------------------------------------------------
-------------------------------------------------------------------------
-- Baltic varieties --
-------------------------------------------------------------------------
m["bat-pro"] = {
"ဗေါဝ်တေတ်-အခိုက်ကၞာ",
1703347,
"ine-bsl-pro",
}
m["bat-dni"] = {
"Dnieper Baltic",
4163178,
"bat-pro",
family = "bat",
aliases = {"Dniepr Baltic", "Dnieper-Oka Baltic", "Dniepr-Oka Baltic"},
}
m["bat-gol"] = {
"Golyad",
4142855,
"bat-dni",
aliases = {"Eastern Galindian", "East Galindian"},
}
-------------------------------------------------------------------------
-- Slavic varieties --
-------------------------------------------------------------------------
-----------------------------------------------------
-- Bulgarian varieties --
-----------------------------------------------------
m["cu-bgm"] = {
"ဗူလ်ဂရဳယာန် လဒေါဝ်",
12294897,
"cu",
ancestors = "cu"
}
-----------------------------------------------------
-- Church Slavonic varieties --
-----------------------------------------------------
-- Old Moscow Church Slavonic deleted as it seems not distinct enough from Russian (Synodal) Church Slavonic.
m["zls-chs-ru"] = {
"Russian Church Slavonic",
21662400,
"zls-chs",
aliases = {"Synodal Church Slavonic", "New Moscow Church Slavonic", "Novomoskovsk Church Slavonic"},
}
m["zls-chs-uk"] = {
"Ukrainian Church Slavonic",
12153548,
"zls-chs",
aliases = {"Rusyn Church Slavonic", "Belarusian Church Slavonic"},
}
--[=[
-- Not sure about these yet.
m["zls-chs-bg"] = {
"Bulgarian Church Slavonic",
nil,
"zls-chs",
}
m["zls-chs-cs"] = {
"Czech Church Slavonic",
nil,
"zls-chs",
}
m["zls-chs-hr"] = {
"Croatian Church Slavonic",
nil,
"zls-chs",
}
m["zls-chs-mk"] = {
"Macedonian Church Slavonic",
nil,
"zls-chs",
}
m["zls-chs-ro"] = {
"Romanian Church Slavonic",
nil,
"zls-chs",
}
m["zls-chs-sr"] = {
"Serbian Church Slavonic",
nil,
"zls-chs",
}
]=]
-----------------------------------------------------
-- Czech varieties --
-----------------------------------------------------
m["cs-ear"] = {
"Early Modern Czech",
nil,
"cs",
ancestors = "zlw-ocs"
}
-----------------------------------------------------
-- East Slavic varieties --
-----------------------------------------------------
m["zle-ops"] = {
"Old Pskovian",
4167885,
"zle-ono",
}
m["zle-mru"] = {
"ရုသျှာ လဒေါဝ်",
35228,
"ru",
"Cyrs",
ancestors = "orv",
translit = "ru-translit",
strip_diacritics = {
Cyrs = {
remove_diacritics = c.grave .. c.acute .. c.diaer,
},
},
}
m["zle-mbe"] = {
"Middle Belarusian",
13211,
"zle-ort",
ancestors = "zle-ort",
}
m["zle-muk"] = {
"ယူကရိန် လဒေါဝ်",
13211,
"zle-ort",
ancestors = "zle-ort",
}
m["uk-CA"] = {
"Canadian Ukrainian",
4161010,
"uk",
}
m["crp-cpr-kya"] = {
"Kyakhta Chinese Pidgin Russian",
1062960,
"crp-cpr",
}
-----------------------------------------------------
-- Polish varieties --
-----------------------------------------------------
m["zlw-mpl"] = {
"ပဝ်လာန် လဒေါဝ်",
402878,
"pl",
ancestors = "zlw-opl",
strip_diacritics = {
remove_diacritics = c.acute,
remove_exceptions = {"Ć", "ć", "Ń", "ń", "Ó", "ó", "Ś", "ś", "Ź", "ź"},
},
}
m["pl-gre"] = {
"Greater Polish",
4106789,
"pl",
}
m["pl-les"] = {
"Lesser Polish",
361709,
"pl",
}
m["pl-mas"] = {
"Masovian Polish",
4274559,
"pl",
}
m["pl-gor"] = {
"Goral",
452889,
"pl",
}
-----------------------------------------------------
-- Serbo-Croatian varieties --
-----------------------------------------------------
m["ckm"] = {
"Chakavian Serbo-Croatian",
337565,
"sh",
aliases = {"Čakavian"},
}
m["kjv"] = {
"Kajkavian Serbo-Croatian",
838165,
"sh",
}
m["sh-tor"] = { -- Linguist code srp-tor
"Torlakian Serbo-Croatian",
1078803,
"sh",
aliases = {"Torlak"},
}
--------------------------------------------------------------------------------------
-- Celtic varieties --
--------------------------------------------------------------------------------------
-----------------------------------------------------
-- Brythonic varieties --
-----------------------------------------------------
m["bry-ear"] = {
"Early Brythonic",
nil,
"cel-bry-pro",
}
m["bry-lat"] = {
"Late Brythonic",
nil,
"cel-bry-pro",
}
-----------------------------------------------------
-- Gaulish varieties --
-----------------------------------------------------
m["xcg"] = {
"Cisalpine Gaulish",
3832927,
"cel-gau",
}
m["xtg"] = {
"Transalpine Gaulish",
29977,
"cel-gau",
}
-----------------------------------------------------
-- Welsh varieties --
-----------------------------------------------------
m["cy-nor"] = {
"North Wales Welsh",
13127692,
"cy",
aliases = {"North Walian Welsh", "Northern Welsh"},
}
m["cy-sou"] = {
"South Wales Welsh",
13127689,
"cy",
aliases = {"South Walian Welsh", "Southern Welsh"},
}
--------------------------------------------------------------------------------------
-- Germanic varieties --
--------------------------------------------------------------------------------------
-- Proto-West Germanic varieties
m["frk"] = {
"Frankish",
10860505,
"gmw-pro",
family = "gmw-frk",
aliases = {"Old Frankish"},
}
m["gem-sue"] = {
"Suevic",
134600275,
"gmw-pro",
aliases = {"Suebian"},
}
m["gmw-afr-pro"] = {
"Proto-Anglo-Frisian",
134603379,
"gmw-nsg-pro",
family = "gmw-afr",
}
m["gmw-nsg-pro"] = {
"Proto-North Sea Germanic",
134603374,
"gmw-pro",
family = "gmw-nsg",
aliases = {"Proto-Ingvaeonic"},
}
-----------------------------------------------------
-- Dutch varieties --
-----------------------------------------------------
m["nl-BE"] = {
"Belgian Dutch",
34147,
"nl",
aliases = {"Flemish", "Flemish Dutch", "Southern Dutch"},
}
-----------------------------------------------------
-- English and Scots varieties --
-----------------------------------------------------
-- English varieties
m["en-AU"] = {
"Australian English",
44679,
"en",
}
m["en-GB"] = {
"British English",
7979,
"en",
}
m["en-GB-SCT"] = {
"Scottish English",
1553250,
"en-GB",
}
m["en-GB-WLS"] = {
"Welsh English",
2363292,
"en-GB",
}
m["en-IM"] = {
"Manx English",
6753295,
"en-GB",
}
m["en-aae"] = {
"Australian Aboriginal English",
783347,
"en-AU",
}
m["en-ear"] = {
"Early Modern English",
1472196,
"en",
ancestors = "enm",
aliases = {"Early New English"},
}
m["en-geo"] = {
"Geordie",
653421,
"en",
ancestors = "enm-nor",
}
m["en-IE"] = { -- FIXME: "IE" doesn't cover Northern Ireland
"Irish English",
665624,
"en",
}
m["en-uls"] = {
"Ulster English",
6840826,
"en-IE",
}
m["en-GB-NIR"] = {
"Northern Irish English",
6840826, -- actually the code for Ulster English
"en-uls",
}
m["en-NNN"] = { -- NA = Namibia; NNN is NATO 3-letter code for North America
"North American English",
7053766,
"en",
ietf_subtag = "en-021" -- 021 = UN M49 code for "Northern America" (i.e. North America wihout Central America or the Caribbean)
}
m["en-US"] = {
"American English",
7976,
"en-NNN",
}
m["en-NZ"] = {
"New Zealand English",
44661,
"en"
}
m["en-ZA"] = {
"South African English",
1156228,
"en"
}
m["en-US-CA"] = {
"California English",
1026812,
"en-US",
}
m["en-CA"] = {
"Canadian English",
44676,
"en-US",
}
m["en-HK"] = {
"Hong Kong English",
1068863,
"en",
}
m["en-IN"] = {
"Indian English",
1348800,
"en",
}
m["pld"] = {
"Polari",
1359130,
"en",
}
-- Scots varieties
m["sco-ins"] = {
"Insular Scots",
16919205,
"sco",
}
m["sco-uls"] = {
"Ulster Scots",
201966,
"sco",
}
m["sco-nor"] = {
"Northern Scots",
16928150,
"sco",
}
m["sco-sou"] = {
"Southern Scots",
7570457,
"sco",
aliases = {"South Scots", "Borders Scots"},
}
-- Middle English varieties
m["enm-esc"] = { -- Part of Middle English until it developed into Middle Scots.
"Early Scots",
5326738,
"enm",
ancestors = "enm-nor",
aliases = {"Old Scots", "Scottish Middle English"},
}
m["enm-emi"] = {
"East Midland Middle English",
134238810,
"enm",
ancestors = "ang-ang", -- Technically ang-mer, but attested Mercian is mostly WM IIRC
}
m["enm-ken"] = {
"Kentish Middle English",
134238532,
"enm",
ancestors = "ang-ken",
}
m["enm-nor"] = {
"Northern Middle English",
134238541,
"enm",
ancestors = "ang-nor",
}
m["enm-sou"] = {
"Southern Middle English",
134238528,
"enm",
ancestors = "ang-wsx",
}
m["enm-wmi"] = {
"West Midland Middle English",
134238824,
"enm",
ancestors = "ang-mer",
}
-- Old English varieties
-- Includes both Mercian and Northumbrian.
m["ang-ang"] = {
"Anglian Old English",
121142917,
"ang",
}
m["ang-ken"] = {
"Kentish Old English",
11687485,
"ang",
}
m["ang-mer"] = {
"Mercian Old English",
602072,
"ang-ang",
}
m["ang-nor"] = {
"Northumbrian Old English",
1798915,
"ang-ang",
}
m["ang-wsx"] = {
"West Saxon Old English",
2658603,
"ang",
}
-----------------------------------------------------
-- High German varieties --
-----------------------------------------------------
-- (modern) German varieties
m["de-AT"] = {
"Austrian German",
306626,
"de",
}
m["de-AT-vie"] = {
"Viennese German",
56474,
"de-AT",
}
m["de-CH"] = {
"Switzerland German",
1366643,
"de",
aliases = {"Schweizer Hochdeutsch", "Swiss Standard German", "Swiss High German"},
}
m["de-bal"] = {
"Baltic German",
15785413,
"de",
}
m["de-ear"] = {
"Early New High German",
1472199,
"de",
ancestors = "gmh",
aliases = {"Early Modern High German"},
}
m["ksh"] = {
"Kölsch",
4624,
"gmw-cfr",
}
m["pfl"] = {
"Palatine German",
23014,
"gmw-rfr",
aliases = {"Pfälzisch", "Pälzisch", "Palatinate German"},
}
m["sli"] = {
"Silesian East Central German",
152965,
"gmw-ecg",
aliases = {"Silesian"},
}
m["sxu"] = {
"Upper Saxon German",
699284,
"gmw-ecg",
}
-- Old High German varieties
m["lng"] = {
"Lombardic",
35972,
"goh",
}
-- Alemannic German varieties
m["gsw-low"] = {
"Low Alemannic German",
503724,
"gsw",
}
m["gsw-FR-als"] = {
"Alsatian Alemannic German",
8786,
"gsw-low",
}
m["gsw-hig"] = {
"High Alemannic German",
503728,
"gsw",
}
m["gsw-hst"] = {
"Highest Alemannic German",
687538,
"gsw",
}
m["wae"] = {
"Walser German",
680517,
"gsw-hst",
}
-----------------------------------------------------
-- Low German varieties --
-----------------------------------------------------
m["nds-de"] = {
"German Low German",
25433,
"nds",
ietf_subtag = "nds-DE", -- should we make this the actual code?
wikimedia_codes = "nds",
}
m["nds-nl"] = {
"Dutch Low Saxon",
516137,
"nds",
ietf_subtag = "nds-NL", -- should we make this the actual code?
wikimedia_codes = "nds-nl",
}
m["act"] = {
"Achterhoeks",
153627,
"nds-nl",
aliases = {"Achterhoek", "Achterhooks"},
}
m["drt"] = {
"Drents",
2736709,
"nds-nl",
aliases = {"Drèents", "Dreins", "Dreints", "Drints"},
}
m["frs"] = {
"East Frisian Low German",
149208,
"nds-de",
aliases = {"East Frisian", "East Frisian Low Saxon"},
}
m["gos"] = {
"Gronings",
508854,
"nds-nl",
aliases = {"Grunnegs", "Grönnegs"},
}
m["nds-lpr"] = {
"Low Prussian",
33982,
"nds-de",
}
m["sdz"] = {
"Sallands",
3436668,
"nds-nl",
aliases = {"Sallaans", "Sallaands"},
}
m["stl"] = {
"Stellingwerfs",
506010,
"nds-nl",
aliases = {"Stellingwarfs"},
}
m["twd"] = {
"Twents",
497363,
"nds-nl",
aliases = {"Tweants"},
}
m["vel"] = {
"Veluws",
2484810,
"nds-nl",
}
m["wep"] = {
"Westphalian",
505655,
"nds-de",
aliases = {"Westfalish", "Westphalien"},
}
-----------------------------------------------------
-- North Frisian varieties --
-----------------------------------------------------
m["frr-ins"] = {
"Insular North Frisian",
110629610,
"frr",
}
m["frr-fam"] = {
"Föhr-Amrum North Frisian",
110629601,
"frr-ins",
}
m["frr-foh"] = {
"Föhr North Frisian",
28185,
"frr-fam",
aliases = {"Föhr Frisian", "Fering",
"Ferring", -- Glottolog
},
varieties = {"Aasdring", "Weesdring"},
}
m["frr-amr"] = {
"Amrum North Frisian",
28192,
"frr-fam",
aliases = {"Amrum Frisian", "Amrum", "Öömrang"},
}
m["frr-hel"] = {
"Heligoland North Frisian",
28086,
"frr-ins",
aliases = {"Heligoland Frisian", "Halunder", "Heligolandic Frisian", "Heligolandic North Frisian",
"Helgoland Frisian", "Helgoland North Frisian", "Helgoland"},
}
m["frr-syl"] = {
"Sylt North Frisian",
28181,
"frr-ins",
aliases = {"Sylt Frisian", "Söl'ring",
"Sölreng", -- Glottolog
},
}
m["frr-mai"] = {
"Mainland North Frisian",
110629626,
"frr",
}
m["frr-hal"] = {
"Halligen North Frisian",
28177,
"frr-mai",
aliases = {"Halligen Frisian", "Halifreesk", "Hallingen Frisian", "Hallingen North Frisian",
"Hallingen", -- Glottolog
},
}
m["frr-moo"] = {
"Mooring North Frisian",
28187,
"frr-mai",
aliases = {"Bökingharde North Frisian", "Bökingharde Frisian", "Böökinghiirder frasch",
"Mooring", "Moring",
},
varieties = {{"East Mooring", "Ostermooring"}, {"West Mooring", "Westermooring"}},
}
m["frr-kar"] = {
"Karrharde North Frisian",
28191,
"frr-mai",
aliases = {"Karrharde Frisian", "Karrharder",
},
}
m["frr-goe"] = {
-- Technically this refers to three adjacent dialects (Northern, Central and Southern), the latter of which went
-- extinct in 1980-1981. As a result, Glottolog speaks of "Norder-Mittelgoesharde", referring to the remaining two.
"Goesharde North Frisian",
28183,
"frr-mai",
aliases = {"Norder-Mittelgoesharde North Frisian", "Norder-Mittelgoesharde Frisian", "Norder-Mittelgoesharde",
"Goesharde Frisian", "Goesharde", "Gooshiirder",
},
}
m["frr-wie"] = {
"Wiedingharde North Frisian",
28171,
"frr-mai",
aliases = {"Wiedingharde Frisian", "Wiedingharde", "Wiringhiirder freesk",
},
}
-----------------------------------------------------
-- Old Norse varieties --
-----------------------------------------------------
m["non-grn"] = {
"Greenlandic Norse",
855236,
"non-own",
}
m["non-oen"] = {
"Old East Norse",
10498031,
"non",
ancestors = "non",
}
m["non-own"] = {
"Old West Norse",
2377483,
"non",
ancestors = "non",
}
-----------------------------------------------------
-- Old Swedish varieties --
-----------------------------------------------------
m["gmq-osw-lat"] = {
"Late Old Swedish",
10723594,
"gmq-osw",
ancestors = "gmq-osw",
}
--------------------------------------------------------------------------------------
-- Greek varieties --
--------------------------------------------------------------------------------------
m["qsb-grc"] = {
"Pre-Greek",
965052,
"und",
family = "qfa-sub",
}
m["grc-aeo"] = {
"Aeolic Greek",
406373,
"grc",
aliases = {"Lesbic Greek", "Lesbian Greek", "Aeolian Greek"},
}
m["grc-arc"] = {
"Arcadian Greek",
nil,
"grc-arp",
}
m["grc-arp"] = {
"Arcadocypriot Greek",
499602,
"grc",
}
m["grc-att"] = {
"Attic Greek",
506588,
"grc",
}
m["grc-boi"] = {
"Boeotian Greek",
406373,
"grc-aeo",
}
m["grc-cyp"] = {
"Cypriot Ancient Greek", -- to distinguish from Cypriot Greek below
nil,
"grc-arp",
}
m["grc-dor"] = {
"Doric Greek",
285494,
"grc",
}
m["grc-ela"] = {
"Elean Greek",
nil,
"grc",
}
m["grc-epi"] = {
"Epic Greek",
990062,
"grc",
aliases = {"Homeric Greek"},
}
m["grc-ion"] = {
"Ionic Greek",
504165,
"grc",
}
m["grc-koi"] = {
"ဂရေတ် ခါဝ်အိန်",
107358,
"grc",
ancestors = "grc-att",
aliases = {"Hellenistic Greek"},
}
m["grc-kre"] = {
"Cretan Ancient Greek", -- to distinguish from Cretan Greek below
nil,
"grc-dor",
}
m["grc-opl"] = {
"Opuntian Locrian",
nil,
"grc",
}
m["grc-ozl"] = {
"Ozolian Locrian",
nil,
"grc",
}
m["grc-pam"] = {
"Pamphylian Greek",
2271793,
"grc",
}
m["grc-ths"] = {
"Thessalian Greek",
406373,
"grc-aeo",
}
m["gkm"] = {
"ဂရေတ် ဗေတ်သေန်ထေၚ်",
36387,
"grc",
ancestors = "grc-koi",
aliases = {"Medieval Greek"},
}
m["el-cyp"] = {
"Cypriot Greek",
245899,
"el",
aliases = {"Cypriotic Greek"},
}
m["el-pap"] = {
"Paphian Greek",
nil,
"el",
}
m["el-crt"] = {
"Cretan Greek",
588306,
"el",
}
m["el-kth"] = {
"Katharevousa",
35961,
"el",
"Polyt",
ancestors = "gkm",
aliases = {"Katharevousa Greek"},
-- Polyt display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["el-kal"] = {
"Kaliarda",
12878658,
"el",
}
--------------------------------------------------------------------------------------
-- Indo-Iranian varieties --
--------------------------------------------------------------------------------------
-------------------------------------------------------------------------
-- Indo-Aryan varieties --
-------------------------------------------------------------------------
-- reconstructed intermediate stages
m["pra-pro"] = {
"Proto-New Indo-Aryan",
nil,
"pra",
}
m["inc-ash-pro"] = {
"Proto-Middle Indo-Aryan",
nil,
"inc-ash",
}
m["inc-mit"] = {
"Mitanni",
1986700,
"inc-pro",
}
m["bra-old"] = {
"Old Braj",
nil,
"bra",
}
-- Apabhramsas
m["inc-aav"] = {
"အဝဟတာ",
nil,
"inc-apa",
aliases = {"Abahattha"},
}
m["inc-asa"] = {
"သဥူရေသဳနဳ အာပ်ပါပရာမ်သာ",
nil,
"inc-apa",
}
m["inc-agu"] = {
"ဂူဂျာရာ အာပ်ပါပရာမ်သာ",
nil,
"inc-apa",
}
m["inc-aka"] = {
"ခေပ်သမဳရဳ အာပ်ပါပရာမ်သာ",
nil,
"inc-apa",
}
m["inc-ama"] = {
"မဟာရာတ်သပ်ထရဳ အာပ်ပါပရာမ်သာ",
nil,
"inc-apa",
}
m["inc-ata"] = {
"တာကာ အာပ်ပါပရာမ်သာ",
nil,
"inc-apa",
}
m["inc-avr"] = {
"ဝရာခါဒါ အာပ်ပါပရာမ်သာ",
nil,
"inc-apa",
}
-- Assamese varieties
m["as-bkm"] = {
"Barpetia Kamrupi Assamese",
30642960,
"as",
}
m["as-nkm"] = {
"Nalbaria Kamrupi Assamese",
85787678,
"as",
}
m["as-pkm"] = {
"Palasbaria Kamrupi Assamese",
nil,
"as",
}
-- Bengali varieties
m["bn-dvn"] = {
"Dhakaiya Vaṅga Bengali",
48726851,
"bn", -- Eastern Bengali variety
}
m["bn-nvn"] = {
"Noakhailla Vaṅga Bengali",
107548681,
"bn", -- Eastern Bengali variety
}
-- Dhivehi varieties
m["dv-old"] = {
"Old Dhivehi",
117790875,
"dv",
}
m["dv-mul"] = {
"Mulaku Dhivehi",
nil,
"dv",
aliases = {"Mulaku Divehi", "Mulaku Bas"},
}
m["dv-huv"] = {
"Huvadhu Dhivehi",
nil,
"dv",
aliases = {"Huvadhu Divehi", "Huvadhu Bas"},
}
m["dv-add"] = {
"Addu Dhivehi",
nil,
"dv",
aliases = {"Addu Divehi", "Addu Bas"},
}
-- Gujarati varieties
m["gu-kat"] = {
"Kathiyawadi",
nil,
"gu",
aliases = {"Kathiyawadi Gujarati", "Kathiawadi"},
}
m["gu-lda"] = {
"Lisan ud-Dawat Gujarati",
nil,
"gu",
aliases = {"Lisan ud-Dawat", "LDA"},
}
-- Hindi varieties
m["hi-mum"] = {
"Bombay Hindi",
3543151,
"hi",
aliases = {"Mumbai Hindi", "Bambaiyya Hindi"},
}
m["hi-mid"] = {
"Middle Hindi",
nil,
"inc-ohi",
ancestors = "inc-ohi",
}
-- Konkani varieties
m["kok-mid"] = {
"Middle Konkani",
nil,
"kok",
aliases = {"Medieval Konkani"},
}
m["kok-old"] = {
"Old Konkani",
nil,
"kok",
aliases = {"Early Konkani"},
}
-- Prakrits
m["pra-ard"] = {
"အာတ်ဓၟဂါတ်ဒဳ ပရာကရေတ်",
35217,
"pra",
aliases = {"Ardhamagadhi"},
}
m["pra-hel"] = {
"ဟေဠူ ပရာကရေတ်",
15080869,
"pra",
aliases = {"Elu", "Elu Prakrit", "Helu"},
}
m["pra-kha"] = {
"ခါဿာ ပရာကရေတ်",
nil,
"pra",
aliases = {"Khasa"},
}
m["pra-mag"] = {
"မဂ္ဂဒိ ပရာကရေတ်", -- Not to be confused with Magahi (mag)
2652214,
"pra",
aliases = {"Magadhi"},
}
m["pra-mah"] = {
"မဟာရာတ်ထရဳ ပရာကရေတ်",
2586773,
"pra",
aliases = {"Maharashtri Prakrit", "Maharastri", "Maharashtri"},
}
m["pra-pai"] = {
"ပါအေတ်သာသဳ ပရာကရေတ်",
2995607,
"pra-sau",
aliases = {"Paisaci", "Paisachi"},
ancestors = "pra-sau"
}
m["pra-sau"] = {
"သောရာသေနဳ ပရာကရေတ်",
2452885,
"pra",
aliases = {"Sauraseni", "Shauraseni"},
}
m["pra-ava"] = {
"အဗါန်တဳ",
nil,
"pra",
aliases = {"Avanti Prakrit"},
}
m["pra-pra"] = {
"ပရာသဳယျာ",
nil,
"pra",
aliases = {"Pracya Prakrit"},
}
m["pra-bah"] = {
"ပါလိကဳ",
nil,
"pra",
aliases = {"Bahliki Prakrit"},
}
m["pra-dak"] = {
"ထေတ်သဳနတာယျ",
nil,
"pra",
aliases = {"Daksinatya Prakrit"},
}
m["pra-sak"] = {
"သာကာရဳ",
nil,
"pra",
aliases = {"Sakari Prakrit"},
}
m["pra-can"] = {
"ခေန်ဒါလဳ",
nil,
"pra",
aliases = {"Candali Prakrit"},
}
m["pra-sab"] = {
"သာဗါရဳ",
nil,
"pra",
aliases = {"Sabari Prakrit"},
}
m["pra-abh"] = {
"အဖိရဳ",
nil,
"pra",
aliases = {"Abhiri Prakrit"},
}
m["pra-dra"] = {
"ဒရာမဳလဳ",
nil,
"pra",
aliases = {"Dramili Prakrit"},
}
m["pra-odr"] = {
"အဝ်ဒရဳ",
nil,
"pra",
aliases = {"Odri Prakrit"},
}
-- Punjabi varieties
m["pnb"] = {
"Western Punjabi",
58635,
"pa",
"pa-Arab",
}
-- Sanskrit varieties
m["vsn"] = {
"Vedic Sanskrit",
36858,
"sa",
}
m["cls"] = {
"Classical Sanskrit",
9333703,
"sa",
}
m["sa-bhs"] = {
"Buddhist Hybrid Sanskrit",
248758,
"sa",
}
m["sa-bra"] = {
"Brahmanic Sanskrit",
139822891,
"vsn",
}
m["sa-epi"] = {
"Epic Sanskrit",
56702805,
"cls",
}
m["sa-neo"] = {
"New Sanskrit",
nil,
"sa",
}
m["sa-rig"] = {
"Rigvedic Sanskrit",
139822680,
"vsn",
}
-- Sinhalese varieties
m["si-med"] = {
"Medieval Sinhalese",
nil,
"si",
aliases = {"Medieval Sinhala"},
}
-------------------------------------------------------------------------
-- Iranian varieties --
-------------------------------------------------------------------------
m["qsb-bma"] = {
"the BMAC substrate",
133187435,
"und",
family = "qfa-sub",
aliases = {"the Bactria-Margiana substrate", "the Bactria-Margiana Archaeological Complex substrate"},
}
-- Historical and current Iranian dialects
m["ae-old"] = {
"Old Avestan",
29572,
"ae",
aliases = {"Gathic Avestan"},
}
m["ae-yng"] = {
"Younger Avestan",
29572,
"ae-old",
aliases = {"Young Avestan"},
}
m["bcc"] = {
"Southern Balochi",
33049,
"bal",
aliases = {"Southern Baluchi"},
}
m["bgp"] = {
"Eastern Balochi",
33049,
"bal",
aliases = {"Eastern Baluchi"},
}
m["bgn"] = {
"Western Balochi",
33049,
"bal",
aliases = {"Western Baluchi"},
}
m["bsg-ban"] = {
"Bandari",
nil,
"bsg",
}
m["bsg-hor"] = {
"Hormozi",
nil,
"bsg",
}
m["bsg-min"] = {
"Minabi",
nil,
"bsg",
}
m["kho-old"] = {
"Old Khotanese",
nil,
"kho",
}
m["kho-lat"] = {
"Late Khotanese",
nil,
"kho-old",
}
m["peo-ear"] = {
"Early Old Persian",
nil,
"peo",
}
m["peo-lat"] = {
"Late Old Persian",
nil,
"peo",
}
m["pal-ear"] = {
"Early Middle Persian",
nil,
"pal",
}
m["pal-lat"] = {
"Late Middle Persian",
nil,
"pal",
ancestors = "pal-ear",
}
m["ps-nwe"] = {
"Northwestern Pashto",
nil,
"ps",
}
m["ps-cgi"] = {
"Central Ghilzay",
nil,
"ps-nwe",
}
m["ps-mah"] = {
"Mahsudi",
nil,
"ps-nwe",
}
m["ps-nea"] = {
"Northeastern Pashto",
nil,
"ps",
}
m["ps-afr"] = {
"Afridi",
nil,
"ps-nea",
}
m["ps-bng"] = {
"Bangash",
nil,
"ps-nea",
}
m["ps-xat"] = {
"Khatak",
nil,
"ps-nea",
}
m["ps-pes"] = {
"Peshawari",
nil,
"ps-nea",
}
m["ps-sea"] = {
"Southeastern Pashto",
nil,
"ps",
}
m["ps-ban"] = {
"Bannu",
nil,
"ps-sea",
}
m["ps-kak"] = {
"Kakari",
nil,
"ps-sea",
}
m["ps-ser"] = {
"Sher",
nil,
"ps-sea",
}
m["ps-waz"] = {
"Waziri",
12274473,
"ps-sea",
}
m["ps-swe"] = {
"Southwestern Pashto",
nil,
"ps",
}
m["ps-kan"] = {
"Kandahari",
nil,
"ps-swe",
}
m["ps-jad"] = {
"Jadrani",
nil,
"ps",
ancestors = "ira-pat-pro"
}
m["xme-azr"] = {
"Old Azari",
nil,
"xme-ott",
aliases = {"Old Azeri", "Azari", "Azeri", "Āḏarī", "Adari", "Adhari"},
}
m["xme-ttc-cen"] = {
"Central Tati",
nil,
"xme-ott",
}
m["xme-ttc-eas"] = {
"Eastern Tati",
nil,
"xme-ott",
}
m["xme-ttc-nor"] = {
"Northern Tati",
nil,
"xme-ott",
}
m["xme-ttc-sou"] = {
"Southern Tati",
nil,
"xme-ott",
}
m["xme-ttc-wes"] = {
"Western Tati",
nil,
"xme-ott",
}
m["xmn"] = {
"Manichaean Middle Persian",
nil,
"pal-lat",
}
m["fa-ear"] = {
"Early New Persian",
127413796,
"fa",
ancestors = "pal-lat",
translit = "fa-cls-translit",
}
m["fa-cls"] = {
"Classical Persian",
9168,
"fa",
ancestors = "fa-ear",
translit = "fa-cls-translit",
}
m["fa-ira"] = {
"Iranian Persian",
3513637,
"fa",
aliases = {"Modern Persian", "Western Persian"},
translit = "fa-ira-translit",
}
m["prs"] = {
"Dari",
178440,
"fa",
aliases = {"Dari Persian", "Central Persian", "Eastern Persian", "Afghan Persian"},
translit = "fa-cls-translit",
}
m["haz"] = {
"Hazaragi",
33398,
"prs",
translit = "fa-cls-translit",
}
m["os-dig"] = {
"Digor Ossetian",
3027861,
"os",
aliases = {"Digoron", "Digor"},
}
m["os-iro"] = {
"Iron Ossetian",
nil,
"os",
aliases = {"Iron"},
}
m["sog-ear"] = {
"Early Sogdian",
nil,
"sog",
}
m["sog-lat"] = {
"Late Sogdian",
nil,
"sog-ear",
}
m["ro-MD"] = {
"Moldovan",
36392,
"ro",
aliases = {"Moldavian"},
}
m["oru-kan"] = {
"Kaniguram",
6363164,
"oru",
}
m["oru-log"] = {
"Logar",
nil,
"oru",
}
m["oos"] = {
"Old Ossetic",
65455882,
"xln",
}
m["oos-ear"] = {
"Early Old Ossetic",
nil,
"oos",
}
m["oos-lat"] = {
"Late Old Ossetic",
nil,
"oos",
}
m["rdb-jir"] = {
"Jirofti",
nil,
"rdb",
}
m["rdb-kah"] = {
"Kahnuji",
nil,
"rdb",
}
-- Southwestern Fars lects
m["fay-bur"] = {
"Burenjani",
nil,
"fay",
}
m["fay-bsh"] = {
"Bushehri",
nil,
"fay",
}
m["fay-dsh"] = {
"Dashtaki",
nil,
"fay",
}
m["fay-dav"] = {
"Davani",
5228140,
"fay",
}
m["fay-eze"] = {
"Emamzada Esmaili",
nil,
"fay",
}
m["fay-gav"] = {
"Gavkoshaki",
nil,
"fay",
}
m["fay-kho"] = {
"Khollari",
nil,
"fay",
}
m["fay-kon"] = {
"Kondazi",
nil,
"fay",
}
m["fay-kzo"] = {
"Old Kazeruni",
nil,
"fay",
}
m["fay-mas"] = {
"Masarami",
nil,
"fay",
}
m["fay-pap"] = {
"Papuni",
nil,
"fay",
}
m["fay-sam"] = {
"Samghani",
nil,
"fay",
}
m["fay-shr"] = {
"Shirazi",
nil,
"fay",
}
m["fay-sho"] = {
"Old Shirazi",
nil,
"fay",
}
m["fay-kar"] = {
"Khargi",
nil,
"fay",
}
m["fay-sor"] = {
"Sorkhi",
nil,
"fay",
}
-- Talysh lects
m["tly-cen"] = {
"Central Talysh",
nil,
"tly",
}
m["tly-asa"] = {
"Asalemi",
nil,
"tly-cen",
}
m["tly-kar"] = {
"Karganrudi",
nil,
"tly-cen",
}
m["tly-tul"] = {
"Tularudi",
nil,
"tly-cen",
}
m["tly-tal"] = {
"Taleshdulabi",
nil,
"tly-cen",
}
m["tly-nor"] = {
"Northern Talysh",
nil,
"tly",
}
m["tly-aze"] = {
"Azerbaijani Talysh",
nil,
"tly-nor",
}
m["tly-anb"] = {
"Anbarani",
nil,
"tly-nor",
}
m["tly-sou"] = {
"Southern Talysh",
nil,
"tly",
}
m["tly-fum"] = {
"Fumani",
nil,
"tly-sou",
}
m["tly-msu"] = {
"Masulei",
nil,
"tly-sou",
}
m["tly-msa"] = {
"Masali",
nil,
"tly-sou",
}
m["tly-san"] = {
"Shandarmani",
nil,
"tly-sou",
}
-- Tafreshi lects
m["xme-amo"] = {
"Amorehi",
nil,
"xme-taf",
}
m["atn"] = {
"Ashtiani",
3436590,
"xme-taf",
}
m["xme-bor"] = {
"Borujerdi",
nil,
"xme-taf",
}
m["xme-ham"] = {
"Hamadani",
6302426,
"xme-taf",
}
m["xme-kah"] = {
"Kahaki",
nil,
"xme-taf",
}
m["vaf"] = {
"Vafsi",
32611,
"xme-taf",
}
-- Kermanic lects
m["kfm"] = {
"Khunsari",
6403030,
"xme-ker",
}
m["xme-mah"] = {
"Mahallati",
nil,
"xme-ker",
}
m["xme-von"] = {
"Vonishuni",
nil,
"xme-ker",
}
m["xme-bdr"] = {
"Badrudi",
nil,
"xme-ker",
}
m["xme-del"] = {
"Delijani",
nil,
"xme-ker",
}
m["xme-kas"] = {
"Kashani",
nil,
"xme-ker",
}
m["xme-kes"] = {
"Kesehi",
nil,
"xme-ker",
}
m["xme-mey"] = {
"Meymehi",
nil,
"xme-ker",
}
m["ntz"] = {
"Natanzi",
6968399,
"xme-ker",
}
m["xme-abz"] = {
"Abuzeydabadi",
nil,
"xme-ker",
}
m["xme-aby"] = {
"Abyanehi",
nil,
"xme-ker",
}
m["xme-far"] = {
"Farizandi",
nil,
"xme-ker",
}
m["xme-jow"] = {
"Jowshaqani",
nil,
"xme-ker",
}
m["xme-nas"] = {
"Nashalji",
nil,
"xme-ker",
}
m["xme-qoh"] = {
"Qohrudi",
nil,
"xme-ker",
}
m["xme-yar"] = {
"Yarandi",
nil,
"xme-ker",
}
m["soj"] = {
"Soi",
7930463,
"xme-ker",
aliases = {"Sohi"},
}
m["xme-tar"] = {
"Tari",
nil,
"xme-ker",
}
m["gzi"] = {
"Gazi",
5529130,
"xme-ker",
}
m["xme-sed"] = {
"Sedehi",
nil,
"xme-ker",
}
m["xme-ard"] = {
"Ardestani",
nil,
"xme-ker",
}
m["xme-zef"] = {
"Zefrehi",
nil,
"xme-ker",
}
m["xme-isf"] = {
"Isfahani",
nil,
"xme-ker",
}
m["xme-kaf"] = {
"Kafroni",
nil,
"xme-ker",
}
m["xme-vrz"] = {
"Varzenehi",
nil,
"xme-ker",
}
m["xme-xur"] = {
"Khuri",
nil,
"xme-ker",
}
m["nyq"] = {
"Nayini",
6983146,
"xme-ker",
}
m["xme-ana"] = {
"Anaraki",
nil,
"xme-ker",
}
m["gbz"] = {
"Zoroastrian Dari",
32389,
"xme-ker",
aliases = {"Behdināni", "Gabri", "Gavrŭni", "Gabrōni"},
}
m["xme-krm"] = {
"Kermani",
nil,
"xme-ker",
}
m["xme-yaz"] = {
"Yazdi",
nil,
"xme-ker",
}
m["xme-bid"] = {
"Bidhandi",
nil,
"xme-ker",
}
m["xme-bij"] = {
"Bijagani",
nil,
"xme-ker",
}
m["xme-cim"] = {
"Chimehi",
nil,
"xme-ker",
}
m["xme-han"] = {
"Hanjani",
nil,
"xme-ker",
}
m["xme-kom"] = {
"Komjani",
nil,
"xme-ker",
}
m["xme-nar"] = {
"Naraqi",
nil,
"xme-ker",
}
m["xme-nus"] = {
"Nushabadi",
nil,
"xme-ker",
}
m["xme-qal"] = {
"Qalhari",
nil,
"xme-ker",
}
m["xme-trh"] = {
"Tarehi",
nil,
"xme-ker",
}
m["xme-val"] = {
"Valujerdi",
nil,
"xme-ker",
}
m["xme-var"] = {
"Varani",
nil,
"xme-ker",
}
m["xme-zor"] = {
"Zori",
nil,
"xme-ker",
}
-- Ramandi lects
m["tks-ebr"] = {
"Ebrahimabadi",
nil,
"tks",
}
m["tks-sag"] = {
"Sagzabadi",
nil,
"tks",
}
m["tks-esf"] = {
"Esfarvarini",
nil,
"tks",
}
m["tks-tak"] = {
"Takestani",
nil,
"tks",
}
m["tks-cal"] = {
"Chali Tati",
nil,
"tks",
aliases = {"Chāli"},
}
m["tks-dan"] = {
"Danesfani",
nil,
"tks",
}
m["tks-xia"] = {
"Khiaraji",
nil,
"tks",
}
m["tks-xoz"] = {
"Khoznini",
nil,
"tks",
}
-- Shughni dialects
m["sgh-bro"] = {
"Bartangi-Oroshori",
nil,
"sgh",
}
m["sgh-bar"] = {
"Bartangi",
nil,
"sgh-bro",
}
m["sgh-oro"] = {
"Oroshori",
nil,
"sgh-bro",
aliases = {"Roshorvi"},
}
m["sgh-rsx"] = {
"Roshani-Khufi",
nil,
"sgh",
}
m["sgh-xuf"] = {
"Khufi",
2562249,
"sgh-rsx",
aliases = {"Xufi", "Xūfī"},
}
m["sgh-ros"] = {
"Roshani",
2597566,
"sgh-rsx",
aliases = {"Rushani", "Rōšāni"},
}
m["sgh-xgb"] = {
"Khughni-Bajui",
nil,
"sgh",
}
m["sgh-xug"] = {
"Khughni",
nil,
"sgh-xgb",
}
m["sgh-baj"] = {
"Bajui",
nil,
"sgh-xgb",
}
-------------------------------------------------------------------------
-- Nuristani varieties --
-------------------------------------------------------------------------
m["bsh-kat"] = {
"Kativiri",
2605045,
"bsh",
aliases = {"Katə́viri"},
}
m["xvi"] = {
"Kamviri",
1193495,
"bsh",
aliases = {"Kamvíri"},
}
m["bsh-mum"] = {
"Mumviri",
nil,
"bsh",
aliases = {"Mumvíri"},
}
--------------------------------------------------------------------------------------
-- Italic varieties --
--------------------------------------------------------------------------------------
-------------------------------------------------------------------------
-- Latin varieties --
-------------------------------------------------------------------------
-- Latin varieties by period
m["itc-ola"] = {
"လပ်တေန်တြေံ",
12289,
"la",
"Latn, Ital",
translit = {
Ital = "Ital-translit"
},
}
m["itc-lan"] = {
"Lanuvian",
16890829,
"itc-ola",
aliases = {"Lanuvine"},
}
m["itc-pra"] = {
"Praenestine",
16889772,
"itc-ola",
aliases = {"Praenestinian"},
}
m["la-cla"] = {
"လပ်တေန်ဝၚ်ဂန္ထ",
253854,
"la",
}
m["la-vul"] = {
"လပ်တေန်အရိုၚ်",
37560,
"la-cla",
}
m["la-afr"] = {
"African Romance",
162064,
"roa-pro",
}
m["la-lat"] = {
"လပ်တေန်လဇုဲ",
1503113,
"la",
ancestors = "la-cla",
}
m["la-med"] = {
"လပ်တေန် ခေတ်လဒေါဝ်",
1163234,
"la",
ancestors = "la-lat",
}
m["la-eme"] = {
"လပ်တေန်ခေတ်လဒေါဝ်ဗွဲမပြဟ်",
nil,
"la-med",
}
m["la-ecc"] = {
"သာသနာခရေတ်လပ်တေန်",
1247932,
"la",
aliases = {"Church Latin", "Liturgical Latin"},
ancestors = "la-lat",
}
m["la-ren"] = {
"လပ်တေန်ခေတ်ကလေၚ်ပလေဝ်ပ္တိုန်တၟိ",
499083,
"la",
ancestors = "la-med",
}
m["la-new"] = {
"လပ်တေန်တၟိ",
1248221,
"la",
aliases = {"Modern Latin"},
ancestors = "la-ren",
}
m["la-con"] = {
"လပ်တေန်ခေတ်ပြိုၚ်ပ္ကာန်",
1246397,
"la-new",
}
-------------------------------------------------------------------------
-- Miscellaneous Italic varieties --
-------------------------------------------------------------------------
m["xfa-cap"] = {
"Capenate",
133182969,
"xfa",
}
m["osc-luc"] = {
"Lucanian",
3265025,
"osc",
}
m["osc-sam"] = {
"Samnite",
133184287,
"osc",
}
-------------------------------------------------------------------------
-- Romance varieties --
-------------------------------------------------------------------------
m["roa-pro"] = {
"Proto-Romance",
3408029,
"la-lat",
ancestors = "la-vul",
}
-----------------------------------------------------
-- Catalan varieties --
-----------------------------------------------------
m["ca-val"] = {
"Valencian",
32641,
"ca",
}
-----------------------------------------------------
-- Franco-Provençal varieties --
-----------------------------------------------------
m["frp-old"] = {
"Old Franco-Provençal",
nil,
"frp",
}
-----------------------------------------------------
-- French and derived creole varieties --
-----------------------------------------------------
m["fro-nor"] = {
"Old Northern French",
2044917,
"fro",
aliases = {"Old Norman", "Old Norman French"},
}
m["fro-pic"] = {
"Picard Old French",
nil,
"fro",
}
m["xno"] = {
"Anglo-Norman",
35214,
"fro-nor",
}
m["xno-law"] = {
"Law French",
2044323,
"xno",
}
m["zrp"] = {
"Zarphatic",
36994,
"fro",
aliases = {"Judeo-French"},
pseudo_families = "qfa-jew",
}
m["fr-CA"] = {
"Canadian French",
1450506,
"fr",
}
m["fr-CH"] = {
"Swiss French",
1480152,
"fr",
}
m["fr-aca"] = {
"Acadian French",
415109,
"fr",
}
m["fr-lou"] = {
"Louisiana French",
3083213,
"fr",
}
m["fr-mis"] = {
"Missouri French",
3083210,
"fr",
}
m["frc"] = {
"Cajun French",
880301,
"fr-lou",
}
m["ht-sdm"] = {
"Saint Dominican Creole French",
nil,
"ht",
ancestors = "fr",
}
-- Norman varieties
m["nrf-grn"] = {
"Guernsey Norman",
56428,
"nrf",
aliases = {"Guernsey"},
}
m["nrf-jer"] = {
"Jersey Norman",
56430,
"nrf",
aliases = {"Jersey"},
}
-----------------------------------------------------
-- Gallo-Italic varieties --
-----------------------------------------------------
m["egl-old"] = {
"Old Emilian",
nil,
"egl",
}
m["lij-old"] = {
"လဳဂူရဳယာန်တြေံ",
nil,
"lij",
aliases = {"Old Genoese"},
}
m["lmo-old"] = {
"လောန်ဗါတ်တြေံ",
97165320,
"lmo",
}
m["pms-old"] = {
"Old Piedmontese",
nil,
"pms",
aliases = {"Old Piemontese"},
}
m["vec-old"] = {
"Old Venetan",
nil,
"vec",
aliases = {"Old Venetian"},
}
m["rgn-old"] = {
"Old Romagnol",
nil,
"rgn",
}
-----------------------------------------------------
-- Italo-Romance varieties --
-----------------------------------------------------
-- Italian varieties
m["roa-oit"] = {
"Old Italian",
nil,
"it",
}
m["it-CH"] = {
"Switzerland Italian",
672147,
"it",
}
-- Other Italo-Romance varieties
m["nap-old"] = {
"Old Neapolitan",
nil,
"nap",
}
m["scn-old"] = {
"Old Sicilian",
nil,
"scn",
}
-----------------------------------------------------
-- Occitan varieties --
-----------------------------------------------------
m["oc-auv"] = {
"Auvergnat",
35359,
"oc",
aliases = {"Auvernhat", "Auvergnese"},
}
m["oc-gas"] = {
"ဂေါသ်သကာန်",
35735,
"oc",
}
-- standardized dialect of Gascon
m["oc-ara"] = {
"Aranese",
10196,
"oc-gas",
}
m["oc-lan"] = {
"လာမ်ဂဝေအ်ဒံက်ဃှေန်",
942602,
"oc",
aliases = {"Lengadocian"},
}
m["oc-lim"] = {
"လိမူသေန်",
427614,
"oc",
}
m["oc-pro"] = {
"ဖရဝ်ဗေန်သော",
241243,
"oc",
aliases = {"Provencal"},
}
m["oc-pro-old"] = {
"ဖရဝ်ဗေန်သောတြေံ",
2779185,
"pro",
}
m["oc-viv"] = {
"ဝဳဝါရုဝ်-အောဖှာၚ်",
1649613,
"oc",
}
m["oc-jud"] = {
"Shuadit",
56472,
"oc",
aliases = {
"Chouhadite", "Chouhadit", "Chouadite", "Chouadit", "Shuhadit",
"Judeo-Occitan", "Judæo-Occitan", "Judaeo-Occitan",
"Judeo-Provençal", "Judæo-Provençal", "Judaeo-Provençal",
"Judeo-Provencal", "Judaeo-Provencal",
"Judeo-Comtadin", "Judæo-Comtadin", "Judaeo-Comtadin",
},
pseudo_families = "qfa-jew",
}
-----------------------------------------------------
-- Portuguese and derived creole varieties --
-----------------------------------------------------
-- Portuguese
m["pt-BR"] = {
"Brazilian Portuguese",
750553,
"pt",
}
m["pt-PT"] = {
"European Portuguese",
922399,
"pt",
}
-- Kabuverdianu (Cape Verde Creole, Cape Verdean Creole)
m["kea-bar"] = {
"Barlavento Kabuverdianu",
2217638,
"kea",
aliases = {"Barlavento", "Barlavento Creole", "Sampadjudu"},
}
m["kea-bvi"] = {
"Boa Vista Kabuverdianu",
16501837,
"kea-bar",
aliases = {"Boa Vista Creole"},
}
m["kea-sal"] = {
"Sal Kabuverdianu",
18707467,
"kea-bar",
aliases = {"Sal Creole"},
}
m["kea-saa"] = {
"Santo Antão Kabuverdianu",
18707472,
"kea-bar",
aliases = {"Santo Antão Creole"},
}
m["kea-sni"] = {
"São Nicolau Kabuverdianu",
18707549,
"kea-bar",
aliases = {"São Nicolau Creole"},
}
m["kea-svi"] = {
"São Vicente Kabuverdianu",
18707550,
"kea-bar",
aliases = {"São Vicente Creole"},
}
m["kea-sot"] = {
"Sotavento Kabuverdianu",
10261559,
"kea",
aliases = {"Sotavento", "Sotavento Creole", "Badiu"},
}
m["kea-bra"] = {
"Brava Kabuverdianu",
18670181,
"kea-sot",
aliases = {"Brava Creole"},
}
m["kea-fog"] = {
"Fogo Kabuverdianu",
18706861,
"kea-sot",
aliases = {"Fogo Creole"},
}
m["kea-mai"] = {
"Maio Kabuverdianu",
18707286,
"kea-sot",
aliases = {"Maio Creole"},
}
m["kea-san"] = {
"Santiago Kabuverdianu",
35117,
"kea-sot",
aliases = {"Santiago Creole"},
}
m["kea-alu"] = {
"ALUPEC Kabuverdianu",
375704,
"kea",
aliases = {"ALUPEC", "Alfabeto Unificado para a Escrita do Cabo-Verdiano"},
}
-----------------------------------------------------
-- Rhaeto-Romance varieties --
-----------------------------------------------------
-- Friulian varieties
m["fur-old"] = {
"Old Friulian",
nil,
"fur",
}
-- Ladin varieties
m["lld-amp"] = {
"Ampezan Ladin",
25617466,
"lld",
aliases = {"Anpezan", "Ampezan", "Ampezzan", "Ampezzano"},
}
m["lld-bad"] = {
"Badiot Ladin",
3706562,
"lld",
aliases = {"Badiot", "Badioto", "Badiotto"},
}
m["lld-cad"] = {
"Cadorino Ladin",
3706570,
"lld",
aliases = {"Cadorino"},
}
m["lld-fas"] = {
"Fascian Ladin",
742627,
"lld",
aliases = {"Fascian", "Fassano"},
}
m["lld-fod"] = {
"Fodom Ladin",
3706605,
"lld",
aliases = {"Fodom", "Livinallese"},
}
m["lld-for"] = {
"Fornes Ladin",
5470374,
"lld",
aliases = {"Fornes"},
}
m["lld-ghe"] = {
"Gherdëina Ladin",
3706597,
"lld",
aliases = {"Gherdëina", "Gardenese", "Val Gardena"},
}
m["lld-non"] = {
"Nones Ladin",
1055027,
"lld",
aliases = {"Nones", "Noneso"},
}
-- Romansh varieties
m["rm-old"] = {
"Old Romansh",
nil,
"rm",
}
m["rm-put"] = {
"Puter Romansh",
688309,
"rm",
aliases = {"Puter", "Putèr", "Upper Engadine", "rm-puter"},
}
m["rm-srm"] = {
"Surmiran Romansh",
690216,
"rm",
aliases = {"Surmiran", "rm-surmiran",
"Surmiran-Albula", -- Glottolog
},
}
m["rm-srs"] = {
"Sursilvan Romansh",
688348,
"rm",
aliases = {"Sursilvan", "rm-sursilv"},
}
m["rm-sut"] = {
"Sutsilvan Romansh",
688272,
"rm",
aliases = {"Sutsilvan", "rm-sutsilv"},
varieties = {"Scharans Sutsilvan"}, -- per Glottolog
}
m["rm-val"] = {
"Vallader Romansh",
690226,
"rm",
aliases = {"Vallader", "Putèr", "Lower Engadine", "rm-vallader"},
}
m["rm-gri"] = {
"Rumantsch Grischun",
688873,
"rm",
aliases = {"rm-rumgr"},
}
-----------------------------------------------------
-- Sardinian varieties --
-----------------------------------------------------
m["sc-old"] = {
"Old Sardinian",
nil,
"sc",
}
m["sc-src"] = {
"Logudorese",
777974,
"sc",
aliases = {"Logudorese Sardinian"},
}
m["sc-nuo"] = {
"Nuorese",
nil,
"sc-src",
aliases = {"Nuorese Sardinian"},
}
m["sc-sro"] = {
"Campidanese",
35348,
"sc",
aliases = {"Campidanese Sardinian"},
}
-----------------------------------------------------
-- Spanish varieties --
-----------------------------------------------------
m["es-ear"] = {
"Early Modern Spanish",
5364419,
"es",
}
m["es-AR"] = {
"Rioplatense Spanish",
509780,
"es",
}
m["es-BO"] = {
"Bolivian Spanish",
510730,
"es",
}
m["es-CL"] = {
"Chilean Spanish",
857295,
"es",
}
m["es-CO"] = {
"Colombian Spanish",
1115875,
"es",
}
m["es-CU"] = {
"Cuban Spanish",
824909,
"es",
}
m["es-MX"] = {
"Mexican Spanish",
616620,
"es",
}
m["es-PE"] = {
"Peruvian Spanish",
736236,
"es",
}
m["es-PH"] = {
"Philippine Spanish",
22091406,
"es",
}
m["es-US"] = {
"United States Spanish",
2301077,
"es",
aliases = {"US Spanish"},
}
--use label "US Spanish" to put Spanish terms in this category
m["es-PR"] = {
"Puerto Rican Spanish",
7258609,
"es",
}
m["es-VE"] = {
"Venezuelan Spanish",
840017,
"es",
}
m["es-lun"] = {
"Lunfardo",
1401612,
"es",
}
----------------------------------------------------------------------------------------------------------------------
-- Japonic varieties --
----------------------------------------------------------------------------------------------------------------------
-- Japanese varieties
m["ja-mid"] = {
"ဂျပါန် လဒေါဝ်",
6841474,
"ojp",
ancestors = "ojp",
}
m["ja-mid-ear"] = {
"Early Middle Japanese",
182695,
"ja-mid",
}
m["ja-mid-lat"] = {
"ဂျပါန်တြေံခေတ်လဇုဲ",
1816184,
"ja-mid",
ancestors = "ja-mid-ear",
}
m["ja-ear"] = {
"Early Modern Japanese",
5326692,
"ja",
ancestors = "ja-mid-lat",
}
m["ojp-eas"] = {
"Eastern Old Japanese",
65247957,
"ojp",
}
m["ja-cla"] = {
"Classical Japanese",
1332057,
"ja",
-- FIXME: This is redundant because Classical Japanese is considered a child of (Modern) Japanese, which has ja-mid-ear
-- (as well as ja-mid-lat) as ancestors. However, the intent here is that the *direct* ancestor of ja-cla is ja-mid-ear
-- and ja-mid-lat is not an ancestor. Need to rethink ancestor handling.
-- ancestors = "ja-mid-ear",
}
----------------------------------------------------------------------------------------------------------------------
-- Koreanic varieties --
----------------------------------------------------------------------------------------------------------------------
-- Korean varieties
m["oko-lat"] = {
"ကိုဝ်ရဳယျာတြေံခေတ်လဇုဲ",
nil,
"oko",
}
m["okm-ear"] = {
"Early Middle Korean",
nil,
"okm",
}
m["ko-cen"] = {
"Central Korean",
nil,
"ko",
}
m["ko-gyg"] = {
"Gyeonggi Korean",
485492,
"ko-cen",
aliases = {"Seoul Korean"},
}
m["ko-chu"] = {
"Chungcheong Korean",
625800,
"ko-cen",
aliases = {"Hoseo Korean"},
}
m["ko-hwa"] = {
"Hwanghae Korean",
16183706,
"ko-cen",
}
m["ko-gan"] = {
"Gangwon Korean",
11260444,
"ko-cen",
aliases = {"Yeongdong Korean"},
}
m["ko-gys"] = {
"Gyeongsang Korean",
488002,
"ko",
aliases = {"Southeastern Korean"},
}
m["ko-jeo"] = {
"Jeolla Korean",
11250166,
"ko",
aliases = {"Southwestern Korean"},
}
m["ko-pyo"] = {
"Pyongan Korean",
7263142,
"ko",
aliases = {"Northwestern Korean"},
}
m["ko-ham"] = {
"Hamgyong Korean",
860702,
"ko",
aliases = {"Northeastern Korean"},
}
m["ko-yuk"] = {
"Yukjin Korean",
16171275,
"ko",
aliases = {"Yukchin Korean", "Ryukjin Korean", "Ryukchin Korean"},
}
----------------------------------------------------------------------------------------------------------------------
-- Mongolic varieties --
----------------------------------------------------------------------------------------------------------------------
m["xng-ear"] = {
"Early Middle Mongol",
nil,
"xng",
}
m["xng-lat"] = {
"Late Middle Mongol",
nil,
"xng",
ancestors = "xng-ear",
}
m["mn-kha"] = {
"Khalkha Mongolian",
6399808,
"mn",
aliases = {"Khalkha"},
}
m["mn-ord"] = {
"Ordos Mongolian",
716904,
"mn",
aliases = {"Ordos"},
}
m["mn-cha"] = {
"Chakhar Mongolian",
907425,
"mn",
aliases = {"Chakhar"},
}
m["mn-khr"] = {
"Khorchin Mongolian",
3196210,
"mn",
aliases = {"Khorchin"},
}
----------------------------------------------------------------------------------------------------------------------
-- Niger-Congo varieties --
----------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-- Akan varieties --
-----------------------------------------------------
m["tw"] = {
"Twi Akan",
36850,
"ak",
aliases = {"Twi"},
}
m["abr"] = {
"Abron",
34831,
"tw",
aliases = {"Brong", "Bono", "Bono Twi"},
}
m["tw-asa"] = {
"Asante Twi",
19261685,
"tw",
aliases = {"Asante", "Ashanti", "Ashante"},
}
m["tw-aku"] = {
"Akuapem Twi",
31150449,
"tw",
aliases = {"Akuapem", "Akuapim", "Akwapem Twi", "Akwapi"},
}
m["fat"] = {
"Fante Akan",
35570,
"ak",
aliases = {"Fante", "Fanti", "Fantse", "Mfantse"},
}
m["wss"] = {
"Wasa",
36914,
"ak",
}
-- creole
m["alv-kro"] = {
"Kromanti",
1093206,
"crp-mar",
}
-----------------------------------------------------
-- Bantu varieties --
-----------------------------------------------------
m["bnt-cmn"] = {
"Common Bantu",
nil,
"bnt-pro",
}
m["xh-bha"] = {
"Bhaca",
4900493,
"xh",
aliases = {"isiBhaca", "IsiBhaca"},
}
-- Rwanda-Rundi varieties
m["rw-kin"] = {
"Kinyarwanda",
33573,
"rw",
aliases = {"Rwanda"},
}
m["rw-run"] = {
"Kirundi",
33583,
"rw",
aliases = {"Rundi"},
}
-----------------------------------------------------
-- Fula varieties --
-----------------------------------------------------
m["fuc"] = {
"Pulaar",
1420205,
"ff",
}
m["fuf"] = {
"Pular",
3915357,
"ff",
}
m["ffm"] = {
"Maasina Fulfulde",
3915322,
"ff",
}
m["fue"] = {
-- no enwiki entry as of yet but frwiki and pmswiki have one
"Borgu Fulfulde",
12952426,
"ff",
}
m["fuh"] = {
-- no enwiki entry as of yet but frwiki and pmswiki have one
"Western Niger Fulfulde",
12952430,
"ff",
}
m["fuq"] = {
-- no enwiki entry as of yet but frwiki, hrwiki and pmswiki have one
"Central-Eastern Niger Fulfulde",
12628799,
"ff",
}
m["fuv"] = {
-- no enwiki entry as of yet but dewiki, frwiki, hrwiki, pmswiki and swwiki have one
"Nigerian Fulfulde",
36129,
"ff",
}
m["fub"] = {
-- no enwiki entry as of yet but dewiki, frwiki, hrwiki, pmswiki, ptwiki, swwiki and yowiki have one
"Adamawa Fulfulde",
34776,
"ff",
}
m["fui"] = {
-- no enwiki entry as of yet but pmswiki and swwiki have one
"Bagirmi Fulfulde",
11003859,
"ff",
}
----------------------------------------------------------------------------------------------------------------------
-- Papuan varieties --
----------------------------------------------------------------------------------------------------------------------
m["kze"] = {
"Kosena",
12952663,
"auy",
}
m["ont"] = {
"Ontenu",
3352827,
"gaj",
aliases = {"Ontena"},
}
----------------------------------------------------------------------------------------------------------------------
-- Salishan varieties --
----------------------------------------------------------------------------------------------------------------------
m["lut-nor"] = {
"Northern Lushootseed",
nil,
"lut",
aliases = {"Northern Puget Sound Salish"},
}
m["slh"] = {
"Southern Lushootseed",
7997684,
"lut",
aliases = {"Southern Puget Sound Salish", "Twulshootseed", "Whulshootseed"},
}
m["ska"] = {
"Skagit",
12642471,
"lut-nor",
}
m["sno"] = {
"Snohomish",
25559662,
"lut-nor",
}
----------------------------------------------------------------------------------------------------------------------
-- Sino-Tibetan varieties --
----------------------------------------------------------------------------------------------------------------------
m["tbq-pro"] = {
"ဗၟာ-တိဗဝ်တဝ် အခိုက်ကၞာ",
7251864,
"sit-pro",
}
-----------------------------------------------------
-- Chinese varieties --
-----------------------------------------------------
------------- Old Chinese, Middle Chinese -------------
m["och-ear"] = {
"Early Old Chinese",
nil,
"och",
}
m["och-lat"] = {
"Late Old Chinese",
nil,
"och",
}
m["ltc-ear"] = {
"Early Middle Chinese",
nil,
"ltc",
}
m["ltc-lat"] = {
"Late Middle Chinese",
nil,
"ltc",
}
------------- Classical/Literary varieties -------------
-- FIXME: Temporary.
m["lzh-shi"] = {
"Traditional Chinese poetry",
1759242,
"lzh",
}
-- FIXME: Temporary.
m["lzh-cii"] = {
"Ci",
1091366,
"lzh",
}
-- FIXME: Temporary.
m["lzh-yue"] = {
"Classical Cantonese",
nil,
"lzh",
}
-- FIXME: Temporary.
m["lzh-cmn"] = {
"Classical Mandarin",
nil,
"lzh",
}
-- FIXME: Temporary.
m["lzh-tai"] = {
"Classical Taishanese",
nil,
"lzh",
}
-- FIXME: Temporary.
m["lzh-cmn-TW"] = {
"Classical Taiwanese Mandarin",
nil,
"lzh-cmn",
}
-- FIXME: Temporary.
m["lzh-VI"] = {
"Vietnamese Classical Chinese",
17034227,
"lzh",
}
-- FIXME: Temporary.
m["lzh-KO"] = {
"Korean Classical Chinese",
10496257,
"lzh",
ietf_subtag = "lzh-KR" -- KR = South Korea, as there is no code for Korea as a whole
}
-- FIXME: Temporary.
m["lzh-lit"] = {
"Literary Chinese",
nil,
"lzh",
}
-- FIXME: Temporary. FIXME: Do we need this? How does it differ from Old Chinese?
m["lzh-pre"] = {
"Pre-Classical Chinese",
nil,
"lzh",
}
------------- Written Vernacular varieties -------------
-- FIXME: Temporary.
m["cmn-wvc"] = {
"Written vernacular Mandarin",
783605,
"cmn",
}
-- FIXME: Temporary. FIXME: How does this differ from "Literary Cantonese"?
m["yue-wvc"] = {
"Written vernacular Cantonese",
nil,
"yue",
}
-- FIXME: Temporary.
m["zhx-tai-wvc"] = {
"Written vernacular Taishanese",
nil,
"zhx-tai",
}
------------- Mandarin varieties -------------
-- FIXME: Temporary. NOTE: The Linguist List assigns the "w:Beijing dialect" (Wikidata 1147606) the code "cmn-bej" and
-- the larger "w:Beijing Mandarin (division of Mandarin)" dialect group (Wikidata 2169652; what we call "Beijingic
-- Mandarin", after Glottolog) the code "cmn-bei".
m["cmn-bei"] = {
"Beijing Mandarin",
1147606,
"cmn-bec",
}
-- FIXME: Temporary.
m["cmn-bec"] = {
"Beijingic Mandarin",
2169652,
"cmn",
}
-- FIXME: Temporary. NOTE: The Linguist List uses the code cmn-zho.
m["cmn-cep"] = {
"Central Plains Mandarin",
3048775,
"cmn",
aliases = {"Zhongyuan Mandarin"},
}
m["cmn-ear"] = {
"Early Mandarin",
837169,
"cmn",
ancestors = "ltc",
}
-- FIXME: Temporary.
m["cmn-gua"] = {
"Guanzhong Mandarin",
3431648,
"cmn-cep",
}
-- FIXME: Temporary. Appears to be a subdialect of Guiliu Mandarin, which in turn is a subdialect of Southwestern Mandarin.
m["cmn-gui"] = {
"Guilin Mandarin",
11111636,
"cmn-sow",
}
m["cmn-jhu"] = {
"Jianghuai Mandarin",
2128953,
"cmn",
aliases = {"Lower Yangtze Mandarin"},
}
-- FIXME: Temporary.
m["cmn-lan"] = {
"Lanyin Mandarin",
662754,
"cmn",
}
-- FIXME: Temporary.
m["cmn-MY"] = {
"Malaysian Mandarin",
13646143,
"cmn",
}
-- FIXME: Temporary.
m["cmn-nan"] = {
"Nanjing Mandarin",
2681098,
"cmn-jhu",
}
-- FIXME: Temporary.
m["cmn-noe"] = {
"Northeastern Mandarin",
1064504,
"cmn",
}
-- FIXME: Temporary.
m["cmn-PH"] = {
"Philippine Mandarin",
7185155,
"cmn",
}
-- FIXME: Temporary.
m["cmn-SG"] = {
"Singapore Mandarin",
1048980,
"cmn",
}
-- FIXME: Temporary.
m["cmn-sow"] = {
"Southwestern Mandarin",
2609239,
"cmn",
}
-- FIXME: Temporary. Appears to be a subdialect of Jilu Mandarin.
m["cmn-tia"] = {
"Tianjin Mandarin",
7800220,
"cmn",
}
-- FIXME: Temporary. NOTE: Wikidata also has Q4380827 "Taiwanese Mandarin", defined as "rare dialect of Standard Chinese
-- (Mandarin) used in Taiwan, which is strongly influenced by Taiwanese Hokkien; mostly used by elderlies" and having no
-- English Wikipedia article (but see w:zh:臺灣國語).
m["cmn-TW"] = {
"Taiwanese Mandarin",
262828,
"cmn",
}
-- FIXME: Temporary. Appears to be a subdialect of Wu-Tian Mandarin, in turn a subdialect of Southwestern Mandarin.
-- Given the code cmn-xwu in the Linguist List.
m["cmn-wuh"] = {
"Wuhan Mandarin",
11124731,
"cmn-sow",
aliases = {"Wuhanese"},
}
-- FIXME: Temporary. Appears to be a subdialect of Lanyin Mandarin.
m["cmn-xin"] = {
"Xining Mandarin",
nil,
"cmn-lan",
}
-- FIXME: Temporary.
m["cmn-yan"] = {
"Yangzhou Mandarin",
nil,
"cmn-jhu",
}
------------- Cantonese varieties -------------
-- FIXME: Temporary.
m["yue-gua"] = {
"Guangzhou Cantonese",
nil,
"yue",
}
-- FIXME: Temporary. Given the codes yue-yue or yue-can in the Linguist List.
m["yue-HK"] = {
"Hong Kong Cantonese",
5894342,
"yue",
}
-- FIXME: Temporary. FIXME: How does this differ from "Written vernacular Cantonese"?
m["yue-lit"] = {
"Literary Cantonese",
2472605,
"yue",
}
------------- Wu varieties -------------
m["wuu-han"] = {
"Hangzhounese",
5648144,
"wuu",
}
m["wuu-nin"] = {
"Ningbonese",
3972199,
"wuu",
}
-- FIXME: Temporary.
m["wuu-nor"] = {
"Northern Wu",
7675988,
"wuu",
aliases = {"Taihu Wu"},
}
-- FIXME: Temporary? Subvariety of Taihu Wu. NOTE: "chm" stands for Chongming, the main dialect, to avoid a conflict
-- with Shanghainese.
m["wuu-chm"] = {
"Shadi Wu",
6112340,
"wuu-nor",
}
m["wuu-sha"] = {
"Shanghainese",
36718,
"wuu-nor",
}
m["wuu-suz"] = {
"Suzhounese",
831744,
"wuu-nor",
}
-- FIXME: Temporary. May be converted into a full language and/or split.
m["wuu-wen"] = {
"Wenzhounese",
710218,
"wuu",
}
------------- Xiang varieties -------------
m["hsn-lou"] = {
"Loudi Xiang",
10943823,
"hsn-old",
}
m["hsn-hya"] = {
"Hengyang Xiang",
20689035,
"hsn-hzh",
}
m["hsn-hzh"] = {
"Hengzhou Xiang",
nil,
"hsn",
}
m["hsn-new"] = {
"New Xiang",
7012696,
"hsn",
aliases = {"Chang-Yi"},
}
m["hsn-old"] = {
"Old Xiang",
7085453,
"hsn",
aliases = {"Lou-Shao"},
}
------------- Hakka varieties -------------
-- FIXME: Temporary.
m["hak-dab"] = {
"Dabu Hakka",
19855566,
"hak", -- formerly hak-TW but seems to be spoken primary in Dabu County in Guangdong
}
-- FIXME: Temporary.
m["hak-eam"] = {
"Early Modern Hakka",
nil,
"hak",
}
-- FIXME: Temporary.
m["hak-hai"] = {
"Hailu Hakka",
17038519,
"hak", -- often considered a Taiwanese lect but also spoken in [[Shanwei]], [[Guangdong]]
}
-- FIXME: Temporary.
m["hak-HK"] = {
"Hong Kong Hakka",
2675834,
"hak",
}
-- FIXME: Temporary.
m["hak-hui"] = {
"Huiyang Hakka",
16873881,
"hak",
}
-- FIXME: Temporary.
m["hak-hui-MY"] = {
"Malaysian Huiyang Hakka",
nil,
"hak-hui",
}
-- FIXME: Temporary. Similar to and possibly the parent of Sixian Hakka in Taiwan.
m["hak-mei"] = {
"Meixian Hakka",
839295,
"hak",
aliases = {"Moiyan Hakka", "Meizhou Hakka"},
}
-- FIXME: Temporary.
m["hak-six"] = {
"Sixian Hakka",
9668261,
"hak-TW",
}
-- FIXME: Temporary.
m["hak-TW"] = {
"Taiwanese Hakka",
2391532,
"hak",
}
-- FIXME: Temporary.
m["hak-zha"] = {
"Zhao'an Hakka",
6703311,
"hak",
aliases = {"Zhangzhou Hakka"},
}
-- Southern Min varieties --
m["nan-anx"] = {
"Anxi Hokkien",
97064149,
"nan-qua",
}
m["nan-cha"] = {
"Changtai Hokkien",
nil,
"nan-zha",
}
m["nan-hou"] = {
"Houlu Min",
19855492,
"nan-dat",
}
m["nan-hui"] = {
"Hui'an Hokkien",
16241797,
"nan-qua",
}
m["nan-jin"] = {
"Jinjiang Hokkien",
11089375,
"nan-qua",
}
m["nan-kin"] = {
"Kinmenese Hokkien",
56278342,
"nan-xia",
aliases = {"Kinmen Hokkien"},
}
m["nan-med"] = {
"Medan Hokkien",
6805114,
"nan-zha",
}
m["nan-pen"] = {
"Penang Hokkien",
11120689,
"nan-zha",
}
m["nan-hbl-PH"] = {
"Philippine Hokkien",
3236692,
"nan-qua",
}
m["nan-qia"] = {
"Qianlu Min",
19842517,
"nan-dat",
}
m["nan-qua"] = {
"Quanzhou Hokkien",
2251677,
"nan-hbl",
aliases = {"Chinchew", "Choanchew"},
}
-- FIXME: Temporary? Derived from both Quanzhou and Zhangzhou Hokkien.
m["nan-hbl-SG"] = {
"Singapore Hokkien",
3846528,
"nan-hbl",
}
m["nan-spm"] = {
"Southern Malaysian Hokkien",
7570322,
"nan-qua",
aliases = {"Southern Malaysia Hokkien", "Southern Peninsular Malaysian Hokkien", "Southern Peninsular Malaysia Hokkien"}
}
m["nan-hbl-TW"] = {
"Taiwanese Hokkien",
36778,
"nan-hbl",
}
m["nan-ton"] = {
"Tong'an Hokkien",
nil,
"nan-xia",
}
m["nan-xia"] = {
"Xiamen Hokkien",
68744,
"nan-hbl",
aliases = {"Amoy", "Amoyese", "Amoynese", "Xiamenese"},
}
m["nan-yon"] = {
"Yongchun Hokkien",
65118728,
"nan-qua",
}
m["nan-zha"] = {
"Zhangzhou Hokkien",
8070492,
"nan-hbl",
aliases = {"Changchew", "Chiangchew", "Changchow"},
}
m["nan-zho"] = {
"Zhao'an Hokkien",
65118728,
"nan-zha",
aliases = {"Zhao'an", "Chawan", "Chawan Hokkien"},
}
m["nan-zhp"] = {
"Zhangping Hokkien",
15937822,
"nan-zha",
}
------------- Other Min varieties -------------
-- FIXME: Temporary. Affiliation within Min uncertain; some combination of Eastern and Southern.
m["zhx-zho"] = {
"Zhongshan Min",
8070958,
"zh",
}
------------- Other Chinese varieties -------------
-- FIXME: Temporary. Affiliation within Chinese uncertain; possibly Yue.
m["zhx-dan"] = {
"Danzhou Chinese",
2578935,
"zh",
}
------------- Chinese romanization varieties -------------
-- [[Wiktionary:Information desk/2022/June#Etymology Coding Issue]]
-- [[Wiktionary:Grease pit/2022/June#Transliteration Systems in Etymologies 2]]
m["cmn-pinyin"] = {
"Hanyu Pinyin",
42222,
"cmn",
aliases = {"Pinyin"},
}
m["cmn-tongyong"] = {
"Tongyong Pinyin",
700739,
"cmn",
}
m["cmn-wadegiles"] = {
"Wade–Giles",
208442,
"cmn",
aliases = {"Wade-Giles", "Wade Giles"},
}
m["zh-postal"] = {
"Postal Romanization",
151868,
"zh",
}
-- Chinese cyrillization
m["cmn-palladius"] = {
"Palladius",
1234239,
"cmn",
aliases = {"Palladius system"},
}
-----------------------------------------------------
-- Tibetic varieties --
-----------------------------------------------------
m["adx"] = {
"Amdo Tibetan",
56509,
"bo",
}
m["kbg"] = {
"Khamba",
12952626,
"bo",
}
m["khg"] = {
"Khams Tibetan",
56601,
"bo",
}
m["tsk"] = {
"Tseku",
11159532,
"bo",
}
----------------------------------------------------------------------------------------------------------------------
-- Tai-Kadai varieties --
----------------------------------------------------------------------------------------------------------------------
m["th-old"] = {
"သေံတြေံ",
nil,
"tai-swe-pro",
wikipedia_article = "Thai language#Old Thai",
}
m["th-suk"] = {
"သူခိုဝ်ထိုၚ် သေံတြေံ", -- 1238-1438. Cannot use "Sukhothai Thai" as Sukhothai is the current city and "Sukhothai Thai" is a lect.
nil,
"th-old",
aliases = {"Sukhothai Siamese"},
wikipedia_article = "Thai language#Old Thai",
}
m["th-ayu"] = {
"အယုဒ္ဓယ သေံတြေံ", -- 1351-1767. Cannot use "Ayutthaya Thai" as Ayutthaya is the current city.
nil,
"th-old",
aliases = {"Ayutthaya Siamese"},
wikipedia_article = "Thai language#Old Thai",
}
--[[
m["th-new"] = {
"Hacked Thai", -- temporary for testing new translit/display methods
nil,
"th",
translit = "User:Benwing2/th-scraping-translit",
display_text = "User:Benwing2/th-scraping-translit",
strip_diacritics = "User:Benwing2/th-scraping-translit",
preprocess_links = "User:Benwing2/th-scraping-translit",
}
]]
m["tai-shz"] = {
"Shangsi Zhuang",
13216,
"za",
}
----------------------------------------------------------------------------------------------------------------------
-- Turkic varieties --
----------------------------------------------------------------------------------------------------------------------
m["trk-cmn-pro"] = {
"Proto-Common Turkic",
1126028,
"trk-pro",
}
m["trk-ogr-pro"] = {
"Proto-Oghur",
1422731,
"trk-pro",
family = "trk-ogr",
}
m["trk-bul-pro"] = {
"Proto-Bulgar",
nil,
"trk-ogr-pro",
}
m["trk-ogz-pro"] = {
"Proto-Oghuz",
494600,
"trk-pro",
family = "trk-ogz",
aliases = {"Southwestern Common Turkic"},
}
m["crh-dbj"] = {
"Dobrujan Tatar",
12811566,
"crh",
aliases = {"Romanian Tatar"},
}
m["cv-ana"] = {
"Anatri Chuvash",
nil,
"cv",
aliases = {"Anatri", "Lower Chuvash"},
}
m["cv-mid"] = {
"Middle Chuvash",
nil,
"cv",
ancestors = "cv-old",
}
m["cv-old"] = {
"Old Chuvash",
nil,
"cv",
ancestors = "xbo-vol",
}
m["cv-vir"] = {
"Viryal Chuvash",
4278332,
"cv",
aliases = {"Viryal", "Upper Chuvash"},
}
m["kjh-fyu"] = {
"Fuyu Kyrgyz",
2598963,
"kjh",
aliases = {"Fuyu Kirgiz", "Fuyu Kirghiz", "Manchurian Kyrgyz", "Manchurian Kirgiz", "Manchurian Kirghiz"},
}
m["klj-arg"] = {
"Arghu",
33455,
"klj",
ancestors = "trk-cmn-pro",
}
m["otk-kir"] = {
"Old Kirghiz",
83142,
"otk",
aliases = {"Yenisei Turkic", "Yenisei Kyrgyz"},
}
m["otk-ork"] = {
"Orkhon Turkic",
31295480,
"otk",
}
m["qwm-cum"] = {
"Cuman",
1075050,
"qwm",
aliases = {"Kuman", "Polovtsian", "Polovcian"},
}
m["qwm-arm"] = {
"Armeno-Kipchak",
2027503,
"qwm",
ancestors = "qwm-cum",
aliases = {"Xıpçaχ tili", "Tatarça"},
}
m["qwm-mam"] = {
"Mamluk-Kipchak",
4279942,
"qwm",
aliases = {"Mameluk-Kipchak"},
}
m["az-cls"] = {
"Classical Azerbaijani",
nil,
"az",
aliases = {"Classical Azeri"},
}
m["qxq"] = {
"Qashqai",
13192,
"az",
aliases = {"Qaşqay", "Qashqayi", "Kashkai", "Kashkay"},
}
m["tr-CY"] = {
"Cypriot Turkish",
7917392,
"tr",
}
m["uz-afg"] = {
-- NOTE: has ISO 639-3 code uzs assigned to it.
"Afghan Uzbek",
1066787,
"uz",
aliases = {"Southern Uzbek"},
translit = "uz-afg-translit",
}
m["xbo-dan"] = {
"Danube Bulgar",
nil,
"xbo",
}
m["xbo-vol"] = {
"Volga Bulgar",
nil,
"xbo",
}
----------------------------------------------------------------------------------------------------------------------
-- Uralic varieties --
----------------------------------------------------------------------------------------------------------------------
m["fiu-pro"] = {
"ဖေန်နဝ်-ဥူဂရေတ်-အခိုက်ကၞာ",
79890,
"urj-pro",
}
m["urj-fpr-pro"] = {
"ဖေန်နဝ်-ပဵုမေတ်-အခိုက်ကၞာ",
nil,
"urj-pro",
}
m["krl-nor"] = {
"North Karelian",
125501196,
"krl",
}
m["krl-sou"] = {
"South Karelian",
129812730,
"krl",
}
m["mns-eas"] = {
"Eastern Mansi",
30311755,
"mns-cen",
}
m["mns-wes"] = {
"Western Mansi",
30311756,
"mns-cen",
}
----------------------------------------------------------------------------------------------------------------------
-- Yeneseian varieties --
----------------------------------------------------------------------------------------------------------------------
m["qfa-yke-pro"] = {
"Proto-Ketic",
nil,
"qfa-yen-pro",
family = "qfa-yke",
}
m["qfa-yko-pro"] = {
"Proto-Kottic",
nil,
"qfa-yen-pro",
family = "qfa-yko",
}
m["qfa-yrn-pro"] = {
"Proto-Arinic",
nil,
"qfa-yen-pro",
family = "qfa-yrn",
}
m["qfa-ypm-pro"] = {
"Proto-Pumpokolic",
nil,
"qfa-yen-pro",
family = "qfa-ypm",
}
----------------------------------------------------------------------------------------------------------------------
-- Miscellaneous varieties --
----------------------------------------------------------------------------------------------------------------------
m["mul-tax"] = {
"taxonomic name",
522190,
"mul",
}
-----------------------------------------------------
-- Elamite varieties --
-----------------------------------------------------
m["elx-old"] = {
"Old Elamite",
nil,
"elx",
}
m["elx-mid"] = {
"Middle Elamite",
nil,
"elx",
}
m["elx-neo"] = {
"Neo-Elamite",
nil,
"elx",
}
m["elx-ach"] = {
"Achaemenid Elamite",
nil,
"elx",
}
-----------------------------------------------------
-- Substrates --
-----------------------------------------------------
-- Pre-Roman substrates
m["qsb-ibe"] = {
"Paleo-Hispanic",
246801,
"und",
family = "qfa-sub",
aliases = {"Palaeo-Hispanic", "Paleohispanic", "Palaeohispanic", "Paleo-Iberian", "Palaeo-Iberian"},
}
m["qsb-bal"] = {
"Paleo-Balkan",
1815070,
"und",
family = "qfa-sub",
aliases = {"Palaeo-Balkan", "Paleobalkan", "Palaeobalkan"},
}
m["xaq"] = {
"Aquitanian",
500522,
"euq-pro",
family = "euq",
}
return require("Module:languages").finalizeData(m, "language", true)
qzb3q1w95gdeftrlcieaiyhqkds2oet
မဝ်ဂျူ:data consistency check
828
724
399026
381692
2026-07-17T13:26:13Z
咽頭べさ
33
399026
Scribunto
text/plain
-- TODO:
-- ietf_subtag field used with a 2/3-letter langauge/family code except qaa-qtz, or a 4-letter script code.
-- Check against files containing up-to-date ISO data, to cross-check validity.
local export = {}
local mw = mw
local require = require
local string = string
local Array = require("Module:array")
local m_en_utilities = require("Module:en-utilities")
local m_etym_languages_canonical_names = require("Module:etymology languages/canonical names")
local m_etym_languages_codes = require("Module:etymology languages/code to canonical name")
local m_etym_languages_data = require("Module:etymology languages/data")
local m_families = require("Module:families")
local m_families_canonical_names = require("Module:families/canonical names")
local m_families_codes = require("Module:families/code to canonical name")
local m_families_data = require("Module:families/data")
local m_languages = require("Module:languages")
local m_languages_canonical_names = require("Module:languages/canonical names")
local m_languages_codes = require("Module:languages/code to canonical name")
local m_languages_data_all = require("Module:languages/data/all")
local m_load = require("Module:load")
local m_scripts = require("Module:scripts")
local m_scripts_canonical_names = require("Module:scripts/canonical names")
local m_scripts_codes = require("Module:scripts/code to canonical name")
local m_scripts_data = require("Module:scripts/data")
local m_str_utils = require("Module:string utilities")
local m_table = require("Module:table")
local add_indefinite_article = m_en_utilities.add_indefinite_article
local codepoint = m_str_utils.codepoint
local concat = table.concat
local dump = mw.dumpObject
local format = string.format
local gcodepoint = m_str_utils.gcodepoint
local get_data_module_name = m_languages.getDataModuleName
local get_family_by_code = m_families.getByCode
local get_family_by_canonical_name = m_families.getByCanonicalName
local get_indefinite_article = m_en_utilities.get_indefinite_article
local get_language_by_code = m_languages.getByCode
local get_language_by_canonical_name = m_languages.getByCanonicalName
local get_script_by_code = m_scripts.getByCode
local get_script_by_canonical_name = m_scripts.getByCanonicalName
local gmatch = string.gmatch
local gsub = string.gsub
local insert = table.insert
local ipairs = ipairs
local is_callable = require("Module:fun").is_callable
local is_positive_integer = require("Module:math").is_positive_integer
local is_known_language_tag = mw.language.isKnownLanguageTag
local isutf8 = mw.ustring.isutf8
local json_decode = mw.text.jsonDecode
local language_link = require("Module:links").language_link
local list_to_set = m_table.listToSet
local list_to_text = mw.text.listToText
local load_data = m_load.load_data
local log = mw.log
local main_loader = package.loaders[2]
local make_family = m_families.makeObject
local make_lang = m_languages.makeObject
local make_script = m_scripts.makeObject
local match = string.match
local new_title = mw.title.new
local next = next
local pairs = pairs
local pcall = pcall
local remove_comments = require("Module:string/removeComments")
local safe_require = m_load.safe_require
local sorted_pairs = m_table.sortedPairs
local split = m_str_utils.split
local sub = string.sub
local table_len = m_table.length
local tag_text = require("Module:script utilities").tag_text
local type = type
local umatch = m_str_utils.match
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
local aliases = require("Module:languages/data").aliases
local messages
local function discrepancy(modname, ...)
local success, result = pcall(function(...)
messages[modname]:insert(format(...))
end, ...)
if not success then
log(result, ...)
end
end
local messages_mt = {}
function messages_mt:__index(k)
local val = Array()
self[k] = val
return val
end
local all_codes = {}
local language_names = {}
local etym_language_names = {}
local family_names = {}
local script_names = {}
local nonempty_families = {}
local allowed_empty_families = {tbq = true}
local nonempty_scripts = {}
local function link(obj, code_first)
return type(obj) == "string" and obj or
code_first and format("<code>%s</code> (%s)", obj:getCode(), obj:makeCategoryLink()) or
format("%s (<code>%s</code>)", obj:makeCategoryLink(), obj:getCode())
end
local function check_data_keys(...)
local valid_keys = Array(...):toSet()
return function (modname, obj, data)
local invalid_keys
for k in pairs(data) do
if not valid_keys[k] then
if not invalid_keys then
invalid_keys = Array(k)
else
invalid_keys:insert(k)
end
end
end
if invalid_keys == nil then
return
end
local plural = #invalid_keys ~= 1
discrepancy(modname,
"The data key%s %s for %s %s invalid.",
plural and "s" or "",
invalid_keys:map(function(key)
return "<code>" .. key .. "</code>"
end):concat(", "),
link(obj),
plural and "are" or "is"
)
end
end
-- Modification of isArray in [[Module:table]].
-- This assumes all keys are either integers or non-numbers.
-- If there are fractional numbers, the results might be incorrect.
-- For instance, find_gap{"a", "b", [0.5] = true} evaluates to 3, but there
-- isn't a gap at 3 in the sense of there being an integer key greater than 3.
local function find_gap(t, can_contain_non_number_keys)
local i = 0
for k in pairs(t) do
if not (can_contain_non_number_keys and type(k) ~= "number") then
i = i + 1
if t[i] == nil then
return i
end
end
end
end
local function check_true_or_string_or_nil(modname, obj, data, key)
local field = data[key]
if not (field == nil or field == true or type(field) == "string") then
discrepancy(modname,
"%s has %s <code>%s</code> value that is not <code>nil</code>, <code>true</code> or a string: <code>%s</code>",
link(obj), get_indefinite_article(key), key, dump(data[key])
)
end
end
local function check_array(modname, obj, data, array_name, parent_array_name, can_contain_non_number_keys)
local parent_table = data
if parent_array_name then
parent_table = assert(data[parent_array_name], parent_array_name)
parent_array_name = "the <code>" .. parent_array_name .. "</code> field in "
else
parent_array_name = ""
end
local array_type = type(parent_table[array_name])
if array_type == "table" then
local gap = find_gap(parent_table[array_name], can_contain_non_number_keys)
if gap then
discrepancy(modname,
"The <code>%s</code> array in %sthe data table for %s has a gap at index %d.",
array_name,
parent_array_name,
link(obj),
gap
)
else
return true
end
else
discrepancy(modname,
"The <code>%s</code> field in %sthe data table for %s should be an array (table) but is %s.",
array_name,
parent_array_name,
link(obj),
array_type == "nil" and "nil" or "a " .. array_type
)
end
end
local function check_no_alias_codes(modname, mod_data)
local lookup, discrepancies = {}, {}
for k, v in pairs(mod_data) do
local check = lookup[v]
if check then
discrepancies[check] = discrepancies[check] or {"<code>" .. check .. "</code>"}
insert(discrepancies[check], "<code>" .. k .. "</code>")
else
lookup[v] = k
end
end
for _, v in pairs(discrepancies) do
discrepancy(modname,
"The codes %s are currently alias codes. Only one code should be used in the data.",
list_to_text(v, ", ", " and ")
)
end
end
local function check_wikidata_item(modname, obj, data, key)
local data_item = data[key]
if data_item == nil or is_positive_integer(data_item) then
return
end
discrepancy(modname,
"%s has a Wikidata item ID that is not a positive integer: <code>%s</code>",
link(obj), dump(data_item)
)
end
local function check_name_field(modname, obj, data, canonical_name, data_key, allow_nested, allow_canonical_name_in_table)
local array = data[data_key]
if not array then
return
end
check_array(modname, obj, data, data_key, nil, true)
local names = {}
local function check_other_name(other_name)
if not allow_canonical_name_in_table and other_name == canonical_name then
discrepancy(modname,
"%s has its canonical name (<code>%s</code>) repeated in the table of <code>%s</code>.",
link(obj), dump(canonical_name), data_key
)
end
if names[other_name] then
discrepancy(modname,
"The name %s is found twice or more in the list of <code>%s</code> for %s.",
other_name, data_key, link(obj)
)
end
names[other_name] = true
end
for _, other_name in ipairs(array) do
if type(other_name) == "table" then
if not allow_nested then
discrepancy(modname,
"A nested table is found in the list of <code>%s</code> for %s, but isn't allowed.",
data_key, link(obj)
)
else
for _, on in ipairs(other_name) do
check_other_name(on)
end
end
else
check_other_name(other_name)
end
end
end
local function check_other_names_aliases_varieties(modname, obj, data, canonical_name)
if data.other_names then
check_name_field(modname, obj, data, canonical_name, "other_names")
end
if data.aliases then
check_name_field(modname, obj, data, canonical_name, "aliases")
end
if data.varieties then
-- Sometimes a variety legitimately has the same name as the language as a whole, so allow that.
check_name_field(modname, obj, data, canonical_name, "varieties", "allow_nested", "allow_canonical_name_in_table")
end
end
local function validate_pattern(pattern, modname, obj, standard_chars)
if type(pattern) ~= "string" then
return discrepancy(modname,
"\"%s\", the %spattern for %s, is not a string.",
pattern, standard_chars and "standard character " or "", link(obj)
)
elseif not isutf8(pattern) then
return discrepancy(modname,
"%s specifies a pattern for for %scharacter detection which is not valid UTF-8: <code>%s</code>",
link(obj), standard_chars and "standard " or "", dump(pattern)
)
end
local ranges
for lower, higher in gmatch(pattern, "(.[\128-\191]*)%-%%?(.[\128-\191]*)") do
if codepoint(lower) >= codepoint(higher) then
ranges = ranges or Array()
insert(ranges, { lower, higher })
end
end
if ranges and ranges[1] then
local plural = #ranges ~= 1 and "s" or ""
discrepancy(modname,
"%s specifies an invalid pattern " ..
"for %scharacter detection: <code>%s</code>. The first codepoint%s " ..
"in the range%s %s %s must be less than or equal to the second.",
link(obj), standard_chars and "standard " or "", dump(pattern), plural, plural,
ranges:map(function(range)
return format(range[1] .. "-" .. range[2] .. " (U+%X, U+%X)", codepoint(range[1]), codepoint(range[2]))
end):concat(", "),
#ranges ~= 1 and "are" or "is"
)
end
local success, result = pcall(umatch, "", "[" .. pattern .. "]")
if not success then
discrepancy(modname,
"%s specifies an invalid pattern for %scharacter detection: <code>%s</code> (%s)",
link(obj), standard_chars and "standard " or "", dump(pattern), result
)
end
end
local remove_exceptions_addition = 0xF0000
local maximum_code_point = 0x10FFFF
local remove_exceptions_maximum_code_point = maximum_code_point - remove_exceptions_addition
-- TODO: check modules exist.
-- TODO: validate script codes and check inner tables.
local function check_replacement_data(modname, obj, data, key, func_name)
local replacements = data[key]
if replacements == nil then
return
end
local replacements_type = type(replacements)
if replacements_type == "string" then
local mod = main_loader("Module:" .. replacements)
if not mod then
discrepancy(modname,
"The <code>%s</code> field in the data table for %s specifies the module [[Module:%s]], which does not exist.",
key, link(obj), replacements
)
else
mod = mod()
if not (type(mod) == "table" and is_callable(mod[func_name])) then
discrepancy(modname,
"The <code>%s</code> field in the data table for %s specifies the module [[Module:%s]], which exists, but does not contain the expected function <code>%s()</code>.",
key, link(obj), replacements, func_name
)
end
end
return
elseif replacements_type ~= "table" then
discrepancy(modname,
"The <code>%s</code> field in the data table for %s must be a string or table, not a %s.",
key, link(obj), replacements_type
)
return
end
local from, to = replacements.from, replacements.to
if (from ~= nil) ~= (to ~= nil) then
discrepancy(modname,
"The <code>from</code> and <code>to</code> arrays in the <code>%s</code> table for %s are not both defined or both undefined.",
key, link(obj)
)
elseif from then
for _, k in ipairs {"from", "to"} do
check_array(modname, obj, data, k, key)
end
end
local remove_diacritics = replacements.remove_diacritics
if not (remove_diacritics == nil or type(remove_diacritics) == "string") then
discrepancy(modname,
"The <code>remove_diacritics</code> field in the <code>%s</code> table for %s table must be a string.",
key, link(obj)
)
end
local remove_exceptions = replacements.remove_exceptions
if remove_exceptions then
if check_array(modname, obj, data, "remove_exceptions", key) then
for sequence_i, sequence in ipairs(remove_exceptions) do
local code_point_i = 0
for code_point in gcodepoint(sequence) do
code_point_i = code_point_i + 1
if code_point > remove_exceptions_maximum_code_point then
discrepancy(modname,
"Code point #%d (0x%04X) in field #%d of the <code>remove_exceptions</code> array for %s is over U+%04X.",
code_point_i, code_point, sequence_i, link(obj), remove_exceptions_maximum_code_point
)
end
end
end
end
end
if from and to and table_len(to) > table_len(from) then
discrepancy(modname,
"The <code>from</code> array in the <code>%s</code> table for %s must be shorter or the same length as the <code>to</code> array.",
key, link(obj)
)
end
end
local function check_replacements_data(modname, obj, data)
for _, replacement_spec in ipairs{
{"translit", "tr"},
{"display_text", "makeDisplayText"},
{"strip_diacritics", "stripDiacritics"},
{"sort_key", "makeSortKey"},
} do
check_replacement_data(modname, obj, data, unpack(replacement_spec))
end
end
local function has_ancestor(lang, code)
for _, anc in ipairs(lang:getAncestors()) do
if code == anc:getCode() or has_ancestor(anc, code) then
return true
end
end
end
local function get_default_ancestors(lang)
if lang:hasType("language", "etymology-only") then
local parent = lang:getParent()
if not has_ancestor(parent, lang:getCode()) then
return parent:getAncestorCodes()
end
end
local fam_code, def_anc = lang:getFamilyCode()
while fam_code and fam_code ~= "qfa-not" do
local fam = m_families_data[fam_code]
def_anc = fam.protoLanguage or
m_languages_data_all[fam_code .. "-pro"] and fam_code .. "-pro" or
m_etym_languages_data[fam_code .. "-pro"] and fam_code .. "-pro"
if def_anc and def_anc ~= lang:getCode() then
return {def_anc}
end
fam_code = fam[3]
end
end
local function iterate_ancestor(obj, modname, anc_code)
local anc = get_language_by_code(anc_code, nil, true)
if not anc then
discrepancy(modname,
"%s lists the invalid language code <code>%s</code> as its ancestor.",
link(obj), dump(anc_code)
)
return
end
local anc_fam = anc:getFamily()
if not anc_fam then
discrepancy(modname,
"%s has no family.",
link(anc)
)
return
end
local anc_fam_code = anc_fam:getCode()
local def_ancs = get_default_ancestors(obj)
if def_ancs then
for _, def_anc in ipairs(def_ancs) do
def_anc = get_language_by_code(def_anc, nil, true)
if def_anc and (
anc_code == def_anc:getCode() or
has_ancestor(def_anc, anc_code) or
def_anc:hasParent(anc_code) and not has_ancestor(anc, def_anc:getCode())
) then
discrepancy(modname,
"%s has the ancestor %s listed in its ancestor field, which is redundant, since it is determined to be ancestral automatically.",
link(obj), link(anc)
)
end
end
end
if not obj:inFamily(anc_fam_code) then
discrepancy(modname,
"%s has %s set as an ancestor, but is not in the %s.",
link(obj), link(anc), link(anc_fam)
)
end
local fam, proto = obj
repeat
fam = fam:getFamily()
proto = fam and fam:getProtoLanguage()
until proto or not fam or fam:getCode() == "qfa-not"
if proto and not (
proto:getCode() == anc:getCode() or
proto:hasAncestor(anc:getCode()) or
anc:hasAncestor(proto:getCode())
) then
local fam = obj:getFamily()
discrepancy(modname,
"%s is in the %s and has %s set as an ancestor, but it is not possible to form an ancestral chain between them.",
link(obj), link(fam), link(anc)
)
end
end
local function check_ancestors(modname, obj, data)
local ancestors = data.ancestors
if ancestors == nil then
return
end
local ancestors_type = type(ancestors)
if ancestors_type == "string" then
ancestors = split(ancestors, ",", true, true)
elseif ancestors_type ~= "table" then
discrepancy(modname,
"The <code>ancestors</code> field in the data table for %s must be a string or table, not a %s.",
link(obj), ancestors_type
)
end
for _, anc in ipairs(ancestors) do
iterate_ancestor(obj, modname, anc)
end
end
local function check_wikimedia_codes(modname, obj, data)
local wikimedia_codes = data.wikimedia_codes
if wikimedia_codes == nil then
return
end
local wikimedia_codes_type = type(wikimedia_codes)
if wikimedia_codes_type == "string" then
wikimedia_codes = split(wikimedia_codes, ",", true, true)
elseif wikimedia_codes_type ~= "table" then
discrepancy(modname,
"The <code>wikimedia_codes</code> field in the data table for %s must be a string or table, not a %s.",
link(obj), wikimedia_codes_type
)
end
for _, code in ipairs(wikimedia_codes) do
if not is_known_language_tag(code) then
discrepancy(modname,
"%s lists the invalid Wikimedia code <code>%s</code> in the <code>wikimedia_codes</code> field.",
link(obj), dump(code)
)
end
end
end
local function check_code_to_name_and_name_to_code_maps(
source_module_type,
source_module_description,
code_to_module_map, name_to_code_map,
code_to_name_modname, code_to_name_module,
name_to_code_modname, name_to_code_module
)
local function check_code_and_name(modname, code, canonical_name)
-- Check the code is in code_to_module_map and that it didn't originate from the wrong data module.
local check_mod = code_to_module_map[code] or code_to_module_map[aliases[code]]
if not (check_mod and match(check_mod, "^" .. source_module_type .. "/data")) then
if not name_to_code_map[canonical_name] then
discrepancy(modname,
"The code <code>%s</code> and the canonical name %s should be removed; they are not found in %s.",
code, canonical_name, source_module_description
)
else
discrepancy(modname,
"<code>%s</code>, the code for the canonical name %s, is wrong; it should be <code>%s</code>.",
code, canonical_name, name_to_code_map[canonical_name]
)
end
elseif not name_to_code_map[canonical_name] then
local data_table = require("Module:" .. code_to_module_map[code])[code]
discrepancy(modname,
"%s, the canonical name for the code <code>%s</code>, is wrong; it should be %s.",
canonical_name, code, data_table[1]
)
end
end
for code, canonical_name in pairs(code_to_name_module) do
check_code_and_name(code_to_name_modname, code, canonical_name)
end
for canonical_name, code in pairs(name_to_code_module) do
check_code_and_name(name_to_code_modname, code, canonical_name)
end
end
local function check_extraneous_extra_data(
data_modname, data_module, extra_data_modname, extra_data_module)
for code, _ in pairs(extra_data_module) do
if not data_module[code] then
discrepancy(extra_data_modname,
"The code <code>%s</code> is not found in [[Module:%s]], and should be removed from [[Module:%s]].",
code, data_modname, extra_data_modname
)
end
end
end
-- TODO: add collision check between the canonical names "X" and "X [Ll]anguage".
local function check_languages(frame)
local check_language_data_keys = check_data_keys(
1, 2, 3, 4, -- canonical name, Wikidata item, family, scripts
"display_text", "generate_forms", "strip_diacritics", "sort_key",
"other_names", "aliases", "varieties", "ietf_subtag",
"type", "ancestors", "pseudo_families",
"wikimedia_codes", "wikipedia_article", "standard_chars",
"translit", "override_translit", "link_tr",
"dotted_dotless_i"
)
local function check_language(modname, code, data, extra_modname, extra_data)
local obj, code_modname, canonical_name = make_lang(code, data, true), get_data_module_name(code), data[1]
-- FIXME: this module should use the prefixed module name throughout.
code_modname = code_modname:gsub("^Module:", "")
if code_modname ~= modname then
if code_modname == "languages/data/2" then
discrepancy(modname,
"%s is a two-letter code, so should be moved to [[Module:%s]].",
link(obj), code_modname
)
elseif code_modname == "languages/data/exceptional" then
discrepancy(modname,
"%s is an exceptional code, as it does not consist of two or three lowercase letters, so should be moved to [[Module:%s]].",
link(obj), code_modname
)
else
discrepancy(modname,
"%s is a three-letter code beginning with '%s', so should be moved to [[Module:%s]].",
link(obj), sub(code, 1, 1), code_modname
)
end
end
check_language_data_keys(modname, obj, data)
if all_codes[code] then
discrepancy(modname,
"The code <code>%s</code> is not unique; it is also defined in [[Module:%s]].",
code, all_codes[code]
)
else
if not m_languages_codes[code] then
discrepancy("languages/code to canonical name",
"The code %s is missing.",
link(obj, true)
)
end
all_codes[code] = modname
end
-- TODO: these checks should be consolidated with the proto-language checks in the family data,
-- since bad settings there affect the warnings here (e.g. xxx-pro assigned to yyy when xxx also
-- doesn't not exist - a warning that xxx has "no family" would be misleading).
if sub(code, -4) == "-pro" then
local fam_code = sub(code, 1, -5)
local fam = get_language_by_code(fam_code, nil, true, true)
if not fam then
discrepancy(modname,
"'''Proto-language with no family''': %s should be the proto-language of <code>%s</code>, which doesn't exist.",
link(obj), dump(fam_code)
)
elseif not fam:hasType("family") then
discrepancy(modname,
"'''Proto-language with no family''': %s should be the proto-language of <code>%s</code>, but %s is not a family.",
link(obj), dump(fam_code), link(fam)
)
else
-- Reinstate this as low-priority once message priorities have been implemented.
-- local expected_name = "Proto-" .. fam:getCanonicalName()
-- if canonical_name ~= expected_name then
-- discrepancy(modname,
-- "%s does not have the expected name \"%s\", even though it is the proto-language of the %s.",
-- link(obj), expected_name, link(fam)
-- )
-- end
end
end
if not canonical_name then
discrepancy(modname,
"The code <code>%s</code> has no canonical name specified.",
code
)
elseif language_names[canonical_name] then
local canonical_lang = get_language_by_canonical_name(canonical_name)
if not canonical_lang then
discrepancy(modname,
"%s has a canonical name that cannot be looked up.",
link(obj)
)
elseif data.main_code ~= canonical_lang:getCode() then
discrepancy(modname,
"%s has a canonical name that is not unique; it is also used by the code <code>%s</code>.",
link(obj), language_names[canonical_name]
)
end
else
if not m_languages_canonical_names[canonical_name] then
discrepancy("languages/canonical names",
"The canonical name %s is missing.",
link(obj)
)
end
language_names[canonical_name] = code
end
check_wikidata_item(modname, obj, data, 2)
if extra_data then
check_other_names_aliases_varieties(modname, obj, extra_data, canonical_name)
end
local lang_type = data.type
if lang_type and not (lang_type == "regular" or lang_type == "reconstructed" or lang_type == "appendix-constructed") then
discrepancy(modname,
"%s is of the invalid type <code>%s</code>.",
link(obj), lang_type
)
end
if data.aliases then
discrepancy(modname,
"%s has an <code>aliases</code> key in [[Module:%s]]. This must be moved to [[Module:%s]].",
link(obj), modname, extra_modname
)
end
if data.varieties then
discrepancy(modname,
"%s has the <code>varieties</code> key in [[Module:%s]]. This must be moved to [[Module:%s]].",
link(obj), modname, extra_modname
)
end
if data.other_names then
discrepancy(modname,
"%s has the <code>other_names</code> key in [[Module:%s]]. This must be moved to [[Module:%s]].",
link(obj), modname, extra_modname
)
end
if not extra_data then
discrepancy(extra_modname,
"%s has data in [[Module:%s]], but does not have corresponding data in [[Module:%s]].",
link(obj), modname, extra_modname
)
--[[elseif extra_data.other_names then
discrepancy(extra_modname,
"%s has <code>other_names</code> key, but these should be changed to either <code>aliases</code> or <code>varieties</code>.",
link(obj)
)]]
end
local sc = data[4]
if sc then
if type(sc) == "string" then
sc = split(sc, "%s*,%s*", true)
end
if type(sc) == "table" then
if not sc[1] then
discrepancy(modname,
"%s has no scripts listed.",
link(obj)
)
else
for _, sccode in ipairs(sc) do
local cur_sc = m_scripts_data[sccode]
if not (cur_sc or sccode == "All" or sccode == "Hants") then
discrepancy(modname,
"%s lists the invalid script code <code>%s</code>.",
link(obj), dump(sccode)
)
--[[elseif not cur_sc.characters then
discrepancy(modname,
"%s lists the %s, which does not have any characters.",
link(obj), link(get_script_by_code(sccode))
)]]
end
nonempty_scripts[sccode] = true
end
end
else
discrepancy(modname,
"The %s field for %s must be a table or string.",
4, link(obj)
)
end
end
if data.ancestors then
check_ancestors(modname, obj, data)
end
if data.wikimedia_codes then
check_wikimedia_codes(modname, obj, data)
end
if data[3] then
local family = data[3]
if not m_families_data[family] then
discrepancy(modname,
"%s has the invalid family code <code>%s</code>.",
link(obj), dump(family)
)
end
nonempty_families[family] = true
end
check_replacements_data(modname, obj, data)
if data.standard_chars then
if type(data.standard_chars) == "table" then
local sccodes = {}
for _, sccode in ipairs(sc) do
sccodes[sccode] = true
end
for sccode in pairs(data.standard_chars) do
if not (sccodes[sccode] or sccode == 1) then
discrepancy(modname,
"The field %s in the <code>standard_chars</code> table for %s does not match any script for that language.",
sccode, link(obj)
)
end
end
elseif data.standard_chars and type(data.standard_chars) ~= "string" then
discrepancy(modname,
"The <code>standard_chars</code> field in the data table for %s must be a string or table.",
link(obj)
)
end
end
check_true_or_string_or_nil(modname, obj, data, "override_translit")
check_true_or_string_or_nil(modname, obj, data, "link_tr")
-- This doesn't apply any more since scripts can be script-wide translit methods.
-- if data.override_translit and not data.translit then
-- discrepancy(modname,
-- "%s has the <code>override_translit</code> field set, but no transliteration module",
-- link(obj)
-- )
-- end
end
local function check_module(modname)
local mod_data = load_data("Module:" .. modname)
local extra_modname = modname .. "/extra"
local extra_mod_data = load_data("Module:" .. extra_modname)
for code, data in pairs(mod_data) do
check_language(modname, code, data, extra_modname, extra_mod_data[code])
end
check_no_alias_codes(modname, mod_data)
check_no_alias_codes(extra_modname, extra_mod_data)
check_extraneous_extra_data(modname, mod_data, extra_modname, extra_mod_data)
end
-- Check two-letter codes
check_module(
"languages/data/2"
)
-- Check three-letter codes
for i = 0x61, 0x7A do -- a to z
check_module(
format("languages/data/3/%c", i)
)
end
-- Check exceptional codes
check_module(
"languages/data/exceptional"
)
-- These checks must be done while all_codes only contains language codes:
-- that is, after language data modules have been processed, but before
-- etymology languages, families, and scripts have.
check_code_to_name_and_name_to_code_maps(
"languages",
"a submodule of [[Module:languages]]",
all_codes, language_names,
"languages/code to canonical name", m_languages_codes,
"languages/canonical names", m_languages_canonical_names
)
-- Check [[Template:langname-lite]]
local modname = "Template:langname-lite"
for code, name in gmatch(remove_comments(new_title(modname):getContent()), "\n\t*|#*([^\n]+)=([^\n]*)") do
if #code > 1 and code ~= "default" then
for _, code in pairs(split(code, "|", true)) do
local lang = get_language_by_code(code, nil, true, true)
if match(name, "etymcode") then
local nonEtym_name = frame:preprocess(name)
local nonEtym_real_name = lang:getFullName()
if nonEtym_name ~= nonEtym_real_name then
discrepancy(modname,
"Code: <code>%s</code>. Saw name: %s. Expected name: %s.",
code, nonEtym_name, nonEtym_real_name
)
end
name = frame:preprocess(gsub(name, "{{{allow etym|}}}", "1"))
elseif match(name, "familycode") then
name = match(name, "familycode|(.-)|")
else
name = name
end
if not lang then
discrepancy(modname,
"Code: <code>%s</code>. Saw name: %s. Language not present in data.",
code, name
)
else
local real_name = lang:getCanonicalName()
if name ~= real_name then
discrepancy(modname,
"Code: <code>%s</code>. Saw name: %s. Expected name: %s.",
code, name, real_name
)
end
end
end
end
end
end
local function check_etym_languages()
local modname = "etymology languages/data"
local check_etymology_language_data_keys = check_data_keys(
1, 2, 3, 4, -- canonical name, Wikidata item, family, scripts
"parent", "display_text", "generate_forms", "strip_diacritics", "sort_key",
"other_names", "aliases", "varieties", "ietf_subtag",
"type", "main_code", "ancestors", "pseudo_families",
"wikimedia_codes", "wikipedia_article", "standard_chars",
"translit", "override_translit", "link_tr",
"dotted_dotless_i"
)
local checked = {}
for code, data in pairs(m_etym_languages_data) do
local obj, canonical_name, parent = make_lang(code, data, true), data[1], data.parent
check_etymology_language_data_keys(modname, obj, data)
if all_codes[code] then
discrepancy(modname,
"The code <code>%s</code> is not unique; it is also defined in [[Module:%s]].",
code, all_codes[code]
)
else
if not m_etym_languages_codes[code] then
discrepancy("etymology languages/code to canonical name",
"The code %s is missing.",
link(obj, true)
)
end
all_codes[code] = modname
end
if not canonical_name then
discrepancy(modname,
"The code <code>%s</code> has no canonical name specified.",
code
)
elseif language_names[canonical_name] then
local canonical_lang = get_language_by_canonical_name(canonical_name, nil, true)
if not canonical_lang then
discrepancy(modname,
"%s has a canonical name that cannot be looked up.",
link(obj)
)
elseif data.main_code ~= canonical_lang:getCode() then
discrepancy(modname,
"%s has a canonical name that is not unique; it is also used by the code <code>%s</code>.",
link(obj), language_names[canonical_name]
)
end
else
if not m_etym_languages_canonical_names[canonical_name] then
discrepancy("etymology languages/canonical names",
"The canonical name %s is missing.",
link(obj)
)
end
etym_language_names[canonical_name] = code
end
check_other_names_aliases_varieties(modname, obj, data, canonical_name)
if parent then
if type(parent) ~= "string" then
discrepancy(modname,
"%s has a parent code that is %s rather than a string.",
link(obj), parent == nil and "nil" or "a " .. type(parent)
)
elseif not (m_languages_data_all[parent] or m_etym_languages_data[parent]) then
discrepancy(modname,
"%s has the invalid parent code <code>%s</code>%s.",
link(obj), dump(parent), m_families_data[parent] and " (a family code)" or ""
)
end
nonempty_families[parent] = true
else
discrepancy(modname,
"%s has no parent code.",
link(obj)
)
end
if data.ancestors then
check_ancestors(modname, obj, data)
end
if data.wikimedia_codes then
check_wikimedia_codes(modname, obj, data)
end
if data[3] then
local family = data[3]
if not m_families_data[family] then
discrepancy(modname,
"%s has the invalid family code <code>%s</code>.",
link(obj), dump(family))
end
nonempty_families[family] = true
end
check_replacements_data(modname, obj, data)
check_wikidata_item(modname, obj, data, 2)
local stack = {}
while data do
if checked[code] then
break
elseif stack[code] then
local parent = data.parent
discrepancy(modname,
"%s has a cyclic parental relationship to %s",
link(make_lang(code, data, true)),
link(get_language_by_code(parent, nil, true))
)
break
end
stack[code] = true
code = data.parent
data = m_etym_languages_data[code]
end
for code in pairs(stack) do
checked[code] = true
end
end
check_no_alias_codes(modname, m_etym_languages_data)
check_code_to_name_and_name_to_code_maps(
"etymology languages",
"[[Module:etymology languages/data]]",
all_codes, etym_language_names,
"etymology languages/code to canonical name", m_etym_languages_codes,
"etymology languages/canonical names", m_etym_languages_canonical_names)
end
-- TODO: add collision check between the canonical names "X" and "X [Ll]anguages".
local function check_families()
local modname = "families/data"
local check_family_data_keys = check_data_keys(
1, 2, 3, -- canonical name, Wikidata item, (parent) family
"type", "ietf_subtag",
"protoLanguage", "other_names", "aliases", "varieties", "pseudo_families", "categoryName"
)
local checked, double_check_if_empty = {["qfa-not"] = true}, {}
for code, data in pairs(m_families_data) do
local obj, canonical_name, family, protolang = make_family(code, data), data[1], data[3], data.protoLanguage
check_family_data_keys(modname, obj, data)
if all_codes[code] then
discrepancy(modname,
"The code <code>%s</code> is not unique; it is also defined in [[Module:%s]].",
code, all_codes[code]
)
else
if not m_families_codes[code] then
discrepancy("families/code to canonical name",
"The code %s is missing.",
link(obj, true)
)
end
all_codes[code] = modname
end
if not canonical_name then
discrepancy(modname,
"The code <code>%s</code> has no canonical name specified.",
code
)
elseif family_names[canonical_name] then
local canonical_family = get_family_by_canonical_name(canonical_name)
if not canonical_family then
discrepancy(modname,
"%s has a canonical name that cannot be looked up.",
link(obj)
)
elseif data.main_code ~= canonical_family:getCode() then
discrepancy(modname,
"%s has a canonical name that is not unique; it is also used by the code <code>%s</code>.",
link(obj), family_names[canonical_name]
)
end
else
if not m_families_canonical_names[canonical_name] then
discrepancy("families/canonical names",
"The canonical name %s is missing.",
link(obj)
)
end
family_names[canonical_name] = code
end
check_other_names_aliases_varieties(modname, obj, data, canonical_name)
if family then
if family == code and code ~= "qfa-not" then
discrepancy(modname,
"%s has itself as its family.",
link(obj)
)
elseif not m_families_data[family] then
discrepancy(modname,
"%s has the invalid parent family code <code>%s</code>.",
link(obj), dump(family)
)
end
nonempty_families[family] = true
end
if protolang then
local protolang_obj = get_language_by_code(protolang, nil, true)
if not protolang_obj then
discrepancy(modname,
"%s has the invalid proto-language code <code>%s</code>.",
link(obj), dump(protolang)
)
elseif protolang == code .. "-pro" then
discrepancy(modname,
"%s has %s listed as its proto-language, which is redundant, since it is determined to be the proto-language automatically.",
link(obj), link(protolang_obj)
)
elseif sub(protolang, -4) == "-pro" then
discrepancy(modname,
"%s has %s listed as its proto-language, which is supposed to be the proto-language for the family <code>%s</code>.", link(obj), link(protolang_obj), sub(protolang, 1, -5)
)
end
end
check_wikidata_item(modname, obj, data, 2)
-- Could be a false-positive if a child family occurs on a later
-- iteration, so set aside any that fail for a second check. This avoids
-- having to iterate through the whole list of families once
-- nonempty_families has been fully populated.
if not (nonempty_families[code] or allowed_empty_families[code]) then
double_check_if_empty[code] = obj
end
local stack = {}
while data do
if checked[code] then
break
elseif stack[code] then
local parent = data[3]
discrepancy(modname,
"%s has a cyclic familial relationship to %s",
link(make_family(code, data)),
link(get_family_by_code(parent))
)
break
end
stack[code] = true
code = data[3]
data = m_families_data[code]
end
for code in pairs(stack) do
checked[code] = true
end
end
-- Any languages set aside as candidates for having no children are checked
-- again, now that nonempty_families is definitely complete.
for code, obj in next, double_check_if_empty do
if not (nonempty_families[code] or allowed_empty_families[code]) then
discrepancy(modname,
"%s has no child families or languages.",
link(obj)
)
end
end
check_no_alias_codes(modname, m_families_data)
check_code_to_name_and_name_to_code_maps(
"families",
"[[Module:families/data]]",
all_codes, family_names,
"families/code to canonical name", m_families_codes,
"families/canonical names", m_families_canonical_names)
end
-- TODO: add collision check between the canonical names "X" and "X [Ss]cript".
local function check_scripts()
local modname = "scripts/data"
local check_script_data_keys = check_data_keys(
1, 2, 3, -- canonical name, Wikidata item, writing systems
"other_names", "aliases", "varieties", "parent", "ietf_subtag", "type",
"wikipedia_article", "ranges", "characters", "spaces", "capitalized", "translit", "direction",
"character_category", "normalizationFixes", "sort_by_scraping",
"display_text", "sort_key", "strip_diacritics"
)
-- Just to satisfy requirements of check_code_to_name_and_name_to_code_maps.
local script_code_to_module_map = {}
for code, data in pairs(m_scripts_data) do
local obj, canonical_name = make_script(code, data), data[1]
if not m_scripts_codes[code] and #code == 4 then
discrepancy("scripts/code to canonical name",
"The code %s is missing",
link(obj, true)
)
end
check_script_data_keys(modname, obj, data)
if not canonical_name then
discrepancy(modname,
"The code <code>%s</code> has no canonical name specified.",
code
)
elseif script_names[canonical_name] then
local canonical_script = get_script_by_canonical_name(canonical_name)
if not canonical_script then
discrepancy(modname,
"%s has a canonical name that cannot be looked up.",
link(obj)
)
--[[elseif data.main_code ~= canonical_script:getCode() then
discrepancy(modname,
"%s has a canonical name that is not unique; it is also used by the code <code>%s</code>.",
link(obj), script_names[canonical_name]
)]]
end
else
if not m_scripts_canonical_names[canonical_name] and #code == 4 then
discrepancy("scripts/canonical names",
"The canonical name %s is missing.",
link(obj)
)
end
script_names[canonical_name] = code
end
check_other_names_aliases_varieties(modname, obj, data, canonical_name)
if not nonempty_scripts[code] then
discrepancy(modname,
"%s is not used by any language%s.",
link(obj), data.characters and ""
or " and has no characters listed for auto-detection")
--[[elseif not data.characters then
discrepancy(modname,
"%s has no characters listed for auto-detection.",
link(obj)
)--]]
end
if data.characters then
validate_pattern(data.characters, modname, obj, false)
end
check_wikidata_item(modname, obj, data, 2)
script_code_to_module_map[code] = modname
end
check_no_alias_codes(modname, m_scripts_data)
check_code_to_name_and_name_to_code_maps(
"scripts",
"a submodule of [[Module:scripts]]",
script_code_to_module_map, script_names,
"scripts/code to canonical name", m_scripts_codes,
"scripts/canonical names", m_scripts_canonical_names)
end
-- FIXME: this is quite messy.
local function check_wikidata_languages()
local data = json_decode(new_title("မဝ်ဂျူ:languages/data/wikidata.json"):getContent())
local seen = {{}, {}, {}, [5] = {}}
for _, item in ipairs(data) do
local id = item.id
for k, v in pairs(item) do
if k ~= "id" then
local _seen = seen[k]
for _, code in ipairs(v) do
local _code = code[1]
local _type = type(_seen[_code])
if _type == "table" then
insert(_seen[_code], id)
elseif _type == "string" then
_seen[_code] = {_seen[_code], id}
else
_seen[_code] = id
end
end
end
end
end
local modname = "languages/data/wikidata.json"
for k, v in pairs(seen) do
for code, ids in pairs(v) do
if type(ids) == "table" then
local t = {}
for i, id in ipairs(ids) do
t[i] = format("<code>[[d:%s|%s]]</code>", id, id)
end
discrepancy(modname,
"<code>%s</code> is set as an ISO 639-%d code on multiple items: %s.",
code, k, list_to_text(t)
)
end
end
end
end
local function check_labels()
local check_label_data_keys = check_data_keys(
"display", "Wikipedia", "glossary",
"plain_categories", "topical_categories", "pos_categories", "regional_categories", "sense_categories",
"omit_preComma", "omit_postComma", "omit_preSpace",
"deprecated", "track"
)
local function check_label(modname, code, data)
local _type = type(data)
if _type == "table" then
check_label_data_keys(modname, code, data)
elseif _type ~= "string" then
discrepancy(modname,
"The data for the label <code>%s</code> is %s %s; only tables and strings are allowed.",
code, add_indefinite_article(_type)
)
end
end
for _, module in ipairs{"", "/regional", "/topical"} do
local modname = "မဝ်ဂျူ:labels/data" .. module
module = require(modname)
for label, data in pairs(module) do
check_label(modname, label, data)
end
end
for code in pairs(m_languages_codes) do
local modname = "မဝ်ဂျူ:labels/data/lang/" .. code
local module = safe_require(modname)
if module then
for label, data in pairs(module) do
check_label(modname, label, data)
end
end
end
end
local function check_zh_trad_simp()
local m_ts = require("မဝ်ဂျူ:zh/data/ts")
local m_st = require("မဝ်ဂျူ:zh/data/st")
local ruby = require("မဝ်ဂျူ:ja-ruby").ruby_auto
local lang = get_language_by_code("zh")
local Hant = get_script_by_code("Hant")
local Hans = get_script_by_code("Hans")
local data = {[0] = m_st, m_ts}
local mod = {[0] = "st", "ts"}
local var = {[0] = "Simp.", "Trad."}
local sc = {[0] = Hans, Hant}
local function find_stable_loop(chars, other, j)
local display = ruby({["markup"] = "[" .. other .. "](" .. var[(j+1)%2] .. ")"})
display = language_link{term = other, alt = display, lang = lang, sc = sc[(j+1)%2], tr = "-"}
insert(chars, display)
if data[(j+1)%2][other] == other then
insert(chars, other)
return chars, 1
elseif not data[(j+1)%2][other] then
insert(chars, "not found")
return chars, 2
elseif data[j%2][data[(j+1)%2][other]] ~= other then
return find_stable_loop(chars, data[(j+1)%2][other], j + 1)
else
local display = ruby({["markup"] = "[" .. data[(j+1)%2][other] .. "](" .. var[j%2] .. ")"})
display = language_link{term = data[(j+1)%2][other], alt = display, lang = lang, sc = sc[j%2], tr = "-"}
insert(chars, display .. " (")
display = ruby({["markup"] = "[" .. data[j%2][data[(j+1)%2][other]] .. "](" .. var[(j+1)%2] .. ")"})
display = language_link{term = data[j%2][data[(j+1)%2][other]], alt = display, lang = lang, sc = sc[(j+1)%2], tr = "-"}
insert(chars, display .. " etc.)")
return chars, 3
end
return chars
end
for i = 0, 1, 1 do
for ch, other_ch in pairs(data[i]) do
if data[(i+1)%2][other_ch] ~= ch then
local chars, issue = {}
local display = ruby({["markup"] = "[" .. ch .. "](" .. var[i] .. ")"})
display = language_link{term = ch, alt = display, lang = lang, sc = sc[i], tr = "-"}
insert(chars, display)
chars, issue = find_stable_loop(chars, other_ch, i)
if issue == 1 or issue == 2 then
local sc_this, mod_this, j = {}
if match(chars[#chars-1], var[(i+1)%2]) then
j = 1
else
j = 0
end
mod_this = mod[(i+j)%2]
sc_this = {[0] = sc[(i+j)%2], sc[(i+j+1)%2]}
for k, ch in ipairs(chars) do
chars[k] = tag_text(ch, lang, sc_this[k%2], "term")
end
local modname = "zh/data/" .. mod_this
if issue == 1 then
discrepancy(modname,
"character references itself: %s",
concat(chars, " → ")
)
elseif issue == 2 then
discrepancy(modname,
"missing character: %s",
concat(chars, " → ")
)
end
elseif issue == 3 then
for j, ch in ipairs(chars) do
chars[j] = tag_text(ch, lang, sc[(i+j)%2], "term")
end
discrepancy("zh/data/" .. mod[i],
"possible mismatched character: %s",
concat(chars, " → ")
)
end
end
end
end
end
local function check_serialization(modname)
local serializers = {
["Hani-sortkey/data/serialized"] = "Hani-sortkey/serializer",
}
if not serializers[modname] then
return nil
end
local serializer = serializers[modname]
local current_data = require("မဝ်ဂျူ:" .. serializer).main(true)
local stored_data = require("မဝ်ဂျူ:" .. modname)
if current_data ~= stored_data then
discrepancy(modname,
"<strong><u>Important!</u> Serialized data is out of sync. Use [[Module:%s]] to update it. If you have made any changes to the underlying data, the serialized data <u>must</u> be updated before these changes will take effect.</strong>",
serializer
)
end
end
local find_code = require("မဝ်ဂျူ:memoize")(function(message)
return match(message, "<code>([^<]+)</code>")
end)
local function compare_messages(message1, message2)
local code1, code2 = find_code(message1), find_code(message2)
if code1 and code2 then
return code1 < code2
else
return message1 < message2
end
end
-- Warning: cannot be called twice in the same module invocation because
-- some module-global variables are not reset between calls.
local function do_checks(frame, modules)
messages = setmetatable({}, messages_mt)
if modules["zh/data/ts"] or modules["zh/data/st"] then
check_zh_trad_simp()
end
check_languages(frame)
check_etym_languages()
-- families and scripts must be checked AFTER languages; languages checks fill out
-- the nonempty_families and nonempty_scripts tables, used for testing if a family/script
-- is ever used in the data
check_families()
check_scripts()
check_wikidata_languages()
if modules["labels/data"] then
check_labels()
end
for module in pairs(modules) do
check_serialization(module)
end
setmetatable(messages, nil)
for _, msglist in pairs(messages) do
msglist:sort(compare_messages)
end
local ret = messages
messages = nil
return ret
end
local function format_message(modname, msglist)
local header; if match(modname, "^မဝ်ဂျူ:") or match(modname, "^ထာမ်ပလိက်:") then
header = "===[[" .. modname .. "]]==="
else
header = "===[[မဝ်ဂျူ:" .. modname .. "]]==="
end
return header .. msglist:map(function(msg)
return "\n* " .. msg
end):concat()
end
function export.check_modules_t(frame)
local args = frame.args
local modules = list_to_set(args)
local ret = Array()
local messages = do_checks(frame, modules)
for _, module in ipairs(args) do
local msglist = messages[module]
if msglist then
ret:insert(format_message(module, msglist))
end
end
return ret:concat("\n")
end
function export.perform(frame)
local messages = do_checks(frame, {})
-- Format the messages
local ret = Array()
for modname, msglist in sorted_pairs(messages) do
ret:insert(format_message(modname, msglist))
end
-- Are there any messages?
-- TODO: check how many messages there are.
if false then --if i == 1 then
return "<b class=\"success\">Glory to Arstotzka.</b>"
else
ret:insert(1, "<b class=\"warning\">Discrepancies detected:</b>")
return ret:concat("\n")
end
end
return export
gif1br8jjzt2zq8jqc3w1wcbax8t3rm
ထာမ်ပလိက်:shortcut
10
892
399060
3428
2026-07-17T16:46:59Z
咽頭べさ
33
399060
wikitext
text/x-wiki
<includeonly>{{#invoke:shortcut box|shortcut_t}}</includeonly><noinclude>{{documentation}}</noinclude>
exsyrlhl8x8eep173m56lwf7p5s2adf
ထာမ်ပလိက်:m-self
10
7839
399140
14759
2026-07-18T03:13:55Z
咽頭べさ
33
399140
wikitext
text/x-wiki
<includeonly><onlyinclude>{{safesubst:<noinclude/>#invoke:links/templates|l_term_t|face=term|notself=1}}</onlyinclude></includeonly><!--
-->{{m-self|en|term}}{{documentation}}
n8a9gq9t38rp18j8fa1g3hcotbhs7nt
မဝ်ဂျူ:etymology languages/canonical names
828
52684
399021
375475
2026-07-17T13:14:30Z
Intobesa.bot
1035
Bot: ပွမကၠာဲစုတ်ယၟုနူဘာသာအၚ်္ဂလိက်
399021
Scribunto
text/plain
return {
["Abhiri"] = "pra-abh",
["Abuzeydabadi"] = "xme-abz",
["Abyanehi"] = "xme-aby",
["Acadian French"] = "fr-aca",
["Achaemenid Elamite"] = "elx-ach",
["Achterhoeks"] = "act",
["Adamawa Fulfulde"] = "fub",
["Addu Dhivehi"] = "dv-add",
["Aeolic Greek"] = "grc-aeo",
["Afghan Uzbek"] = "uz-afg",
["African Romance"] = "la-afr",
["Afridi"] = "ps-afr",
["Akhmimic Coptic"] = "cop-akh",
["Akuapem Twi"] = "tw-aku",
["Alsatian Alemannic German"] = "gsw-FR-als",
["Amdo Tibetan"] = "adx",
["American English"] = "en-US",
["Amorehi"] = "xme-amo",
["Anaraki"] = "xme-ana",
["Anatri Chuvash"] = "cv-ana",
["Anbarani"] = "tly-anb",
["Angkorian Old Khmer"] = "okz-ang",
["Anglian Old English"] = "ang-ang",
["Anglo-Norman"] = "xno",
["Anxi Hokkien"] = "nan-anx",
["Aranese"] = "oc-ara",
["Arbëresh Albanian"] = "aae",
["Arcadian Greek"] = "grc-arc",
["Arcadocypriot Greek"] = "grc-arp",
["Ardestani"] = "xme-ard",
["Ardhamagadhi Prakrit"] = "pra-ard",
["Arghu"] = "klj-arg",
["Armeno-Kipchak"] = "qwm-arm",
["Arvanitika Albanian"] = "aat",
["Asalemi"] = "tly-asa",
["Asante Twi"] = "tw-asa",
["Ashtiani"] = "atn",
["Attic Greek"] = "grc-att",
["Australian Aboriginal English"] = "en-aae",
["Australian English"] = "en-AU",
["Austrian German"] = "de-AT",
["Auvergnat"] = "oc-auv",
["Avahattha"] = "inc-aav",
["Avanti"] = "pra-ava",
["Ayutthaya Old Thai"] = "th-ayu",
["Azerbaijani Talysh"] = "tly-aze",
["Badrudi"] = "xme-bdr",
["Bagirmi Fulfulde"] = "fui",
["Bahliki"] = "pra-bah",
["Bajui"] = "sgh-baj",
["Baltic German"] = "de-bal",
["Bandari"] = "bsg-ban",
["Bangash"] = "ps-bng",
["Bannu"] = "ps-ban",
["Barpetia Kamrupi Assamese"] = "as-bkm",
["Bartangi"] = "sgh-bar",
["Bartangi-Oroshori"] = "sgh-bro",
["Beijing Mandarin"] = "cmn-bei",
["Beijingic Mandarin"] = "cmn-bec",
["Belgian Dutch"] = "nl-BE",
["Besemah"] = "pse-bsm",
["Betawi Kota"] = "bew-kot",
["Biblical Aramaic"] = "arc-bib",
["Biblical Hebrew"] = "hbo",
["Bidhandi"] = "xme-bid",
["Bijagani"] = "xme-bij",
["Boeotian Greek"] = "grc-boi",
["Bohairic Coptic"] = "cop-boh",
["Bolivian Spanish"] = "es-BO",
["Bombay Hindi"] = "hi-mum",
["Bono Twi"] = "tw-abr",
["Borana"] = "gax",
["Borgu Fulfulde"] = "fue",
["Borujerdi"] = "xme-bor",
["Brahmanic Sanskrit"] = "sa-bra",
["Brazilian Portuguese"] = "pt-BR",
["British English"] = "en-GB",
["Buddhist Hybrid Sanskrit"] = "sa-bhs",
["Burenjani"] = "fay-bur",
["Bushehri"] = "fay-bsh",
["Byzantine Greek"] = "gkm",
["Cajun French"] = "frc",
["California English"] = "en-US-CA",
["Camorta"] = "ncb-cam",
["Campidanese"] = "sc-sro",
["Canadian English"] = "en-CA",
["Canadian French"] = "fr-CA",
["Canadian Ukrainian"] = "uk-CA",
["Candali"] = "pra-can",
["Capenate"] = "xfa-cap",
["Central Ghilzay"] = "ps-cgi",
["Central Korean"] = "ko-cen",
["Central Plains Mandarin"] = "cmn-cep",
["Central Talysh"] = "tly-cen",
["Central Tati"] = "xme-ttc-cen",
["Central-Eastern Niger Fulfulde"] = "fuq",
["Chakavian Serbo-Croatian"] = "ckm",
["Chakhar Mongolian"] = "mn-cha",
["Chali Tati"] = "tks-cal",
["Changtai Hokkien"] = "nan-cha",
["Chilean Spanish"] = "es-CL",
["Chimehi"] = "xme-cim",
["Christian Palestinian Aramaic"] = "arc-cpa",
["Chungcheong Korean"] = "ko-chu",
["Ci"] = "lzh-cii",
["Cisalpine Gaulish"] = "xcg",
["Classical Azerbaijani"] = "az-cls",
["Classical Cantonese"] = "lzh-yue",
["Classical Japanese"] = "ja-cla",
["Classical Latin"] = "la-cla",
["Classical Malay"] = "ms-cla",
["Classical Mandarin"] = "lzh-cmn",
["Classical Persian"] = "fa-cls",
["Classical Sanskrit"] = "cls",
["Classical Tagalog"] = "tl-cls",
["Classical Taishanese"] = "lzh-tai",
["Classical Taiwanese Mandarin"] = "lzh-cmn-TW",
["Colombian Spanish"] = "es-CO",
["Common Bantu"] = "bnt-cmn",
["Contemporary Latin"] = "la-con",
["Coptic Dialect G"] = "cop-ggg",
["Coptic Dialect J"] = "cop-jjj",
["Coptic Dialect K"] = "cop-kkk",
["Coptic Dialect P"] = "cop-ppp",
["Cretan Ancient Greek"] = "grc-kre",
["Cretan Greek"] = "el-crt",
["Cuban Spanish"] = "es-CU",
["Cuman"] = "qwm-cum",
["Cypriot Greek"] = "el-cyp",
["Cypriot Turkish"] = "tr-CY",
["Dabu Hakka"] = "hak-dab",
["Daksinatya"] = "pra-dak",
["Danesfani"] = "tks-dan",
["Danube Bulgar"] = "xbo-dan",
["Danzhou Chinese"] = "zhx-dan",
["Dari"] = "prs",
["Dashtaki"] = "fay-dsh",
["Davani"] = "fay-dav",
["Delijani"] = "xme-del",
["Dhakaiya Vaṅga Bengali"] = "bn-dvn",
["Digor Ossetian"] = "os-dig",
["Dnieper Baltic"] = "bat-dni",
["Dobrujan Tatar"] = "crh-dbj",
["Doric Greek"] = "grc-dor",
["Dramili"] = "pra-dra",
["Drents"] = "drt",
["Early Brythonic"] = "bry-ear",
["Early Mandarin"] = "cmn-ear",
["Early Medieval Latin"] = "la-eme",
["Early Middle Chinese"] = "ltc-ear",
["Early Middle Japanese"] = "ja-mid-ear",
["Early Middle Korean"] = "okm-ear",
["Early Middle Mongol"] = "xng-ear",
["Early Middle Persian"] = "pal-ear",
["Early Modern Czech"] = "cs-ear",
["Early Modern English"] = "en-ear",
["Early Modern Hakka"] = "hak-eam",
["Early Modern Japanese"] = "ja-ear",
["Early Modern Spanish"] = "es-ear",
["Early New High German"] = "de-ear",
["Early New Persian"] = "fa-ear",
["Early Old Chinese"] = "och-ear",
["Early Old Ossetic"] = "oos-ear",
["Early Old Persian"] = "peo-ear",
["Early Scots"] = "enm-esc",
["Early Sogdian"] = "sog-ear",
["East Frisian Low German"] = "frs",
["East Midland Middle English"] = "enm-emi",
["Eastern Balochi"] = "bgp",
["Eastern Mansi"] = "mns-eas",
["Eastern Old Japanese"] = "ojp-eas",
["Eastern Tati"] = "xme-ttc-eas",
["Ebrahimabadi"] = "tks-ebr",
["Ecclesiastical Latin"] = "la-ecc",
["Elean Greek"] = "grc-ela",
["Emamzada Esmaili"] = "fay-eze",
["Epic Greek"] = "grc-epc",
["Esfarvarini"] = "tks-esf",
["European Portuguese"] = "pt-PT",
["Fante Akan"] = "fat",
["Farizandi"] = "xme-far",
["Fayyumic Coptic"] = "cop-fay",
["Frankish"] = "frk",
["Fumani"] = "tly-fum",
["Fuyu Kyrgyz"] = "kjh-fyu",
["Gangwon Korean"] = "ko-gan",
["Gascon"] = "oc-gas",
["Gavkoshaki"] = "fay-gav",
["Gazi"] = "gzi",
["Geordie"] = "en-geo",
["Ghat"] = "thv-ght",
["Gheg Albanian"] = "aln",
["Golyad"] = "bat-gol",
["Goral"] = "pl-gor",
["Greater Polish"] = "pl-gre",
["Greenlandic Norse"] = "non-grn",
["Gronings"] = "gos",
["Guangzhou Cantonese"] = "yue-gua",
["Guanzhong Mandarin"] = "cmn-gua",
["Guernsey Norman"] = "nrf-grn",
["Guilin Mandarin"] = "cmn-gui",
["Gurjara Apabhramsa"] = "inc-agu",
["Gyeonggi Korean"] = "ko-gyg",
["Gyeongsang Korean"] = "ko-gys",
["Hailu Hakka"] = "hak-hai",
["Hamadani"] = "xme-ham",
["Hamgyong Korean"] = "ko-ham",
["Hangzhounese"] = "wuu-han",
["Hanjani"] = "xme-han",
["Hanyu Pinyin"] = "cmn-pinyin",
["Harar Oromo"] = "hae",
["Hatran Aramaic"] = "arc-hat",
["Havigannada"] = "kn-hav",
["Hazaragi"] = "haz",
["Helu Prakrit"] = "pra-hel",
["Hengyang Xiang"] = "hsn-hya",
["Hengzhou Xiang"] = "hsn-hzh",
["Hermopolitan Coptic"] = "cop-her",
["High Alemannic German"] = "gsw-hig",
["Highest Alemannic German"] = "gsw-hst",
["Hokkaido Ainu"] = "ain-hok",
["Hong Kong Cantonese"] = "yue-HK",
["Hong Kong English"] = "en-HK",
["Hong Kong Hakka"] = "hak-HK",
["Hormozi"] = "bsg-hor",
["Houlu Min"] = "nan-hou",
["Hui'an Hokkien"] = "nan-hui",
["Huiyang Hakka"] = "hak-hui",
["Huvadhu Dhivehi"] = "dv-huv",
["Hwanghae Korean"] = "ko-hwa",
["Imperial Aramaic"] = "arc-imp",
["Indian English"] = "en-IN",
["Insular Scots"] = "sco-ins",
["Ionic Greek"] = "grc-ion",
["Iranian Persian"] = "fa-ira",
["Irish English"] = "en-IE",
["Iron Ossetian"] = "os-iro",
["Isfahani"] = "xme-isf",
["Israeli Hebrew"] = "he-IL",
["Jadrani"] = "ps-jad",
["Jeolla Korean"] = "ko-jeo",
["Jersey Norman"] = "nrf-jer",
["Jewish Babylonian Aramaic"] = "tmr",
["Jewish Literary Aramaic"] = "arc-jla",
["Jewish Palestinian Aramaic"] = "jpa",
["Jianghuai Mandarin"] = "cmn-jhu",
["Jinjiang Hokkien"] = "nan-jin",
["Jirofti"] = "rdb-jir",
["Jowshaqani"] = "xme-jow",
["Judeo-Arabic"] = "jrb",
["Kafroni"] = "xme-kaf",
["Kahaki"] = "xme-kah",
["Kahnuji"] = "rdb-kah",
["Kajkavian Serbo-Croatian"] = "kjv",
["Kakari"] = "ps-kak",
["Kaliarda"] = "el-kal",
["Kamviri"] = "xvi",
["Kandahari"] = "ps-kan",
["Kaniguram"] = "oru-kan",
["Karganrudi"] = "tly-kar",
["Kashani"] = "xme-kas",
["Kasmiri Apabhramsa"] = "inc-aka",
["Katchal"] = "ncb-kat",
["Katharevousa"] = "el-kth",
["Kathiyawadi"] = "gu-kat",
["Kativiri"] = "bsh-kat",
["Kentish Middle English"] = "enm-ken",
["Kentish Old English"] = "ang-ken",
["Kermani"] = "xme-krm",
["Kesehi"] = "xme-kes",
["Khalkha Mongolian"] = "mn-kha",
["Khamba"] = "kbg",
["Khams Tibetan"] = "khg",
["Khargi"] = "fay-kar",
["Khasa Prakrit"] = "pra-kha",
["Khatak"] = "ps-xat",
["Khiaraji"] = "tks-xia",
["Khollari"] = "fay-kho",
["Khorchin Mongolian"] = "mn-khr",
["Khoznini"] = "tks-xoz",
["Khufi"] = "sgh-xuf",
["Khughni"] = "sgh-xug",
["Khughni-Bajui"] = "sgh-xgb",
["Khunsari"] = "kfm",
["Khuri"] = "xme-xur",
["Kinmenese Hokkien"] = "nan-kin",
["Kinyarwanda"] = "rw-kin",
["Kirundi"] = "rw-run",
["ဂရေတ် ခါဝ်အိန်"] = "grc-koi",
["Komjani"] = "xme-kom",
["Kondazi"] = "fay-kon",
["Korean Classical Chinese"] = "lzh-KO",
["Kromanti"] = "alv-kro",
["Kundagannada"] = "kn-kun",
["Kuril Ainu"] = "ain-kur",
["Kölsch"] = "ksh",
["Languedocien"] = "oc-lan",
["Lanuvian"] = "itc-lan",
["Lanyin Mandarin"] = "cmn-lan",
["Late Babylonian"] = "akk-lbb",
["Late Brythonic"] = "bry-lat",
["Late Egyptian"] = "egy-lat",
["Late Khotanese"] = "kho-lat",
["Late Latin"] = "la-lat",
["Late Middle Chinese"] = "ltc-lat",
["Late Middle Japanese"] = "ja-mid-lat",
["Late Middle Mongol"] = "xng-lat",
["Late Middle Persian"] = "pal-lat",
["Late Old Chinese"] = "och-lat",
["Late Old Korean"] = "oko-lat",
["Late Old Ossetic"] = "oos-lat",
["Late Old Persian"] = "peo-lat",
["Late Old Swedish"] = "gmq-osw-lat",
["Late Sogdian"] = "sog-lat",
["Law French"] = "xno-law",
["Lesser Polish"] = "pl-les",
["Limousin"] = "oc-lim",
["Lisan ud-Dawat Gujarati"] = "gu-lda",
["Literary Cantonese"] = "yue-lit",
["Literary Chinese"] = "lzh-lit",
["Logar"] = "oru-log",
["Logudorese"] = "sc-src",
["Lombardic"] = "lng",
["Loudi Xiang"] = "hsn-lou",
["Louisiana French"] = "fr-lou",
["Low Alemannic German"] = "gsw-low",
["Low Prussian"] = "nds-lpr",
["Lucanian"] = "osc-luc",
["Lunfardo"] = "es-lun",
["Lycopolitan Coptic"] = "cop-lyc",
["Língua Geral Amazônica"] = "tpw-lga",
["Maasina Fulfulde"] = "ffm",
["Magadhi Prakrit"] = "pra-mag",
["Mahallati"] = "xme-mah",
["Maharastri Apabhramsa"] = "inc-ama",
["Maharastri Prakrit"] = "pra-mah",
["Mahsudi"] = "ps-mah",
["Malaysian Huiyang Hakka"] = "hak-hui-MY",
["Malaysian Mandarin"] = "cmn-MY",
["Mamluk-Kipchak"] = "qwm-mam",
["Manichaean Middle Persian"] = "xmn",
["Manx English"] = "en-IM",
["Masali"] = "tly-msa",
["Masarami"] = "fay-mas",
["Masovian Polish"] = "pl-mas",
["Masulei"] = "tly-msu",
["Medan Hokkien"] = "nan-med",
["Medieval Hebrew"] = "he-med",
["Medieval Latin"] = "la-med",
["Medieval Sinhalese"] = "si-med",
["Medieval Tashelhit"] = "shi-med",
["Meixian Hakka"] = "hak-mei",
["Mercian Old English"] = "ang-mer",
["Mexican Spanish"] = "es-MX",
["Meymehi"] = "xme-mey",
["Middle Assyrian"] = "akk-mas",
["Middle Babylonian"] = "akk-mbb",
["Middle Belarusian"] = "zle-mbe",
["Middle Bulgarian"] = "cu-bgm",
["Middle Chuvash"] = "cv-mid",
["Middle Egyptian"] = "egy-mid",
["Middle Elamite"] = "elx-mid",
["Middle Georgian"] = "ka-mid",
["Middle Hindi"] = "hi-mid",
["Middle Japanese"] = "ja-mid",
["Middle Konkani"] = "kok-mid",
["Middle Polish"] = "zlw-mpl",
["Middle Russian"] = "zle-mru",
["Middle Tamil"] = "ta-mid",
["Middle Ukrainian"] = "zle-muk",
["Minabi"] = "bsg-min",
["Mishnaic Hebrew"] = "he-mis",
["Missouri French"] = "fr-mis",
["Mitanni"] = "inc-mit",
["Moldovan"] = "ro-MD",
["Mulaku Dhivehi"] = "dv-mul",
["Mumviri"] = "bsh-mum",
["Nabataean Aramaic"] = "arc-nab",
["Nalbaria Kamrupi Assamese"] = "as-nkm",
["Nancowry"] = "ncb-nan",
["Nanjing Mandarin"] = "cmn-nan",
["Naraqi"] = "xme-nar",
["Nashalji"] = "xme-nas",
["Natanzi"] = "ntz",
["Nayini"] = "nyq",
["Neo-Assyrian"] = "akk-nas",
["Neo-Babylonian"] = "akk-nbb",
["Neo-Elamite"] = "elx-neo",
["Neo-Middle Egyptian"] = "egy-nmi",
["New Latin"] = "la-new",
["New Sanskrit"] = "sa-neo",
["New Xiang"] = "hsn-new",
["New Zealand English"] = "en-NZ",
["Nigerian Fulfulde"] = "fuv",
["Ningbonese"] = "wuu-nin",
["Noakhailla Vaṅga Bengali"] = "bn-nvn",
["North Alaskan Inupiatun"] = "esi",
["North American English"] = "en-NNN",
["North Karelian"] = "krl-nor",
["Northeastern Mandarin"] = "cmn-noe",
["Northeastern Pashto"] = "ps-nea",
["Northern Irish English"] = "en-GB-NIR",
["Northern Middle English"] = "enm-nor",
["Northern Scots"] = "sco-nor",
["Northern Talysh"] = "tly-nor",
["Northern Tati"] = "xme-ttc-nor",
["Northern Wu"] = "wuu-nor",
["Northumbrian Old English"] = "ang-nor",
["Northwest Alaskan Inupiatun"] = "esk",
["Northwestern Pashto"] = "ps-nwe",
["Nuorese"] = "sc-nuo",
["Nushabadi"] = "xme-nus",
["Odri"] = "pra-odr",
["Old Akkadian"] = "akk-old",
["Old Aramaic"] = "arc-old",
["Old Assyrian"] = "akk-oas",
["Old Avestan"] = "ae-old",
["Old Azari"] = "xme-azr",
["Old Babylonian"] = "akk-obb",
["Old Braj"] = "bra-old",
["Old Chuvash"] = "cv-old",
["Old Coptic"] = "cop-old",
["Old East Norse"] = "non-oen",
["Old Egyptian"] = "egy-old",
["Old Elamite"] = "elx-old",
["Old Italian"] = "roa-oit",
["Old Kazeruni"] = "fay-kzo",
["Old Khotanese"] = "kho-old",
["Old Kirghiz"] = "otk-kir",
["Old Konkani"] = "kok-old",
["Old Latin"] = "itc-ola",
["Old Malay"] = "ms-old",
["Old Mohawk"] = "iro-omo",
["Old Northern French"] = "fro-nor",
["Old Onondaga"] = "iro-oon",
["Old Ossetic"] = "oos",
["Old Provençal"] = "oc-pro-old",
["Old Pskovian"] = "zle-ops",
["Old Shirazi"] = "fay-sho",
["Old Tagalog"] = "tl-old",
["Old Thai"] = "th-old",
["Old Wendat"] = "iro-ohu",
["Old West Norse"] = "non-own",
["Old Xiang"] = "hsn-old",
["Opuntian Locrian"] = "grc-opl",
["Ordos Mongolian"] = "mn-ord",
["Orkhon Turkic"] = "otk-ork",
["Orma"] = "orc",
["Oroshori"] = "sgh-oro",
["Oxyrhynchite Coptic"] = "cop-oxy",
["Ozolian Locrian"] = "grc-ozl",
["Paisaci Prakrit"] = "pra-pai",
["Palasbaria Kamrupi Assamese"] = "as-pkm",
["Palatine German"] = "pfl",
["Paleo-Balkan"] = "qsb-bal",
["Paleo-Hispanic"] = "qsb-ibe",
["Palladius"] = "cmn-palladius",
["Palmyrene Aramaic"] = "arc-pal",
["Pamphylian Greek"] = "grc-pam",
["Paphian Greek"] = "el-pap",
["Papuni"] = "fay-pap",
["Penang Hokkien"] = "nan-pen",
["Peruvian Spanish"] = "es-PE",
["Peshawari"] = "ps-pes",
["Philippine Hokkien"] = "nan-hbl-PH",
["Philippine Mandarin"] = "cmn-PH",
["Philippine Spanish"] = "es-PH",
["Picard Old French"] = "fro-pic",
["Polari"] = "pld",
["Postal Romanization"] = "zh-postal",
["Pracya"] = "pra-pra",
["Praenestine"] = "itc-pra",
["Pre-Angkorian Old Khmer"] = "okz-pre",
["Pre-Classical Chinese"] = "lzh-pre",
["Pre-Greek"] = "qsb-grc",
["Proto-Anglo-Frisian"] = "gmw-afr-pro",
["Proto-Arinic"] = "qfa-yrn-pro",
["Proto-Baltic"] = "bat-pro",
["Proto-Bulgar"] = "trk-bul-pro",
["Proto-Common Turkic"] = "trk-cmn-pro",
["Proto-Finno-Permic"] = "urj-fpr-pro",
["Proto-Finno-Ugric"] = "fiu-pro",
["Proto-Ketic"] = "qfa-yke-pro",
["Proto-Kottic"] = "qfa-yko-pro",
["Proto-Lycopolitan Coptic"] = "cop-ply",
["Proto-North Sea Germanic"] = "gmw-nsg-pro",
["Proto-Oghur"] = "trk-ogr-pro",
["Proto-Oghuz"] = "trk-ogz-pro",
["Proto-Pumpokolic"] = "qfa-ypm-pro",
["Proto-Romance"] = "roa-pro",
["Proto-Tibeto-Burman"] = "tbq-pro",
["Provençal"] = "oc-pro",
["Puerto Rican Spanish"] = "es-PR",
["Pulaar"] = "fuc",
["Pular"] = "fuf",
["Pyongan Korean"] = "ko-pyo",
["Qalhari"] = "xme-qal",
["Qashqai"] = "qxq",
["Qianlu Min"] = "nan-qia",
["Qohrudi"] = "xme-qoh",
["Quanzhou Hokkien"] = "nan-qua",
["Renaissance Latin"] = "la-ren",
["Rioplatense Spanish"] = "es-AR",
["Roshani"] = "sgh-ros",
["Roshani-Khufi"] = "sgh-rsx",
["Russian Church Slavonic"] = "zls-chs-ru",
["Sabari"] = "pra-sab",
["Sagzabadi"] = "tks-sag",
["Sahidic Coptic"] = "cop-sah",
["Saint Dominican Creole French"] = "ht-sdm",
["Sakari"] = "pra-sak",
["Sakhalin Ainu"] = "ain-sak",
["Sallands"] = "sdz",
["Samghani"] = "fay-sam",
["Samnite"] = "osc-sam",
["Sauraseni Apabhramsa"] = "inc-asa",
["Sauraseni Prakrit"] = "pra-sau",
["Scottish English"] = "en-GB-SCT",
["Sedehi"] = "xme-sed",
["Shadi Wu"] = "wuu-chm",
["Shandarmani"] = "tly-san",
["Shanghainese"] = "wuu-sha",
["Shangsi Zhuang"] = "tai-shz",
["Sher"] = "ps-ser",
["Shirazi"] = "fay-shr",
["Shuadit"] = "oc-jud",
["Silesian East Central German"] = "sli",
["Singapore Hokkien"] = "nan-hbl-SG",
["Singapore Mandarin"] = "cmn-SG",
["Sixian Hakka"] = "hak-six",
["Soi"] = "soj",
["Sorkhi"] = "fay-sor",
["South African English"] = "en-ZA",
["South Karelian"] = "krl-sou",
["Southeastern Pashto"] = "ps-sea",
["Southern Balochi"] = "bcc",
["Southern Malaysian Hokkien"] = "nan-spm",
["Southern Middle English"] = "enm-sou",
["Southern Scots"] = "sco-sou",
["Southern Talysh"] = "tly-sou",
["Southern Tati"] = "xme-ttc-sou",
["Southwestern Mandarin"] = "cmn-sow",
["Southwestern Pashto"] = "ps-swe",
["Standard Babylonian"] = "akk-stb",
["Stellingwerfs"] = "stl",
["Suevic"] = "gem-sue",
["Sukhothai Old Thai"] = "th-suk",
["Suzhounese"] = "wuu-suz",
["Swiss French"] = "fr-CH",
["Switzerland German"] = "de-CH",
["Switzerland Italian"] = "it-CH",
["Taiwanese Hakka"] = "hak-TW",
["Taiwanese Hokkien"] = "nan-hbl-TW",
["Taiwanese Mandarin"] = "cmn-TW",
["Takestani"] = "tks-tak",
["Takka Apabhramsa"] = "inc-ata",
["Taleshdulabi"] = "tly-tal",
["Tamahaq"] = "thv",
["Tamasheq"] = "taq",
["Tarehi"] = "xme-trh",
["Tari"] = "xme-tar",
["Tawellemmet"] = "ttq",
["Tayert"] = "thz",
["Thessalian Greek"] = "grc-ths",
["Tianjin Mandarin"] = "cmn-tia",
["Tong'an Hokkien"] = "nan-ton",
["Tongyong Pinyin"] = "cmn-tongyong",
["Torlakian Serbo-Croatian"] = "sh-tor",
["Tosk Albanian"] = "als",
["Traditional Chinese poetry"] = "lzh-shi",
["Transalpine Gaulish"] = "xtg",
["Tseku"] = "tsk",
["Tularudi"] = "tly-tul",
["Twents"] = "twd",
["Twi Akan"] = "tw",
["Ukrainian Church Slavonic"] = "zls-chs-uk",
["Ulster English"] = "en-uls",
["Ulster Scots"] = "sco-uls",
["United States Spanish"] = "es-US",
["Upper Saxon German"] = "sxu",
["Vafsi"] = "vaf",
["Valencian"] = "ca-val",
["Valujerdi"] = "xme-val",
["Varani"] = "xme-var",
["Varzenehi"] = "xme-vrz",
["Vedic Sanskrit"] = "vsn",
["Veluws"] = "vel",
["Venezuelan Spanish"] = "es-VE",
["Viennese German"] = "de-AT-vie",
["Vietnamese Classical Chinese"] = "lzh-VI",
["Viryal Chuvash"] = "cv-vir",
["Vivaro-Alpine"] = "oc-viv",
["Volga Bulgar"] = "xbo-vol",
["Vonishuni"] = "xme-von",
["Vracada Apabhramsa"] = "inc-avr",
["Vulgar Latin"] = "la-vul",
["Waata"] = "ssn",
["Wade–Giles"] = "cmn-wadegiles",
["Walser German"] = "wae",
["Waziri"] = "ps-waz",
["Welsh English"] = "en-GB-WLS",
["Wenzhounese"] = "wuu-wen",
["West Midland Middle English"] = "enm-wmi",
["West Saxon Old English"] = "ang-wsx",
["Western Balochi"] = "bgn",
["Western Mansi"] = "mns-wes",
["Western Niger Fulfulde"] = "fuh",
["Western Panjabi"] = "pnb",
["Western Tati"] = "xme-ttc-wes",
["Westphalian"] = "wep",
["Written vernacular Cantonese"] = "yue-wvc",
["Written vernacular Mandarin"] = "cmn-wvc",
["Written vernacular Taishanese"] = "zhx-tai-wvc",
["Wuhan Mandarin"] = "cmn-wuh",
["Xiamen Hokkien"] = "nan-xia",
["Xining Mandarin"] = "cmn-xin",
["Yangzhou Mandarin"] = "cmn-yan",
["Yarandi"] = "xme-yar",
["Yazdi"] = "xme-yaz",
["Yongchun Hokkien"] = "nan-yon",
["Younger Avestan"] = "ae-yng",
["Yukjin Korean"] = "ko-yuk",
["Zarphatic"] = "zrp",
["Zefrehi"] = "xme-zef",
["Zhangping Hokkien"] = "nan-zhp",
["Zhangzhou Hokkien"] = "nan-zha",
["Zhao'an Hakka"] = "hak-zha",
["Zhao'an Hokkien"] = "nan-zho",
["Zhongshan Min"] = "zhx-zho",
["Zori"] = "xme-zor",
["Zoroastrian Dari"] = "gbz",
["taxonomic name"] = "mul-tax",
["the BMAC substrate"] = "qsb-bma",
}
n41waz3bn7swfhsijb8af1ljznbn66w
399024
399021
2026-07-17T13:16:12Z
Intobesa.bot
1035
Bot: ပွမကၠာဲစုတ်ယၟုနူဘာသာအၚ်္ဂလိက်
399024
Scribunto
text/plain
return {
["Abhiri"] = "pra-abh",
["Abuzeydabadi"] = "xme-abz",
["Abyanehi"] = "xme-aby",
["Acadian French"] = "fr-aca",
["Achaemenid Elamite"] = "elx-ach",
["Achterhoeks"] = "act",
["Adamawa Fulfulde"] = "fub",
["Addu Dhivehi"] = "dv-add",
["Aeolic Greek"] = "grc-aeo",
["Afghan Uzbek"] = "uz-afg",
["African Romance"] = "la-afr",
["Afridi"] = "ps-afr",
["Akhmimic Coptic"] = "cop-akh",
["Akuapem Twi"] = "tw-aku",
["Alsatian Alemannic German"] = "gsw-FR-als",
["Amdo Tibetan"] = "adx",
["American English"] = "en-US",
["Amorehi"] = "xme-amo",
["Anaraki"] = "xme-ana",
["Anatri Chuvash"] = "cv-ana",
["Anbarani"] = "tly-anb",
["Angkorian Old Khmer"] = "okz-ang",
["Anglian Old English"] = "ang-ang",
["Anglo-Norman"] = "xno",
["Anxi Hokkien"] = "nan-anx",
["Aranese"] = "oc-ara",
["Arbëresh Albanian"] = "aae",
["Arcadian Greek"] = "grc-arc",
["Arcadocypriot Greek"] = "grc-arp",
["Ardestani"] = "xme-ard",
["Ardhamagadhi Prakrit"] = "pra-ard",
["Arghu"] = "klj-arg",
["Armeno-Kipchak"] = "qwm-arm",
["Arvanitika Albanian"] = "aat",
["Asalemi"] = "tly-asa",
["Asante Twi"] = "tw-asa",
["Ashtiani"] = "atn",
["Attic Greek"] = "grc-att",
["Australian Aboriginal English"] = "en-aae",
["Australian English"] = "en-AU",
["Austrian German"] = "de-AT",
["Auvergnat"] = "oc-auv",
["Avahattha"] = "inc-aav",
["Avanti"] = "pra-ava",
["Ayutthaya Old Thai"] = "th-ayu",
["Azerbaijani Talysh"] = "tly-aze",
["Badrudi"] = "xme-bdr",
["Bagirmi Fulfulde"] = "fui",
["Bahliki"] = "pra-bah",
["Bajui"] = "sgh-baj",
["Baltic German"] = "de-bal",
["Bandari"] = "bsg-ban",
["Bangash"] = "ps-bng",
["Bannu"] = "ps-ban",
["Barpetia Kamrupi Assamese"] = "as-bkm",
["Bartangi"] = "sgh-bar",
["Bartangi-Oroshori"] = "sgh-bro",
["Beijing Mandarin"] = "cmn-bei",
["Beijingic Mandarin"] = "cmn-bec",
["Belgian Dutch"] = "nl-BE",
["Besemah"] = "pse-bsm",
["Betawi Kota"] = "bew-kot",
["Biblical Aramaic"] = "arc-bib",
["Biblical Hebrew"] = "hbo",
["Bidhandi"] = "xme-bid",
["Bijagani"] = "xme-bij",
["Boeotian Greek"] = "grc-boi",
["Bohairic Coptic"] = "cop-boh",
["Bolivian Spanish"] = "es-BO",
["Bombay Hindi"] = "hi-mum",
["Bono Twi"] = "tw-abr",
["Borana"] = "gax",
["Borgu Fulfulde"] = "fue",
["Borujerdi"] = "xme-bor",
["Brahmanic Sanskrit"] = "sa-bra",
["Brazilian Portuguese"] = "pt-BR",
["British English"] = "en-GB",
["Buddhist Hybrid Sanskrit"] = "sa-bhs",
["Burenjani"] = "fay-bur",
["Bushehri"] = "fay-bsh",
["ဂရေတ် ဗေတ်သေန်ထေၚ်"] = "gkm",
["Cajun French"] = "frc",
["California English"] = "en-US-CA",
["Camorta"] = "ncb-cam",
["Campidanese"] = "sc-sro",
["Canadian English"] = "en-CA",
["Canadian French"] = "fr-CA",
["Canadian Ukrainian"] = "uk-CA",
["Candali"] = "pra-can",
["Capenate"] = "xfa-cap",
["Central Ghilzay"] = "ps-cgi",
["Central Korean"] = "ko-cen",
["Central Plains Mandarin"] = "cmn-cep",
["Central Talysh"] = "tly-cen",
["Central Tati"] = "xme-ttc-cen",
["Central-Eastern Niger Fulfulde"] = "fuq",
["Chakavian Serbo-Croatian"] = "ckm",
["Chakhar Mongolian"] = "mn-cha",
["Chali Tati"] = "tks-cal",
["Changtai Hokkien"] = "nan-cha",
["Chilean Spanish"] = "es-CL",
["Chimehi"] = "xme-cim",
["Christian Palestinian Aramaic"] = "arc-cpa",
["Chungcheong Korean"] = "ko-chu",
["Ci"] = "lzh-cii",
["Cisalpine Gaulish"] = "xcg",
["Classical Azerbaijani"] = "az-cls",
["Classical Cantonese"] = "lzh-yue",
["Classical Japanese"] = "ja-cla",
["Classical Latin"] = "la-cla",
["Classical Malay"] = "ms-cla",
["Classical Mandarin"] = "lzh-cmn",
["Classical Persian"] = "fa-cls",
["Classical Sanskrit"] = "cls",
["Classical Tagalog"] = "tl-cls",
["Classical Taishanese"] = "lzh-tai",
["Classical Taiwanese Mandarin"] = "lzh-cmn-TW",
["Colombian Spanish"] = "es-CO",
["Common Bantu"] = "bnt-cmn",
["Contemporary Latin"] = "la-con",
["Coptic Dialect G"] = "cop-ggg",
["Coptic Dialect J"] = "cop-jjj",
["Coptic Dialect K"] = "cop-kkk",
["Coptic Dialect P"] = "cop-ppp",
["Cretan Ancient Greek"] = "grc-kre",
["Cretan Greek"] = "el-crt",
["Cuban Spanish"] = "es-CU",
["Cuman"] = "qwm-cum",
["Cypriot Greek"] = "el-cyp",
["Cypriot Turkish"] = "tr-CY",
["Dabu Hakka"] = "hak-dab",
["Daksinatya"] = "pra-dak",
["Danesfani"] = "tks-dan",
["Danube Bulgar"] = "xbo-dan",
["Danzhou Chinese"] = "zhx-dan",
["Dari"] = "prs",
["Dashtaki"] = "fay-dsh",
["Davani"] = "fay-dav",
["Delijani"] = "xme-del",
["Dhakaiya Vaṅga Bengali"] = "bn-dvn",
["Digor Ossetian"] = "os-dig",
["Dnieper Baltic"] = "bat-dni",
["Dobrujan Tatar"] = "crh-dbj",
["Doric Greek"] = "grc-dor",
["Dramili"] = "pra-dra",
["Drents"] = "drt",
["Early Brythonic"] = "bry-ear",
["Early Mandarin"] = "cmn-ear",
["Early Medieval Latin"] = "la-eme",
["Early Middle Chinese"] = "ltc-ear",
["Early Middle Japanese"] = "ja-mid-ear",
["Early Middle Korean"] = "okm-ear",
["Early Middle Mongol"] = "xng-ear",
["Early Middle Persian"] = "pal-ear",
["Early Modern Czech"] = "cs-ear",
["Early Modern English"] = "en-ear",
["Early Modern Hakka"] = "hak-eam",
["Early Modern Japanese"] = "ja-ear",
["Early Modern Spanish"] = "es-ear",
["Early New High German"] = "de-ear",
["Early New Persian"] = "fa-ear",
["Early Old Chinese"] = "och-ear",
["Early Old Ossetic"] = "oos-ear",
["Early Old Persian"] = "peo-ear",
["Early Scots"] = "enm-esc",
["Early Sogdian"] = "sog-ear",
["East Frisian Low German"] = "frs",
["East Midland Middle English"] = "enm-emi",
["Eastern Balochi"] = "bgp",
["Eastern Mansi"] = "mns-eas",
["Eastern Old Japanese"] = "ojp-eas",
["Eastern Tati"] = "xme-ttc-eas",
["Ebrahimabadi"] = "tks-ebr",
["Ecclesiastical Latin"] = "la-ecc",
["Elean Greek"] = "grc-ela",
["Emamzada Esmaili"] = "fay-eze",
["Epic Greek"] = "grc-epc",
["Esfarvarini"] = "tks-esf",
["European Portuguese"] = "pt-PT",
["Fante Akan"] = "fat",
["Farizandi"] = "xme-far",
["Fayyumic Coptic"] = "cop-fay",
["Frankish"] = "frk",
["Fumani"] = "tly-fum",
["Fuyu Kyrgyz"] = "kjh-fyu",
["Gangwon Korean"] = "ko-gan",
["Gascon"] = "oc-gas",
["Gavkoshaki"] = "fay-gav",
["Gazi"] = "gzi",
["Geordie"] = "en-geo",
["Ghat"] = "thv-ght",
["Gheg Albanian"] = "aln",
["Golyad"] = "bat-gol",
["Goral"] = "pl-gor",
["Greater Polish"] = "pl-gre",
["Greenlandic Norse"] = "non-grn",
["Gronings"] = "gos",
["Guangzhou Cantonese"] = "yue-gua",
["Guanzhong Mandarin"] = "cmn-gua",
["Guernsey Norman"] = "nrf-grn",
["Guilin Mandarin"] = "cmn-gui",
["Gurjara Apabhramsa"] = "inc-agu",
["Gyeonggi Korean"] = "ko-gyg",
["Gyeongsang Korean"] = "ko-gys",
["Hailu Hakka"] = "hak-hai",
["Hamadani"] = "xme-ham",
["Hamgyong Korean"] = "ko-ham",
["Hangzhounese"] = "wuu-han",
["Hanjani"] = "xme-han",
["Hanyu Pinyin"] = "cmn-pinyin",
["Harar Oromo"] = "hae",
["Hatran Aramaic"] = "arc-hat",
["Havigannada"] = "kn-hav",
["Hazaragi"] = "haz",
["Helu Prakrit"] = "pra-hel",
["Hengyang Xiang"] = "hsn-hya",
["Hengzhou Xiang"] = "hsn-hzh",
["Hermopolitan Coptic"] = "cop-her",
["High Alemannic German"] = "gsw-hig",
["Highest Alemannic German"] = "gsw-hst",
["Hokkaido Ainu"] = "ain-hok",
["Hong Kong Cantonese"] = "yue-HK",
["Hong Kong English"] = "en-HK",
["Hong Kong Hakka"] = "hak-HK",
["Hormozi"] = "bsg-hor",
["Houlu Min"] = "nan-hou",
["Hui'an Hokkien"] = "nan-hui",
["Huiyang Hakka"] = "hak-hui",
["Huvadhu Dhivehi"] = "dv-huv",
["Hwanghae Korean"] = "ko-hwa",
["Imperial Aramaic"] = "arc-imp",
["Indian English"] = "en-IN",
["Insular Scots"] = "sco-ins",
["Ionic Greek"] = "grc-ion",
["Iranian Persian"] = "fa-ira",
["Irish English"] = "en-IE",
["Iron Ossetian"] = "os-iro",
["Isfahani"] = "xme-isf",
["Israeli Hebrew"] = "he-IL",
["Jadrani"] = "ps-jad",
["Jeolla Korean"] = "ko-jeo",
["Jersey Norman"] = "nrf-jer",
["Jewish Babylonian Aramaic"] = "tmr",
["Jewish Literary Aramaic"] = "arc-jla",
["Jewish Palestinian Aramaic"] = "jpa",
["Jianghuai Mandarin"] = "cmn-jhu",
["Jinjiang Hokkien"] = "nan-jin",
["Jirofti"] = "rdb-jir",
["Jowshaqani"] = "xme-jow",
["Judeo-Arabic"] = "jrb",
["Kafroni"] = "xme-kaf",
["Kahaki"] = "xme-kah",
["Kahnuji"] = "rdb-kah",
["Kajkavian Serbo-Croatian"] = "kjv",
["Kakari"] = "ps-kak",
["Kaliarda"] = "el-kal",
["Kamviri"] = "xvi",
["Kandahari"] = "ps-kan",
["Kaniguram"] = "oru-kan",
["Karganrudi"] = "tly-kar",
["Kashani"] = "xme-kas",
["Kasmiri Apabhramsa"] = "inc-aka",
["Katchal"] = "ncb-kat",
["Katharevousa"] = "el-kth",
["Kathiyawadi"] = "gu-kat",
["Kativiri"] = "bsh-kat",
["Kentish Middle English"] = "enm-ken",
["Kentish Old English"] = "ang-ken",
["Kermani"] = "xme-krm",
["Kesehi"] = "xme-kes",
["Khalkha Mongolian"] = "mn-kha",
["Khamba"] = "kbg",
["Khams Tibetan"] = "khg",
["Khargi"] = "fay-kar",
["Khasa Prakrit"] = "pra-kha",
["Khatak"] = "ps-xat",
["Khiaraji"] = "tks-xia",
["Khollari"] = "fay-kho",
["Khorchin Mongolian"] = "mn-khr",
["Khoznini"] = "tks-xoz",
["Khufi"] = "sgh-xuf",
["Khughni"] = "sgh-xug",
["Khughni-Bajui"] = "sgh-xgb",
["Khunsari"] = "kfm",
["Khuri"] = "xme-xur",
["Kinmenese Hokkien"] = "nan-kin",
["Kinyarwanda"] = "rw-kin",
["Kirundi"] = "rw-run",
["ဂရေတ် ခါဝ်အိန်"] = "grc-koi",
["Komjani"] = "xme-kom",
["Kondazi"] = "fay-kon",
["Korean Classical Chinese"] = "lzh-KO",
["Kromanti"] = "alv-kro",
["Kundagannada"] = "kn-kun",
["Kuril Ainu"] = "ain-kur",
["Kölsch"] = "ksh",
["Languedocien"] = "oc-lan",
["Lanuvian"] = "itc-lan",
["Lanyin Mandarin"] = "cmn-lan",
["Late Babylonian"] = "akk-lbb",
["Late Brythonic"] = "bry-lat",
["Late Egyptian"] = "egy-lat",
["Late Khotanese"] = "kho-lat",
["Late Latin"] = "la-lat",
["Late Middle Chinese"] = "ltc-lat",
["Late Middle Japanese"] = "ja-mid-lat",
["Late Middle Mongol"] = "xng-lat",
["Late Middle Persian"] = "pal-lat",
["Late Old Chinese"] = "och-lat",
["Late Old Korean"] = "oko-lat",
["Late Old Ossetic"] = "oos-lat",
["Late Old Persian"] = "peo-lat",
["Late Old Swedish"] = "gmq-osw-lat",
["Late Sogdian"] = "sog-lat",
["Law French"] = "xno-law",
["Lesser Polish"] = "pl-les",
["Limousin"] = "oc-lim",
["Lisan ud-Dawat Gujarati"] = "gu-lda",
["Literary Cantonese"] = "yue-lit",
["Literary Chinese"] = "lzh-lit",
["Logar"] = "oru-log",
["Logudorese"] = "sc-src",
["Lombardic"] = "lng",
["Loudi Xiang"] = "hsn-lou",
["Louisiana French"] = "fr-lou",
["Low Alemannic German"] = "gsw-low",
["Low Prussian"] = "nds-lpr",
["Lucanian"] = "osc-luc",
["Lunfardo"] = "es-lun",
["Lycopolitan Coptic"] = "cop-lyc",
["Língua Geral Amazônica"] = "tpw-lga",
["Maasina Fulfulde"] = "ffm",
["Magadhi Prakrit"] = "pra-mag",
["Mahallati"] = "xme-mah",
["Maharastri Apabhramsa"] = "inc-ama",
["Maharastri Prakrit"] = "pra-mah",
["Mahsudi"] = "ps-mah",
["Malaysian Huiyang Hakka"] = "hak-hui-MY",
["Malaysian Mandarin"] = "cmn-MY",
["Mamluk-Kipchak"] = "qwm-mam",
["Manichaean Middle Persian"] = "xmn",
["Manx English"] = "en-IM",
["Masali"] = "tly-msa",
["Masarami"] = "fay-mas",
["Masovian Polish"] = "pl-mas",
["Masulei"] = "tly-msu",
["Medan Hokkien"] = "nan-med",
["Medieval Hebrew"] = "he-med",
["Medieval Latin"] = "la-med",
["Medieval Sinhalese"] = "si-med",
["Medieval Tashelhit"] = "shi-med",
["Meixian Hakka"] = "hak-mei",
["Mercian Old English"] = "ang-mer",
["Mexican Spanish"] = "es-MX",
["Meymehi"] = "xme-mey",
["Middle Assyrian"] = "akk-mas",
["Middle Babylonian"] = "akk-mbb",
["Middle Belarusian"] = "zle-mbe",
["Middle Bulgarian"] = "cu-bgm",
["Middle Chuvash"] = "cv-mid",
["Middle Egyptian"] = "egy-mid",
["Middle Elamite"] = "elx-mid",
["Middle Georgian"] = "ka-mid",
["Middle Hindi"] = "hi-mid",
["Middle Japanese"] = "ja-mid",
["Middle Konkani"] = "kok-mid",
["Middle Polish"] = "zlw-mpl",
["Middle Russian"] = "zle-mru",
["Middle Tamil"] = "ta-mid",
["Middle Ukrainian"] = "zle-muk",
["Minabi"] = "bsg-min",
["Mishnaic Hebrew"] = "he-mis",
["Missouri French"] = "fr-mis",
["Mitanni"] = "inc-mit",
["Moldovan"] = "ro-MD",
["Mulaku Dhivehi"] = "dv-mul",
["Mumviri"] = "bsh-mum",
["Nabataean Aramaic"] = "arc-nab",
["Nalbaria Kamrupi Assamese"] = "as-nkm",
["Nancowry"] = "ncb-nan",
["Nanjing Mandarin"] = "cmn-nan",
["Naraqi"] = "xme-nar",
["Nashalji"] = "xme-nas",
["Natanzi"] = "ntz",
["Nayini"] = "nyq",
["Neo-Assyrian"] = "akk-nas",
["Neo-Babylonian"] = "akk-nbb",
["Neo-Elamite"] = "elx-neo",
["Neo-Middle Egyptian"] = "egy-nmi",
["New Latin"] = "la-new",
["New Sanskrit"] = "sa-neo",
["New Xiang"] = "hsn-new",
["New Zealand English"] = "en-NZ",
["Nigerian Fulfulde"] = "fuv",
["Ningbonese"] = "wuu-nin",
["Noakhailla Vaṅga Bengali"] = "bn-nvn",
["North Alaskan Inupiatun"] = "esi",
["North American English"] = "en-NNN",
["North Karelian"] = "krl-nor",
["Northeastern Mandarin"] = "cmn-noe",
["Northeastern Pashto"] = "ps-nea",
["Northern Irish English"] = "en-GB-NIR",
["Northern Middle English"] = "enm-nor",
["Northern Scots"] = "sco-nor",
["Northern Talysh"] = "tly-nor",
["Northern Tati"] = "xme-ttc-nor",
["Northern Wu"] = "wuu-nor",
["Northumbrian Old English"] = "ang-nor",
["Northwest Alaskan Inupiatun"] = "esk",
["Northwestern Pashto"] = "ps-nwe",
["Nuorese"] = "sc-nuo",
["Nushabadi"] = "xme-nus",
["Odri"] = "pra-odr",
["Old Akkadian"] = "akk-old",
["Old Aramaic"] = "arc-old",
["Old Assyrian"] = "akk-oas",
["Old Avestan"] = "ae-old",
["Old Azari"] = "xme-azr",
["Old Babylonian"] = "akk-obb",
["Old Braj"] = "bra-old",
["Old Chuvash"] = "cv-old",
["Old Coptic"] = "cop-old",
["Old East Norse"] = "non-oen",
["Old Egyptian"] = "egy-old",
["Old Elamite"] = "elx-old",
["Old Italian"] = "roa-oit",
["Old Kazeruni"] = "fay-kzo",
["Old Khotanese"] = "kho-old",
["Old Kirghiz"] = "otk-kir",
["Old Konkani"] = "kok-old",
["Old Latin"] = "itc-ola",
["Old Malay"] = "ms-old",
["Old Mohawk"] = "iro-omo",
["Old Northern French"] = "fro-nor",
["Old Onondaga"] = "iro-oon",
["Old Ossetic"] = "oos",
["Old Provençal"] = "oc-pro-old",
["Old Pskovian"] = "zle-ops",
["Old Shirazi"] = "fay-sho",
["Old Tagalog"] = "tl-old",
["Old Thai"] = "th-old",
["Old Wendat"] = "iro-ohu",
["Old West Norse"] = "non-own",
["Old Xiang"] = "hsn-old",
["Opuntian Locrian"] = "grc-opl",
["Ordos Mongolian"] = "mn-ord",
["Orkhon Turkic"] = "otk-ork",
["Orma"] = "orc",
["Oroshori"] = "sgh-oro",
["Oxyrhynchite Coptic"] = "cop-oxy",
["Ozolian Locrian"] = "grc-ozl",
["Paisaci Prakrit"] = "pra-pai",
["Palasbaria Kamrupi Assamese"] = "as-pkm",
["Palatine German"] = "pfl",
["Paleo-Balkan"] = "qsb-bal",
["Paleo-Hispanic"] = "qsb-ibe",
["Palladius"] = "cmn-palladius",
["Palmyrene Aramaic"] = "arc-pal",
["Pamphylian Greek"] = "grc-pam",
["Paphian Greek"] = "el-pap",
["Papuni"] = "fay-pap",
["Penang Hokkien"] = "nan-pen",
["Peruvian Spanish"] = "es-PE",
["Peshawari"] = "ps-pes",
["Philippine Hokkien"] = "nan-hbl-PH",
["Philippine Mandarin"] = "cmn-PH",
["Philippine Spanish"] = "es-PH",
["Picard Old French"] = "fro-pic",
["Polari"] = "pld",
["Postal Romanization"] = "zh-postal",
["Pracya"] = "pra-pra",
["Praenestine"] = "itc-pra",
["Pre-Angkorian Old Khmer"] = "okz-pre",
["Pre-Classical Chinese"] = "lzh-pre",
["Pre-Greek"] = "qsb-grc",
["Proto-Anglo-Frisian"] = "gmw-afr-pro",
["Proto-Arinic"] = "qfa-yrn-pro",
["Proto-Baltic"] = "bat-pro",
["Proto-Bulgar"] = "trk-bul-pro",
["Proto-Common Turkic"] = "trk-cmn-pro",
["Proto-Finno-Permic"] = "urj-fpr-pro",
["Proto-Finno-Ugric"] = "fiu-pro",
["Proto-Ketic"] = "qfa-yke-pro",
["Proto-Kottic"] = "qfa-yko-pro",
["Proto-Lycopolitan Coptic"] = "cop-ply",
["Proto-North Sea Germanic"] = "gmw-nsg-pro",
["Proto-Oghur"] = "trk-ogr-pro",
["Proto-Oghuz"] = "trk-ogz-pro",
["Proto-Pumpokolic"] = "qfa-ypm-pro",
["Proto-Romance"] = "roa-pro",
["Proto-Tibeto-Burman"] = "tbq-pro",
["Provençal"] = "oc-pro",
["Puerto Rican Spanish"] = "es-PR",
["Pulaar"] = "fuc",
["Pular"] = "fuf",
["Pyongan Korean"] = "ko-pyo",
["Qalhari"] = "xme-qal",
["Qashqai"] = "qxq",
["Qianlu Min"] = "nan-qia",
["Qohrudi"] = "xme-qoh",
["Quanzhou Hokkien"] = "nan-qua",
["Renaissance Latin"] = "la-ren",
["Rioplatense Spanish"] = "es-AR",
["Roshani"] = "sgh-ros",
["Roshani-Khufi"] = "sgh-rsx",
["Russian Church Slavonic"] = "zls-chs-ru",
["Sabari"] = "pra-sab",
["Sagzabadi"] = "tks-sag",
["Sahidic Coptic"] = "cop-sah",
["Saint Dominican Creole French"] = "ht-sdm",
["Sakari"] = "pra-sak",
["Sakhalin Ainu"] = "ain-sak",
["Sallands"] = "sdz",
["Samghani"] = "fay-sam",
["Samnite"] = "osc-sam",
["Sauraseni Apabhramsa"] = "inc-asa",
["Sauraseni Prakrit"] = "pra-sau",
["Scottish English"] = "en-GB-SCT",
["Sedehi"] = "xme-sed",
["Shadi Wu"] = "wuu-chm",
["Shandarmani"] = "tly-san",
["Shanghainese"] = "wuu-sha",
["Shangsi Zhuang"] = "tai-shz",
["Sher"] = "ps-ser",
["Shirazi"] = "fay-shr",
["Shuadit"] = "oc-jud",
["Silesian East Central German"] = "sli",
["Singapore Hokkien"] = "nan-hbl-SG",
["Singapore Mandarin"] = "cmn-SG",
["Sixian Hakka"] = "hak-six",
["Soi"] = "soj",
["Sorkhi"] = "fay-sor",
["South African English"] = "en-ZA",
["South Karelian"] = "krl-sou",
["Southeastern Pashto"] = "ps-sea",
["Southern Balochi"] = "bcc",
["Southern Malaysian Hokkien"] = "nan-spm",
["Southern Middle English"] = "enm-sou",
["Southern Scots"] = "sco-sou",
["Southern Talysh"] = "tly-sou",
["Southern Tati"] = "xme-ttc-sou",
["Southwestern Mandarin"] = "cmn-sow",
["Southwestern Pashto"] = "ps-swe",
["Standard Babylonian"] = "akk-stb",
["Stellingwerfs"] = "stl",
["Suevic"] = "gem-sue",
["Sukhothai Old Thai"] = "th-suk",
["Suzhounese"] = "wuu-suz",
["Swiss French"] = "fr-CH",
["Switzerland German"] = "de-CH",
["Switzerland Italian"] = "it-CH",
["Taiwanese Hakka"] = "hak-TW",
["Taiwanese Hokkien"] = "nan-hbl-TW",
["Taiwanese Mandarin"] = "cmn-TW",
["Takestani"] = "tks-tak",
["Takka Apabhramsa"] = "inc-ata",
["Taleshdulabi"] = "tly-tal",
["Tamahaq"] = "thv",
["Tamasheq"] = "taq",
["Tarehi"] = "xme-trh",
["Tari"] = "xme-tar",
["Tawellemmet"] = "ttq",
["Tayert"] = "thz",
["Thessalian Greek"] = "grc-ths",
["Tianjin Mandarin"] = "cmn-tia",
["Tong'an Hokkien"] = "nan-ton",
["Tongyong Pinyin"] = "cmn-tongyong",
["Torlakian Serbo-Croatian"] = "sh-tor",
["Tosk Albanian"] = "als",
["Traditional Chinese poetry"] = "lzh-shi",
["Transalpine Gaulish"] = "xtg",
["Tseku"] = "tsk",
["Tularudi"] = "tly-tul",
["Twents"] = "twd",
["Twi Akan"] = "tw",
["Ukrainian Church Slavonic"] = "zls-chs-uk",
["Ulster English"] = "en-uls",
["Ulster Scots"] = "sco-uls",
["United States Spanish"] = "es-US",
["Upper Saxon German"] = "sxu",
["Vafsi"] = "vaf",
["Valencian"] = "ca-val",
["Valujerdi"] = "xme-val",
["Varani"] = "xme-var",
["Varzenehi"] = "xme-vrz",
["Vedic Sanskrit"] = "vsn",
["Veluws"] = "vel",
["Venezuelan Spanish"] = "es-VE",
["Viennese German"] = "de-AT-vie",
["Vietnamese Classical Chinese"] = "lzh-VI",
["Viryal Chuvash"] = "cv-vir",
["Vivaro-Alpine"] = "oc-viv",
["Volga Bulgar"] = "xbo-vol",
["Vonishuni"] = "xme-von",
["Vracada Apabhramsa"] = "inc-avr",
["Vulgar Latin"] = "la-vul",
["Waata"] = "ssn",
["Wade–Giles"] = "cmn-wadegiles",
["Walser German"] = "wae",
["Waziri"] = "ps-waz",
["Welsh English"] = "en-GB-WLS",
["Wenzhounese"] = "wuu-wen",
["West Midland Middle English"] = "enm-wmi",
["West Saxon Old English"] = "ang-wsx",
["Western Balochi"] = "bgn",
["Western Mansi"] = "mns-wes",
["Western Niger Fulfulde"] = "fuh",
["Western Panjabi"] = "pnb",
["Western Tati"] = "xme-ttc-wes",
["Westphalian"] = "wep",
["Written vernacular Cantonese"] = "yue-wvc",
["Written vernacular Mandarin"] = "cmn-wvc",
["Written vernacular Taishanese"] = "zhx-tai-wvc",
["Wuhan Mandarin"] = "cmn-wuh",
["Xiamen Hokkien"] = "nan-xia",
["Xining Mandarin"] = "cmn-xin",
["Yangzhou Mandarin"] = "cmn-yan",
["Yarandi"] = "xme-yar",
["Yazdi"] = "xme-yaz",
["Yongchun Hokkien"] = "nan-yon",
["Younger Avestan"] = "ae-yng",
["Yukjin Korean"] = "ko-yuk",
["Zarphatic"] = "zrp",
["Zefrehi"] = "xme-zef",
["Zhangping Hokkien"] = "nan-zhp",
["Zhangzhou Hokkien"] = "nan-zha",
["Zhao'an Hakka"] = "hak-zha",
["Zhao'an Hokkien"] = "nan-zho",
["Zhongshan Min"] = "zhx-zho",
["Zori"] = "xme-zor",
["Zoroastrian Dari"] = "gbz",
["taxonomic name"] = "mul-tax",
["the BMAC substrate"] = "qsb-bma",
}
jfyin03kbylbsmsa3wh05yf13nhbmly
မဝ်ဂျူ:data consistency check/documentation
828
56882
399027
398454
2026-07-17T13:28:09Z
咽頭べさ
33
399027
wikitext
text/x-wiki
<includeonly>{{shortcut|WT:DATACHECK|WT:FSCK}}</includeonly>
This module checks the validity and internal consistency of the language, language family, and script data used on Wiktionary: the modules in [[:Category:Language data modules]] as well as [[Module:scripts/data]].
== Output ==
{{#invoke:data consistency check|perform}}
==Checks performed==
For multiple data modules:
* Codes for languages, families and etymology-only languages must be unique and cannot clash with one another.
* Canonical names for languages, families, and etymology-only languages must not be found in the list of other names.
* Each name in the list of other names must appear only once.
* <code>otherNames</code>, if present, must be an array.
* Wikidata item IDs must be a positive integer or a string starting with <code>Q</code> and ending with decimal digits.
The following must be true of the data used by [[Module:languages]]:
* Each code must be defined in the correct submodule according to whether it is two-letter, three-letter or exceptional.
* The canonical name (field <code>1</code>) must be present and must not be the same as the canonical name of another language.
* If field <code>2</code> is not <code>nil</code>, it must a valid Wikidata item ID.
* If field <code>3</code> or <code>family</code> is given and not <code>nil</code>, it must be a valid family code.
* If field <code>4</code> or <code>scripts</code> is given and not <code>nil</code>, it must be an array, and each string in the array must be a valid script code.
* If <code>ancestors</code> is given, it must be an array, and each string in the array must be a valid language or etymology language code.
* If <code>family</code> is given, it must be a valid family code.
* If <code>type</code> is given, it must be one of the recognised values (<code>regular</code>, <code>reconstructed</code>, <code>appendix-constructed</code>).
* If <code>entry_name</code> is given, it must be a table that contains either two arrays (<code>from</code> and <code>to</code>) or a string (<code>remove_diacritics</code>) or both.
* If <code>sort_key</code> is given, it may either be a string, or at table that in turn contains either two arrays (<code>from</code> and <code>to</code>) or a string (<code>remove_diacritics</code>).
* If <code>entry_name</code> or <code>sort_key</code> is given, the <code>from</code> array must be longer or equal in length to the <code>to</code> array.
* If <code>standard_chars</code> is given, it must form a valid Lua string pattern when placed between square brackets with <code>^</code> before it ({{code|lua|"[^...]}}). (It should match all characters regularly used in the language, but that cannot be tested.)
* If <code>override_translit</code> is set, <code>translit</code> must also be set, because there must be a transliteration module that can override manual transliteration.
* If <code>link_tr</code> is present, it must be <code>true</code>.
* Have no data keys besides these: {{code|lua|1, 2, 3, "entry_name", "sort_key", "display", "otherNames", "aliases", "varieties", "type", "scripts", "ancestors", "wikimedia_codes", "wikipedia_article", "standard_chars", "translit", "override_translit", "link_tr"}}.
Checks not performed:
* If <code>translit</code> is present, it should be the name of a module, and this module should contain a <code>tr</code> function that takes a pagename (and optionally a language code and script code) as arguments.
* If <code>sort_key</code> is a string, it should be the name of a module, and this module should contain a <code>makeSortKey</code> function that takes a pagename (and optionally a language code and script code) as arguments.
* If <code>entry_name</code> or <code>sort_key</code> is a table and contains a field <code>remove_diacritics</code>, the value of the field should be a string that forms a valid Lua pattern when it is placed inside negated set notation (<code>[^...]</code>).
These are not checked here, because module errors will quickly crop up in entries if these conditions are not met, assuming that [[Module:utilities]] attempts to generate a sortkey for a category pertaining to the language in question, or {{code|lua|full_link}} attempts to use the transliteration module.
[[Module:languages/code to canonical name]] and [[Module:languages/canonical names]] must contain all the codes and canonical names found in the data submodules of [[Module:languages]], and no more.
The following must be true of the data used by [[Module:etymology languages]]:
* <code>canonicalName</code> must be given.
* <code>parent</code> must be given must be a valid language, family or etymology-only language code.
* If <code>ancestors</code> is given, it must be an array, and each string in the array must be a valid language or etymology language code. The etymology language should also be listed as the ancestor of a regular language.
* Have no data keys besides these: {{code|lua|"canonicalName", "otherNames", "parent", "ancestors", "wikipedia_article", "wikidata_item"}}.
Codes in [[Module:families]] data must:
* Have <code>canonicalName</code>, which must not be the same as the canonical name of another family.
* If <code>family</code> is given, it must be a valid family code.
* Have at least one language or subfamily belonging to it.
* Have no data keys besides these: {{code|lua|"canonicalName", "otherNames", "family", "protoLanguage", "wikidata_item"}}.
Codes in [[Module:scripts]] data must:
* Have <code>canonicalName</code>.
* Have at least one language that lists it as one of its scripts.
* Have a <code>characters</code> pattern for script autodetection, and this must form a valid Lua string pattern when placed between square brackets ({{code|lua|"[...]"}}). (It should match all characters in the script, but that cannot be tested.)
* Have no data keys besides these: {{code|lua|"canonicalName", "otherNames", "parent", "systems", "wikipedia_article", "characters", "direction"}}.
<includeonly>
{{module cat|-|ဒေတာ,မစမ်ၜတ်,အရေဝ်ဘာသာကဵုအက္ခရ်,မထိၚ်ဒက်လဝ်}}
</includeonly>
ru2ixp1os1lva3ce1grxuuy7fvnf6ks
မဝ်ဂျူ:etymology languages/data/documentation
828
64194
399025
398484
2026-07-17T13:19:08Z
咽頭べさ
33
399025
wikitext
text/x-wiki
Contains data for language or language family codes that are used mainly in [[:ကဏ္ဍ:ထာမ်ပလိက်နိရုတ်ဂမၠိုၚ်|etymology templates]] (specifically [[:ကဏ္ဍ:ထာမ်ပလိက်မဆက်ဆေန်စှ်ေကၠုၚ်နူဍုၚ်သအာၚ်ဂမၠိုၚ်|foreign derivation templates]]) such as {{temp|der}} and {{temp|cog}}.
==Errors==
{{if then show|{{#invoke:data consistency check|check_modules_t|languages/data/2|languages/data/2/extra|languages/data/3/a|languages/data/3/a/extra|languages/data/3/b|languages/data/3/b/extra|languages/data/3/c|languages/data/3/c/extra|languages/data/3/d|languages/data/3/d/extra|languages/data/3/e|languages/data/3/e/extra|languages/data/3/f|languages/data/3/f/extra|languages/data/3/g|languages/data/3/g/extra|languages/data/3/h|languages/data/3/h/extra|languages/data/3/i|languages/data/3/i/extra|languages/data/3/j|languages/data/3/j/extra|languages/data/3/k|languages/data/3/k/extra|languages/data/3/l|languages/data/3/l/extra|languages/data/3/m|languages/data/3/m/extra|languages/data/3/n|languages/data/3/n/extra|languages/data/3/o|languages/data/3/o/extra|languages/data/3/p|languages/data/3/p/extra|languages/data/3/q|languages/data/3/q/extra|languages/data/3/r|languages/data/3/r/extra|languages/data/3/s|languages/data/3/s/extra|languages/data/3/t|languages/data/3/t/extra|languages/data/3/u|languages/data/3/u/extra|languages/data/3/v|languages/data/3/v/extra|languages/data/3/w|languages/data/3/w/extra|languages/data/3/x|languages/data/3/x/extra|languages/data/3/y|languages/data/3/y/extra|languages/data/3/z|languages/data/3/z/extra|languages/data/exceptional|languages/data/exceptional/extra|etymology languages/data|families/data|languages/canonical names|languages/code to canonical name|etymology languages/canonical names|etymology languages/code to canonical name|families/canonical names|families/code to canonical name|Template:langname-lite}}|[[Module:data consistency check]] shows no relevant errors.|The following errors were detected by [[Module:data consistency check]]:
<noinclude/>}}
==Values==
; <code class="n">1</code> (required)
: The canonical name.
; <code class="n">2</code> (required)
: The Wikidata item with the Q at the beginning removed as a number. If there is no Wikidata item, enter <code>nil</code>.
; <code class="n">3</code> (required)
: The parent: the full language, etymology-only language, or language family that this etymology-only language is a subvariety of. For instance, <code>"en"</code> (English) is the parent of <code>en-GB</code> (British English), and <code>"gmw"</code> (West Germanic) is the parent of <code>gem-sue</code> (Suevic).
; <code class="n">aliases</code>, <code class="n">varieties</code>, <code class="n">otherNames</code>, <code class="n">wikipedia_article</code>
: These have the same meaning as they do in the data modules for the full languages; see [[Module:languages/data/2]], [[Module:languages/data/2/extra]].
; <code class="n">ancestors</code>
: The ancestor of this etymology-only language. Add this only if the etymology-only language is listed as an ancestor of a full language.
<includeonly>
[[ကဏ္ဍ:မဝ်ဂျူစရၚ်အရေဝ်ဘာသာဂမၠိုၚ်]]
</includeonly>
7dltbeqtnsb9qg5pzzu2bvpbl35v1jp
မဝ်ဂျူ:labels/data/lang/fr
828
108842
399086
395114
2026-07-17T19:37:24Z
咽頭べさ
33
399086
Scribunto
text/plain
local labels = {}
labels["Acadia"] = {
aliases = {"Acadian", "acd"},
Wikipedia = "Acadian French",
regional_categories = "Acadian",
parent = "Canada",
}
labels["Africa"] = {
aliases = {"African"},
Wikipedia = "African French",
regional_categories = "African",
parent = true,
}
labels["Algeria"] = {
aliases = {"Algerian"},
Wikipedia = {"French language in Algeria", "African French#Algerian French"},
regional_categories = "Algerian",
parent = "Africa",
}
labels["Alsace"] = {
Wikipedia = true,
regional_categories = "Alsatian",
parent = "France",
}
labels["Antilles"] = {
aliases = {"West Indies", "win"},
region = "the {{w|French Antilles}}",
Wikipedia = "French West Indies",
regional_categories = true,
parent = "Caribbean",
}
labels["Aosta"] = {
region = "the [[Aosta Valley]] in northwestern [[Italy]]",
aliases = {"Aostan", "aos"},
Wikipedia = "Aostan French",
regional_categories = "Aostan",
parent = "Europe",
}
-- included because we have many audio files from here
labels["Aquitaine"] = {
Wikipedia = {"Meridional French", true},
regional_categories = "Meridional French",
}
labels["Asia"] = {
aliases = {"Asian"},
Wikipedia = true,
regional_categories = "Asian",
parent = true,
}
labels["Atlantic Canada"] = {
aliases = {"Atlantic Canadian"},
Wikipedia = "French language in Canada#The Maritimes",
regional_categories = "Atlantic Canadian",
parent = "Canada",
}
labels["Belgium"] = {
aliases = {"Belgian", "bel"},
Wikipedia = "Belgian French",
regional_categories = "Belgian",
parent = "Europe",
}
labels["Benin"] = {
Wikipedia = true,
regional_categories = "Beninese",
parent = "West Africa",
}
labels["Brétigny-sur-Orge"] = {
Wikidata = "Q837748",
display = "ဗရဳတဳနဳ-သူရ်-အတ်ဂျဳ",
}
labels["Cajun"] = {
prep = "by",
region = "[[Cajun]]s in [[Louisiana]]",
aliases = {"Cajun French", "caj"},
Wikipedia = "Cajun French",
regional_categories = true,
parent = "Louisiana",
}
labels["Cambodia"] = {
aliases = {"Cambodian French", "Cambodian", "cam"},
Wikipedia = "French language in Cambodia",
display = "ခေန်ဗဝ်ဒဳယျာ",
regional_categories = "ခေန်ဗဝ်ဒဳယျာ",
parent = "Asia",
}
labels["Canada"] = {
aliases = {"Canadian"},
Wikipedia = "en:Canadian French",
display = "ခမ်နာဒါ",
regional_categories = "ခမ်နာဒါ",
parent = "North America",
}
labels["Caribbean"] = {
the = true,
Wikipedia = true,
regional_categories = true,
parent = "North America",
}
labels["Congo"] = {
region = "<country>",
aliases = {"Congolese"},
Wikipedia = {"African French#Kinshasa French", "Languages of the Democratic Republic of the Congo#French"},
regional_categories = "Congolese",
country = "the [[Democratic Republic of the Congo]],the [[Republic of the Congo]]",
parent = "Africa",
}
labels["Corsica"] = {
parent = "France",
display = "[[Corsica]]"
}
-- Currently categorizes the same as "Congo" and "Republic of the Congo".
labels["Democratic Republic of the Congo"] = {
aliases = {"Democratic Republic of Congo", "DR Congo", "Congo-Kinshasa"},
Wikipedia = {"African French#Kinshasa French", "Languages of the Democratic Republic of the Congo#French"},
regional_categories = "Congolese",
}
labels["double verlan"] = {
def = "a double application of verlan, a kind of backslang reordering syllables in a word",
noreg = true,
alises = {"double Verlan", "veul"},
Wikipedia = "Verlan#Double verlan",
plain_categories = true,
parent = "Verlan",
}
labels["Europe"] = {
aliases = {"European", "European French"},
Wikipedia = "European French",
regional_categories = "European",
parent = true,
}
labels["France"] = {
aliases = {"French"},
Wikipedia = "en:French of France",
display = "ဍုၚ်ရးပြၚ်သေတ်",
regional_categories = "ဍုၚ်ရးပြၚ်သေတ်", -- FIXME, rename to "France French",
parent = "Europe",
}
labels["French Guiana"] = {
aliases = {"Guianese", "gui", "French Guyana"},
Wikipedia = true,
regional_categories = "Guianese",
parent = "Caribbean",
}
labels["Frenchville"] = {
Wikipedia = "Frenchville French",
regional_categories = true,
parent = "US",
}
labels["Grenoble"] = {
Wikidata = "Q1289",
}
labels["Guadeloupe"] = {
Wikipedia = true,
regional_categories = true,
parent = "Antilles",
}
labels["Haiti"] = {
Wikipedia = true,
regional_categories = "Haitian",
parent = "Caribbean",
}
labels["Hérault"] = {
Wikidata = "Q12545",
}
labels["Île-de-France"] = {
aliases = {"Île-de-France French"},
Wikipedia = true,
regional_categories = true,
parent = "France",
}
labels["India"] = {
aliases = {"Indian", "Indian French", "ind"},
Wikipedia = "Indian French",
display = "ဍုၚ်အိန္ဒိယ",
regional_categories = "ဍုၚ်အိန္ဒိယ",
parent = "Asia",
}
labels["Ivory Coast slang"] = {
aliases = {"nouchi", "Nouchi", "noussi", "Noussi", "Ivory Coast French slang", "Côte d’Ivoire slang", "Côte d'Ivoire slang", "Cote d’Ivoire slang", "Cote d'Ivoire slang", "Ivorian slang"},
Wikipedia = "fr:Nouchi",
regional_categories = "Ivorian",
}
labels["Ivory Coast"] = {
the = true,
aliases = {"Ivory Coast French", "Côte d’Ivoire", "Côte d'Ivoire", "Cote d’Ivoire", "Cote d'Ivoire", "Ivorian"},
Wikipedia = "African French#Abidjan French",
regional_categories = "Ivorian",
parent = "West Africa",
}
labels["Jersey Legal"] = {
def = "a form of written [[French]] used in some [[law]]s, [[contract]]s and other documents in [[Jersey]]",
aliases = {"Jersey Legal French", "jer"},
Wikipedia = "Jersey Legal French",
regional_categories = true,
parent = "Europe",
}
labels["Laos"] = {
aliases = {"Lao", "Lao French", "Laotian", "Laotian French", "lao"},
Wikipedia = "en:French language in Laos",
display = "ရးဍုၚ်လဴ",
regional_categories = "ရးဍုၚ်လဴ",
parent = "Asia",
}
labels["Lorraine"] = {
Wikipedia = true,
regional_categories = true,
parent = "France",
}
labels["Louisiana"] = {
aliases = {"Louisiana French", "LA French", "New Orleans", "lou"},
Wikipedia = "Louisiana French",
regional_categories = true,
parent = "US",
}
labels["Luxembourg"] = {
aliases = {"Luxembourgish", "Luxemburg", "Luxemburgish"},
Wikipedia = true,
regional_categories = "Luxembourgish",
parent = "Europe",
}
labels["Lyon"] = {
Wikipedia = "en:Lyon",
display = "လဳယောန်",
regional_categories = "လဳယောန်",
parent = "France",
}
labels["Mali"] = {
aliases = {"Malian"},
Wikipedia = "Malians in France",
regional_categories = "Malian",
parent = "West Africa",
}
labels["Marseille"] = {
Wikipedia = true,
regional_categories = true,
parent = "France",
}
labels["Martinique"] = {
Wikipedia = true,
regional_categories = true,
parent = "Antilles",
}
labels["Massy"] = {
Wikidata = "Q274249",
}
labels["Meridional"] = {
region = "{{w|Southern France}}, especially [[Marseille]], [[Avignon]] and [[Toulouse]]",
aliases = {"mer", "Occitanie", "Occitania", "Midi", "Southern France"},
Wikipedia = "Meridional French",
regional_categories = true,
parent = "France",
}
labels["Métis"] = {
prep = "by",
region = "the {{w|Métis#Métis people in Canada|Métis people}} in [[Canada]]",
aliases = {"Metis"},
Wikipedia = "Métis French",
regional_categories = true,
parent = "Canada",
}
labels["Missouri"] = {
aliases = {"Missouri French", "Missourian French", "MO French", "Missourian", "St Louis, Missouri", "St. Louis, Missouri", "mis"},
Wikipedia = "Missouri French",
regional_categories = true,
parent = "US",
}
labels["Montreal"] = {
aliases = {"Montréal"},
Wikipedia = true,
regional_categories = true,
parent = "Canada",
}
labels["Morocco"] = {
aliases = {"Moroccan"},
Wikipedia = "French language in Morocco",
regional_categories = "Moroccan",
parent = "Africa",
}
labels["Muskrat"] = {
prep = "by",
region = "the {{w|Muskrat French}} people in southeastern [[Michigan]], northern [[Ohio]] along the shores of [[Lake Erie]], and southwestern [[Ontario]]",
Wikipedia = "Muskrat French",
regional_categories = true,
parent = "US",
}
labels["Nancy"] = {
Wikipedia = "Nancy, France",
regional_categories = true,
parent = "France",
}
labels["New Brunswick"] = {
Wikipedia = {"French language in Canada#The Maritimes", "Brayon"},
regional_categories = true,
parent = "Atlantic Canada",
}
labels["New Caledonia"] = {
aliases = {"New Caledonian", "cal"},
Wikipedia = "Caldoche",
regional_categories = "New Caledonian",
parent = true,
}
labels["New England"] = {
aliases = {"nwe"},
Wikipedia = "New England French",
regional_categories = true,
parent = "US",
}
labels["Newfoundland"] = {
aliases = {"nfl"},
Wikipedia = "Newfoundland French",
regional_categories = true,
parent = "Atlantic Canada",
}
labels["Normandy"] = {
Wikipedia = true,
regional_categories = true,
parent = "France",
}
labels["North America"] = {
aliases = {"North American"},
Wikipedia = "American French",
regional_categories = "North American",
parent = true,
}
labels["Northern"] = {
region = "Nord-Pas-de-Calais",
aliases = {"northern"},
Wikipedia = "Nord-Pas-de-Calais",
regional_categories = true,
parent = "France",
}
labels["Nova Scotia"] = {
aliases = {"Nova Scotian"},
Wikipedia = "French language in Canada#The Maritimes",
regional_categories = true,
parent = "Atlantic Canada",
}
labels["Ontario"] = {
Wikipedia = "Ontario French",
regional_categories = true,
parent = "Canada",
}
labels["Paris"] = {
aliases = {"Parisian"},
Wikipedia = "en:Parisian French",
display = "ပါရဳ",
regional_categories = "ဍုၚ်ပါရဳ",
parent = "Île-de-France",
}
labels["Picardy"] = {
aliases = {"Picard"},
Wikipedia = true,
regional_categories = "Picard",
parent = "France",
}
labels["Prince Edward Island"] = {
Wikipedia = "French language in Canada#The Maritimes",
regional_categories = true,
parent = "Atlantic Canada",
}
--don't add Provençal as an alias
labels["Provence"] = {
Wikipedia = true,
regional_categories = true,
parent = "France",
}
labels["Quebec"] = {
aliases = {"Québec", "que"},
Wikipedia = "Quebec French",
regional_categories = true,
parent = "Canada",
}
-- Currently categorizes the same as "Congo" and "Democratic Republic of the Congo".
labels["Republic of the Congo"] = {
aliases = {"Republic of Congo", "Congo Republic", "Congo-Brazzaville"},
Wikipedia = {"African French#Kinshasa French", "Languages of the Republic of the Congo"},
regional_categories = "Congolese",
}
labels["Réunion"] = {
prep = "on",
Wikipedia = true,
regional_categories = true,
parent = "Africa",
}
labels["Rwanda"] = {
aliases = {"Rwandan"},
Wikipedia = true,
regional_categories = "Rwandan",
parent = "Africa",
}
labels["Saint-Barthélemy"] = {
aliases = {"St. Barts"},
Wikipedia = "Saint-Barthélemy French",
regional_categories = true,
parent = "Antilles",
}
labels["Saint-Étienne"] = {
Wikidata = "Q42716",
}
labels["Saint-Maurice-de-Beynost"] = {
Wikidata = "Q11981",
display = "သိန်-မဝ်ရေတ်-ဒဳ-ဗိန်နောတ်သ်",
}
labels["Shawinigan"] = {
Wikidata = "Q141980",
display = "ဍုၚ်သျှဝနဳဂါန်",
}
labels["Somain"] = {
Wikidata = "Q626382",
display = "သဝ်မေန်",
}
labels["Switzerland"] = {
aliases = {"Swiss", "Swiss French", "swi"},
Wikipedia = "en:Swiss French",
display = "သွေတ်ဇြာလာန်",
regional_categories = "သွေတ်",
parent = "Europe",
}
labels["T-V"] = {
display = "T–V distinction",
Wikipedia = "T–V distinction",
}
-- included because we have many audio files from here
labels["Toulouse"] = {
Wikipedia = {"en:Meridional French", true},
display = "တူလေုတ်",
regional_categories = "မဳရဳဒဳနောန်",
}
labels["Tunisia"] = {
aliases = {"Tunisian"},
Wikipedia = "Languages of Tunisia#French",
regional_categories = "Tunisian",
parent = "Africa",
}
labels["US"] = {
region = "the [[United States]]",
aliases = {"U.S.", "American"},
Wikipedia = "en:United States",
display = "အမေရိကာန်",
regional_categories = "အမေရိကာန်",
parent = "North America",
}
labels["Valais"] = {
Wikipedia = "en:Valais",
display = "ဝလေဝ်သ်",
}
labels["Verlan"] = {
def = "a type of backslang used in [[French]], in which the order of the syllables of words is changed, usually with the last syllable coming first",
noreg = true,
aliases = {"verlan"},
Wikipedia = true,
plain_categories = true,
parent = true,
othercat = "French back slang",
}
labels["Vietnam"] = {
aliases = {"Vietnamese", "vie"},
Wikipedia = "French language in Vietnam",
regional_categories = "Vietnamese",
parent = "Asia",
}
-- included because we have many audio files from here
labels["Vosges"] = {
Wikipedia = "en:Vosges",
display = "ဗောတ်စ်ဂျေတ်စ်",
regional_categories = "ဠောရိန်",
}
labels["West Africa"] = {
aliases = {"West African"},
Wikipedia = true,
regional_categories = "West African",
parent = "Africa",
}
labels["post-1990"] = {
aliases = {"post-1990 spelling"},
display = "[[:en:Appendix:French spelling reforms of 1990|ခ္ဍံက်လိက်ကဆံၚ်သၞာံ ၁၉၉၀]]",
}
labels["pre-1990"] = {
aliases = {"pre-1990 spelling"},
display = "[[:en:Appendix:French spelling reforms of 1990|ခ္ဍံက်လိက်ကၠာနူသၞာံ ၁၉၉၀]]",
}
return require("Module:labels").finalize_data(labels)
2h1nbv9alkn10b8nigkhxorxj0uzbaq
မဝ်ဂျူ:fo-noun/table
828
220797
399108
301661
2026-07-18T02:07:36Z
咽頭べさ
33
399108
Scribunto
text/plain
local m_links = require("Module:links")
local m_utils = require("Module:utilities")
local lang = require("Module:languages").getByCode("fo")
local export = {}
local function make_headers(data, wikicode)
if data.defective ~= "p" then
table.insert(wikicode, '! class="outer" colspan=')
table.insert(wikicode, data.defective:find("def") and "1" or "2")
table.insert(wikicode, " | ကိုန်ဨကဝုစ်\n")
end
if not data.defective:find("s") then
table.insert(wikicode, '! class="outer" colspan=2 | ကိုန်ဗဟုဝစ်\n')
end
table.insert(wikicode, '|-\n')
--Singular
if data.defective ~= "s_def" and data.defective ~= "p" then
table.insert(wikicode, '! ဟွံချိုတ်ပၠိုတ်\n')
end
if data.defective ~= "s_indef" and data.defective ~= "p" then
table.insert(wikicode, '! ချိုတ်ပၠိုတ်\n')
end
--Plural
if not data.defective:find("s") then
table.insert(wikicode, '! ဟွံချိုတ်ပၠိုတ်\n! ချိုတ်ပၠိုတ်\n')
end
end
local function show_form(form, tag)
if not form then
return "—"
end
local ret = {}
for key, subform in ipairs(form) do
table.insert(ret, m_links.full_link({lang = lang, term = subform, accel = {form = tag}}))
end
return table.concat(ret, ", ")
end
local function make_case(data, wikicode, case)
local case_short = case:sub(1, 3)
table.insert(wikicode, '|- \n')
table.insert(wikicode, [=[! [[]=] .. case .. [=[ case|]=] .. case .. "]]\n")
if data.defective ~= "s_def" and data.defective ~= "p" then
table.insert(wikicode, [[| ]] .. show_form(data.forms[case_short .. "_sg"], case_short .. '|s|indef') .. "\n")
end
if data.defective ~= "s_indef" and data.defective ~= "p" then
table.insert(wikicode, [[| ]] .. show_form(data.forms[case_short .. "_sg_def"], case_short .. '|s|def') .. "\n")
end
if not data.defective:find("s") then
table.insert(wikicode, [[| ]] .. show_form(data.forms[case_short .. "_pl"], case_short .. '|p|indef') .. "\n")
table.insert(wikicode, [[| ]] .. show_form(data.forms[case_short .. "_pl_def"], case_short .. '|p|def') .. "\n")
end
end
function export.make_table(data)
local colspan = {s_indef = "2", s_def = "2", s = "3", p = "3", no = "5"}
local wikicode = {
mw.getCurrentFrame():expandTemplate{
title = 'inflection-table-top',
args = {
title = '-',
palette = 'magenta'
}
}
}
table.insert(wikicode, '! rowspan="2" style="font-weight:normal" | ' .. data.decl_type .. "\n")
make_headers(data, wikicode)
make_case(data, wikicode, "မဒုၚ်ယၟု")
make_case(data, wikicode, "ကမ္မကာရက")
make_case(data, wikicode, " ပြကမ္မကာရက")
make_case(data, wikicode, "ဗဳဇဂကူ")
table.insert(wikicode, mw.getCurrentFrame():expandTemplate{ title = 'inflection-table-bottom' })
return table.concat(wikicode)
end
return export
4zkq6zuw5g9v3xqc6q3sarhfdz0qh5x
κρεβάτι
0
296815
399020
2026-07-17T13:04:30Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==ဂရေတ်== ===ပွံၚ်နဲတၞဟ်=== * {{alt|el|κρεββάτι}} ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{inh|el|gkm|κρεβάτιον|κρεβάτι(ο)ν}}၊ နကဵုအဆက်နူ {{inh|el|grc-koi|κραββάτιον|κραβ(β)άτιον}}၊ နကဵုမဆေၚ်စပ်ကဵုနူ {{inh|el|grc|κράββατος}} ===ဗွဟ်ရမ္..."
399020
wikitext
text/x-wiki
==ဂရေတ်==
===ပွံၚ်နဲတၞဟ်===
* {{alt|el|κρεββάτι}}
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{inh|el|gkm|κρεβάτιον|κρεβάτι(ο)ν}}၊ နကဵုအဆက်နူ {{inh|el|grc-koi|κραββάτιον|κραβ(β)άτιον}}၊ နကဵုမဆေၚ်စပ်ကဵုနူ {{inh|el|grc|κράββατος}}
===ဗွဟ်ရမ္သာၚ်===
* {{IPA|el|[kɾɛˈvati]}}
===နာမ်===
{{el-noun|n|κρεβάτια}}
# ဖုန်။
====လဟုတ်စှ်ေ====
{{el-nN-ι-ια-2b|κρεβάτ|κρεβατ}}
===ဝေါဟာတၟုပ်===
* {{l|el|κλίνη|g=f}}
* {{l|el|κοίτη|g=f}}
* {{l|el|ευνή|g=f}} {{q|archaic}}
===မဒုၚ်လွဳစ===
* {{desc|sq|krevat|bor=1}}
* {{desc|rup|crivati|bor=1}}
* {{desc|sh|krevet|bor=1}}
* {{desc|ro|crivat|bor=1}}
* {{desc|ota|كروت|tr=kerevet|bor=1}}
* {{desc|ru|кровать|bor=1}}
gkt5bi5x1qm4q1iwg11t3ibgikddjzv
မဝ်ဂျူ:scripts/charToScript/documentation
828
296816
399028
2026-07-17T13:33:43Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "Implements <tt>charToScript</tt> and <tt>findBestScriptWithoutLang</tt>. See [[Module:scripts]] for documentation."
399028
wikitext
text/x-wiki
Implements <tt>charToScript</tt> and <tt>findBestScriptWithoutLang</tt>. See [[Module:scripts]] for documentation.
3ggbeawkfexsct495wx55qqiceg4gwi
399029
399028
2026-07-17T13:34:06Z
咽頭べさ
33
咽頭べさ ပြံင်ပဆုဲလဝ် မုက်လိက် [[မဝ်ဂျူ:scripts/charToScript/doc]] ဇရေင် [[မဝ်ဂျူ:scripts/charToScript/documentation]] သီုကဵု ဟွံဂွံ ဂိုင်စွံလဝ် မကလေင်ပညုင်
399028
wikitext
text/x-wiki
Implements <tt>charToScript</tt> and <tt>findBestScriptWithoutLang</tt>. See [[Module:scripts]] for documentation.
3ggbeawkfexsct495wx55qqiceg4gwi
မဳဒဳယာဝဳကဳ:Gadget-RevdelInfo.js
8
296817
399031
2026-07-17T13:59:01Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "// {{documentation}} /*jshint undef:true */ /*global mw, jQuery */ (function(){ var api = new mw.Api(); function el(tag, child, attr, events) { var node = document.createElement(tag); if (child) { if (typeof child !== 'object') child = [child]; for (var i = 0; i < child.length; ++i) { var ch = child[i]; if ((ch === void(null)) || (ch === null)) continue; else if (typeof ch !== 'object') c..."
399031
javascript
text/javascript
// {{documentation}}
/*jshint undef:true */
/*global mw, jQuery */
(function(){
var api = new mw.Api();
function el(tag, child, attr, events) {
var node = document.createElement(tag);
if (child) {
if (typeof child !== 'object')
child = [child];
for (var i = 0; i < child.length; ++i) {
var ch = child[i];
if ((ch === void(null)) || (ch === null))
continue;
else if (typeof ch !== 'object')
ch = document.createTextNode(String(ch));
node.appendChild(ch);
}
}
if (attr) for (var key in attr) {
node.setAttribute(key, String(attr[key]));
}
if (events) for (var key in events) {
node.addEventListener(key, events[key], false);
}
return node;
}
function fmtDate(date) {
// XXX: uses browser's time zone instead of preferences
date = new Date(date);
switch (mw.user.options.get('date')) {
case 'dmy' : return date.toLocaleTimeString() + ', ' + date.getDate() + ' ' + mw.language.months.genitive[date.getMonth()] + ' ' + date.getFullYear();
case 'mdy' : return date.toLocaleTimeString() + ', ' + mw.language.months.genitive[date.getMonth()] + ' ' + date.getFullYear() + ', ' + date.getDate();
case 'ymd' : return date.toLocaleTimeString() + ', ' + date.getFullYear() + ' ' + mw.language.months.genitive[date.getMonth()] + ' ' + date.getDate();
case 'default' : return date.toLocaleString();
case 'ISO 8601': return date.toISOString();
}
}
function makeBox(rev1, rev2) {
var query = {
'action': 'query',
'list': 'logevents',
'leaction': 'delete/revision',
'letitle': mw.config.get('wgPageName'),
'continue': ''
};
var list, node = el('div', [
el('p', 'Details from the deletion log:'),
list = el('ul')
], {
'class': 'mw-warning-with-logexcerpt',
'style': 'display: none;'
});
function processResult(result) {
var events = result.query.logevents;
for (var i = 0; i < events.length; ++i) {
if ((events[i][1] === rev1) || (events[i][1] === rev2)) {
var item = events[i];
// XXX: item[2] and item[3] contain flags... might as well show these too
// XXX: change link to plaintext based on whether the user has the 'deleterevision' right
list.appendChild(el('li', [
fmtDate(item.timestamp), ": ",
el('a', item.user, { href: mw.util.getUrl('ညးလွပ်:' + item.user) }),
" changed visibility of ", el('a', ["revision ", item[1]], { href: mw.util.getUrl(mw.config.get('wgPageName'), { oldid: item[1], unhide: '1' }) }),
item.comment && " (", item.comment, item.comment && ")"
]));
node.style.display = '';
}
}
if (result['continue']) {
for (var key in result['continue'])
query[key] = result['continue'][key];
api.get(query).then(processResult);
}
}
api.get(query).then(processResult);
return node;
}
if (mw.config.get('wgAction') !== 'view')
return;
if (!(mw.util.getParamValue('diff') || mw.util.getParamValue('oldid')))
return;
if (document.getElementById('mw-rev-deleted-no-diff') || document.getElementById('mw-rev-deleted-unhide-diff')) {
var rev1, rev2;
var ot = document.getElementById('mw-diff-otitle1');
var nt = document.getElementById('mw-diff-ntitle1');
if (ot) { ot = new URL(ot.getElementsByTagName('a')[0].href); rev1 = ot.searchParams.get("oldid"); }
if (nt) { nt = new URL(nt.getElementsByTagName('a')[0].href); rev2 = nt.searchParams.get("oldid"); }
document.getElementById('mw-content-text').appendChild(makeBox(rev1, rev2));
} else if (document.getElementById('mw-content-text').firstChild.classList.contains('mw-warning')) { // ugly, ugly hack
var rev = mw.util.getParamValue('oldid');
document.getElementById('mw-content-text').appendChild(makeBox(rev, null));
}
})();
co4br94nrtk8qncz4dxp4q103jrum7e
မဳဒဳယာဝဳကဳ:Gadget-RevdelInfo.js/documentation
8
296818
399032
2026-07-17T14:00:36Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} <!--Add description here. This subpage initially added just for categorization.--> See also: [[Special:Gadgets]]. <includeonly> [[ကဏ္ဍ:ဂေက်ဂျေက်ဝိတ်ရှေန်နရဳဂမၠိုၚ်]] </includeonly>"
399032
wikitext
text/x-wiki
{{documentation subpage}}
<!--Add description here. This subpage initially added just for categorization.-->
See also: [[Special:Gadgets]].
<includeonly>
[[ကဏ္ဍ:ဂေက်ဂျေက်ဝိတ်ရှေန်နရဳဂမၠိုၚ်]]
</includeonly>
nh2z4mxstdhoy5k1d14op93dv5v8194
မဳဒဳယာဝဳကဳ:Gadget-CodeLinks.js
8
296819
399033
2026-07-17T14:10:27Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "/*jshint undef:true, latedef:true */ /*global mw, jQuery */ jQuery(function CodeLinksIIFE() { 'use strict'; // by John Gruber, from https://daringfireball.net/2010/07/improved_regex_for_matching_urls var URLRegExp = /\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/i; functio..."
399033
javascript
text/javascript
/*jshint undef:true, latedef:true */
/*global mw, jQuery */
jQuery(function CodeLinksIIFE() {
'use strict';
// by John Gruber, from https://daringfireball.net/2010/07/improved_regex_for_matching_urls
var URLRegExp = /\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/i;
function processComment(node) {
var wikilinkMatch, templateMatch, URLMatch,
textNode = node.firstChild; // always a text node.
while (
(wikilinkMatch = /\[\[([^|{}\[\]\n]+)?(?:\|.*?)?]]/.exec(textNode.data))
|| (templateMatch = /(\{\{(?:#invoke:)?)([^|{}\[\]\n#]+)(?=\||}})/i.exec(textNode.data))
|| (URLMatch = URLRegExp.exec(textNode.data))
) {
var link = document.createElement('a'),
start = (wikilinkMatch || templateMatch || URLMatch).index,
linkText;
link.classList.add("code-link");
if (URLMatch) {
var URL = URLMatch[0];
link.href = URL;
linkText = URL;
} else {
var fullPageName;
if (wikilinkMatch) {
linkText = wikilinkMatch[0];
fullPageName = wikilinkMatch[1];
} else if (templateMatch) {
var prefix = templateMatch[1],
pageName = templateMatch[2];
linkText = pageName;
fullPageName = (prefix === '{{#invoke:' ? 'မဝ်ဂျူ:' : 'ထာမ်ပလိက်:')
+ pageName;
link.title = fullPageName;
start += prefix.length;
}
link.href = mw.util.getUrl(fullPageName);
}
var beforeLink = textNode.data.substring(0, start),
afterLink = textNode.data.substring(start + linkText.length);
textNode.data = afterLink;
link.appendChild(document.createTextNode(linkText));
node.insertBefore(link, textNode);
node.insertBefore(document.createTextNode(beforeLink), link);
// ensure all matches are null at beginning of loop body; is this necessary?
wikilinkMatch = templateMatch = URLMatch = null;
}
}
function each(coll, walk) {
return Array.prototype.forEach.call(coll, walk);
}
var commentClasses = [ 'c', 'c1', 'cm' ];
each(document.getElementsByClassName('mw-highlight'), function (codeBlock) {
each(commentClasses, function (commentClass) {
each(codeBlock.getElementsByClassName(commentClass), processComment);
});
});
// Link module names after `require` and `mw.loadData`, and tracking page
// names after `require("Module:debug").track`.
var copyArray = Array.from ? Array.from.bind(Array) :
function copyArray(array) {
return Array.prototype.slice.call(array);
};
var classes = {
identifier: "n", functionName: "nb",
singleQuoteString: "s1", doubleQuoteString: "s2",
};
var trackingPageElements = [], moduleNames = [], dataModuleNames = [];
var functionNames = document.getElementsByClassName(classes.functionName);
Array.prototype.forEach.call(functionNames, function (functionName) {
var text = functionName.firstChild.nodeValue;
if (text !== "require")
return;
var next = functionName.nextElementSibling;
var nextText = next && next.firstChild && next.firstChild.nodeValue;
var hasParenthesis = nextText === "(";
if (hasParenthesis) {
next = next.nextElementSibling;
nextText = next && next.firstChild && next.firstChild.nodeValue;
}
var classList = next.classList;
if (!(classList.contains(classes.singleQuoteString)
|| classList.contains(classes.doubleQuoteString)))
return;
var string = next;
var stringValue = nextText;
if (!stringValue)
return;
next = next.nextElementSibling;
nextText = next && next.firstChild && next.firstChild.nodeValue;
if (hasParenthesis && nextText && nextText[0] !== ")")
return;
moduleNames.push(string);
// FIXME!!! Tracking code has been moved to [[Module:debug/track]]. The following needs updating
// to handle calls of the form require("Module:debug/track")("foo").
if (hasParenthesis ? nextText === ")." : nextText === "."
&& (/^["']mod(?:ule)?:(.+)["']$/i.exec(stringValue) || [])[1] === "debug") {
next = next.nextElementSibling;
nextText = next && next.firstChild && next.firstChild.nodeValue;
if (nextText !== "track")
return;
next = next.nextElementSibling;
if (!next) return;
nextText = next && next.firstChild && next.firstChild.nodeValue;
var trackWithParenthesis = false;
if (nextText === "(") {
next = next.nextElementSibling;
trackWithParenthesis = true;
}
classList = next.classList;
if (!(classList.contains(classes.singleQuoteString)
|| classList.contains(classes.doubleQuoteString)))
return;
nextText = next && next.firstChild && next.firstChild.nodeValue;
if (!nextText)
return;
// If there was a parenthesis on one side – `track("...")` rather than
// `track "..."` – make sure there's a matching parenthesis on the other side.
if (trackWithParenthesis) {
var after = next.nextElementSibling;
var afterText = after && after.firstChild && after.firstChild.nodeValue;
if (afterText !== ")")
return;
}
trackingPageElements.push(next);
}
});
var strings = copyArray(document.getElementsByClassName(classes.singleQuoteString))
.concat(copyArray(document.getElementsByClassName(classes.doubleQuoteString)));
Array.prototype.forEach.call(strings, function (string) {
if (moduleNames.indexOf(string) !== -1 || trackingPageElements.indexOf(string) !== -1)
return;
var stringValue = string.firstChild.nodeValue;
if (!/^["'](?:module|mod):/i.test(stringValue))
return;
var prev = string.previousElementSibling;
var prevText = prev && prev.firstChild && prev.firstChild.nodeValue;
if (prevText === "(") {
var next = string.nextElementSibling;
var nextText = next && next.firstChild && next.firstChild.nodeValue;
if (!(nextText && nextText[0] === ")"))
return;
prev = prev.previousElementSibling;
prevText = prev && prev.firstChild && prev.firstChild.nodeValue;
}
if (prevText !== "loadData")
return;
prev = prev.previousElementSibling;
prevText = prev && prev.firstChild && prev.firstChild.nodeValue;
if (prevText !== ".")
return;
prev = prev.previousElementSibling;
prevText = prev && prev.firstChild && prev.firstChild.nodeValue;
if (prevText !== "mw")
return;
dataModuleNames.push(string);
});
if (moduleNames.length > 0 || trackingPageElements.length > 0
|| dataModuleNames.length > 0) {
mw.loader.using("mediawiki.util").done(function () {
function addLink(element, page) {
if (!(element instanceof Element))
throw new TypeError("Expected Element object");
var link = document.createElement("a");
link.href = mw.util.getUrl(page);
// put text node from element inside link
var firstChild = element.firstChild;
if (!(firstChild instanceof Text))
throw new TypeError("Expected Text object");
link.appendChild(firstChild);
element.appendChild(link); // put link inside syntax-highlighted string
}
// Link module names to module pages, or to the section in the Scribunto
// manual.
moduleNames.concat(dataModuleNames).forEach(function (module) {
var link = document.createElement("a");
var stringValue = module.firstChild.nodeValue;
var moduleName = stringValue.substring(1, stringValue.length - 1);
var linkPage = /^mod(?:ule)?:/i.test(moduleName)
? moduleName
: "mw:Extension:Scribunto/Lua reference manual#" + moduleName;
addLink(module, linkPage);
});
// Link tracking pages to [[Special:WhatLinksHere]].
trackingPageElements.forEach(function (trackingPage) {
var text = trackingPage.firstChild && trackingPage.firstChild.nodeValue;
if (!text)
return;
var trackingCode = text.substring(1, text.length - 1);
addLink(trackingPage, "Special:WhatLinksHere/Wiktionary:Tracking/" + trackingCode);
});
});
}
});
kk2zm78yge8mhuosdpjazje6aufzcye
မဳဒဳယာဝဳကဳ:Gadget-CodeLinks.js/documentation
8
296820
399034
2026-07-17T14:12:10Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} This gadget adds links to wikilink and template syntax, URLs, module names after <code>require</code> and <code>mw.loadData</code>{{,}} and tracking template names in comments in code formatted with [[mw:Extension:SyntaxHighlight|Extension:SyntaxHighlight]], for example in modules and in CSS and JavaScript pages. Wikilinks are linked to the Wiktionary page, and URLs are linked to the URL, of..."
399034
wikitext
text/x-wiki
{{documentation subpage}}
This gadget adds links to wikilink and template syntax, URLs, module names after <code>require</code> and <code>mw.loadData</code>{{,}} and tracking template names in comments in code formatted with [[mw:Extension:SyntaxHighlight|Extension:SyntaxHighlight]], for example in modules and in CSS and JavaScript pages.
Wikilinks are linked to the Wiktionary page, and URLs are linked to the URL, of course. Nothing special is done for interwiki links.
Module invocations ({{temp|#invoke:}}) are linked to the module page. Templates are linked to the template page. Both module invocations and templates receive a tooltip showing the page that they link to, because it is different from the link text. Names of tracking templates are linked to [[Special:WhatLinksHere]] so that users can quickly find the list of the pages that transclude them.
<includeonly>
[[ကဏ္ဍ:ဂေက်ဂျေက်ဝိတ်ရှေန်နရဳဂမၠိုၚ်|CodeLinks]]
</includeonly>
cunxz4xeldfjb5szvryzq74xq2ru5tz
မဳဒဳယာဝဳကဳ:Gadget-CommentsInLocalTime.js
8
296821
399035
2026-07-17T14:17:50Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "// {{documentation}} // _________________________________________________________________________________________ // | | // | === WARNING: GLOBAL GADGET FILE === | // | Changes to this page affect many users. | // | Please discuss c..."
399035
javascript
text/javascript
// {{documentation}}
// _________________________________________________________________________________________
// | |
// | === WARNING: GLOBAL GADGET FILE === |
// | Changes to this page affect many users. |
// | Please discuss changes on the [[Wiktionary:Grease Pit]] before editing. |
// |_________________________________________________________________________________________|
//
//
// The content below are copied from https://en.wikipedia.org/w/index.php?title=User:Gary/comments_in_local_time.js&oldid=1103519446
// See [[w:User:Gary/comments_in_local_time.js]], [[w:Wikipedia:Comments in Local Time]]
// *********************************************************************************************************************************
/**
* COMMENTS IN LOCAL TIME
*
* Description:
* Changes [[Coordinated Universal Time|UTC]]-based times and dates,
* such as those used in signatures, to be relative to local time.
*
* Documentation:
* [[Wikipedia:Comments in Local Time]]
*/
$(() => {
/**
* Given a number, add a leading zero if necessary, so that the final number
* has two characters.
*
* @param {number} number Number
* @returns {string} The number with a leading zero, if necessary.
*/
function addLeadingZero(number) {
const numberArg = number;
if (numberArg < 10) {
return `0${numberArg}`;
}
return numberArg;
}
function convertMonthToNumber(month) {
return new Date(`${month} 1, 2001`).getMonth();
}
function getDates(time) {
const [, oldHour, oldMinute, oldDay, oldMonth, oldYear] = time;
// Today
const today = new Date();
// Yesterday
const yesterday = new Date();
yesterday.setDate(yesterday.getDate() - 1);
// Tomorrow
const tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);
// Set the date entered.
const newTime = new Date();
newTime.setUTCFullYear(oldYear, convertMonthToNumber(oldMonth), oldDay);
newTime.setUTCHours(oldHour);
newTime.setUTCMinutes(oldMinute);
return { time: newTime, today, tomorrow, yesterday };
}
/**
* Determine whether to use the singular or plural word, and use that.
*
* @param {string} term Original term
* @param {number} count Count of items
* @param {string} plural Pluralized term
* @returns {string} The word to use
*/
function pluralize(term, count, plural = null) {
let pluralArg = plural;
// No unique pluralized word is found, so just use a general one.
if (!pluralArg) {
pluralArg = `${term}s`;
}
// There's only one item, so just use the singular word.
if (count === 1) {
return term;
}
// There are multiple items, so use the plural word.
return pluralArg;
}
class CommentsInLocalTime {
constructor() {
this.language = '';
this.LocalComments = {};
/**
* Settings
*/
this.settings();
this.language = this.setDefaultSetting(
'language',
this.LocalComments.language
);
// These values are also reflected in the documentation:
// https://en.wikipedia.org/wiki/Wikipedia:Comments_in_Local_Time#Default_settings
this.setDefaultSetting({
dateDifference: true,
dateFormat: 'dmy',
dayOfWeek: true,
dropDays: 0,
dropMonths: 0,
timeFirst: true,
twentyFourHours: false,
});
}
adjustTime(originalTimestamp, search) {
const { time, today, tomorrow, yesterday } = getDates(
originalTimestamp.match(search)
);
// A string matching the date pattern was found, but it cannot be
// converted to a Date object. Return it with no changes made.
if (Number.isNaN(time)) {
return [originalTimestamp, ''];
}
const date = this.determineDateText({
time,
today,
tomorrow,
yesterday,
});
const { ampm, hour } = this.getHour(time);
const minute = addLeadingZero(time.getMinutes());
const finalTime = `${hour}:${minute}${ampm}`;
// Determine the time offset.
const utcValue = (-1 * time.getTimezoneOffset()) / 60;
const utcOffset =
utcValue >= 0 ? `+${utcValue}` : `−${Math.abs(utcValue.toFixed(1))}`;
const utcPart = `(UTC${utcOffset})`;
const returnDate = this.LocalComments.timeFirst
? `${finalTime}, ${date} ${utcPart}`
: `${date}, ${finalTime} ${utcPart}`;
return returnDate;
}
convertNumberToMonth(number) {
return [
this.language.January,
this.language.February,
this.language.March,
this.language.April,
this.language.May,
this.language.June,
this.language.July,
this.language.August,
this.language.September,
this.language.October,
this.language.November,
this.language.December,
][number];
}
createDateText({ day, month, time, today, year }) {
// Calculate day of week
const dayNames = [
this.language.Sunday,
this.language.Monday,
this.language.Tuesday,
this.language.Wednesday,
this.language.Thursday,
this.language.Friday,
this.language.Saturday,
];
const dayOfTheWeek = dayNames[time.getDay()];
let descriptiveDifference = '';
let last = '';
// Create a relative descriptive difference
if (this.LocalComments.dateDifference) {
({ descriptiveDifference, last } = this.createRelativeDate(
today,
time
));
}
const monthName = this.convertNumberToMonth(time.getMonth());
// Format the date according to user preferences
let formattedDate = '';
switch (this.LocalComments.dateFormat.toLowerCase()) {
case 'dmy':
formattedDate = `${day} ${monthName} ${year}`;
break;
case 'mdy':
formattedDate = `${monthName} ${day}, ${year}`;
break;
default:
formattedDate = `${year}-${month}-${addLeadingZero(day)}`;
}
const formattedDayOfTheWeek = this.LocalComments.dayOfWeek
? `, ${last}${dayOfTheWeek}`
: '';
return `${formattedDate}${formattedDayOfTheWeek}${descriptiveDifference}`;
}
/**
* Create relative date data.
*
* @param {Date} today Today
* @param {Date} time The timestamp from a comment
* @returns {Object.<string, *>} Relative date data
*/
createRelativeDate(today, time) {
/**
* The time difference from today, in milliseconds.
*
* @type {number}
*/
const millisecondsAgo = today.getTime() - time.getTime();
/**
* The number of days ago, that we will display. It's not necessarily the
* total days ago.
*
* @type {number}
*/
let daysAgo = Math.abs(Math.round(millisecondsAgo / 1000 / 60 / 60 / 24));
const { differenceWord, last } = this.relativeText({
daysAgo,
millisecondsAgo,
});
// This method of computing the years and months is not exact. However,
// it's better than the previous method that used 1 January + delta days.
// That was usually quite off because it mapped the second delta month to
// February, which has only 28 days. This method is usually not more than
// one day off, except perhaps over very distant dates.
/**
* The number of months ago, that we will display. It's not necessarily
* the total months ago.
*
* @type {number}
*/
let monthsAgo = Math.floor((daysAgo / 365) * 12);
/**
* The total amount of time ago, in months.
*
* @type {number}
*/
const totalMonthsAgo = monthsAgo;
/**
* The number of years ago that we will display. It's not necessarily the
* total years ago.
*
* @type {number}
*/
let yearsAgo = Math.floor(totalMonthsAgo / 12);
if (totalMonthsAgo < this.LocalComments.dropMonths) {
yearsAgo = 0;
} else if (this.LocalComments.dropMonths > 0) {
monthsAgo = 0;
} else {
monthsAgo -= yearsAgo * 12;
}
if (daysAgo < this.LocalComments.dropDays) {
monthsAgo = 0;
yearsAgo = 0;
} else if (this.LocalComments.dropDays > 0 && totalMonthsAgo >= 1) {
daysAgo = 0;
} else {
daysAgo -= Math.floor((totalMonthsAgo * 365) / 12);
}
const descriptiveParts = [];
// There is years text to add.
if (yearsAgo > 0) {
descriptiveParts.push(
`${yearsAgo} ${pluralize(
this.language.year,
yearsAgo,
this.language.years
)}`
);
}
// There is months text to add.
if (monthsAgo > 0) {
descriptiveParts.push(
`${monthsAgo} ${pluralize(
this.language.month,
monthsAgo,
this.language.months
)}`
);
}
// There is days text to add.
if (daysAgo > 0) {
descriptiveParts.push(
`${daysAgo} ${pluralize(
this.language.day,
daysAgo,
this.language.days
)}`
);
}
return {
descriptiveDifference: ` (${descriptiveParts.join(
', '
)} ${differenceWord})`,
last,
};
}
determineDateText({ time, today, tomorrow, yesterday }) {
// Set the date bits to output.
const year = time.getFullYear();
const month = addLeadingZero(time.getMonth() + 1);
const day = time.getDate();
// Return 'today' or 'yesterday' if that is the case
if (
year === today.getFullYear() &&
month === addLeadingZero(today.getMonth() + 1) &&
day === today.getDate()
) {
return this.language.Today;
}
if (
year === yesterday.getFullYear() &&
month === addLeadingZero(yesterday.getMonth() + 1) &&
day === yesterday.getDate()
) {
return this.language.Yesterday;
}
if (
year === tomorrow.getFullYear() &&
month === addLeadingZero(tomorrow.getMonth() + 1) &&
day === tomorrow.getDate()
) {
return this.language.Tomorrow;
}
return this.createDateText({ day, month, time, today, year });
}
getHour(time) {
let ampm;
let hour = Number.parseInt(time.getHours(), 10);
if (this.LocalComments.twentyFourHours) {
ampm = '';
hour = addLeadingZero(hour);
} else {
// Output am or pm depending on the date.
ampm = hour <= 11 ? ' am' : ' pm';
if (hour > 12) {
hour -= 12;
} else if (hour === 0) {
hour = 12;
}
}
return { ampm, hour };
}
relativeText({ daysAgo, millisecondsAgo }) {
let differenceWord = '';
let last = '';
// The date is in the past.
if (millisecondsAgo >= 0) {
differenceWord = this.language.ago;
if (daysAgo <= 7) {
last = `${this.language.last} `;
}
// The date is in the future.
} else {
differenceWord = this.language['from now'];
if (daysAgo <= 7) {
last = `${this.language.this} `;
}
}
return { differenceWord, last };
}
replaceText(node, search) {
if (!node) {
return;
}
// Check if this is a text node.
if (node.nodeType === 3) {
// Don't continue if this text node's parent tag is one of these.
if (['CODE', 'PRE'].includes(node.parentNode.nodeName)) {
return;
}
const value = node.nodeValue;
const matches = value.match(search);
if (matches) {
// Only act on the first timestamp we found in this node. This is for
// the rare occassion that there is more than one timestamp in the
// same text node.
const [match] = matches;
const position = value.search(search);
const stringLength = match.toString().length;
// Grab the text content before and after the matching timestamp,
// which we'll then wrap in their own SPAN nodes.
const beforeMatch = value.slice(0, position);
const afterMatch = value.slice(position + stringLength);
const returnDate = this.adjustTime(match.toString(), search);
// Create the code to display the new local comments content.
const $span = $(
`<span class="localcomments" style="font-size: 95%;" title="${match}">${returnDate}</span>`
);
// Replace the existing text node in the page with our new local
// comments node.
$(node).replaceWith($span);
// Replace the text content that appears before the timestamp.
if (beforeMatch) {
$span.before(
`<span class="before-localcomments">${beforeMatch}</span>`
);
}
// Replace the text content that appears after the timestamp.
if (afterMatch) {
$span.after(
`<span class="after-localcomments">${afterMatch}</span>`
);
}
}
} else {
const children = [];
let child;
[child] = node.childNodes;
while (child) {
children.push(child);
child = child.nextSibling;
}
// Loop through children and run this func on it again, recursively.
children.forEach((child2) => {
this.replaceText(child2, search);
});
}
}
run() {
if (
['', 'MediaWiki', 'Special'].includes(
mw.config.get('wgCanonicalNamespace')
)
) {
return;
}
// Check for disabled URLs.
const isDisabledUrl = ['action=history'].some((disabledUrl) =>
document.location.href.includes(disabledUrl)
);
if (isDisabledUrl) {
return;
}
this.replaceText(
document.querySelector('.mw-body-content .mw-parser-output'),
/(\d{1,2}):(\d{2}), (\d{1,2}) ([A-Z][a-z]+) (\d{4}) \(UTC\)/
);
}
setDefaultSetting(...args) {
// There are no arguments.
if (args.length === 0) {
return false;
}
// The first arg is an object, so just set that data directly onto the
// settings object. like {setting 1: true, setting 2: false}
if (typeof args[0] === 'object') {
const [settings] = args;
// Loop through each setting.
Object.keys(settings).forEach((name) => {
const value = settings[name];
if (typeof this.LocalComments[name] === 'undefined') {
this.LocalComments[name] = value;
}
});
return settings;
}
// The first arg is a string, so use the first arg as the settings key,
// and the second arg as the value to set it to.
const [name, setting] = args;
if (typeof this.LocalComments[name] === 'undefined') {
this.LocalComments[name] = setting;
}
return this.LocalComments[name];
}
/**
* Set the script's settings.
*
* @returns {undefined}
*/
settings() {
// The user has set custom settings, so use those.
if (window.LocalComments) {
this.LocalComments = window.LocalComments;
}
/**
* Language
*
* LOCALIZING THIS SCRIPT
* To localize this script, change the terms below,
* to the RIGHT of the colons, to the correct term used in that language.
*
* For example, in the French language,
*
* 'Today' : 'Today',
*
* would be
*
* 'Today' : "Aujourd'hui",
*/
this.LocalComments.language = {
// Relative terms
Today: 'Today',
Yesterday: 'Yesterday',
Tomorrow: 'Tomorrow',
last: 'last',
this: 'this',
// Days of the week
Sunday: 'Sunday',
Monday: 'Monday',
Tuesday: 'Tuesday',
Wednesday: 'Wednesday',
Thursday: 'Thursday',
Friday: 'Friday',
Saturday: 'Saturday',
// Months of the year
January: 'January',
February: 'February',
March: 'March',
April: 'April',
May: 'May',
June: 'June',
July: 'July',
August: 'August',
September: 'September',
October: 'October',
November: 'November',
December: 'December',
// Difference words
ago: 'ago',
'from now': 'from now',
// Date phrases
year: 'year',
years: 'years',
month: 'month',
months: 'months',
day: 'day',
days: 'days',
};
}
}
// Check if we've already ran this script.
if (window.commentsInLocalTimeWasRun) {
return;
}
window.commentsInLocalTimeWasRun = true;
const commentsInLocalTime = new CommentsInLocalTime();
commentsInLocalTime.run();
});
13houlikxdhnop5vg42wvznssty7q8h
မဳဒဳယာဝဳကဳ:Gadget-CommentsInLocalTime.js/documentation
8
296822
399036
2026-07-17T14:18:32Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} <!--Add description here. This subpage initially added just for categorization.--> See also: [[Special:Gadgets]]. <includeonly> [[ကဏ္ဍ:ဂေက်ဂျေက်ဝိတ်ရှေန်နရဳဂမၠိုၚ်]] </includeonly>"
399036
wikitext
text/x-wiki
{{documentation subpage}}
<!--Add description here. This subpage initially added just for categorization.-->
See also: [[Special:Gadgets]].
<includeonly>
[[ကဏ္ဍ:ဂေက်ဂျေက်ဝိတ်ရှေန်နရဳဂမၠိုၚ်]]
</includeonly>
nh2z4mxstdhoy5k1d14op93dv5v8194
မဳဒဳယာဝဳကဳ:Gadget-searchFocus.js
8
296823
399037
2026-07-17T14:19:20Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "if (mw.config.get("wgIsMainPage")) document.querySelector(".mw-searchInput").focus();"
399037
javascript
text/javascript
if (mw.config.get("wgIsMainPage"))
document.querySelector(".mw-searchInput").focus();
tevyt1geg33xkr9fk0chzx33hp7t9t5
မဳဒဳယာဝဳကဳ:Gadget-searchFocus.js/documentation
8
296824
399038
2026-07-17T14:20:02Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} <!--Add description here. This subpage initially added just for categorization.--> See also: [[Special:Gadgets]]. <includeonly> [[ကဏ္ဍ:ဂေက်ဂျေက်ဝိတ်ရှေန်နရဳဂမၠိုၚ်]] </includeonly>"
399038
wikitext
text/x-wiki
{{documentation subpage}}
<!--Add description here. This subpage initially added just for categorization.-->
See also: [[Special:Gadgets]].
<includeonly>
[[ကဏ္ဍ:ဂေက်ဂျေက်ဝိတ်ရှေန်နရဳဂမၠိုၚ်]]
</includeonly>
nh2z4mxstdhoy5k1d14op93dv5v8194
မဳဒဳယာဝဳကဳ:Gadget-FastRollback.js
8
296825
399039
2026-07-17T14:21:20Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "// {{documentation}} /*jshint undef:true, latedef:true, undef:true, shadow:true, scripturl:true */ /*global mw, jQuery */ (function () { var api = new mw.Api(); function processLink(link, title, token, user, markbot) { var wrapper = link.parentNode; var bracketed = (wrapper.textContent[0] === '['); link.addEventListener('click', function (ev) { ev.preventDefault(); var summary = prompt('About to rollback..."
399039
javascript
text/javascript
// {{documentation}}
/*jshint undef:true, latedef:true, undef:true, shadow:true, scripturl:true */
/*global mw, jQuery */
(function () {
var api = new mw.Api();
function processLink(link, title, token, user, markbot) {
var wrapper = link.parentNode;
var bracketed = (wrapper.textContent[0] === '[');
link.addEventListener('click', function (ev) {
ev.preventDefault();
var summary = prompt('About to rollback edits by [[User:' + user + ']] to [[' + title + ']].\n\nEdit summary (empty for default):',
'Reverted edits by [[Special:Contributions/' + user + '|' + user + ']]. If you think this rollback is in error, please leave a message on my [[User talk:' + mw.config.get('wgUserName') + '|talk page]].');
if (summary === null)
return;
wrapper.textContent = bracketed ? '[wait]' : 'wait';
api.post({
action: 'rollback',
title: title,
user: user,
token: token,
markbot: markbot ? '1' : void(0),
summary: summary ? summary : void(0)
}).then(function (result) {
var diffLink = document.createElement('a');
diffLink.href = mw.config.get('wgScript') + '?diff=' + result.rollback.revid + '&diffonly=1';
diffLink.textContent = 'diff';
var reloadLink = document.createElement('a');
reloadLink.href = 'javascript:location.reload();';
reloadLink.textContent = 'reload';
wrapper.textContent = '';
if (bracketed) wrapper.appendChild(document.createTextNode('['));
wrapper.appendChild(document.createTextNode('done: '));
wrapper.appendChild(diffLink);
wrapper.appendChild(document.createTextNode(' | '));
wrapper.appendChild(reloadLink);
if (bracketed) wrapper.appendChild(document.createTextNode(']'));
}, function (code, result, xhr) {
link.textContent = 'retry';
var cnode = document.createElement('code');
cnode.style.borderBottom = '1px dotted black';
cnode.style.cursor = 'help';
cnode.textContent = code;
switch (code) {
case 'http':
cnode.title = 'HTTP error: ' + result.textStatus;
break;
case 'ok-but-empty':
cnode.title = 'Received empty response from the server';
break;
default:
cnode.title = result.error.info;
}
wrapper.textContent = '';
if (bracketed) wrapper.appendChild(document.createTextNode('['));
wrapper.appendChild(document.createTextNode('error: '));
wrapper.appendChild(cnode);
wrapper.appendChild(document.createTextNode(' ('));
wrapper.appendChild(link);
wrapper.appendChild(document.createTextNode(')'));
if (bracketed) wrapper.appendChild(document.createTextNode(']'));
console.error(result);
});
}, false);
}
jQuery(document).ready(function() {
var rolllinks = document.getElementsByClassName('mw-rollback-link');
for (var i = 0; i < rolllinks.length; ++i) {
var links = rolllinks[i].getElementsByTagName('a');
if (links.length !== 1)
continue;
var link = links[0];
try {
var uri = new URL(link.href);
if (uri.searchParams.get("action") === 'rollback')
processLink(link, uri.searchParams.get("title"), uri.searchParams.get("token"), uri.searchParams.get("from"), uri.searchParams.get("bot") && true);
} catch (e) {
/* swallow */
}
}
function makeRestoreLink(oldid, uname) {
var link = document.createElement('a');
var span = document.createElement('span');
link.href = mw.config.get('wgScript') + '?action=edit&oldid=' + oldid;
function doRestore() {
function showError(action, code, result) {
var cnode = document.createElement('code');
cnode.textContent = code;
switch (code) {
case 'http':
cnode.title = 'HTTP error: ' + result.textStatus;
break;
case 'ok-but-empty':
cnode.title = 'Received empty response from the server';
break;
case 'edit-failure':
cnode.textContent = result.edit.code;
cnode.title = 'Edit error: ' + result.edit.info;
break;
default:
cnode.title = result.error.info;
}
var retryLink = document.createElement('a');
retryLink.href = link.href;
retryLink.textContent = 'retry';
retryLink.addEventListener('click', function (ev) {
ev.preventDefault();
doRestore();
}, false);
span.textContent = '';
span.appendChild(document.createTextNode('error: '));
span.appendChild(cnode);
span.appendChild(document.createTextNode(' ('));
span.appendChild(retryLink);
span.appendChild(document.createTextNode(')'));
}
var summary = prompt('Edit summary for this reversion:', 'Restored [[Special:Permalink/' + oldid + '|revision ' + oldid + ']] by [[User:' + uname + ']]');
if (summary === null)
return;
span.textContent = 'grabbing oldid';
if (link.parentNode) {
link.parentNode.insertBefore(span, link);
link.parentNode.removeChild(link);
}
api.get({
action: 'query',
pageids: mw.config.get('wgArticleId'),
prop: 'revisions',
rvstartid: oldid,
rvlimit: 1,
rvprop: 'content'
}).then(function (result, xhr) {
console.info(result);
var starttimestamp = (new Date(xhr.getResponseHeader('Date'))).toISOString(); // XXX: acceptable?
var content = result.query.pages[mw.config.get('wgArticleId')].revisions[0]['*'];
span.textContent = 'grabbing latest revision';
api.get({
action: 'query',
pageids: mw.config.get('wgArticleId'),
prop: 'revisions',
rvlimit: 1,
rvprop: 'ids|timestamp'
}).then(function (result) {
console.info(result);
var basetimestamp = result.query.pages[mw.config.get('wgArticleId')].revisions[0].timestamp;
if (result.query.pages[mw.config.get('wgArticleId')].revisions[0].revid === Number(oldid)) {
span.textContent = 'this is already the latest revision';
return;
}
span.textContent = 'reverting';
api.post({
action: 'edit',
pageid: mw.config.get('wgArticleId'),
token: mw.user.tokens.get('csrfToken'),
basetimestamp: basetimestamp,
starttimestamp: starttimestamp,
nocreate: '1',
text: content,
summary: summary
}).then(function (result) {
if (result.edit.result === 'Success') {
span.textContent = 'done';
} else {
showError('saving', 'edit-failure', result);
}
}, function (code, result) {
showError('saving', code, result);
});
}, function (code, result) {
showError('grabbing latest revision data', code, result);
});
}, function (code, result) {
showError('grabbing old revision text', code, result);
});
}
link.addEventListener('click', function (ev) {
ev.preventDefault();
doRestore();
}, false);
return link;
}
// are we viewing an old revision?
var revnav = document.getElementById('mw-revision-nav');
if (revnav) {
var uname = document.getElementById('mw-revision-info').getElementsByClassName('mw-userlink')[0].textContent;
var oldid = mw.config.get('wgRevisionId'); // XXX: suppress if this is the latest revid
var link = makeRestoreLink(oldid, uname);
link.textContent = 'restore this version';
revnav.appendChild(document.createTextNode(' ('));
revnav.appendChild(link);
revnav.appendChild(document.createTextNode(')'));
return;
}
// intentionally not enabled on history pages;
// I want the user to see to what version they are reverting
// either directly or at least a diff
// may be changed on request, though
function addRestoreLink(titlenode) {
if (!titlenode)
return;
var titlelinks = titlenode.getElementsByTagName('a');
var userlink = titlenode.parentNode.getElementsByClassName('mw-userlink')[0];
var uname = userlink.textContent;
var uri = new URL(titlelinks[0].href);
// XXX: suppress for latest revid
var rlink = makeRestoreLink(uri.searchParams.get("oldid"), userlink.textContent);
rlink.textContent = 'restore';
titlelinks[1].parentNode.insertBefore(rlink, titlelinks[1].nextSibling);
titlelinks[1].parentNode.insertBefore(document.createTextNode(' | '), titlelinks[1].nextSibling);
}
// are we viewing a diff?
var ot = document.getElementById('mw-diff-otitle1');
var nt = document.getElementById('mw-diff-ntitle1');
var ri = document.getElementById('mw-revision-info');
if ((nt || ot) && mw.config.get('wgArticleId')) {
addRestoreLink(ot);
addRestoreLink(nt);
} else if (ri && (mw.config.get('wgRevisionId') !== mw.config.get('wgCurRevisionId'))) {
var userlink = ri.getElementsByClassName('mw-userlink')[0];
var rlink = makeRestoreLink(mw.config.get('wgRevisionId'), userlink.textContent);
rlink.textContent = 'restore';
var fh = document.getElementById('firstHeading');
var span = document.createElement('span');
span.className = 'mw-editsection';
span.appendChild(document.createTextNode('['));
span.appendChild(rlink);
span.appendChild(document.createTextNode(']'));
fh.appendChild(span);
}
});
})();
qf0oxyah5m8wbu56gcchqp2bu762ig5
မဳဒဳယာဝဳကဳ:Gadget-FastRollback.js/documentation
8
296826
399040
2026-07-17T14:21:58Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} <!--Add description here. This subpage initially added just for categorization.--> See also: [[Special:Gadgets]]. <includeonly> [[ကဏ္ဍ:ဂေက်ဂျေက်ဝိတ်ရှေန်နရဳဂမၠိုၚ်]] </includeonly>"
399040
wikitext
text/x-wiki
{{documentation subpage}}
<!--Add description here. This subpage initially added just for categorization.-->
See also: [[Special:Gadgets]].
<includeonly>
[[ကဏ္ဍ:ဂေက်ဂျေက်ဝိတ်ရှေန်နရဳဂမၠိုၚ်]]
</includeonly>
nh2z4mxstdhoy5k1d14op93dv5v8194
မဳဒဳယာဝဳကဳ:Gadget-U2693.js
8
296827
399041
2026-07-17T14:23:54Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "/* jshint undef:true, latedef:true, shadow:true, boss:true, scripturl:true */ /* global mw, jQuery */ // <nowiki> "use strict"; mw.loader.using(["mediawiki.util"]).then(() => $(function() { var curRevisionId = mw.config.get("wgCurRevisionId"); function createAnchorLink(label, href, wikilink, title) { var span = document.createElement("span"); var link = document.createElement("a"); link.href = href;..."
399041
javascript
text/javascript
/* jshint undef:true, latedef:true, shadow:true, boss:true, scripturl:true */
/* global mw, jQuery */
// <nowiki>
"use strict";
mw.loader.using(["mediawiki.util"]).then(() =>
$(function() {
var curRevisionId = mw.config.get("wgCurRevisionId");
function createAnchorLink(label, href, wikilink, title) {
var span = document.createElement("span");
var link = document.createElement("a");
link.href = href;
link.addEventListener(
"click",
function(ev) {
ev.preventDefault();
// IE
if (window.clipboardData && window.clipboardData.setData) {
window.clipboardData.setData("text", wikilink);
mw.util.jsMessage("Wikitext copied to the clipboard.");
return;
}
// XXX: there is a brand new shiny ClipboardEvent API, but I could not get it to work on my browser.
// plus, there is no graceful fallback if it fails to work. going back to good ol' prompt().
prompt("Hit Ctrl-C to copy this to your clipboard", wikilink);
},
false
);
link.appendChild(document.createTextNode(label));
link.title = title;
span.appendChild(document.createTextNode("["));
span.appendChild(link);
span.appendChild(document.createTextNode("]"));
span.className = "mw-editsection-like anchor-gadget-link";
return span;
}
// XXX: not ideal; it may over-unescape things, but it usually works as intended
function unescapeAnchor(anchor) {
anchor = anchor.replace(/_/g, " ");
try {
return decodeURIComponent(
anchor.replace(/\.([0-9A-F][0-9A-F])/g, "%$1")
);
} catch (e) {
return anchor;
}
}
function forEachHeader(callback) {
var headers = document.querySelectorAll(
".mw-heading > h2, .mw-heading > h3, .mw-heading > h4, .mw-heading > h5, .mw-heading > h6, .mw-headline"
);
for (var i = 0; i < headers.length; ++i) {
var links = headers[i].parentNode.getElementsByTagName("a");
var title = null;
for (var j = 0; j < links.length; ++j) {
try {
var u = new URL(links[j].href);
if (
u.hostname === location.host &&
u.pathname === mw.config.get("wgScript") &&
u.searchParams.get("action") === "edit" &&
!u.searchParams.get("redlink")
) {
title = new mw.Title(u.searchParams.get("title"));
}
} catch (e) {
/* screw it */
}
}
if (!title) continue;
callback(headers[i], title);
}
}
function getRevInfo(oldid, callback) {
// XXX: of course I have it right on the page, but I cannot rely on it being in any particular format.
// hence wasting bandwidth on an API request.
mw.loader.using(["mediawiki.api", "mediawiki.util"], function() {
var api = new mw.Api();
api
.get({
action: "query",
pageids: mw.config.get("wgArticleId"),
prop: "revisions",
rvprop: "user|timestamp",
rvstartid: oldid,
rvlimit: 1,
})
.then(function(result) {
var revobj =
result.query.pages[mw.config.get("wgArticleId")].revisions[0];
callback(revobj);
});
});
}
function createUnsignedLink(revobj) {
var userpart =
(mw.util.isIPv4Address(revobj.user) ||
mw.util.isIPv6Address(revobj.user) ?
"{{unsigned-ip|" :
"{{unsigned|") + revobj.user;
var datepart = "}}";
var m;
if (
(m = /^(\d+)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)Z$/.exec(
revobj.timestamp
))
) {
var monthNames = [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December",
];
datepart =
"|" +
m[4] +
":" +
m[5] +
", " +
m[3].replace(/^0+/, "") +
" " +
monthNames[parseInt(m[2], 10) - 1] +
" " +
m[1] +
" (UTC)}}";
}
return createAnchorLink(
"✎",
"javascript:void window.warranty",
userpart + datepart,
"{{unsigned}}"
);
}
if (mw.config.get("wgAction") !== "view") return;
mw.util.addCSS(
".anchor-gadget-link { -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; user-select: none; }"
);
if (mw.util.getParamValue("diff")) {
// viewing a diff
var oldid, newid;
var ot = document.getElementById("mw-diff-otitle1");
var nt = document.getElementById("mw-diff-ntitle1");
if (ot) {
ot = new URL(ot.getElementsByTagName("a")[0].href);
oldid = ot.searchParams.get("oldid");
}
if (nt) {
nt = new URL(nt.getElementsByTagName("a")[0].href);
newid = nt.searchParams.get("oldid");
}
document
.getElementById("firstHeading")
.appendChild(
createAnchorLink(
"⚓",
mw.config.get("wgScript") + "?oldid=" + oldid + "&diff=" + newid,
"[[Special:Diff/" + oldid + "/" + newid + "]]",
"Link to this diff"
)
);
if (
document.getElementsByClassName("diffmulti").length === 0 &&
mw.config.get("wgArticleId")
) {
getRevInfo(newid, function(revobj) {
document
.getElementById("firstHeading")
.appendChild(createUnsignedLink(revobj));
});
}
} else if (mw.util.getParamValue("oldid") || curRevisionId) {
// viewing an old page revision
var oldid = mw.util.getParamValue("oldid") || curRevisionId;
document
.getElementById("firstHeading")
.appendChild(
createAnchorLink(
"⚓",
mw.config.get("wgScript") + "?oldid=" + oldid,
"[[Special:Permalink/" + oldid + "]]",
"Link to this revision"
)
);
getRevInfo(oldid, function(revobj) {
document
.getElementById("firstHeading")
.appendChild(createUnsignedLink(revobj));
});
}
if (
mw.config.get("wgRevisionId") === curRevisionId &&
// 100 = appendix, 114 = citations
[0, 100, 114].indexOf(mw.config.get("wgNamespaceNumber")) === -1
) {
forEachHeader(function(header, title) {
var anchorLink = createAnchorLink(
"⚓",
mw.util.getUrl(title.getPrefixedDb()) + "#" + header.id,
"[[" +
title.getPrefixedText() +
"#" +
unescapeAnchor(header.id) +
"]]"
);
var editSectionLink =
header.parentNode.querySelector(".mw-editsection");
if (editSectionLink) {
header.parentNode.insertBefore(
anchorLink,
editSectionLink.nextSibling
);
} else {
header.parentNode.appendChild(anchorLink);
}
});
}
})
);
// </nowiki>
3r6xwafb4slilr2bjt7unh1dp2j1dru
မဳဒဳယာဝဳကဳ:Gadget-U2693.js/documentation
8
296828
399042
2026-07-17T14:24:41Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} <!--Add description here. This subpage initially added just for categorization.--> Explanation for the name: U+2693 is the code point for the anchor character, ⚓. See also: [[Special:Gadgets]]. <includeonly> [[ကဏ္ဍ:ဂေက်ဂျေက်ဝိတ်ရှေန်နရဳဂမၠိုၚ်]] </includeonly>"
399042
wikitext
text/x-wiki
{{documentation subpage}}
<!--Add description here. This subpage initially added just for categorization.-->
Explanation for the name: U+2693 is the code point for the anchor character, ⚓.
See also: [[Special:Gadgets]].
<includeonly>
[[ကဏ္ဍ:ဂေက်ဂျေက်ဝိတ်ရှေန်နရဳဂမၠိုၚ်]]
</includeonly>
nwhdp16wb76zej0wti6yhzc6wf3qwt8
မဳဒဳယာဝဳကဳ:Gadget-nearby.js
8
296829
399043
2026-07-17T14:33:32Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "// <nowiki> (async () => { // Do a preliminary check to avoid running the gadget unnecessarily. if ([...document.querySelectorAll("#catlinks li")].some(cat => cat.textContent.endsWith("ဝေါဟာအဓိက"))) { mw.util.addCSS(` .nearby-entries-box { padding: 6px; margin-top: 10px; background: var(--wikt-palette-palergreen); width: fit-content; max-width: 100%; border: 1.5px solid var(--wi..."
399043
javascript
text/javascript
// <nowiki>
(async () => {
// Do a preliminary check to avoid running the gadget unnecessarily.
if ([...document.querySelectorAll("#catlinks li")].some(cat => cat.textContent.endsWith("ဝေါဟာအဓိက"))) {
mw.util.addCSS(`
.nearby-entries-box {
padding: 6px;
margin-top: 10px;
background: var(--wikt-palette-palergreen);
width: fit-content;
max-width: 100%;
border: 1.5px solid var(--wikt-palette-forestgreen);
border-radius: 2px;
overflow-wrap: break-word;
}
`);
let actionAPI = new mw.Api({ajax: {headers: {"Api-User-Agent": "Gadget developed by [[User:Ioaxxere]]"}}});
let pageName = mw.config.values.wgPageName;
const N_ENTRIES = 3; // the number of preview entries on each side of the current page
// Given a page title (no underscores), return the prettified title.
const makeDisplayTitle = rawTitle => {
rawTitle = rawTitle.replaceAll("_", " ").replace(/\/languages [A-Z] to [A-Z]$/g, "");
if (rawTitle.startsWith("ဗီုပြၚ်သိုၚ်တၟိ:"))
return `*${rawTitle.split("/").pop()}`;
if (rawTitle.startsWith("အဆက်လက္ကရဴ:"))
return rawTitle.split("/").pop();
if (rawTitle.startsWith("Unsupported titles/"))
return convertUnsupportedTitle(rawTitle); // from [[MediaWiki:Gadget-UnsupportedTitles.js]]
return rawTitle;
};
// Build pageCategorySortkeys, a map from each page category to its associated sortkey.
let pageCategorySortkeys = new Map();
let continueParam;
while (true) {
let params = {
action: "query",
format: "json",
cllimit: "max",
clprop: "sortkey",
prop: "categories",
titles: pageName
};
if (continueParam)
params.clcontinue = continueParam;
let response = await actionAPI.get(params);
for (let category of Object.values(response.query.pages)[0].categories)
pageCategorySortkeys.set(category.title, category.sortkeyprefix);
if (!response.continue) break;
continueParam = response.continue.clcontinue;
}
document.querySelectorAll(".mw-heading2 h2").forEach(async h2 => {
let language = h2.id.replaceAll("_", " ");
let category = `ကဏ္ဍ:ဝေါဟာအဓိက${language}ဂမၠိုၚ်`;
if (!pageCategorySortkeys.has(category)) return; // skip non-lemmas and malformed entries
let params = {
action: "query",
cmlimit: 40, // arbitrary; we don't know how many we need ahead of time
format: "json",
list: "categorymembers",
cmsort: "sortkey",
cmtitle: category,
cmstartsortkeyprefix: pageCategorySortkeys.get(category)
};
let titles = (await actionAPI.get(params)).query.categorymembers
.filter(page => page.ns !== 14) // Filter out namespace 14 (Category:)
.map(page => page.title);
// pageName is guaranteed to be in this list unless there are over `cmlimit` pages with the same sortkey.
let currPagePosition = titles.indexOf(pageName.replaceAll("_", " "));
let entriesAhead = titles.slice(currPagePosition + 1, currPagePosition + N_ENTRIES + 1);
let entriesBehind = titles.slice(Math.max(currPagePosition - N_ENTRIES, 0), currPagePosition);
if (entriesBehind.length < N_ENTRIES) {
// If entriesBehind isn't yet long enough, switch direction and get the entries coming before.
// There are no duplicates between the first and second queries.
params.cmdir = "desc";
entriesBehind = (await actionAPI.get(params)).query.categorymembers
.filter(page => page.ns !== 14)
.map(page => page.title)
.slice(0, N_ENTRIES - entriesBehind.length)
.reverse()
.concat(entriesBehind);
}
// Display nearby entries on the page.
let nearbyEntriesDiv = document.createElement("div");
nearbyEntriesDiv.className = "nearby-entries-box";
nearbyEntriesDiv.innerText = "» ";
// Need to account for both HTML formats.
if (h2.parentElement.nextElementSibling.tagName === "SECTION")
h2.parentElement.nextElementSibling.prepend(nearbyEntriesDiv);
else
h2.parentElement.parentElement.insertBefore(nearbyEntriesDiv, h2.parentElement.nextElementSibling);
for (let entry of entriesBehind) {
let entryLink = document.createElement("a");
entryLink.href = `/wiki/${mw.util.wikiUrlencode(entry)}#${h2.id}`;
entryLink.title = entry;
entryLink.textContent = makeDisplayTitle(entry);
nearbyEntriesDiv.append(entryLink, " • ");
}
let selflink = document.createElement("a");
selflink.className = "mw-selflink selflink";
selflink.textContent = makeDisplayTitle(pageName);
nearbyEntriesDiv.append(selflink);
for (let entry of entriesAhead) {
let entryLink = document.createElement("a");
entryLink.href = `/wiki/${mw.util.wikiUrlencode(entry)}#${h2.id}`;
entryLink.title = entry;
entryLink.textContent = makeDisplayTitle(entry);
nearbyEntriesDiv.append(" • ", entryLink);
}
});
}
})();
// </nowiki>
i0ca0600gmitp0ottkb2vhrq64h9ap4
မဳဒဳယာဝဳကဳ:Gadget-ReferenceTooltips.js
8
296830
399044
2026-07-17T14:36:23Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "if (document.querySelector(".reference") && mw.config.values.skin !== "minerva") { mw.loader.load('https://mnw.wikipedia.org/w/load.php?modules=ext.gadget.ReferenceTooltips&only=scripts'); mw.loader.load('https://mnw.wikipedia.org/w/load.php?modules=ext.gadget.ReferenceTooltips&only=styles', 'text/css'); }"
399044
javascript
text/javascript
if (document.querySelector(".reference") && mw.config.values.skin !== "minerva") {
mw.loader.load('https://mnw.wikipedia.org/w/load.php?modules=ext.gadget.ReferenceTooltips&only=scripts');
mw.loader.load('https://mnw.wikipedia.org/w/load.php?modules=ext.gadget.ReferenceTooltips&only=styles', 'text/css');
}
5wa4cps7kgg1pxi5269pix2xvliylnh
မဳဒဳယာဝဳကဳ:Gadget-Streamline.js
8
296831
399045
2026-07-17T14:56:02Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု ""use strict"; // {{documentation}} // <nowiki> /*jshint strict:true, undef:true, latedef:true, esversion:6 */ /* global mw, createNavToggle */ const STREAMLINE_SYMBOL = "⌰"; // [[MediaWiki:Gadget-WiktGadgetPrefs.js]] const preferences = mw.wiktGadgetPrefs.get( "streamline", { label: { mnw: "Streamline", }, }, { collapseElements: { "type": "strenum", "default": "aboveDefinitions", "label": {..."
399045
javascript
text/javascript
"use strict";
// {{documentation}}
// <nowiki>
/*jshint strict:true, undef:true, latedef:true, esversion:6 */
/* global mw, createNavToggle */
const STREAMLINE_SYMBOL = "⌰";
// [[MediaWiki:Gadget-WiktGadgetPrefs.js]]
const preferences = mw.wiktGadgetPrefs.get(
"streamline",
{
label: {
mnw: "Streamline",
},
},
{
collapseElements: {
"type": "strenum",
"default": "aboveDefinitions",
"label": {
"mnw": "လက္ချဏ်ဝိသေသနကဵုမဒေါံလာ်စှ်ေ"
},
"choices": [
"aboveDefinitions",
"allExceptNotes"
],
"choiceLabels": {
"mnw": {
"aboveDefinitions": "Sections before definitions",
"allExceptNotes": "Sections before and after definitions"
}
}
},
runInReconstructions: {
"type": "boolean",
"default": true,
"label": {
"mnw": "မဗေၚ်စုတ်နကဵုမုက်လိက်ဗီုပြၚ်သိုၚ်တၟိညိ"
}
}
}
);
function makeNavFrame(heading, editLinks, toggleCat, contents) {
// now make a collapsible box
const navHead = document.createElement("div");
navHead.className = "NavHead";
navHead.style.cursor = "pointer";
navHead.style.fontSize = "1.1em";
const navContent = document.createElement("div");
navContent.className = "NavContent boxcontent streamline-boxcontent";
navContent.style.textAlign = "left";
const navFrame = document.createElement("div");
navFrame.className = "NavFrame NavFrame-streamline";
if (toggleCat)
navFrame.setAttribute("data-toggle-category", toggleCat);
navFrame.style.display = "block";
navFrame.append(navHead, navContent);
navHead.append(`${STREAMLINE_SYMBOL} ${heading}`);
try {
if (createNavToggle) createNavToggle(navFrame);
} catch (e) { }
if (editLinks) {
navContent.append(editLinks);
editLinks.style.float = "right";
// try displaying the edit links next to the show button
editLinks.style.marginTop = "-1.5em";
editLinks.style.marginRight = "8ch";
}
navContent.append(...contents);
return navFrame;
}
function isNavFrameOpen(frame) {
const content = frame.querySelector(".NavContent");
if (!content) return false;
const computedStyle = window.getComputedStyle(content);
if (!computedStyle) return false;
return computedStyle.display !== "none";
}
function openNavFrame(frame) {
if (!isNavFrameOpen(frame)) {
const navHead = frame.querySelector(".NavHead");
if (navHead)
navHead.click();
}
}
function anchorInUrl(anchor) {
if (window.location.hash) {
return window.location.hash.replace(/^#/, "") === anchor;
}
return false;
}
function hasElementClass(element, className) {
return element.classList.contains(className);
}
function shouldEndCollapsible(element) {
return element.matches("h1, h2, h3, h4, h5, h6, hr") // end on heading or horizontal line
|| hasElementClass(element, "NavFrame-streamline") // no nested streamline navboxes
|| hasElementClass(element, "mw-heading") // section heading
|| element.matches("section") // Parsoid
; // this is on its own line so that it's easier to add new rules
}
function shouldExcludeFromCollapsible(element) {
return hasElementClass(element, "thumb") // images
|| hasElementClass(element, "sister-project") // sister project box
|| hasElementClass(element, "kanji-table") // ja-kanjitab
|| hasElementClass(element, "floatright") // various tables
|| hasElementClass(element, "template-anchor") // anchor
|| hasElementClass(element, "t-thumbs-outer") // thumbs
|| hasElementClass(element, "interproject-box") // interwiki boxes
|| hasElementClass(element, "normalized-box") // {{normalized}}
|| hasElementClass(element, "chemical-element-box") // {{chemical element box}}
|| element.getAttribute("typeof") === "mw:File/Thumb" // new floating image boxes
|| hasElementClass(element, "mw-halign-right") // mw-halign-right, by new floating image boxes
|| element.getAttribute("align") === "right" // anything that (explicitly) aligns
|| element.style.float === "right" // anything that (explicitly) floats
|| element.matches("style") // TemplateStyles
; // this is on its own line so that it's easier to add new rules
}
// Applies only to numbered etymologies.
function shouldDisplayBeforeCollapsible(element) {
return hasElementClass(element, "normalized-box") // {{normalized}}
; // this is on its own line so that it's easier to add new rules
}
function shouldCollapseForTheSakeOf(element) {
if (element.nodeType === 1) {
// don't collapse for the sake of senseid or etymid alone
if (element.matches(".senseid, .etymid"))
return false;
if (element.matches("p, div, span"))
return Array.prototype.some.call(element.childNodes, shouldCollapseForTheSakeOf);
return element.tagName !== "BR";
} else if (element.nodeType === 3) {
return !!element.textContent.trim(); // only if not entirely whitespace
} else {
return false;
}
}
function getHeadingQuery(onlyL3) {
return (onlyL3 ? ["h2", "h3"] : ["h2", "h3", "h4", "h5"])
.map(heading => `#mw-content-text ${heading}`)
.join(", ");
}
const navFramesById = {};
function collapseHeadingInNavbox(headingCandidate, heading, toggleCat,
headingMatcher, addEditLinks) {
let headingId;
const hl = headingCandidate.querySelector(".mw-headline");
if (hl && headingMatcher(hl.textContent))
headingId = hl.id;
// Parsoid
if (hasElementClass(headingCandidate.parentElement, "mw-heading") &&
headingMatcher(headingCandidate.textContent)) {
headingId = headingCandidate.id;
headingCandidate = headingCandidate.parentElement;
}
if (!headingId) return [undefined, undefined];
// pick all elements until next heading
const contents = [];
let nx = headingCandidate.nextElementSibling;
let collapse = false;
while (nx) {
if (shouldEndCollapsible(nx) || nx.querySelector(".NavFrame-streamline"))
break;
if (!shouldExcludeFromCollapsible(nx)) {
contents.push(nx);
collapse = collapse || shouldCollapseForTheSakeOf(nx);
}
nx = nx.nextElementSibling;
}
if (!collapse) return [undefined, undefined];
const navFrame = makeNavFrame(heading,
addEditLinks ? headingCandidate.querySelector(".mw-editsection") : null,
toggleCat, contents);
navFrame.id = headingId;
navFramesById[navFrame.id] = navFrame;
return [navFrame, headingCandidate];
}
function makeSingleCollapsible(heading, toggleCat, onlyL3) {
document.querySelectorAll(getHeadingQuery(onlyL3)).forEach((e) => {
const [navFrame, headingElement] = collapseHeadingInNavbox(e,
heading, toggleCat,
(headingText) => headingText === heading, true);
if (navFrame)
headingElement.parentNode.replaceChild(navFrame, headingElement);
});
}
function makeNumberedCollapsible(heading, toggleCat) {
const re = new RegExp("^" + heading + " \\d+(?:\.\\d+)?$");
document.querySelectorAll(getHeadingQuery(false)).forEach((e) => {
const [navFrame, headingElement] = collapseHeadingInNavbox(e,
heading, toggleCat,
(headingText) => headingText.match(re), false);
if (navFrame) {
let toInsertBefore = headingElement.nextElementSibling;
while (toInsertBefore && shouldDisplayBeforeCollapsible(toInsertBefore))
toInsertBefore = toInsertBefore.nextElementSibling;
headingElement.parentNode.insertBefore(navFrame, toInsertBefore);
}
});
}
function moveAnagrams() {
// move the Anagrams box above Further reading and References
document.querySelectorAll(".NavFrame[data-toggle-category=\"anagrams\"]").forEach((e) => {
let p = e.previousElementSibling;
while (p) {
if (p.tagName === "H2") {
break;
}
if (p.tagName === "H3") {
const hl = p.querySelector(".mw-headline");
if (hl && (hl.textContent === "နိဿဲမဍိုက်ပေၚ်" || hl.textContent === "နိဿဲ")) {
e.parentElement.insertBefore(e, p);
}
}
p = p.previousElementSibling;
}
});
}
function addGaps() {
// add gaps before streamline navboxes if preceded by certain elements
document.querySelectorAll(".NavFrame-streamline").forEach((sl) => {
const prev = sl.previousElementSibling;
const next = sl.nextElementSibling;
let tn;
if (prev) {
tn = prev.tagName;
if (tn === "OL" || tn === "UL") {
sl.style.marginTop = "1em";
}
}
if (next) {
tn = next.tagName;
if (tn === "HR") {
sl.style.marginBottom = "1em";
}
}
});
}
function defaultStreamline() {
makeSingleCollapsible("ပွံၚ်အက္ခရ်နဲတၞဟ်", true);
makeSingleCollapsible("ပွံၚ်နဲတၞဟ်", true);
makeSingleCollapsible("နိရုတ်");
makeSingleCollapsible("Glyph origin", "etymology");
makeSingleCollapsible("ပွံၚ်အဓိပ္ပါဲ");
makeSingleCollapsible("ဗွဟ်ရမ္သာၚ်");
makeSingleCollapsible("Production", "productions");
makeNumberedCollapsible("နိရုတ်");
makeNumberedCollapsible("ဗွဟ်ရမ္သာၚ်");
makeNumberedCollapsible("Production", "productions");
addGaps();
}
function superStreamline() {
makeSingleCollapsible("ပွံၚ်အက္ခရ်နဲတၞဟ်", false);
makeSingleCollapsible("ပွံၚ်နဲတၞဟ်", false);
makeSingleCollapsible("ပရေၚ်ကၠောံ");
makeSingleCollapsible("လဟုတ်စှ်ေ", "inflection");
makeSingleCollapsible("သမ္ဗန္ဓ", "inflection");
makeSingleCollapsible("လဟီု");
makeSingleCollapsible("ဝေါဟာတၟုပ်");
makeSingleCollapsible("ဝေါဟာဒစး");
makeSingleCollapsible("ဝေါဟာလွာ");
makeSingleCollapsible("ဆက်လ္ၚတ်");
makeSingleCollapsible("Meronyms", "meronyms");
makeSingleCollapsible("Holonyms", "holonyms");
makeSingleCollapsible("Troponyms", "troponyms");
makeSingleCollapsible("Coordinate terms", "coordinate terms");
makeSingleCollapsible("Derived terms", "derived terms");
makeSingleCollapsible("Compounds", "derived terms");
makeSingleCollapsible("Related terms", "related terms");
makeSingleCollapsible("Collocations", "collocations");
makeSingleCollapsible("မဒုၚ်လွဳစ");
makeSingleCollapsible("Trivia", "trivia");
makeSingleCollapsible("ဗဵုရံၚ်တဏအ်ညိ", "related terms");
makeSingleCollapsible("နိဿဲ");
makeSingleCollapsible("နိဿဲမဍိုက်ပေၚ်");
makeSingleCollapsible("Anagrams", "anagrams");
moveAnagrams();
addGaps();
}
function openNavFrameForElementWithId(targetId) {
const navFrameTarget = navFramesById[targetId];
if (navFrameTarget)
openNavFrame(navFrameTarget);
// if what we targeted is inside a navframe, open it too
const targetElement = document.getElementById(targetId);
if (targetElement && targetElement.closest) {
const navFrameContainingTarget = targetElement.closest(".NavFrame-streamline");
if (navFrameContainingTarget)
openNavFrame(navFrameContainingTarget);
}
}
const { collapseElements, runInReconstructions } = preferences;
// only run in content namespaces.
// this must also run on 4 in [[MediaWiki:Gadgets-definition]] so that [[WT:GPREFS]] works.
if (mw.config.get("wgNamespaceNumber") === 0 || (runInReconstructions && mw.config.get("wgNamespaceNumber") === 118)) {
mw.hook("wikipage.content").add(() => {
try {
defaultStreamline();
if (collapseElements !== "aboveDefinitions")
superStreamline();
// refocus URL target in case the page layout changed, which it probably did
// also open a navframe if targeted
window.requestAnimationFrame(() => {
if (window.location.hash && window.location.hash.match(/^#/)) {
const targetId = window.location.hash.replace(/^#/, "");
const targetElement = document.getElementById(targetId);
if (targetElement)
targetElement.scrollIntoView();
openNavFrameForElementWithId(targetId);
}
});
// open a navframe if an internal link targets a section
window.addEventListener("hashchange", () => {
if (window.location.hash) {
const targetId = window.location.hash.replace(/^#/, "");
openNavFrameForElementWithId(targetId);
}
});
} catch (e) {
console.error(e);
}
});
}
// </nowiki>
e7kswdun8qxomnv4se7jr9k1dpgozch
မဳဒဳယာဝဳကဳ:Gadget-Streamline.js/documentation
8
296832
399046
2026-07-17T14:57:27Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation needed}}<!-- Replace this with a short description of the purpose of the gadget, and how to use it. --> <includeonly> [[ကဏ္ဍ:ဂေက်ဂျေက်ဝိတ်ရှေန်နရဳဂမၠိုၚ်]] <!-- add a category of your choice --> </includeonly>"
399046
wikitext
text/x-wiki
{{documentation needed}}<!-- Replace this with a short description of the purpose of the gadget, and how to use it. -->
<includeonly>
[[ကဏ္ဍ:ဂေက်ဂျေက်ဝိတ်ရှေန်နရဳဂမၠိုၚ်]]
<!-- add a category of your choice -->
</includeonly>
lt99gvov239xdbsxgyk20c9mzudh680
မဳဒဳယာဝဳကဳ:Gadget-minitoc.js
8
296833
399047
2026-07-17T15:49:52Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "// <nowiki> // Initialize preferred languages from local storage. let preferredLanguages = new Set(JSON.parse(localStorage.getItem("minitocLangs"))); // Empty and filled-in bookmark icons. const unselectedIcon = `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="18" height="17" viewBox="0 0 20 20" aria-hidden="true" fill="currentColor"><g><path d="M5 1a2 2 0 00-2 2v16l7-5 7 5V3..."
399047
javascript
text/javascript
// <nowiki>
// Initialize preferred languages from local storage.
let preferredLanguages = new Set(JSON.parse(localStorage.getItem("minitocLangs")));
// Empty and filled-in bookmark icons.
const unselectedIcon = `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="18" height="17" viewBox="0 0 20 20" aria-hidden="true" fill="currentColor"><g><path d="M5 1a2 2 0 00-2 2v16l7-5 7 5V3a2 2 0 00-2-2zm10 14.25-5-3.5-5 3.5V3h10z"></path></g></svg>`;
const selectedIcon = `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="18" height="17" viewBox="0 0 20 20" aria-hidden="true" fill="currentColor"><g><path d="M5 1a2 2 0 00-2 2v16l7-5 7 5V3a2 2 0 00-2-2z"></path></g></svg>`;
mw.util.addCSS(`
.minitoc-icon-selected, .minitoc-icon-unselected {
cursor: pointer;
vertical-align: sub;
}
`);
function displayLanguages() {
// Clear out previously displayed languages.
document.querySelectorAll(".minitoc-linked-languages").forEach(elem => elem.remove());
for (let minitoc of document.querySelectorAll(".minitoc")) {
let linkedLanguages = document.createElement("span");
linkedLanguages.className = "minitoc-linked-languages";
for (let languageLink of minitoc.querySelectorAll(`.NavContent > a:not([href="#catlinks"]`)) {
if (preferredLanguages.has(languageLink.textContent)) {
let link = document.createElement("a");
link.textContent = `→ ${languageLink.textContent}`;
link.href = languageLink.href;
link.style.whiteSpace = "nowrap";
linkedLanguages.append(" ", link);
}
}
if (linkedLanguages.childElementCount)
minitoc.querySelector(".NavHead").append(linkedLanguages);
}
}
// Setup.
// Note: the code is generic and can handle multiple miniTOCs on one page, although this probably isn't necessary.
for (let minitoc of document.querySelectorAll(".minitoc")) {
minitoc.querySelector(".NavContent").insertAdjacentHTML("beforeend",
`<span style="font-size: 85%" class="minitoc-button-container">
 
[<a class="minitoc-button-select" role="button">
Select preferred languages
</a>]
<span style="display: none">
 
[<a class="minitoc-button-clear" role="button">
Clear all
</a>]
</span>
</span>`
.replace(/[\n\t]/g, "")
);
let selectButton = minitoc.querySelector(".minitoc-button-select");
let clearButton = minitoc.querySelector(".minitoc-button-clear");
selectButton.addEventListener("click", () => {
// The button can be in two states: "select" and "save".
if (selectButton.textContent === "မရုဲကေတ်အရေဝ်ဘာသာမနွံပၟိက်ဂမၠိုၚ်") {
clearButton.parentElement.style.display = "";
// Make sure you can't have multiple miniTOCs in "select" mode simultaneously.
for (let button of document.querySelectorAll(".minitoc-button-select")) {
if (button.textContent === "မဂိုၚ်ထောံအရေဝ်ဘာသာမနွံပၟိက်ဂမၠိုၚ်") {
// Trigger the saving procedure.
button.click();
}
}
selectButton.textContent = "မဂိုၚ်ထောံအရေဝ်ဘာသာမနွံပၟိက်ဂမၠိုၚ်";
for (let languageLink of minitoc.querySelectorAll(`.NavContent > a:not([href="#catlinks"]`)) {
let iconContainer = document.createElement("span");
iconContainer.role = "button";
languageLink.insertAdjacentElement("beforebegin", iconContainer);
if (preferredLanguages.has(languageLink.textContent)) {
iconContainer.className = "minitoc-icon-selected";
iconContainer.innerHTML = selectedIcon;
} else {
iconContainer.className = "minitoc-icon-unselected";
iconContainer.innerHTML = unselectedIcon;
}
iconContainer.addEventListener("click", () => {
if (preferredLanguages.has(languageLink.textContent)) {
preferredLanguages.delete(languageLink.textContent);
iconContainer.className = "minitoc-icon-unselected";
iconContainer.innerHTML = unselectedIcon;
} else {
preferredLanguages.add(languageLink.textContent);
iconContainer.className = "minitoc-icon-selected";
iconContainer.innerHTML = selectedIcon;
}
});
}
} else {
// Save to local storage.
localStorage.setItem("minitocLangs", JSON.stringify(Array.from(preferredLanguages)));
// Reset state.
minitoc.querySelectorAll(".minitoc-icon-selected, .minitoc-icon-unselected").forEach(elem => elem.remove());
selectButton.textContent = "မရုဲကေတ်အရေဝ်ဘာသာမနွံပၟိက်ဂမၠိုၚ်";
clearButton.parentElement.style.display = "none";
displayLanguages();
}
});
clearButton.addEventListener("click", () => {
preferredLanguages.clear();
for (let iconContainer of minitoc.querySelectorAll(".minitoc-icon-selected")) {
iconContainer.innerHTML = unselectedIcon;
iconContainer.className = "minitoc-icon-unselected";
}
});
}
displayLanguages();
// </nowiki>
s91mhnoc1by1jgygbq32gb2itv71nql
မဳဒဳယာဝဳကဳ:Gadget-CategoryJumpTo.js
8
296834
399048
2026-07-17T15:56:03Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "// <nowiki> /* jshint maxerr:1048576, strict:true, undef:true, latedef:true, esversion:6 */ /* global $, mw, OO */ /** * Adds a jump box to category pages. * * Author(s): Surjection * Last updated: 2024-12-19 */ const mwApi = new mw.Api({ ajax: { headers: { "Api-User-Agent": "CategoryJumpTo gadget by [[User:Surjection]]" } } }); const strings = { "en": { wiktLangCode: "mnw", jumpToPage: "Jump to page",..."
399048
javascript
text/javascript
// <nowiki>
/* jshint maxerr:1048576, strict:true, undef:true, latedef:true, esversion:6 */
/* global $, mw, OO */
/**
* Adds a jump box to category pages.
*
* Author(s): Surjection
* Last updated: 2024-12-19
*/
const mwApi = new mw.Api({ ajax: { headers: { "Api-User-Agent": "CategoryJumpTo gadget by [[User:Surjection]]" } } });
const strings = {
"en": {
wiktLangCode: "mnw",
jumpToPage: "Jump to page",
jump: "Jump",
jumpError: "There was an error while jumping. If this reoccurs, please report it on $1.",
greasePit: "the Grease Pit",
}
};
const NS_PROJECT = 4;
const GREASE_PIT_NAME = "Grease pit";
const userLanguage = mw.config.get("wgUserLanguage");
const REQUIRE_TOC = false;
const REQUIRE_CATEGORY_PAGING = true;
const resolveString = (strings, stringKey, defaultValue) => {
try {
if (defaultValue == null && stringKey)
defaultValue = stringKey;
if (strings == null)
return defaultValue;
// try to use user language first
if (strings[userLanguage] != null) {
if (stringKey == null)
return strings[userLanguage];
else if (strings[userLanguage][stringKey] != null)
return strings[userLanguage][stringKey];
}
// fall back to en
if (strings.en != null) {
if (stringKey == null)
return strings.en;
else if (strings.en[stringKey] != null)
return strings.en[stringKey];
}
return defaultValue;
} catch (_) {
// invalid strings object, etc.
return defaultValue;
}
};
const createSearchBox = (jumpCallback) => {
const outerDiv = $('<div>');
outerDiv.attr("style", "display: inline-block; margin-top: 0.5em; border: solid 1px var(--border-color-base, gray); border-collapse: collapse;");
const table = $('<table>');
outerDiv.append(table);
const body = $('<div class="center"></div>');
table.append(body.wrap('<td></td>').parent().wrap('<tr></tr>').parent().wrap('<tbody></tbody>').parent());
const MAX_LENGTH = 256;
const textInput = new OO.ui.TextInputWidget({ value: "", maxLength: MAX_LENGTH });
const jumpButton = new OO.ui.ButtonWidget({ label: resolveString(strings, "jumpToPage", "Jump to page") });
const submit = () => {
textInput.setDisabled(true);
jumpCallback(textInput.getValue().slice(0, MAX_LENGTH)).finally(() => {
textInput.setDisabled(false);
});
};
textInput.on("enter", () => submit());
jumpButton.on("click", () => submit());
const fieldset = new OO.ui.FieldsetLayout({
items: [
new OO.ui.ActionFieldLayout(textInput, jumpButton)
]
});
body.append(fieldset.$element);
return outerDiv;
};
const htmlUnescape = (text) => new DOMParser().parseFromString(text, "text/html").body.textContent;
const getSortKey = (languageCode, text) =>
new Promise((resolve, reject) => {
const escapedText = text.replace(/[\x00-\x1F\x21-\x2F\x3A-\x40\x5B-\x60\x7B-\x7F]/g, (m) => `&#${m.charCodeAt(0)};`);
const wikitext = `{{sortkey|${languageCode}|${escapedText}}}`;
const params = {
action: "expandtemplates",
format: "json",
prop: "wikitext",
text: wikitext
};
mwApi.post(params).then(response => {
resolve(htmlUnescape(response.expandtemplates.wikitext));
}).catch((e) => {
reject(e);
});
});
const addJumpBox = () => {
const catfix = $(".catfix");
if (!catfix.length) return;
let languageCode = catfix.find("span[lang]");
if (!languageCode.length) return;
languageCode = languageCode.attr("lang");
// do not display if there are no pages
if (!$("#mw-pages").length) return;
const toc = $("#toc");
if (REQUIRE_TOC && !toc.length) return;
if (REQUIRE_CATEGORY_PAGING && !$('#mw-pages a[href*="pagefrom="], #mw-pages a[href*="pageuntil="]').length) return;
const searchBox = createSearchBox((string) =>
new Promise((resolve, reject) => {
getSortKey(languageCode, string).then((sortKey) => {
const url = new URL(window.location.href);
url.searchParams.delete("pagefrom");
url.searchParams.set("from", sortKey);
resolve();
window.location.href = url.href;
}).catch(() => {
const greasePitUrl = new mw.Title(GREASE_PIT_NAME, NS_PROJECT).getUrl();
const greasePitLink = $("<a>").attr("href", greasePitUrl).text(resolveString(strings, "greasePit"));
const errorMessage = $("<span>").text(resolveString(strings, "jumpError"));
errorMessage.html(errorMessage.html().replace('\$1', greasePitLink[0].outerHTML));
mw.notification.notify(errorMessage, { "type": "error" });
reject();
});
})
);
const target = toc.length ? toc : catfix;
searchBox.wrap("<div>").parent().insertBefore(target.first());
};
addJumpBox();
// </nowiki>
ffrxaykl2p48ht3vx3z61e9gzlsdg06
မဳဒဳယာဝဳကဳ:Gadget-Anchor.js
8
296835
399049
2026-07-17T16:01:06Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "// <nowiki> // Preferences ([[MediaWiki:Gadget-WiktGadgetPrefs.js]]) const pref = mw.wiktGadgetPrefs.get("gadget-anchor", {"label": {"mnw": "Anchor"}}, { "linkType": { "type": "strenum", "default": "fullUrl", "label": {"mnw": "How the link should be copied"}, "choices": ["fullUrl", "wikilink", "ထာမ်ပလိက်"], "choiceLabels": { "mnw": { "fullUrl": "Full URL (e.g. https://mnw.w..."
399049
javascript
text/javascript
// <nowiki>
// Preferences ([[MediaWiki:Gadget-WiktGadgetPrefs.js]])
const pref = mw.wiktGadgetPrefs.get("gadget-anchor", {"label": {"mnw": "Anchor"}},
{
"linkType": {
"type": "strenum",
"default": "fullUrl",
"label": {"mnw": "How the link should be copied"},
"choices": ["fullUrl", "wikilink", "ထာမ်ပလိက်"],
"choiceLabels": {
"mnw": {
"fullUrl": "Full URL (e.g. https://mnw.wiktionary.org/wiki/သာဲ#မန်)",
"wikilink": "Wikilink (e.g. [[သာဲ#မန်]])",
"ထာမ်ပလိက်": "Using {{section link}} (e.g. {{section link|သာဲ#မန်}})"
}
}
}
}
);
const linkType = pref.linkType;
const linkIcon = `<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="currentColor"><g><path d="M4.83 15h2.91a4.9 4.9 0 01-1.55-2H5a3 3 0 110-6h3a3 3 0 012.82 4h2.1a5 5 0 00.08-.83v-.34A4.83 4.83 0 008.17 5H4.83A4.83 4.83 0 000 9.83v.34A4.83 4.83 0 004.83 15"></path><path d="M15.17 5h-2.91a4.9 4.9 0 011.55 2H15a3 3 0 110 6h-3a3 3 0 01-2.82-4h-2.1a5 5 0 00-.08.83v.34A4.83 4.83 0 0011.83 15h3.34A4.83 4.83 0 0020 10.17v-.34A4.83 4.83 0 0015.17 5"></path></g></svg>`;
mw.util.addCSS(`
.wikt-header-anchor {
color: var(--wikt-palette-darkgrey) !important;
}
body:not(.skin-minerva) .mw-heading {
position: relative;
}
body:not(.skin-minerva) .wikt-header-anchor {
position: absolute;
right: 0;
opacity: 0;
transition: opacity 0.15s ease;
}
body:not(.skin-minerva) .mw-heading:hover > .wikt-header-anchor {
opacity: 1;
}
body.skin-minerva .wikt-header-anchor > svg {
vertical-align: middle;
}
`);
const elem = s => document.createRange().createContextualFragment(s).firstChild; // helper
for (let header of document.querySelectorAll(".mw-heading:not(.ext-discussiontools-init-section) > :is(h1, h2, h3, h4, h5, h6)")) {
let linkElem = elem(`<a class="wikt-header-anchor" role="button">${linkIcon}</a>`);
linkElem.addEventListener("click", event => {
event.preventDefault();
let copied = `https://mnw.wiktionary.org/wiki/${mw.config.values.wgPageName}#${header.id}`; // fullUrl
if (linkType === "wikilink") {
copied = `[[${mw.config.values.wgPageName}#${header.id}]]`.replaceAll("_", " ");
} else if (linkType === "ထာမ်ပလိက်") {
copied = `{{section link|${mw.config.values.wgPageName}#${header.id}}}`.replaceAll("_", " ");
}
navigator.clipboard.writeText(copied)
.then(() => mw.notify("Section link copied to clipboard."))
.catch(err => mw.notify("An error occurred while copying section link:\n", err.stack));
});
if (document.body.matches(".skin-minerva")) {
// add classes to make it look the same as the edit button
linkElem.classList.add("cdx-button", "cdx-button--size-large", "cdx-button--fake-button", "cdx-button--fake-button--enabled", "cdx-button--icon-only", "cdx-button--weight-quiet");
header.parentElement.querySelector(".mw-editsection").prepend(linkElem);
} else {
header.after(linkElem);
}
}
// </nowiki>
b9o1nmjg5od7r4dnu10bhmlz94zvlxm
မဳဒဳယာဝဳကဳ:Gadget-VetVoters.js
8
296836
399050
2026-07-17T16:13:01Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "const EDIT_COUNT_AT_LEAST = 500; // note: above 500 would require multiple api requests const FIRST_EDIT_PREDATES_VOTE_BY = 30; // days const ELIGIBLE_NAMESPACES = "0|100|106|110|114|118"; const IPV4_REGEX = /^(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,2})?$/; const IPV6_REGEX = /^[\da-f:]+(?:\/\d{1,3})?$/i; const TEMP_ACCT_REGEX = /^~[0-9]{4}(?:-[0-9]{1,5})+/; const USER_LINK_PATTERNS = { '.mw-body-content [href^="//mnw.wikti..."
399050
javascript
text/javascript
const EDIT_COUNT_AT_LEAST = 500; // note: above 500 would require multiple api requests
const FIRST_EDIT_PREDATES_VOTE_BY = 30; // days
const ELIGIBLE_NAMESPACES = "0|100|106|110|114|118";
const IPV4_REGEX = /^(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,2})?$/;
const IPV6_REGEX = /^[\da-f:]+(?:\/\d{1,3})?$/i;
const TEMP_ACCT_REGEX = /^~[0-9]{4}(?:-[0-9]{1,5})+/;
const USER_LINK_PATTERNS = {
'.mw-body-content [href^="//mnw.wiktionary.org/wiki/ညးလွပ်:"]': (title) =>
title.replace(/^ညးလွပ်:/, ""),
'.new[href^="//mnw.wiktionary.org/w/index.php?title=ညးလွပ်:"]': (title) =>
title.replace(/^ညးလွပ်:/, "").replace(/ \(page does not exist\)$/, ""),
};
const API_HEADERS = {
"Api-User-Agent": "Vet Voters (gadget developed by [[User:Ioaxxere]])",
};
const actionAPI = new mw.Api({ ajax: { headers: API_HEADERS } });
const restAPI = new mw.Rest({ ajax: { headers: API_HEADERS } });
/**
* Guesses when the vote started
* @param {Document} doc the document
* @returns {Date | null}
*/
function voteStart(doc) {
let endDate = new Date(NaN);
let dateMatch = doc
.querySelector(".mw-parser-output")
.textContent.match(
/Vote start(?:s|ed):.*?([0-9]{2}:[0-9]{2}), ([0-9]+ \w+ [0-9]{4})/,
);
if (dateMatch) {
endDate = new Date(`${dateMatch[2]} ${dateMatch[1]} UTC`);
if (!isNaN(endDate)) return endDate;
}
// If parsing fails here, just check the title.
// Votes typically contain the date string in the title (e.g. 2026-04).
// Conservatively assume the 1st of the month (catch false positives, avoid false negatives)
let titleMatch = mw.config.values.wgTitle.match(/[0-9]{4}-[0-9]{2}/);
if (titleMatch) {
endDate = new Date(`${titleMatch[0]}-01`);
if (!isNaN(endDate)) return endDate;
}
return null;
}
let alreadyAddedCss = false;
/**
* Adds a class to an HTML element for the user, which highlights them as being ineligible to vote
* @param {HTMLAnchorElement} elem
* @returns {void}
*/
function highlightIneligible(elem) {
if (!alreadyAddedCss) {
mw.util.addCSS(`
.ineligible-voter {
text-decoration: var(--wikt-palette-darkred) wavy underline 0.15em !important;
}
.ineligible-voter:hover::after {
content: " User is ineligible to vote!";
font-size: 0.8em;
color: var(--wikt-palette-darkred);
text-decoration: none;
font-family: sans-serif;
}
`);
alreadyAddedCss = true;
}
elem.classList.add("ineligible-voter");
}
/**
* Finds a user's current username
* @param {string} username
* @returns {string} the current username
*/
async function resolveRenames(username) {
while (true) {
let resp = await actionAPI.post({
action: "query",
format: "json",
list: "logevents",
letype: "renameuser",
letitle: `ညးလွပ်:${username}`,
lelimit: 1,
});
let entries = resp.query.logevents;
if (!entries.length) break;
let newuser = entries[0].params.newuser;
if (newuser.endsWith("(usurped)")) break; // hacky but ok
username = newuser;
}
return username;
}
/**
* Returns true if the given user can vote, otherwise false
* @param {string} username a user or anon user
* @param {Date} endDate when the vote ends
* @returns boolean
*/
async function verifyUser(username, endDate) {
if (userIsAnon(username)) return false; // anons can never vote
username = await resolveRenames(username);
const earliestEditPredates = new Date(endDate);
earliestEditPredates.setDate(
earliestEditPredates.getDate() - FIRST_EDIT_PREDATES_VOTE_BY,
);
// This API call already excludes transwiki contributions.
const resp1 = await actionAPI.post({
action: "query",
format: "json",
list: "usercontribs",
ucuser: username,
uclimit: EDIT_COUNT_AT_LEAST,
ucnamespace: ELIGIBLE_NAMESPACES,
ucdir: "newer",
});
const contribs = resp1.query.usercontribs;
let total = contribs.length;
let oldest = contribs[0] ? new Date(contribs[0].timestamp) : null;
if (total >= EDIT_COUNT_AT_LEAST && oldest <= earliestEditPredates)
return true;
const resp2 = await actionAPI.post({
action: "query",
format: "json",
list: "alldeletedrevisions",
adrlimit: EDIT_COUNT_AT_LEAST,
adruser: username,
adrnamespace: ELIGIBLE_NAMESPACES,
adrdir: "newer",
});
const deleted = resp2.query.alldeletedrevisions;
total += deleted.length;
if (deleted[0]) {
let deletedOldest = new Date(deleted[0].timestamp);
oldest = oldest
? new Date(Math.min(oldest.getTime(), deletedOldest.getTime()))
: deletedOldest;
}
return total >= EDIT_COUNT_AT_LEAST && oldest && oldest <= earliestEditPredates;
}
/**
* Returns true if cidr is undefined or in range [0, maxBits].
* @param {string|undefined} cidr
* @param {number} maxBits
* @returns {boolean}
*/
function isValidCidr(cidr, maxBits) {
if (cidr === undefined) return true;
let cidrNum = Number(cidr);
return Number.isInteger(cidrNum) && cidrNum >= 0 && cidrNum <= maxBits;
}
/**
* Validates IPv4 with optional CIDR suffix.
* @param {string} candidate
* @returns {boolean}
*/
function isValidIPv4(candidate) {
if (!IPV4_REGEX.test(candidate)) return false;
let [addr, cidr] = candidate.split("/");
let octets = addr.split(".").map(Number);
let ipv4Valid =
octets.length === 4 &&
octets.every((n) => Number.isInteger(n) && n >= 0 && n <= 255);
return ipv4Valid && isValidCidr(cidr, 32);
}
/**
* Validates IPv6 (full or compressed) with optional CIDR suffix.
* @param {string} candidate
* @returns {boolean}
*/
function isValidIPv6(candidate) {
if (!IPV6_REGEX.test(candidate) || !candidate.includes(":")) return false;
let [addr, cidr] = candidate.split("/");
if (!isValidCidr(cidr, 128)) return false;
if (addr.includes(":::")) return false;
if (addr.includes("::")) {
if ((addr.match(/::/g) || []).length > 1) return false;
let [left, right] = addr.split("::");
let leftParts = left ? left.split(":").filter(Boolean) : [];
let rightParts = right ? right.split(":").filter(Boolean) : [];
let hextets = leftParts.length + rightParts.length;
let validParts = [...leftParts, ...rightParts].every((part) =>
/^[\da-f]{1,4}$/i.test(part),
);
return validParts && hextets < 8;
}
let parts = addr.split(":");
return parts.length === 8 && parts.every((part) => /^[\da-f]{1,4}$/i.test(part));
}
/**
* Checks if a user is an IP/anon user, returning true if they are
* @param {string} user
* @returns {bool}
*/
function userIsAnon(user) {
const normalized = user.trim();
if (TEMP_ACCT_REGEX.test(normalized)) return true;
return isValidIPv4(normalized) || isValidIPv6(normalized);
}
// only fire on votes pages
let pageName = mw.config.values.wgPageName;
if (
pageName.startsWith("ဝိက်ရှေန်နရဳ:ဆန္ဒမာဲဂမၠိုၚ်/") ||
pageName.startsWith("ဝိက်ရှေန်နရဳ_ဓရီုကျာ:ဆန္ဒမာဲဂမၠိုၚ်/")
) {
(async () => {
// Step 1: find out when the vote ends
let endDate;
if (pageName.startsWith("ဝိက်ရှေန်နရဳ_ဓရီုကျာ:")) {
let mainTitle = pageName.replace(/^ဝိက်ရှေန်နရဳ_ဓရီုကျာ:/, "ဝိက်ရှေန်နရဳ:");
let mainPageResp = await restAPI.get(
`/v1/page/${mnwcodeURIComponent(mainTitle)}/html`,
);
let mainPageDoc = new DOMParser().parseFromString(
mainPageResp,
"text/html",
);
endDate = voteStart(mainPageDoc);
} else {
endDate = voteStart(document);
}
if (!(endDate instanceof Date) || isNaN(endDate)) {
console.warn(
"[vetvoters] Could not parse vote start date; skipping eligibility checks.",
);
return;
}
// Step 2: collect user elements, including anons
let userlinks = new Map(); // linkElem [HTMLElement] -> acctName [string]
Object.entries(USER_LINK_PATTERNS).forEach(([selector, normalize]) => {
document
.querySelectorAll(selector)
.forEach((link) => userlinks.set(link, normalize(link.title)));
});
for (let link of document.querySelectorAll(
`.mw-body-content [href^="//mnw.wiktionary.org/wiki/Special:Contributions/"]`,
)) {
let acct = link.title.replace(/^Special:Contributions\//, "");
if (!userIsAnon(acct)) continue;
userlinks.set(link, acct);
}
let usernames = [...new Set(userlinks.values())];
let queries = usernames.map(async (user) => {
try {
return [user, await verifyUser(user, endDate)];
} catch (err) {
console.warn(
`[vetvoters] Failed to verify ${user}; treating as eligible.`,
err,
);
return [user, true];
}
});
let userIsEligible = new Map(await Promise.all(queries));
for (let [elem, user] of userlinks) {
if (userIsEligible.get(user) === false) highlightIneligible(elem);
}
})();
}
a576h679vddv1j8sc5sz21lcfzte31g
မဳဒဳယာဝဳကဳ:Gadget-RhymesAdder.js
8
296837
399051
2026-07-17T16:27:27Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "/* {{documentation}}<nowiki> Dependencies: ext.gadget.Editor,ext.gadget.LanguageUtils,mediawiki.util,mediawiki.Uri To do: * Make less ugly * Ability to remove/edit rhymes * Put rhyme template at the bottom of pronunciation section? * Add qualifier button */ /*jshint maxerr:1048576, strict:true, undef:true, latedef:true, es5:true */ /*global mw, WikiXml, importScript, importScriptURI, $ */ var numberOfRhymesAdded..."
399051
javascript
text/javascript
/* {{documentation}}<nowiki>
Dependencies: ext.gadget.Editor,ext.gadget.LanguageUtils,mediawiki.util,mediawiki.Uri
To do:
* Make less ugly
* Ability to remove/edit rhymes
* Put rhyme template at the bottom of pronunciation section?
* Add qualifier button
*/
/*jshint maxerr:1048576, strict:true, undef:true, latedef:true, es5:true */
/*global mw, WikiXml, importScript, importScriptURI, $ */
var numberOfRhymesAdded = 0;
// Derived from [[User:Erutuon/scripts/templateParser.js]].
function parseTemplate(templateText) {
var parameters = new Object(null),
parameterRegex = /\|(?:([^=|}]+)=([^|}]+)|([^|}]+))/g,
template = new Object(null);
template.parameters = parameters;
var match,
index = 1,
name = templateText.match(/^{{([^|}]+)/);
if (name === null)
throw new Error("Invalid template: no name.");
template.name = name[1];
while ((match = parameterRegex.exec(templateText)) !== null) {
if (match[1]) {
parameters[match[1]] = match[2];
} else {
parameters[index++] = match[3];
}
}
return template;
}
var monCardinalNumerals = [null,
'မွဲ', 'ၜါ', 'ပိ', 'ပန်', 'မသုန်',
'တရဴ', 'ထပှ်', 'ဒ္စာံ', 'ဒ္စိတ်', 'စှ်',
'စှ်မွဲ', 'စှ်ၜါ', 'စှ်ပိ', 'စှ်ပန်', 'စှ်သုန်',
'စှ်စှ်တရဴ', 'စှ်ထပှ်', 'စှ်ဒ္စာံ', 'စှ်ဒ္စိတ်', 'ၜါစှော်'
];
function extractNumberOfSyllables(h3text) {
var m = h3text.match(/(\S+) syllables?/);
if (!m) return null;
var word = m[1];
var index = monCardinalNumerals.indexOf(word.toLowerCase());
return index > 0 ? index : null;
}
function hasRhymeTemplate(wikitext, languageCode, rhyme) {
// [[Template:rhyme]] redirects to [[Template:rhymes]].
// Simple regex is sufficient because there are no cases of {{rhymes}} with
// nested templates in the dump. (FIXME: Could change in the future.)
var match, rhymeTemplate = /{{rhymes?\|.+?}}/g;
while ((match = rhymeTemplate.exec(wikitext)) !== null) {
var template = parseTemplate(match[0]);
var templateLanguageCode = template.parameters.lang || template.parameters[1];
if (templateLanguageCode == languageCode) {
for (var i = template.parameters.lang ? 1 : 2; template.parameters[i]; ++i) {
if (template.parameters[i].trim() === rhyme)
return true;
}
}
}
return false;
}
function setUpRhymeAdderFor(h3, div) {
var findNumberOfHeaders = parseInt(new URL(h3.find("a").get(0).href).searchParams.get("section"));
var addNewRhymeForm;
var syllableCount = extractNumberOfSyllables(h3.text());
var syllableArg = syllableCount ? "|s=" + syllableCount : "";
editor = new Editor();
new AdderWrapper(editor, {
'createForm': function() {
return addNewRhymeForm =
$('<form>')
.append(
$('<label>+ဗပေၚ်စုတ်ကာရန်တၟိ: </label>')
.append($('<input>').attr("name", 'rhyme'))
)
.append($('<input>').attr('type', 'submit').val('Add'))[0];
},
'fields': {
'rhyme': function(txt, error) {
return txt || error('Please specify a rhyme.');
}
},
'onsubmit': function(values, render) {
var langname = mw.config.get("wgTitle").split('/')[0];
var lutils = new LanguageUtilsAsync();
lutils.GetWiktionaryCodeByCanonicalName(langname).then(function(langcode) {
$(addNewRhymeForm).find('input')[0].value = "";
var newItem = '{{l|' + langcode + '|' + values.rhyme + '}}';
render(newItem, function(newhtml) {
var addedRhymeNode = $("<li>").html(newhtml),
collator = window.Intl && new Intl.Collator( langcode, { "case": false } ),
sortFunction = collator ?
collator.compare :
function compare( a, b ) {
return a.toUpperCase() < b.toUpperCase() ? -1 : 1;
};
editor.addEdit({
'edit': function(wikitext) {
var wikixml = WikiXml.parseWikitext(wikitext);
var hdr = $(wikixml.find("section").get(findNumberOfHeaders - 1));
var headerData = hdr.find("data").get(0).textContent;
var rhymelistbegin_match = headerData.match(/{{(?:rhyme-top|rhyme list begin)\|?[0-9]?}}/);
var rhymelistbegin_index = rhymelistbegin_match.index + rhymelistbegin_match[0].length;
var rhymelistend_match = headerData.match(/{{(?:rhyme-bottom|rhyme list end)}}/);
var rhymelistend_index = rhymelistend_match.index;
var rhymesPrefix = headerData.substring(0, rhymelistbegin_index);
var rhymes = headerData.substring(rhymelistbegin_index, rhymelistend_index).trim().split(/\r?\n/);
var rhymesSuffix = headerData.substring(rhymelistend_index);
rhymes.push("* " + newItem);
var canRearrange = true;
var sortableLines = rhymes.map(function(line) {
var m;
m = line.match(/^\* ?{{l\|[a-zA-Z]{2,3}\|(.+)$/);
if (m && m[1]) return [m[1], line];
m = line.match(/^\* ?\[\[(.+)$/);
if (m && m[1]) return [m[1], line];
canRearrange = false;
return null;
});
console.trace("canRearrange is " + canRearrange);
if (canRearrange) {
sortableLines.sort( function(a,b) { return sortFunction(a[0], b[0]);} );
rhymes = sortableLines.map(function(sortableLine) {
var match = sortableLine[1].match(/^\* ?\[\[(.+)]\]$/);
if (match && match[1]) return "* {{l|" + langcode + "|" + match[1] + "}}";
else return sortableLine[1];
});
}
$(hdr.find("data").get(0)).text(rhymesPrefix + "\n" + rhymes.join("\n") + "\n" + rhymesSuffix);
return WikiXml.toWikitext(wikixml);
},
'redo': function() {
div.find("ul").append(addedRhymeNode);
div.find("li").sort(function(a, b) {
return sortFunction( $(a).text(), $(b).text() );
}).appendTo(div.find("ul"));
},
'undo': function() {
addedRhymeNode.remove();
},
'summary': "+rhyme [[" + values.rhyme + "]]",
'after_save': function() {
numberOfRhymesAdded++;
document.body.style.cursor = 'wait';
new mw.Api().edit(values.rhyme, function(text) {
text = text.content;
var rhymehome = mw.config.get("wgTitle").split("/")[1];
if (hasRhymeTemplate(text, langcode, rhymehome)) {
document.body.style.cursor = --numberOfRhymesAdded ? 'wait' : '';
return $.Deferred().reject('rhyme already on page');
}
if (text.match('==' + langname + '==') && !text.match("\\{\\{rhymes?(\\|" + langcode + "\\|" + mw.util.escapeRegExp(rhymehome) + "|\\|" + mw.util.escapeRegExp(rhymehome) + "\\|" + langcode + "|\\|" + mw.util.escapeRegExp(rhymehome) + ")\\}\\}")) {
// If the current L2 section does not contain a pronunciation section, create the header.
if (!String(text.match("==" + langname + "==[\\s\\S]*?(\n==[^=]|$)")).match("=ဗွဟ်ရမ္သာၚ်=")) {
text = text.replace(RegExp("(==" + langname + "==[\\s\\S]*?(?=\n=+(?=[^=])(?!(Etymology=|Alternative))))"), "$1\n===ဗွဟ်ရမ္သာၚ်===\n");
}
// Add the rhymes template under the pronunciation header.
text = text.replace(
RegExp('(==' + langname + '==[\\s\\S]*?=+ဗွဟ်ရမ္သာၚ်=+[\\s\\S]*?\n(?![\:\*]))'),
'$1* {{rhymes|' + langcode + "|" + rhymehome + syllableArg + '}}\n'
);
}
if (text) return {
text: text,
summary: "+rhyme [[" + mw.config.get("wgPageName") + "|" + "-" + rhymehome + "]]"
};
else {
document.body.style.cursor = --numberOfRhymesAdded ? 'wait' : '';
return $.Deferred().reject('problem text is false');
}
}).then(function() {
document.body.style.cursor = --numberOfRhymesAdded ? 'wait' : '';
});
}
}, addedRhymeNode[ 0 ]);
});
});
}
}, h3.parent()[0], div[0]);
}
function setUpRhymeAdder() {
$(".rhymes-list-begin").each(function() {
var div = $(this);
if (div.prev().text().indexOf("syllable") != -1) {
try {
setUpRhymeAdderFor(div.prev(), $(this));
} catch (e) {
console.log(e);
}
}
});
}
if (mw.config.get('wgNamespaceNumber') === 106 && mw.config.get("wgAction") == "view")
$.getScript("//en.wiktionary.org/w/index.php?title=User:Dixtosa/XMLize.js&action=raw", function() {
$(setUpRhymeAdder);
});
// </nowiki>
pg62s5lek1ch5wop03agn69njszm18y
မဳဒဳယာဝဳကဳ:Gadget-PatrollingEnhancements.js
8
296838
399052
2026-07-17T16:29:20Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "// {{documentation}} // ******** imported from [[MediaWiki:Gadget-LegacyScriptsNewNode.js]] ******** var newNode = window.newNode = function newNode(tagname) { var node = document.createElement(tagname); for (var i = 1; i < arguments.length; i++) { var argument = arguments[i]; if (typeof argument == 'string') { //Text node.appendChild(document.createTextNode(argument)); } else if (typeof argument == 'obje..."
399052
javascript
text/javascript
// {{documentation}}
// ******** imported from [[MediaWiki:Gadget-LegacyScriptsNewNode.js]] ********
var newNode = window.newNode = function newNode(tagname) {
var node = document.createElement(tagname);
for (var i = 1; i < arguments.length; i++) {
var argument = arguments[i];
if (typeof argument == 'string') { //Text
node.appendChild(document.createTextNode(argument));
} else if (typeof argument == 'object') {
if (argument instanceof Node) { // If it is a DOM Node
node.appendChild(argument);
} else { // Attributes (hopefully)
for (var j in argument) {
if (j === 'class') { // Classname different because...
node.className = argument[j];
} else if (j == 'style') { // Style is special
node.style.cssText = argument[j];
} else if (typeof argument[j] == 'function') { // Basic event handlers
node.addEventListener(j, argument[j], false);
} else {
node.setAttribute(j, argument[j]); //Normal attributes
}
}
}
}
}
return node;
};
// ****************************************************************************
(function PatrollingEnhancements_IIFE() {
window.GPE = typeof window.GPE == 'object' ? window.GPE : {};
const GPE = window.GPE;
/* </pre>
==Configuration options==
<pre> */
// The initial value to put in the "deletion reason" text-field; you can
// override this in your common.js (or vector.js or whatnot).
GPE.initialDeleteReason = GPE.initialDeleteReason == undefined ? '' : GPE.initialDeleteReason;
// The value to use as a deletion reason if you leave the text-field blank; you
// can override it in your common.js (or vector.js or whatnot). If you *don't*
// override this, then MediaWiki will generate an automatic deletion reason that
// indicates the entry's last editor and the beginning of its content.
GPE.deleteReasonIfBlank = GPE.deleteReasonIfBlank == undefined ? '' : GPE.deleteReasonIfBlank;
// By DCDuring's request. If you set this to true, then Special:Watchlist will
// show the deletion-reason text-input, but *not* the deletion-reason dropdown,
// when there's an unpatrolled new-page-creation.
GPE.hideDeleteReasonDropdownOnWatchlist = GPE.hideDeleteReasonDropdownOnWatchlist == undefined ? false : GPE.hideDeleteReasonDropdownOnWatchlist;
/* </pre>
==Automated patrolling (whitelisting)==
<pre> */
// set GPE.currMonth and GPE.lastMonth (in the form of, e.g., '2013/February')
(
function ()
{
var monthNames = [ 'January', 'February', 'March', 'April', 'May', 'June',
'July', 'August', 'September', 'October', 'November',
'December' ];
var now = new Date();
var currYear = now.getFullYear();
var currMonthNum = now.getMonth();
GPE.currMonth = currYear + '/' + monthNames[currMonthNum];
var lastYear = (currMonthNum == 0 ? currYear - 1 : currYear);
var lastMonthNum = (currMonthNum == 0 ? 11 : currMonthNum - 1);
GPE.lastMonth = lastYear + '/' + monthNames[lastMonthNum];
}
)();
GPE.individualWhiteListedPages =
{
"Wiktionary:Requests for cleanup": true,
"Wiktionary:Requests for verification": true,
"Wiktionary:Requests for deletion": true,
"Wiktionary:Requests for deletion/Others": true,
"Wiktionary:Requests for moves, mergers and splits": true,
"Wiktionary:Information desk": true,
"Wiktionary:Tea room": true,
"Wiktionary:Etymology scriptorium": true,
"Wiktionary:Requested entries (English)": true,
"Wiktionary:Requested entries (Spanish)": true,
"Wiktionary:List of protologisms": true,
"Wiktionary:Translation requests": true,
"Wiktionary:Feedback": true,
"Wiktionary:Sandbox": true,
"Wiktionary talk:Sandbox": true,
"Wiktionary:Tutorial (Editing)/sandbox": true,
"Wiktionary:Featured word candidates": true,
"Wiktionary:Word of the day/Nominations": true
};
GPE.individualWhiteListedPages["Wiktionary:Beer parlour/" + GPE.currMonth] =
GPE.individualWhiteListedPages["Wiktionary:Beer parlour/" + GPE.lastMonth] =
GPE.individualWhiteListedPages["Wiktionary:Grease pit/" + GPE.currMonth] =
GPE.individualWhiteListedPages["Wiktionary:Grease pit/" + GPE.lastMonth] =
true;
// per-user white-listed sub-pages (for example, edits by user Foo
// to User:Foo/vector.js should be autopatrolled):
GPE.perUserWhiteListedSubPages =
{
"/Sandbox": true,
"/sandbox": true,
"/chick.js": true,
"/chick.css": true,
"/standard.js": true,
"/standard.css": true,
"/cologneblue.js": true,
"/cologneblue.css": true,
"/modern.js": true,
"/modern.css": true,
"/myskin.js": true,
"/myskin.css": true,
"/nostalgia.js": true,
"/nostalgia.css": true,
"/simple.js": true,
"/simple.css": true,
"/vector.js": true,
"/vector.css": true,
"/common.js": true,
"/common.css": true
};
GPE.individualWhiteListedContributors =
{
};
GPE.shouldAutoPatrol = function(link)
{
var pagename = link.title;
if(pagename.indexOf('User talk:') == 0)
return true;
if(pagename in GPE.individualWhiteListedPages)
return true;
var contributor;
if(mediaWiki.config.get('wgCanonicalSpecialPageName') === 'Contributions')
{
contributor =
document.getElementById('t-contributions')
.getElementsByTagName('a')[0].href.replace(/.*\//, '');
}
else
{
var li = link.parentNode;
if(li.tagName.toUpperCase() == 'SPAN')
li = li.parentNode;
var links = li.getElementsByTagName('a');
for(var i = 0; i < links.length; ++i)
if(links[i].title.indexOf('Special:Contributions/') == 0)
{
contributor = links[i].title.substr('Special:Contributions/'.length);
break;
}
}
if(pagename.indexOf('User:' + contributor + '/') == 0)
if(pagename.substr(contributor.length + 5) in GPE.perUserWhiteListedSubPages)
return true;
if(contributor in GPE.individualWhiteListedContributors)
return true;
return false;
};
/* </pre>
==Utility functions==
<pre> */
GPE.newButton = function(text, color, hoverText)
{
var button = newNode('button', text);
button.style.background = color;
button.style.color = '#FFF';
button.style.border = '0';
button.style.padding = '0';
button.style.cursor = 'pointer';
button.title = hoverText;
return button;
};
GPE.disableButton = function(button, text, hoverText)
{
button.onclick = null;
button.title = (hoverText || '');
button.innerHTML = text;
// clear out explicit styling and disable, so we can get appropriate
// disabled-button styles:
button.style.background = '';
button.style.color = '';
button.style.cursor = '';
button.disabled = 'disabled';
};
/* </pre>
==Individual patrol-buttons==
<pre> */
GPE.addPatrolButton = function(link, rcid)
{
if(link.className.search(/(?:^|\s)gpe-hasPatrolButton(?:\s|$)/) > -1)
return;
link.className = (link.className + ' gpe-hasPatrolButton').trim();
var button = GPE.newButton('M', '#009', 'click to mark as patrolled');
link.parentNode.insertBefore(button, link.nextSibling);
link.parentNode.insertBefore(document.createTextNode(' · '), button);
button.onclick =
function ()
{
var token = mediaWiki.user.tokens.get('patrolToken');
$.post
(
'/w/api.php?format=json&action=patrol&assert=user',
{ token: token, rcid: rcid },
function (data)
{
if(data.patrol)
GPE.disableButton(button, 'm', 'marked as patrolled');
else if(data.error)
{
var msg = data.error.code + ': ' + data.error.info;
if(data.error.code == 'badtoken')
msg += ': "' + token + '"';
alert(msg);
}
},
'json'
);
};
if(GPE.shouldAutoPatrol(link))
button.click();
// remove the exclamation point:
var tmp = link;
while(tmp && tmp.nodeName.toUpperCase() !== 'LI')
tmp = tmp.parentNode;
if(tmp)
tmp = tmp.getElementsByClassName('unpatrolled')[0];
if(tmp)
tmp.parentNode.removeChild(tmp);
};
/* </pre>
==Individual delete-buttons==
<pre> */
GPE.addDeleteButton = function(link, title)
{
if(link.className.search(/(?:^|\s)gpe-hasDeleteButton(?:\s|$)/) > -1)
return;
link.className = (link.className + ' gpe-hasDeleteButton').trim();
var button = GPE.newButton('D', '#900', 'click to delete');
link.parentNode.insertBefore(button, link.nextSibling);
link.parentNode.insertBefore(document.createTextNode(' · '), button);
button.onclick =
function ()
{
var dropdownReason =
document.getElementById('deleteReasonsDropdown')
? document.getElementById('deleteReasonsDropdown').value
: '';
if(dropdownReason == 'other')
dropdownReason = '';
var textInputReason =
document.getElementById('deleteReasonTextInput').value;
var reason;
if(dropdownReason.length && textInputReason.length)
reason = dropdownReason + ': ' + textInputReason;
else if(dropdownReason.length || textInputReason.length)
reason = dropdownReason + textInputReason;
else
reason = GPE.deleteReasonIfBlank;
var token = mediaWiki.user.tokens.get('deleteToken');
$.post
(
'/w/api.php?format=json&action=delete&assert=user',
{ title: title, token: token, reason: reason },
function (data)
{
if(data['delete'])
GPE.disableButton(button, 'd', 'deleted');
else if(data.error)
{
var msg = data.error.code + ': ' + data.error.info;
if(data.error.code == 'badtoken')
msg += ': "' + token + '"';
alert(msg);
}
},
'json'
);
};
};
/* </pre>
==Delete-reasons==
<pre> */
GPE.addDeleteReasonInput = function ()
{ var deleteReasonDiv =
( newNode
( 'div',
{ style:
'background:#900; color:#FFF; ' +
'position:fixed; bottom:0; right:0; margin-bottom:0'
},
'\u00A0Deletion reason:\u00A0'
)
);
deleteReasonDiv.title =
'the deletion reason (message/summary) to use when you click "D"';
var deleteReasonTextInput =
( newNode
( 'input',
{ type: 'text',
size: 80,
id: 'deleteReasonTextInput',
value: GPE.initialDeleteReason,
style: 'position:fixed; right:0; margin-bottom:0'
}
)
);
deleteReasonDiv.appendChild(deleteReasonTextInput);
document.getElementById('bodyContent').appendChild(deleteReasonDiv);
if(GPE.hideDeleteReasonDropdownOnWatchlist)
if(mediaWiki.config.get('wgPageName') == 'Special:Watchlist')
return;
// get canned messages from [[MediaWiki:Deletereason-dropdown]]:
$.getJSON
( '/w/api.php?format=json&action=query&meta=allmessages&ammessages=Deletereason-dropdown',
function (data)
{ var rawDeleteReasons = data.query.allmessages[0]['*'];
var deleteReasonsDropdown =
newNode('select',
{ id: 'deleteReasonsDropdown', style: 'vertical-align: bottom' });
deleteReasonsDropdown.appendChild
(newNode('option', { value: 'other' }, 'Other reason'));
var optGroup = deleteReasonsDropdown;
rawDeleteReasons.replace
( /^(\*\*?) *(.+)$/gm,
function (s, asterisks, text)
{ if(asterisks == '*')
deleteReasonsDropdown.appendChild
(optGroup = newNode('optgroup', { label: text }));
else // '**'
optGroup.appendChild(newNode('option', { value: text }, text));
}
);
deleteReasonDiv.insertBefore(deleteReasonsDropdown, deleteReasonTextInput);
deleteReasonDiv.insertBefore(newNode('br'), deleteReasonTextInput);
deleteReasonDiv.insertBefore(document.createTextNode('\u00A0'), deleteReasonTextInput);
}
);
};
/* </pre>
==Namespaces==
<pre> */
GPE.computeNamespaces = function
(selected, includeAssociated, invertSelection)
{
var associated = Number(selected) + (selected % 2 === 0 ? 1 : -1);
if(invertSelection)
{
var selector = document.getElementById('namespace');
if(! selector)
return [];
var ret = [];
for(var option = selector.firstChild; option; option = option.nextSibling)
if(option.nodeName.toUpperCase() === 'OPTION' && option.value)
if(option.value != selected)
if(! includeAssociated || option.value != associated)
ret.push(option.value);
return ret;
}
else
{
if(includeAssociated)
return [selected, associated];
else
return [selected];
}
};
GPE.generateRcnamespace = function ()
{
var currUrl = document.location.href;
if(! /[?&]namespace=\d+(?:&|$)/.test(currUrl))
return;
var selected = /[?&]namespace=(\d+)(?:&|$)/.exec(currUrl)[1];
var includeAssociated =
mediaWiki.config.get('wgPageName') !== 'Special:NewPages'
&& /[?&]associated=(?!0?&|0?$)/.test(currUrl);
var invertSelection = /[?&]invert=(?!0?&|0?$)/.test(currUrl);
var namespaces =
GPE.computeNamespaces(selected, includeAssociated, invertSelection);
if(namespaces.length > 0)
return namespaces.join('|');
};
/* </pre>
==Find and handle links==
<pre> */
GPE.handleUnpatrolledEdits = function (rcidsByRevid)
{
var links =
document.getElementById('bodyContent').getElementsByTagName('a');
for(var i = links.length - 1; i >= 0; --i)
{
var mapKey = /&diff=(prev&oldid=)?(\d+)(&|$)/.exec(links[i].href);
if(mapKey && rcidsByRevid.hasOwnProperty(mapKey[2]))
GPE.addPatrolButton(links[i], rcidsByRevid[mapKey[2]]);
}
};
GPE.findLinksToUnpatrolledNewPages = function (rcidsByTitle)
{
if(mediaWiki.config.get('wgPageName') === 'Special:NewPages')
{
var ret = [];
$('li.not-patrolled a.mw-newpages-pagename').each(function () {
if (this.title && rcidsByTitle.hasOwnProperty(this.title))
ret.push(this);
});
return ret;
}
else
{
var ret = [];
var abbrs =
document.getElementById('bodyContent').getElementsByTagName('abbr');
for(var i = abbrs.length - 1; i >= 0; --i)
{
if(abbrs[i].className != 'newpage')
continue;
var link = abbrs[i];
while(link && link.nodeName.toUpperCase() != 'A')
if(link.nodeName.toUpperCase() === 'SPAN' && link.className === 'mw-title')
link = link.firstChild;
else
link = link.nextSibling;
if(link && link.title && rcidsByTitle.hasOwnProperty(link.title))
ret.push(link);
}
return ret;
}
};
GPE.handleUnpatrolledNewPages = function (rcidsByTitle)
{
var userIsSysop =
mediaWiki.config.get('wgUserGroups').indexOf('sysop') > -1;
var links = GPE.findLinksToUnpatrolledNewPages(rcidsByTitle);
for(var i = links.length - 1; i >= 0; --i)
{
var link = links[i];
// 2016-04: Equinox removing red D delete button because it hasn't worked for a year.
// if(userIsSysop)
// GPE.addDeleteButton(link, link.title);
GPE.addPatrolButton(link, rcidsByTitle[link.title]);
}
// Remove the rest of the delete features as above
// if(userIsSysop && links.length > 0)
// {
// GPE.getAndStoreDeleteToken();
// GPE.addDeleteReasonInput();
// }
};
GPE.getAndStoreDeleteToken = function ()
{
$.getJSON
(
'/w/api.php?format=json&action=tokens&type=delete',
function (data)
{
var token = data.tokens.deletetoken;
if(! token || token.search(/^[0-9a-f]{32}\+\\$/) != 0)
return;
mediaWiki.user.tokens.set('deleteToken', token);
}
);
};
GPE.main = function (params)
{
var url =
'/w/api.php?format=json&action=query&list=recentchanges' +
'&rcprop=ids|title' +
'&rcshow=!patrolled' + (params.hasOwnProperty('rcshow') ? '|' + params.rcshow : '') +
'&rclimit=' + (params.hasOwnProperty('rclimit') ? params.rclimit : 500) +
'&rctype=' + (params.hasOwnProperty('rctype') ? params.rctype : 'edit|new') +
(params.hasOwnProperty('rcdir') ? '&rcdir=' + params.rcdir : '') +
(params.hasOwnProperty('rcstart') ? '&rcstart=' + params.rcstart : '') +
(params.hasOwnProperty('rcnamespace') ? '&rcnamespace=' + params.rcnamespace : '') +
(params.hasOwnProperty('rcuser') ? '&rcuser=' + params.rcuser : '');
$.getJSON
(
url,
function (data)
{
data = data.query.recentchanges;
var rcidsByRevid = {}; // for unpatrolled edits
var rcidsByTitle = {}; // for unpatrolled new pages
for(var i = 0; i < data.length; ++i)
if(data[i].type == 'edit')
rcidsByRevid[data[i].revid] = data[i].rcid;
else
rcidsByTitle[data[i].title] = data[i].rcid;
GPE.handleUnpatrolledEdits(rcidsByRevid);
GPE.handleUnpatrolledNewPages(rcidsByTitle);
}
);
};
/* </pre>
==Onload-hooks==
<pre> */
$( document ).ready
( function ()
{
if(mediaWiki.config.get('wgPageName') === 'Special:RecentChanges') {
var currUrl = document.location.href;
var params = {};
var rcshow = [];
if(currUrl.search(/[?&]hideliu=(?!0?$|0?&)/) > -1)
rcshow.push('anon');
else if(currUrl.search(/[?&]hideanons=(?!0?$|0?&)/) > -1)
rcshow.push('!anon');
if(document.getElementsByClassName('minoredit').length === 0)
rcshow.push('!minor');
if(rcshow.length > 0)
params.rcshow = rcshow.join('|');
var rcnamespace = GPE.generateRcnamespace();
if(rcnamespace)
params.rcnamespace = rcnamespace;
GPE.main(params);
} else if(mediaWiki.config.get('wgPageName') === 'Special:NewPages') {
var currUrl = document.location.href;
var params = { rctype: 'new' };
var rcshow = [];
if(currUrl.search(/[?&]hideliu=(?!0?$|0?&)/) > -1)
rcshow.push('anon');
if(currUrl.search(/[?&]hideredirs=0?(?:$|&)/) === -1)
rcshow.push('!redirect');
if(rcshow.length > 0)
params.rcshow = rcshow.join('|');
if(currUrl.search(/[?&]dir=prev(?=$|&)/) > -1) {
params.rcdir = 'newer';
if(currUrl.search(/[?&]offset=\d+(?=$|&)/) > -1)
params.rcstart = currUrl.match(/[?&]offset=(\d+)(?=$|&)/)[1];
}
var rcnamespace = GPE.generateRcnamespace();
if(rcnamespace)
params.rcnamespace = rcnamespace;
GPE.main(params);
} else if(mediaWiki.config.get('wgPageName') === 'Special:Watchlist') {
var params = {};
var rcnamespace = GPE.generateRcnamespace();
if(rcnamespace)
params.rcnamespace = rcnamespace;
// TODO is this the best way to find what we need for the watchlist?
GPE.main(params);
} else if(mediaWiki.config.get('wgPageName').search(/^Special:Contributions(\/|$)/) === 0)
GPE.main({ rcuser: document.getElementById('t-contributions').firstChild.href.replace(/^.*?\/Special:Contributions\//, '') });
else if(mediaWiki.config.get('wgAction') === 'markpatrolled'
|| mediaWiki.config.get('wgAction') === 'delete'
|| mediaWiki.config.get('wgAction') === 'rollback')
GPE.main({ rclimit: 15 });
}
);
})();
g9g0tszn8uzicki57h3lrynnuqr2imv
မဳဒဳယာဝဳကဳ:Gadget-PatrollingEnhancements.js/documentation
8
296839
399053
2026-07-17T16:30:14Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} <!--Add description here. This subpage initially added just for categorization.--> See also: [[Special:Gadgets]]. <includeonly> [[ကဏ္ဍ:ဂေက်ဂျေက်ဝိတ်ရှေန်နရဳဂမၠိုၚ်]] </includeonly>"
399053
wikitext
text/x-wiki
{{documentation subpage}}
<!--Add description here. This subpage initially added just for categorization.-->
See also: [[Special:Gadgets]].
<includeonly>
[[ကဏ္ဍ:ဂေက်ဂျေက်ဝိတ်ရှေန်နရဳဂမၠိုၚ်]]
</includeonly>
nh2z4mxstdhoy5k1d14op93dv5v8194
မဳဒဳယာဝဳကဳ:Gadget-Edittools.css
8
296840
399054
2026-07-17T16:33:42Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "/* CSS borrowed from Wikipedia's [[w:MediaWiki:Gadget-charinsert-styles.css]]. */ .charinserter { /*background-color: #f9f9f9;*/ /*border: 1px solid #ddd;*/ padding: 1px 4px; }"
399054
css
text/css
/* CSS borrowed from Wikipedia's [[w:MediaWiki:Gadget-charinsert-styles.css]]. */
.charinserter {
/*background-color: #f9f9f9;*/
/*border: 1px solid #ddd;*/
padding: 1px 4px;
}
bksa5383zgxhkcuw7l53pphz0jvw3mm
မဳဒဳယာဝဳကဳ:Gadget-UnsupportedTitles.js
8
296841
399055
2026-07-17T16:37:08Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "/* To get template for titleTag.textContent, process MediaWiki:pagetitle, open your browser's JavaScript console on a Wiktionary page and run this code: ((msg) => new mw.Api().getMessages(msg).then((messages) => { mw.messages.set(messages); const titleTemplate = new mw.Message(mw.messages, msg, ["$1"]).text(); const { before, after } = /^(?<before>.*)\$1(?<after>.*)/.exec(titleTemplate).groups; console.log(JS..."
399055
javascript
text/javascript
/*
To get template for titleTag.textContent, process MediaWiki:pagetitle,
open your browser's JavaScript console on a Wiktionary page
and run this code:
((msg) => new mw.Api().getMessages(msg).then((messages) => {
mw.messages.set(messages);
const titleTemplate = new mw.Message(mw.messages, msg, ["$1"]).text();
const {
before,
after
} = /^(?<before>.*)\$1(?<after>.*)/.exec(titleTemplate).groups;
console.log(JSON.stringify(before), JSON.stringify(after))
})
.fail(console.error))("pagetitle")
We can do this for action=edit and action=submit by replacing
"pagetitle" with "editing" in this snippet.
*/
function setTitle(newTitle) {
// Set title tag, which determines the title shown in the browser.
var titleTag = document.getElementsByTagName('title')[0];
titleTag.textContent = newTitle + " - Wiktionary, the free dictionary";
// Set the text of the first heading above the page content.
document.getElementById('firstHeading').textContent = newTitle;
}
var UnsupportedTitlesJson = require('./UnsupportedTitles.json');
var prettyPageName = mw.config.get('wgPageName').replace(/_/g, ' ');
function generateCharacterToEscapeMap() {
var map = {};
Object.entries(UnsupportedTitlesJson.UnsupportedCharacterEscapes).forEach(function(entry) {
map[entry[1]] = entry[0];
});
return map;
}
// Helper function accessible from other scripts
function convertUnsupportedTitle(originalTitle) {
originalTitle = originalTitle.replaceAll("_", " ");
var match = /^(?:Talk:)?Unsupported titles\/(.+)$/.exec(originalTitle);
var newTitle;
if (match) {
var subpage = match && match[1];
newTitle = UnsupportedTitlesJson.UnsupportedTitles[subpage]
|| subpage.replace(/`([^`]+)`/g, function(wholeMatch, key) {
const character = UnsupportedTitlesJson.UnsupportedCharacterEscapes[key];
return character != null ? character : key;
});
} else {
newTitle = UnsupportedTitlesJson.TitleDisplay[originalTitle];
}
if (mw.config.get('wgCanonicalNamespace') == 'ဓရီုကျာ')
newTitle = 'Talk:' + newTitle;
return newTitle
}
window.convertUnsupportedTitle = convertUnsupportedTitle;
/*
* On subpages of Unsupported titles and Talk:Unsupported titles, show the
* correct title in the header at the top of the page. For instance, on the page
* [[Unsupported titles/Left curly bracket]], show the title {.
*
* This is not enabled in the mobile version of the site.
*
* For all such pages, see [[Special:PrefixIndex/Unsupported titles]].
*/
if (mw.config.get('wgAction') === 'view'
&& (/^(?:Talk:)?Unsupported titles\//.test(prettyPageName)
|| UnsupportedTitlesJson.TitleDisplay.hasOwnProperty(prettyPageName))) {
$(function() {
try {
setTitle(convertUnsupportedTitle(prettyPageName));
} catch (e) {
console.log('Error while changing title: ' + e.message + '.');
}
});
}
/*
* This redirects a user to the correct Unsupported titles page if they attempt
* to access an invalid title. For instance, if you attempt to access the page
* for <
* https://en.wiktionary.org/wiki/%3C
* you will be redirected to
* https://en.wiktionary.org/wiki/Unsupported_titles/Less_than
*/
if (mw.config.get('wgCanonicalSpecialPageName') == 'Badtitle') {
// Avoid redirecting twice or more. Set this parameter after redirecting
// and don't redirect if it is already set.
const alreadyRedirectedParam = "UnsupportedTitleRedirected";
/*
* Generate the name of the page that the user attempted to access using
* either the portion of the URL after "/wiki/" or the value of the "title"
* parameter in the query. That is, the user is accessing the page using
* either the path /wiki/<invalid title> or a path similar to
* /w/index.php?title=<invalid title>.
*
* The actual page displayed if a user attempts to access an invalid title
* is the special page with the canonical title [[Special:Badtitle]].
*/
if (!mw.util.getParamValue(alreadyRedirectedParam)) {
var rxArticlePath = new RegExp('^' + mw.config.get('wgArticlePath').replace('$1', '(.*)') + '$');
var m = rxArticlePath.exec(location.pathname);
var title = m ? decodeURIComponent(m[1]) : mw.util.getParamValue('title');
const characterToEscapeMap = generateCharacterToEscapeMap();
var badTitleSubpage = title.replace(/./g, function (fullMatch) {
var escapeName = characterToEscapeMap[fullMatch];
return escapeName != null ? '`' + escapeName + '`' : fullMatch;
});
if (badTitleSubpage != title) {
const url = new URL(location.href);
const newTitle = 'Unsupported titles/' + badTitleSubpage;
if (url.searchParams.get("title")) {
url.searchParams.set("title", newTitle);
} else {
url.pathname = mw.util.getUrl(newTitle);
}
url.searchParams.set(alreadyRedirectedParam, "1");
location.href = url;
}
}
}
2vh54g4hyqculiwti4tr4b56uuslw38
မဳဒဳယာဝဳကဳ:Gadget-UnsupportedTitles.json
8
296842
399056
2026-07-17T16:38:21Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{ "UnsupportedCharacterEscapes": { "grave": "`", "num": "#", "repl": "�", "percnt": "%", "tilde": "~", "rcub": "}", "amp": "\u0026", "vert": "|", "lcub": "{", "lsqb": "[", "gt": "\u003E", "rsqb": "]", "lt": "\u003C", "lowbar": "_", "period": "." }, "UnsupportedTitles": { "": "", "Space": "[space]", "Cifrão": "[Cifrão]", "Ogham space": "[Ogham space]", "Old Israeli shekel"..."
399056
json
application/json
{
"UnsupportedCharacterEscapes": {
"grave": "`",
"num": "#",
"repl": "�",
"percnt": "%",
"tilde": "~",
"rcub": "}",
"amp": "\u0026",
"vert": "|",
"lcub": "{",
"lsqb": "[",
"gt": "\u003E",
"rsqb": "]",
"lt": "\u003C",
"lowbar": "_",
"period": "."
},
"UnsupportedTitles": {
"": "",
"Space": "[space]",
"Cifrão": "[Cifrão]",
"Ogham space": "[Ogham space]",
"Old Israeli shekel": "[Old Israeli shekel]",
"Ancient Greek dish": "λοπαδοτεμαχοσελαχογαλεοκρανιολειψανοδριμυποτριμματοσιλφιοκαραβομελιτοκατακεχυμενοκιχλεπικοσσυφοφαττοπεριστεραλεκτρυονοπτοκεφαλλιοκιγκλοπελειολαγῳοσιραιοβαφητραγανοπτερύγων",
"Thai name of Bangkok": "กรุงเทพมหานคร อมรรัตนโกสินทร์ มหินทรายุธยา มหาดิลกภพ นพรัตนราชธานีบูรีรมย์ อุดมราชนิเวศน์มหาสถาน อมรพิมานอวตารสถิต สักกะทัตติยวิษณุกรรมประสิทธิ์"
},
"TitleDisplay": {
"⌛": "⌛︎",
"⏩": "⏩︎",
"⏪": "⏪︎",
"☕": "☕︎",
"♀": "♀︎",
"♂": "♂︎",
"♈": "♈︎",
"♉": "♉︎",
"♊": "♊︎",
"♋": "♋︎",
"♌": "♌︎",
"♍": "♍︎",
"♎": "♎︎",
"♏": "♏︎",
"♐": "♐︎",
"♑": "♑︎",
"♒": "♒︎",
"♓": "♓︎",
"♿": "♿︎",
"⚓": "⚓︎",
"⚡": "⚡︎",
"⚪": "⚪︎",
"⚫": "⚫︎",
"⚽": "⚽︎",
"⛎": "⛎︎",
"⛔": "⛔︎",
"⛳": "⛳︎",
"⛺": "⛺︎",
"⛽": "⛽︎",
"✊": "✊︎",
"✋": "✋︎",
"✍": "✍︎",
"✨": "✨︎",
"➿": "➿︎",
"🆎": "🆎︎",
"🆑": "🆑︎",
"🆒": "🆒︎",
"🆓": "🆓︎",
"🆔": "🆔︎",
"🆕": "🆕︎",
"🆖": "🆖︎",
"🆗": "🆗︎",
"🆘": "🆘︎",
"🆙": "🆙︎",
"🈁": "🈁︎",
"🈚": "🈚︎",
"🈯": "🈯︎",
"🈲": "🈲︎",
"🈳": "🈳︎",
"🈴": "🈴︎",
"🈵": "🈵︎",
"🈶": "🈶︎",
"🉐": "🉐︎",
"🌀": "🌀︎",
"🌈": "🌈︎",
"🌐": "🌐︎",
"🌑": "🌑︎",
"🌒": "🌒︎",
"🌓": "🌓︎",
"🌔": "🌔︎",
"🌕": "🌕︎",
"🌖": "🌖︎",
"🌗": "🌗︎",
"🌘": "🌘︎",
"🌙": "🌙︎",
"🌞": "🌞︎",
"🌠": "🌠︎",
"🌮": "🌮︎",
"🌲": "🌲︎",
"🌹": "🌹︎",
"🌽": "🌽︎",
"🍀": "🍀︎",
"🍁": "🍁︎",
"🍅": "🍅︎",
"🍆": "🍆︎",
"🍇": "🍇︎",
"🍉": "🍉︎",
"🍋": "🍋︎",
"🍌": "🍌︎",
"🍑": "🍑︎",
"🍒": "🍒︎",
"🍔": "🍔︎",
"🍟": "🍟︎",
"🍤": "🍤︎",
"🍪": "🍪︎",
"🍴": "🍴︎",
"🍼": "🍼︎",
"🍿": "🍿︎",
"🎂": "🎂︎",
"🎃": "🎃︎",
"🎄": "🎄︎",
"🎅": "🎅︎",
"🎉": "🎉︎",
"🎓": "🎓︎",
"🎠": "🎠︎",
"🎡": "🎡︎",
"🎢": "🎢︎",
"🎤": "🎤︎",
"🎥": "🎥︎",
"🎨": "🎨︎",
"🎩": "🎩︎",
"🎭": "🎭︎",
"🎲": "🎲︎",
"🎵": "🎵︎",
"🏁": "🏁︎",
"🏠": "🏠︎",
"🐀": "🐀︎",
"🐁": "🐁︎",
"🐎": "🐎︎",
"🐐": "🐐︎",
"🐘": "🐘︎",
"🐙": "🐙︎",
"🐦": "🐦︎",
"🐱": "🐱︎",
"🐾": "🐾︎",
"👀": "👀︎",
"👂": "👂︎",
"👃": "👃︎",
"👆": "👆︎",
"👇": "👇︎",
"👊": "👊︎",
"👋": "👋︎",
"👌": "👌︎",
"👍": "👍︎",
"👎": "👎︎",
"👏": "👏︎",
"👑": "👑︎",
"👤": "👤︎",
"👥": "👥︎",
"👴": "👴︎",
"👵": "👵︎",
"👹": "👹︎",
"👼": "👼︎",
"👽": "👽︎",
"👾": "👾︎︎",
"👿": "👿︎︎",
"💀": "💀︎",
"💅": "💅︎",
"💉": "💉︎",
"💊": "💊︎",
"💍": "💍︎",
"💎": "💎︎",
"💓": "💓︎",
"💔": "💔︎",
"💕": "💕︎",
"💖": "💖︎",
"💙": "💙︎",
"💚": "💚︎",
"💛": "💛︎",
"💜": "💜︎",
"💝": "💝︎",
"💞": "💞︎",
"💠": "💠︎",
"💡": "💡︎",
"💢": "💢︎",
"💣": "💣︎",
"💤": "💤︎",
"💥": "💥︎",
"💦": "💦︎",
"💧": "💧︎",
"💨": "💨︎",
"💩": "💩︎",
"💪": "💪︎",
"💫": "💫︎",
"💬": "💬︎",
"💭": "💭︎",
"💮": "💮︎",
"💯": "💯︎",
"💱": "💱︎",
"💳": "💳︎",
"💸": "💸︎",
"💼": "💼︎",
"💾": "💾︎",
"📅": "📅︎",
"📈": "📈︎",
"📉": "📉︎",
"📋": "📋︎",
"📌": "📌︎",
"📍": "📍︎",
"📎": "📎︎",
"📖": "📖︎",
"📚": "📚︎",
"📝": "📝︎",
"📞": "📞︎",
"📠": "📠︎",
"📢": "📢︎",
"📣": "📣︎",
"📰": "📰︎",
"📲": "📲︎",
"🔀": "🔀︎",
"🔁": "🔁︎",
"🔂": "🔂︎",
"🔃": "🔃︎",
"🔄": "🔄︎",
"🔅": "🔅︎",
"🔆": "🔆︎",
"🔇": "🔇︎",
"🔈": "🔈︎",
"🔋": "🔋︎",
"🔍": "🔍︎",
"🔎": "🔎︎",
"🔑": "🔑︎",
"🔒": "🔒︎",
"🔓": "🔓︎",
"🔔": "🔔︎",
"🔕": "🔕︎",
"🔗": "🔗︎",
"🔘": "🔘︎",
"🔙": "🔙︎",
"🔚": "🔚︎",
"🔛": "🔛︎",
"🔜": "🔜︎",
"🔝": "🔝︎",
"🔞": "🔞︎",
"🔥": "🔥︎",
"🔧": "🔧︎",
"🔪": "🔪︎",
"🔫": "🔫︎",
"🔬": "🔬︎",
"🔭": "🔭︎",
"🔰": "🔰︎",
"🔴": "🔴︎",
"🔵": "🔵︎",
"🔻": "🔻︎",
"🕎": "🕎︎",
"🖕": "🖕︎",
"🖤": "🖤︎",
"🗽": "🗽︎",
"🗿": "🗿︎",
"😀": "😀︎",
"😁": "😁︎",
"😂": "😂︎",
"😃": "😃︎",
"😄": "😄︎",
"😅": "😅︎",
"😆": "😆︎",
"😇": "😇︎",
"😈": "😈︎",
"😉": "😉︎",
"😊": "😊︎",
"😋": "😋︎",
"😌": "😌︎",
"😍": "😍︎",
"😎": "😎︎",
"😏": "😏︎",
"😐": "😐︎",
"😔": "😔︎",
"😕": "😕︎",
"😗": "😗︎",
"😙": "😙︎",
"😚": "😚︎",
"😛": "😛︎",
"😜": "😜︎",
"😝": "😝︎",
"😠": "😠︎",
"😡": "😡︎",
"😤": "😤︎",
"😩": "😩︎",
"😫": "😫︎",
"😬": "😬︎",
"😭": "😭︎",
"😮": "😮︎",
"😱": "😱︎",
"😳": "😳︎",
"😶": "😶︎",
"😸": "😸︎",
"😺": "😺︎",
"🙃": "🙃︎",
"🙄": "🙄︎",
"🙈🙉🙊": "🙈︎🙉︎🙊︎",
"🙌": "🙌︎",
"🙏": "🙏︎",
"🚀": "🚀︎",
"🚂": "🚂︎",
"🚥": "🚥︎",
"🚦": "🚦︎",
"🚧": "🚧︎",
"🚨": "🚨︎",
"🚩": "🚩︎",
"🚬": "🚬︎",
"🚮": "🚮︎",
"🚰": "🚰︎",
"🚲": "🚲︎",
"🚴": "🚴︎",
"🚶": "🚶︎",
"🚹": "🚹︎",
"🚺": "🚺︎",
"🚻": "🚻︎",
"🚼": "🚼︎",
"🚽": "🚽︎",
"🚾": "🚾︎",
"🚿": "🚿︎",
"🛂": "🛂︎",
"🛃": "🛃︎",
"🛄": "🛄︎",
"🛅": "🛅︎",
"🛌": "🛌︎",
"🛑": "🛑︎",
"🛒": "🛒︎",
"🛗": "🛗︎",
"🛜": "🛜︎",
"🛝": "🛝︎",
"🛫": "🛫︎",
"🛬": "🛬︎",
"🟠": "🟠︎",
"🟡": "🟡︎",
"🟢": "🟢︎",
"🟣": "🟣︎",
"🟤": "🟤︎",
"🤏": "🤏︎",
"🤑": "🤑︎",
"🤒": "🤒︎",
"🤓": "🤓︎",
"🤔": "🤔︎",
"🤕": "🤕︎",
"🤖": "🤖︎",
"🤗": "🤗︎",
"🤝": "🤝︎",
"🤟": "🤟︎",
"🤡": "🤡︎",
"🤢": "🤢︎",
"🤣": "🤣︎",
"🤦": "🤦︎",
"🤧": "🤧︎",
"🤩": "🤩︎",
"🤫": "🤫︎",
"🤬": "🤬︎",
"🤮": "🤮︎",
"🤯": "🤯︎",
"🥀": "🥀︎",
"🥇": "🥇︎",
"🥚": "🥚︎",
"🥛": "🥛︎",
"🥜": "🥜︎",
"🥱": "🥱︎",
"🥲": "🥲︎",
"🥴": "🥴︎",
"🥵": "🥵︎",
"🥶": "🥶︎",
"🥷": "🥷︎",
"🥹": "🥹︎",
"🥺": "🥺︎",
"🥽": "🥽︎",
"🦀": "🦀︎",
"🦅": "🦅︎",
"🦎": "🦎︎",
"🦴": "🦴︎",
"🦽": "🦽︎",
"🧏": "🧏︎",
"🧠": "🧠︎",
"🧢": "🧢︎",
"🧩": "🧩︎",
"🧵": "🧵︎",
"🧷": "🧷︎",
"🧸": "🧸︎",
"🧹": "🧹︎",
"🩵": "🩵︎",
"🩶": "🩶︎",
"🩸": "🩸︎",
"🪐": "🪐︎",
"🪑": "🪑︎",
"🪢": "🪢︎",
"🪦": "🪦︎",
"🪩": "🪩︎",
"🪫": "🪫︎",
"": "︎",
"🫂": "🫂︎",
"🫡": "🫡︎",
"🫣": "🫣︎",
"🫰": "🫰︎",
"🫵": "🫵︎",
"🫶": "🫶︎"
}
}
aqsryl8nqgv36ixkm84l85nnsl1j9sy
မဳဒဳယာဝဳကဳ:Gadget-Site.js
8
296843
399057
2026-07-17T16:41:53Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "// This gadget contains code that will run unconditionally for everyone - both on mobile and desktop. // Consider instead adding your code to [[MediaWiki:Common.js]], [[MediaWiki:Mobile.js]], or a gadget. // <nowiki> const pageName = mw.config.get("wgPageName"); const ns = mw.config.get("wgNamespaceNumber"); /* ***** Page-specific code ***** */ switch (pageName) { case "ဝိက်ရှေန်နရဳ:မု..."
399057
javascript
text/javascript
// This gadget contains code that will run unconditionally for everyone - both on mobile and desktop.
// Consider instead adding your code to [[MediaWiki:Common.js]], [[MediaWiki:Mobile.js]], or a gadget.
// <nowiki>
const pageName = mw.config.get("wgPageName");
const ns = mw.config.get("wgNamespaceNumber");
/* ***** Page-specific code ***** */
switch (pageName) {
case "ဝိက်ရှေန်နရဳ:မုက်လိက်တမ်": // [[Wiktionary:Main_Page]]
// Workaround for [[phab:T335552]].
document.querySelector(".mw-searchInput").autocapitalize = "off";
break;
case "Wiktionary:Gadget_preferences": // [[Wiktionary:Gadget_preferences]]
if (mw.config.get("wgAction") === "view")
importScript("MediaWiki:WiktGadgetPrefsPage.js"); // [[MediaWiki:WiktGadgetPrefsPage.js]]
break;
case "MediaWiki:Gadgets-definition": // [[MediaWiki:Gadgets-definition]]
importScript("MediaWiki:BetterGadgetsDefinition.js"); // [[MediaWiki:BetterGadgetsDefinition.js]]
break;
case "Special:Search": // [[Special:Search]]
importScript("MediaWiki:FindTrans.js"); // [[MediaWiki:FindTrans.js]]
break;
case "Wiktionary:Fonts/list": // [[Wiktionary:Fonts/list]]
if (mw.config.get("wgAction") === "view")
importScript("MediaWiki:InteractiveFontList.js"); // [[MediaWiki:InteractiveFontList.js]]
break;
case "Wiktionary:Tracking":
importScript("MediaWiki:BrowseTrackingCats.js"); // [[MediaWiki:BrowseTrackingCats.js]]
}
if (
document.querySelector(".mw-parser-output p:first-of-type") && [
"Module:languages/code_to_canonical_name",
"Module:languages/canonical_names",
"Module:etymology_languages/code_to_canonical_name",
"Module:etymology_languages/canonical_names",
"Module:families/code_to_canonical_name",
"Module:families/canonical_names",
"Module:scripts/code_to_canonical_name",
"Module:scripts/canonical_names",
"Module:Hani-sortkey/data/serialized",
].some(title => pageName.startsWith(title))
)
importScript("MediaWiki:UpdateLanguageNameAndCode.js"); // [[MediaWiki:UpdateLanguageNameAndCode.js]]
/* ***** Append #English to all links in definition sense lines ***** */
// Run this code in the main or Reconstruction namespaces,
// and on the Main Page (for WOTD and FWOTD),
// and in the Appendix namespace when there is a lemma or non-lemma form category.
if (!window.noDefinitionLineFragmentAddition &&
(ns === 0 || ns === 118 || pageName === "ဝိက်ရှေန်နရဳ:မုက်လိက်တမ်" ||
(ns === 100 && document.querySelector("#catlinks [href$=lemmas], #catlinks [href$=non-lemma_forms]"))
)
) {
// Look for links inside a numbered list (<ol> tag).
// Must use [lang|=en] rather than :lang(en) because, at least in Firefox,
// :lang(en) always matches wherever it is put in a selector
// because all text is within <html lang="en">.
for (const elem of document.querySelectorAll(".mw-parser-output ol a:not(.mw-parser-output [lang] a), .mw-parser-output ol [lang|=en] a")) {
// Only append to local existing main-namespace links without an existing anchor
const href = elem.getAttribute("href");
if (href && !/[#?:]/.test(href) && href[1] !== "/")
elem.href += "#English";
}
}
/* ***** New entry wizard ***** */
if (document.getElementById("necplaceholder"))
importScript("MediaWiki:NewEntryWizard.js"); // [[MediaWiki:NewEntryWizard.js]]
/* ***** Hide certain parts of the page from Google snippets ***** */
// Not sure whether this is working...
for (const elem of document.querySelectorAll(".mw-editsection, #toc, #catlinks")) {
elem.setAttribute("data-nosnippet", "");
if (navigator.userAgent.toLowerCase().includes("googlebot"))
elem.style.display = "none";
}
/* ***** Clean up category pages showing "0 c" or "0 e", e.g. [[Category:Pages with entries]] ***** */
for (const elem of document.querySelectorAll(".CategoryTreeItem bdi + span"))
elem.textContent = elem.textContent
.replace(/\b0 c, /, "")
.replace(/, 0 e\b/, "")
.replace(/\(0 c\)/, "(0 e)");
/* ***** Template gadget for [[Module:UnitTests]]: e.g. [[Module:vi/testcases]] ***** */
for (const corner of document.querySelectorAll(".unit-tests .unit-tests-img-corner"))
corner.addEventListener("click", () => corner.closest(".unit-tests").classList.toggle("unit-tests-hide-passing"));
/* ***** WikiHiero kludge: see [[phab:T210695]] ***** */
if (document.querySelector(".mw-hiero-outer"))
importScript("MediaWiki:WikiHieroTempFix.js"); // [[MediaWiki:WikiHieroTempFix.js]]
/* ***** `#new-section-redirect` changes the URL for "Add topic" (e.g. for [[Wiktionary:Beer parlour]]) ***** */
const newSectionRedirect = document.querySelector("#new-section-redirect a");
const newSectionButton = document.querySelector("#ca-addsection:is(a), #ca-addsection a");
if (newSectionRedirect && newSectionButton)
newSectionButton.href = newSectionRedirect.href;
// </nowiki>
9lhz0vylo18kr3f57rt7wwkfultwity
399058
399057
2026-07-17T16:43:51Z
咽頭べさ
33
399058
javascript
text/javascript
// This gadget contains code that will run unconditionally for everyone - both on mobile and desktop.
// Consider instead adding your code to [[MediaWiki:Common.js]], [[MediaWiki:Mobile.js]], or a gadget.
// <nowiki>
const pageName = mw.config.get("wgPageName");
const ns = mw.config.get("wgNamespaceNumber");
/* ***** Page-specific code ***** */
switch (pageName) {
case "ဝိက်ရှေန်နရဳ:မုက်လိက်တမ်": // [[Wiktionary:Main_Page]]
// Workaround for [[phab:T335552]].
document.querySelector(".mw-searchInput").autocapitalize = "off";
break;
case "Wiktionary:Gadget_preferences": // [[Wiktionary:Gadget_preferences]]
if (mw.config.get("wgAction") === "view")
importScript("MediaWiki:WiktGadgetPrefsPage.js"); // [[MediaWiki:WiktGadgetPrefsPage.js]]
break;
case "MediaWiki:Gadgets-definition": // [[MediaWiki:Gadgets-definition]]
importScript("MediaWiki:BetterGadgetsDefinition.js"); // [[MediaWiki:BetterGadgetsDefinition.js]]
break;
case "Special:Search": // [[Special:Search]]
importScript("MediaWiki:FindTrans.js"); // [[MediaWiki:FindTrans.js]]
break;
case "Wiktionary:Fonts/list": // [[Wiktionary:Fonts/list]]
if (mw.config.get("wgAction") === "view")
importScript("MediaWiki:InteractiveFontList.js"); // [[MediaWiki:InteractiveFontList.js]]
break;
case "Wiktionary:Tracking":
importScript("MediaWiki:BrowseTrackingCats.js"); // [[MediaWiki:BrowseTrackingCats.js]]
}
if (
document.querySelector(".mw-parser-output p:first-of-type") && [
"Module:languages/code_to_canonical_name",
"Module:languages/canonical_names",
"Module:etymology_languages/code_to_canonical_name",
"Module:etymology_languages/canonical_names",
"Module:families/code_to_canonical_name",
"Module:families/canonical_names",
"Module:scripts/code_to_canonical_name",
"Module:scripts/canonical_names",
"Module:Hani-sortkey/data/serialized",
].some(title => pageName.startsWith(title))
)
importScript("MediaWiki:UpdateLanguageNameAndCode.js"); // [[MediaWiki:UpdateLanguageNameAndCode.js]]
/* ***** Append #English to all links in definition sense lines ***** */
// Run this code in the main or Reconstruction namespaces,
// and on the Main Page (for WOTD and FWOTD),
// and in the Appendix namespace when there is a lemma or non-lemma form category.
if (!window.noDefinitionLineFragmentAddition &&
(ns === 0 || ns === 118 || pageName === "ဝိက်ရှေန်နရဳ:မုက်လိက်တမ်" ||
(ns === 100 && document.querySelector("#catlinks [href$=ဝေါဟာအဓိက], #catlinks [href$=ဗီုပြၚ်အပြံၚ်အလှာဲ]"))
)
) {
// Look for links inside a numbered list (<ol> tag).
// Must use [lang|=en] rather than :lang(en) because, at least in Firefox,
// :lang(en) always matches wherever it is put in a selector
// because all text is within <html lang="en">.
for (const elem of document.querySelectorAll(".mw-parser-output ol a:not(.mw-parser-output [lang] a), .mw-parser-output ol [lang|=en] a")) {
// Only append to local existing main-namespace links without an existing anchor
const href = elem.getAttribute("href");
if (href && !/[#?:]/.test(href) && href[1] !== "/")
elem.href += "#English";
}
}
/* ***** New entry wizard ***** */
if (document.getElementById("necplaceholder"))
importScript("MediaWiki:NewEntryWizard.js"); // [[MediaWiki:NewEntryWizard.js]]
/* ***** Hide certain parts of the page from Google snippets ***** */
// Not sure whether this is working...
for (const elem of document.querySelectorAll(".mw-editsection, #toc, #catlinks")) {
elem.setAttribute("data-nosnippet", "");
if (navigator.userAgent.toLowerCase().includes("googlebot"))
elem.style.display = "none";
}
/* ***** Clean up category pages showing "0 c" or "0 e", e.g. [[Category:Pages with entries]] ***** */
for (const elem of document.querySelectorAll(".CategoryTreeItem bdi + span"))
elem.textContent = elem.textContent
.replace(/\b0 c, /, "")
.replace(/, 0 e\b/, "")
.replace(/\(0 c\)/, "(0 e)");
/* ***** Template gadget for [[Module:UnitTests]]: e.g. [[Module:vi/testcases]] ***** */
for (const corner of document.querySelectorAll(".unit-tests .unit-tests-img-corner"))
corner.addEventListener("click", () => corner.closest(".unit-tests").classList.toggle("unit-tests-hide-passing"));
/* ***** WikiHiero kludge: see [[phab:T210695]] ***** */
if (document.querySelector(".mw-hiero-outer"))
importScript("MediaWiki:WikiHieroTempFix.js"); // [[MediaWiki:WikiHieroTempFix.js]]
/* ***** `#new-section-redirect` changes the URL for "Add topic" (e.g. for [[Wiktionary:Beer parlour]]) ***** */
const newSectionRedirect = document.querySelector("#new-section-redirect a");
const newSectionButton = document.querySelector("#ca-addsection:is(a), #ca-addsection a");
if (newSectionRedirect && newSectionButton)
newSectionButton.href = newSectionRedirect.href;
// </nowiki>
nrtygedo2vuqmf57qf00pwbv8mweqjf
မဳဒဳယာဝဳကဳ:Gadget-ShowIDs-pagestyles.css
8
296844
399059
2026-07-17T16:44:51Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု ".senseid, .etymid, .senseid-displayed, .etymid-displayed { --id-border: var(--wikt-palette-blue-6); --id-background: var(--wikt-palette-blue-1); --id-background-target: var(--wikt-palette-blue-4); } .etymonid, .etymonid-displayed { --id-border: var(--wikt-palette-red-6); --id-background: var(--wikt-palette-red-1); --id-background-target: var(--wikt-palette-red-4); } .etymid, .etymonid { margin-left: 0; paddi..."
399059
css
text/css
.senseid, .etymid,
.senseid-displayed, .etymid-displayed {
--id-border: var(--wikt-palette-blue-6);
--id-background: var(--wikt-palette-blue-1);
--id-background-target: var(--wikt-palette-blue-4);
}
.etymonid, .etymonid-displayed {
--id-border: var(--wikt-palette-red-6);
--id-background: var(--wikt-palette-red-1);
--id-background-target: var(--wikt-palette-red-4);
}
.etymid, .etymonid {
margin-left: 0;
padding: 0 !important;
display: inline;
}
.senseid-displayed, .etymid-displayed, .etymonid-displayed,
.senseid::before, .etymid::before, .etymonid::before {
border: 1px solid var(--id-border);
background: var(--id-background);
color: var(--wikt-palette-black);
border-radius: 5px;
font-size: 90%;
margin-right: 0.1em;
padding: 0.2em !important;
content: attr(data-id);
}
.senseid-displayed:target, .etymid-displayed:target, .etymonid-displayed:target,
.senseid:target .senseid-displayed, .etymid:target .etymid-displayed, .etymonid:target .etymonid-displayed,
.senseid:target::before, .etymid:target::before, .etymonid:target::before {
background: var(--id-background-target);
font-weight: 600;
}
.senseid:not([data-id])::before, .etymid:not([data-id])::before, .etymonid:not([data-id])::before,
.senseid[data-id=""]::before, .etymid[data-id=""]::before, .etymonid[data-id=""]::before {
content: none !important;
display: none !important;
}
9c32gfnz5l4kzwwbspg704ebxwivhou
ထာမ်ပလိက်:shortcut/documentation
10
296845
399061
2026-07-17T16:49:56Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} {{uses lua|Module:shortcut box}} This template displays the list of shortcuts for a page. To use this template, pass the page names of the shortcuts as numbered parameters. Multiple comma-separated shortcuts can be included in a single numbered parameter as long as there isn't a space after the comma. Shortcuts in the template space can omit the {{cd|Template:}} prefix. Template shortcuts are..."
399061
wikitext
text/x-wiki
{{documentation subpage}}
{{uses lua|Module:shortcut box}}
This template displays the list of shortcuts for a page. To use this template, pass the page names of the shortcuts as numbered parameters. Multiple comma-separated shortcuts can be included in a single numbered parameter as long as there isn't a space after the comma. Shortcuts in the template space can omit the {{cd|Template:}} prefix. Template shortcuts are rendered with the double-brace syntax, as shown:
{|
| {{temp|shortcut|l}} || → || {{shortcut|l|demo=1}}
|}
{|
| {{temp|shortcut|altsp,alt sp,alt sp of,alt spell,alt spelling of}} || → || {{shortcut|altsp,alt sp,alt sp of,alt spell,alt spelling of|demo=1}}
|}
{|
| {{temp|shortcut|CAT:E|CAT:ERR|CAT:ERROR}} || → || {{shortcut|CAT:E|CAT:ERR|CAT:ERROR|demo=1}}
|}
The template checks whether the shortcuts exist and point back to the transcluding page. If they do not, the page is placed in [[:Category:Shortcut boxes needing attention]].
<includeonly>
[[ကဏ္ဍ:ထာမ်ပလိက်စရၚ်မချူသမ္တီလဝ်ဂမၠိုၚ်]]
[[ကဏ္ဍ:မုက်လိက်ဝိက်ရှေန်နရဳနွံဂၠံၚ်ကရတ်ဂမၠိုၚ်|*]]
</includeonly>
kfh3kary1p1k78mnz54w3w3tk2lstdm
ထာမ်ပလိက်:el-nN-ι-ια-2b
10
296846
399062
2026-07-17T16:54:06Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "<includeonly>{{el-decl-noun |1={{{1}}}ι |2={{{1}}}ια |3={{{2}}}ιού |4={{{2}}}ιών |5={{{1}}}ι |6={{{1}}}ια |7={{{1}}}ι |8={{{1}}}ια |note={{{note|}}} }}{{#if:{{NAMESPACE}}|| }}</includeonly><noinclude> The inflection-table template for Greek nouns declining like '''{{m|el|κορίτσι}}'''. Other examples may be found in the [[:Category:Greek nouns declining like 'κορίτσι']]. The syntax <code><..."
399062
wikitext
text/x-wiki
<includeonly>{{el-decl-noun
|1={{{1}}}ι
|2={{{1}}}ια
|3={{{2}}}ιού
|4={{{2}}}ιών
|5={{{1}}}ι
|6={{{1}}}ια
|7={{{1}}}ι
|8={{{1}}}ια
|note={{{note|}}}
}}{{#if:{{NAMESPACE}}|| }}</includeonly><noinclude>
The inflection-table template for Greek nouns declining like '''{{m|el|κορίτσι}}'''. Other examples may be found in the [[:Category:Greek nouns declining like 'κορίτσι']].
The syntax <code><nowiki>{{el-nN-ι-ια-2b|κορίτσ|κοριτσ}}</nowiki></code> produces the table:
{{el-nN-ι-ια-2b|κορίτσ|κοριτσ}}
A full list of other declension-table templates with a brief indication of use can be found at '''[[Wiktionary:Greek noun inflection-table templates]]'''.
{{tcat|ndecl}}
</noinclude>
r3jzdrraltd08ld0tj9f047fqqvyj9q
κραββάτιον
0
296847
399063
2026-07-17T16:56:04Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==ဂရေတ်တြေံ== ===နာမ်=== {{head|grc|နာမ်}} # {{alt form|grc|κράββατος}}"
399063
wikitext
text/x-wiki
==ဂရေတ်တြေံ==
===နာမ်===
{{head|grc|နာမ်}}
# {{alt form|grc|κράββατος}}
pvnjnpdip6rorvwjc2jjp5fd5975krz
κρεβάτιον
0
296848
399064
2026-07-17T16:56:27Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==ဂရေတ်တြေံ== ===နာမ်=== {{head|grc|နာမ်}} # {{alt form|grc|κράββατος}}"
399064
wikitext
text/x-wiki
==ဂရေတ်တြေံ==
===နာမ်===
{{head|grc|နာမ်}}
# {{alt form|grc|κράββατος}}
pvnjnpdip6rorvwjc2jjp5fd5975krz
κρεβάτια
0
296849
399065
2026-07-17T16:57:58Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==ဂရေတ်== ===နာမ်=== {{head|el|nounf|g=f}} # {{inflection of|el|κρεβάτι||nom|p}} # {{inflection of|el|κρεβάτι||acc|p}} # {{inflection of|el|κρεβάτι||voc|p}}"
399065
wikitext
text/x-wiki
==ဂရေတ်==
===နာမ်===
{{head|el|nounf|g=f}}
# {{inflection of|el|κρεβάτι||nom|p}}
# {{inflection of|el|κρεβάτι||acc|p}}
# {{inflection of|el|κρεβάτι||voc|p}}
hfnm5a7ma1g463tluep2vd3p214lclu
κρεββάτι
0
296850
399066
2026-07-17T16:59:34Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==ဂရေတ်== ===နာမ်=== {{head|el|နာမ်}} # {{alt form|el|κρεβάτι}}"
399066
wikitext
text/x-wiki
==ဂရေတ်==
===နာမ်===
{{head|el|နာမ်}}
# {{alt form|el|κρεβάτι}}
oyisaus2zb2oeukcfq6jfhix94ocryg
кревети
0
296851
399067
2026-07-17T17:02:05Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==မက်သဳဒဝ်နဳယျာ== ===ဗွဟ်ရမ္သာၚ်=== * {{mk-IPA}} ===နာမ်=== {{head|mk|noun form}} # {{infl of|mk|кревет||indf|pl}}"
399067
wikitext
text/x-wiki
==မက်သဳဒဝ်နဳယျာ==
===ဗွဟ်ရမ္သာၚ်===
* {{mk-IPA}}
===နာမ်===
{{head|mk|noun form}}
# {{infl of|mk|кревет||indf|pl}}
i116i7gy8ymvavjg0xwt9vftxtfpxdp
креветен
0
296852
399068
2026-07-17T17:04:49Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==မက်သဳဒဝ်နဳယျာ== ===ဗွဟ်ရမ္သာၚ်=== * {{mk-IPA}} ===နာမဝိသေသန=== {{mk-adj|-}} # မဆေၚ်စပ်ကဵုဖုန်သ္ကိက်။ ====လဟုတ်စှ်ေ==== {{mk-decl-adj|креветн|fe=1}}"
399068
wikitext
text/x-wiki
==မက်သဳဒဝ်နဳယျာ==
===ဗွဟ်ရမ္သာၚ်===
* {{mk-IPA}}
===နာမဝိသေသန===
{{mk-adj|-}}
# မဆေၚ်စပ်ကဵုဖုန်သ္ကိက်။
====လဟုတ်စှ်ေ====
{{mk-decl-adj|креветн|fe=1}}
re0htwpz0stnl3e2aj6kbq1mm4xdnet
ထာမ်ပလိက်:mk-decl-adj
10
296853
399069
2026-07-17T17:06:02Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{#invoke:checkparams|warn}}<!-- Validate template parameters -->{{mk-decl-adj-table{{#if:{{{c|}}}|-full}}<!-- -->|ind_m={{pagename}}<!-- -->|def_unsp_m={{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}иот<!-- -->|def_prox_m={{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}иов<!-- -->|def_dist_m={{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}ион<!-- -->|ind_f={{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}а<!-- -->|def_unsp_f={{#if:{{{1|}}}|{{{1}}}|..."
399069
wikitext
text/x-wiki
{{#invoke:checkparams|warn}}<!-- Validate template parameters
-->{{mk-decl-adj-table{{#if:{{{c|}}}|-full}}<!--
-->|ind_m={{pagename}}<!--
-->|def_unsp_m={{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}иот<!--
-->|def_prox_m={{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}иов<!--
-->|def_dist_m={{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}ион<!--
-->|ind_f={{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}а<!--
-->|def_unsp_f={{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}ата<!--
-->|def_prox_f={{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}ава<!--
-->|def_dist_f={{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}ана<!--
-->|ind_n={{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}о<!--
-->|def_unsp_n={{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}ото<!--
-->|def_prox_n={{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}ово<!--
-->|def_dist_n={{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}оно<!--
-->|ind_pl={{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}и<!--
-->|def_unsp_pl={{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}ите<!--
-->|def_prox_pl={{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}иве<!--
-->|def_dist_pl={{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}ине<!--
-->|c_ind_m={{#if:{{{nocomp|}}}||{{#if:{{{c|}}}|по{{pagename}}|}}}}<!--
-->|c_def_unsp_m={{#if:{{{nocomp|}}}||{{#if:{{{c|}}}|по{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}иот|}}}}<!--
-->|c_def_prox_m={{#if:{{{nocomp|}}}||{{#if:{{{c|}}}|по{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}иов|}}}}<!--
-->|c_def_dist_m={{#if:{{{nocomp|}}}||{{#if:{{{c|}}}|по{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}ион|}}}}<!--
-->|c_ind_f={{#if:{{{nocomp|}}}||{{#if:{{{c|}}}|по{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}а|}}}}<!--
-->|c_def_unsp_f={{#if:{{{nocomp|}}}||{{#if:{{{c|}}}|по{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}ата|}}}}<!--
-->|c_def_prox_f={{#if:{{{nocomp|}}}||{{#if:{{{c|}}}|по{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}ава|}}}}<!--
-->|c_def_dist_f={{#if:{{{nocomp|}}}||{{#if:{{{c|}}}|по{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}ана|}}}}<!--
-->|c_ind_n={{#if:{{{nocomp|}}}||{{#if:{{{c|}}}|по{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}о|}}}}<!--
-->|c_def_unsp_n={{#if:{{{nocomp|}}}||{{#if:{{{c|}}}|по{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}ото|}}}}<!--
-->|c_def_prox_n={{#if:{{{nocomp|}}}||{{#if:{{{c|}}}|по{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}ово|}}}}<!--
-->|c_def_dist_n={{#if:{{{nocomp|}}}||{{#if:{{{c|}}}|по{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}оно|}}}}<!--
-->|c_ind_pl={{#if:{{{nocomp|}}}||{{#if:{{{c|}}}|по{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}и|}}}}<!--
-->|c_def_unsp_pl={{#if:{{{nocomp|}}}||{{#if:{{{c|}}}|по{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}ите|}}}}<!--
-->|c_def_prox_pl={{#if:{{{nocomp|}}}||{{#if:{{{c|}}}|по{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}иве|}}}}<!--
-->|c_def_dist_pl={{#if:{{{nocomp|}}}||{{#if:{{{c|}}}|по{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}ине|}}}}<!--
-->|s_ind_m={{#if:{{{c|}}}|нај{{pagename}}|}}<!--
-->|s_def_unsp_m={{#if:{{{c|}}}|нај{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}иот|}}<!--
-->|s_def_prox_m={{#if:{{{c|}}}|нај{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}иов|}}<!--
-->|s_def_dist_m={{#if:{{{c|}}}|нај{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}ион|}}<!--
-->|s_ind_f={{#if:{{{c|}}}|нај{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}а|}}<!--
-->|s_def_unsp_f={{#if:{{{c|}}}|нај{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}ата|}}<!--
-->|s_def_prox_f={{#if:{{{c|}}}|нај{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}ава|}}<!--
-->|s_def_dist_f={{#if:{{{c|}}}|нај{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}ана|}}<!--
-->|s_ind_n={{#if:{{{c|}}}|нај{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}о|}}<!--
-->|s_def_unsp_n={{#if:{{{c|}}}|нај{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}ото|}}<!--
-->|s_def_prox_n={{#if:{{{c|}}}|нај{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}ово|}}<!--
-->|s_def_dist_n={{#if:{{{c|}}}|нај{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}оно|}}<!--
-->|s_ind_pl={{#if:{{{c|}}}|нај{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}и|}}<!--
-->|s_def_unsp_pl={{#if:{{{c|}}}|нај{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}ите|}}<!--
-->|s_def_prox_pl={{#if:{{{c|}}}|нај{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}иве|}}<!--
-->|s_def_dist_pl={{#if:{{{c|}}}|нај{{#if:{{{1|}}}|{{{1}}}|{{pagename}}}}ине|}}<!--
-->}}<!--
-->{{#if:{{{fa|}}}| |}}<!--
-->{{#if:{{{fe|}}}| |}}<!--
-->{{#if:{{{fo|}}}| |}}<!--
-->{{#if:{{{ft|}}}| |}}<!--
--><noinclude>{{documentation}}</noinclude>
jdgg5icwmm3k1cg07k15pvp0sjzijcg
ထာမ်ပလိက်:mk-decl-adj/documentation
10
296854
399070
2026-07-17T17:08:30Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} This template provides the inflection of most Macedonian adjectives, including most irregular ones. ==Parameters== ; <code>1=</code> : The stem. If there is a fleeting vowel, one should indicate the contracted stem as used before vowel-initial endings, e.g. "добр" for "{{m|mk|добар|tr=-}}". If there is no fleeting vowel, nothing needs to be indicated, as for "{{m|mk|зрел|tr=-}}"..."
399070
wikitext
text/x-wiki
{{documentation subpage}}
This template provides the inflection of most Macedonian adjectives, including most irregular ones.
==Parameters==
; <code>1=</code>
: The stem. If there is a fleeting vowel, one should indicate the contracted stem as used before vowel-initial endings, e.g. "добр" for "{{m|mk|добар|tr=-}}". If there is no fleeting vowel, nothing needs to be indicated, as for "{{m|mk|зрел|tr=-}}". If the masculine singular indefinite ends in -и, as in "{{m|mk|градски|tr=-}}", the stem without the -и needs to be indicated.
; <code>c=1</code>
: Used to generate comparative and superlative forms for adjectives which have them. It should not be used for most relational adjectives, which are not comparable due to the nature of their meaning. In the absence of this parameter, only positive forms will be generated.
; <code>nocomp=1</code>
: Used in conjunction with <code>c=1</code> to generate superlative forms without comparative ones, as needed for adjectives such as "{{m|mk|заден|tr=-}}" and "{{m|mk|последен|tr=-}}".
; <code>fa=1</code>
: Places the adjective in [[:Category:Macedonian adjectives with a fleeting а]].
; <code>fe=1</code>
: Places the adjective in [[:Category:Macedonian adjectives with a fleeting е]].
; <code>fo=1</code>
: Places the adjective in [[:Category:Macedonian adjectives with a fleeting о]].
; <code>ft=1</code>
: Places the adjective in [[:Category:Macedonian adjectives with a fleeting т]].
<includeonly>
[[ကဏ္ဍ:ထာမ်ပလိက်မက်သဳဒဝ်နဳယျာအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမဝိသေသနဂမၠိုၚ်|*]]
</includeonly>
1qsmuewlvydtermwwugkqqsm38mgix1
ထာမ်ပလိက်:mk-decl-adj-table
10
296855
399071
2026-07-17T17:14:22Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{inflection-table-top|palette=amber|title={{#if:{{{title|}}}|{{{title}}}|{{#if:{{NAMESPACE}}||မလဟုတ်စှ်ေဆေၚ်စပ်ကဵု {{m|mk||{{pagename}}|tr=-}}}}}}|tall=yes}} ! ! ပုလ္လိၚ် ! ဣတ္တိလိၚ် ! နပုလ္လိၚ် ! ကိုန်ဗဟုဝစ် |- ! ဟွံချိုတ်ပၠိုတ် | {{#if:{{{ind_m|}}}|{{l-self|mk|{{{ind_m}}}}}..."
399071
wikitext
text/x-wiki
{{inflection-table-top|palette=amber|title={{#if:{{{title|}}}|{{{title}}}|{{#if:{{NAMESPACE}}||မလဟုတ်စှ်ေဆေၚ်စပ်ကဵု {{m|mk||{{pagename}}|tr=-}}}}}}|tall=yes}}
!
! ပုလ္လိၚ်
! ဣတ္တိလိၚ်
! နပုလ္လိၚ်
! ကိုန်ဗဟုဝစ်
|-
! ဟွံချိုတ်ပၠိုတ်
| {{#if:{{{ind_m|}}}|{{l-self|mk|{{{ind_m}}}}}|—}}
| {{#if:{{{ind_f|}}}|{{l-self|mk|{{{ind_f}}}|accel-form=indef{{!}}f{{!}}sg}}|—}}
| {{#if:{{{ind_n|}}}|{{l-self|mk|{{{ind_n}}}|accel-form=indef{{!}}n{{!}}sg}}|—}}
| {{#if:{{{ind_pl|}}}|{{l-self|mk|{{{ind_pl}}}|accel-form=indef{{!}}pl}}|—}}
|-
! ပရေၚ်ဟွံစၟတ်သမ္တီမချိုတ်ပၠိုတ်
| {{#if:{{{def_unsp_m|}}}|{{l-self|mk|{{{def_unsp_m}}}|accel-form=unspecified{{!}}def{{!}}m{{!}}sg}}|—}}
| {{#if:{{{def_unsp_f|}}}|{{l-self|mk|{{{def_unsp_f}}}|accel-form=unspecified{{!}}def{{!}}f{{!}}sg}}|—}}
| {{#if:{{{def_unsp_n|}}}|{{l-self|mk|{{{def_unsp_n}}}|accel-form=unspecified{{!}}def{{!}}n{{!}}sg}}|—}}
| {{#if:{{{def_unsp_pl|}}}|{{l-self|mk|{{{def_unsp_pl}}}|accel-form=unspecified{{!}}def{{!}}pl}}|—}}
|-
! ပရေၚ်ကြပ်မချိုတ်ပၠိုတ်
| {{#if:{{{def_prox_m|}}}|{{l-self|mk|{{{def_prox_m}}}|accel-form=prox{{!}}def{{!}}m{{!}}sg}}|—}}
| {{#if:{{{def_prox_f|}}}|{{l-self|mk|{{{def_prox_f}}}|accel-form=prox{{!}}def{{!}}f{{!}}sg}}|—}}
| {{#if:{{{def_prox_n|}}}|{{l-self|mk|{{{def_prox_n}}}|accel-form=prox{{!}}def{{!}}n{{!}}sg}}|—}}
| {{#if:{{{def_prox_pl|}}}|{{l-self|mk|{{{def_prox_pl}}}|accel-form=prox{{!}}def{{!}}pl}}|—}}
|-
! ကြပ်သ္ၚောဲမချိုတ်ပၠိုတ်
| {{#if:{{{def_dist_m|}}}|{{l-self|mk|{{{def_dist_m}}}|accel-form=distal{{!}}def{{!}}m{{!}}sg}}|—}}
| {{#if:{{{def_dist_f|}}}|{{l-self|mk|{{{def_dist_f}}}|accel-form=distal{{!}}def{{!}}f{{!}}sg}}|—}}
| {{#if:{{{def_dist_n|}}}|{{l-self|mk|{{{def_dist_n}}}|accel-form=distal{{!}}def{{!}}n{{!}}sg}}|—}}
| {{#if:{{{def_dist_pl|}}}|{{l-self|mk|{{{def_dist_pl}}}|accel-form=distal{{!}}def{{!}}pl}}|—}}
{{inflection-table-bottom}}<!--
--><noinclude>{{documentation}}</noinclude>
al6v70t5scpga8i98xvcv7vorq0z4ed
ထာမ်ပလိက်:mk-decl-adj-table/documentation
10
296856
399072
2026-07-17T17:15:38Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} {{isAccelerated}} This template is used as a helper to create declension templates for Macedonian adjectives. It should only be used by other templates, not in entries directly. <includeonly> ကဏ္ဍ:ထာမ်ပလိက်မက်သဳဒဝ်နဳယျာအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမဝိသေသနဂမၠိုၚ်|..."
399072
wikitext
text/x-wiki
{{documentation subpage}}
{{isAccelerated}}
This template is used as a helper to create declension templates for Macedonian adjectives. It should only be used by other templates, not in entries directly.
<includeonly>
[[ကဏ္ဍ:ထာမ်ပလိက်မက်သဳဒဝ်နဳယျာအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမဝိသေသနဂမၠိုၚ်| ]]
</includeonly>
lxnped65nrb5x41yqkhicizqt8r4tra
ကဏ္ဍ:ထာမ်ပလိက်မက်သဳဒဝ်နဳယျာအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမဝိသေသနဂမၠိုၚ်
14
296857
399073
2026-07-17T17:17:14Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ထာမ်ပလိက်မက်သဳဒဝ်နဳယျာအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမဝိသေသနဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|မ]]"
399073
wikitext
text/x-wiki
[[ကဏ္ဍ:ထာမ်ပလိက်မက်သဳဒဝ်နဳယျာအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမဝိသေသနဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|မ]]
4rnr10dvfqsxkvl9f84tlujplus50a8
креветче
0
296858
399074
2026-07-17T17:20:44Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==မက်သဳဒဝ်နဳယျာ== ===ဗွဟ်ရမ္သာၚ်=== * {{mk-IPA}} ===နာမ်=== {{mk-noun|n}} # {{diminutive of|mk|кревет}} ====လဟုတ်စှ်ေ==== {{mk-decl-noun-n-е-иња|креветч}}"
399074
wikitext
text/x-wiki
==မက်သဳဒဝ်နဳယျာ==
===ဗွဟ်ရမ္သာၚ်===
* {{mk-IPA}}
===နာမ်===
{{mk-noun|n}}
# {{diminutive of|mk|кревет}}
====လဟုတ်စှ်ေ====
{{mk-decl-noun-n-е-иња|креветч}}
qe8kyh92rejap33j2etcz75rm14eeaa
ထာမ်ပလိက်:mk-decl-noun-n-е-иња
10
296859
399075
2026-07-17T17:21:33Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{mk-decl-noun-table{{#if:{{{n|}}}|-single}}<!-- -->|n={{{n|}}}<!-- -->|ind_sg={{#if:{{{1|}}}|{{{1}}}е|{{pagename}}}}<!-- -->|def_unsp_sg={{#if:{{{1|}}}|{{{1}}}ето|{{pagename}}то}}<!-- -->|def_prox_sg={{#if:{{{1|}}}|{{{1}}}ево|{{pagename}}во}}<!-- -->|def_dist_sg={{#if:{{{1|}}}|{{{1}}}ено|{{pagename}}но}}<!-- -->|voc_sg={{#if:{{{1|}}}|{{{1}}}е|{{pagename}}}}<!-- -->|ind_pl={{#if:{{{1|}}}|{{{1}}}ињ..."
399075
wikitext
text/x-wiki
{{mk-decl-noun-table{{#if:{{{n|}}}|-single}}<!--
-->|n={{{n|}}}<!--
-->|ind_sg={{#if:{{{1|}}}|{{{1}}}е|{{pagename}}}}<!--
-->|def_unsp_sg={{#if:{{{1|}}}|{{{1}}}ето|{{pagename}}то}}<!--
-->|def_prox_sg={{#if:{{{1|}}}|{{{1}}}ево|{{pagename}}во}}<!--
-->|def_dist_sg={{#if:{{{1|}}}|{{{1}}}ено|{{pagename}}но}}<!--
-->|voc_sg={{#if:{{{1|}}}|{{{1}}}е|{{pagename}}}}<!--
-->|ind_pl={{#if:{{{1|}}}|{{{1}}}иња|{{#invoke:string/templates|sub|s={{pagename}}|1|{{#expr:-1-1}}}}иња}}<!--
-->|def_unsp_pl={{#if:{{{1|}}}|{{{1}}}ињата|{{#invoke:string/templates|sub|s={{pagename}}|1|{{#expr:-1-1}}}}ињата}}<!--
-->|def_prox_pl={{#if:{{{1|}}}|{{{1}}}ињава|{{#invoke:string/templates|sub|s={{pagename}}|1|{{#expr:-1-1}}}}ињава}}<!--
-->|def_dist_pl={{#if:{{{1|}}}|{{{1}}}ињана|{{#invoke:string/templates|sub|s={{pagename}}|1|{{#expr:-1-1}}}}ињана}}<!--
-->|voc_pl={{#if:{{{1|}}}|{{{1}}}иња|{{#invoke:string/templates|sub|s={{pagename}}|1|{{#expr:-1-1}}}}иња}}<!--
-->}}<!--
-->{{#ifeq:{{{n}}}|sg|| }}<!--
-->{{#ifeq:{{{n|}}}|sg| |}}<!--
--><noinclude>{{documentation}}</noinclude>
ixiilwfs9tv3y6lcp944232yrkkf8qe
ထာမ်ပလိက်:mk-decl-noun-n-е-иња/documentation
10
296860
399076
2026-07-17T17:22:53Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} This template provides the inflection of Macedonian neuter nouns that end in {{m|mk||-е|tr=-}} and form the plural with {{m|mk||-иња|tr=-}}. Unless the parameter <code>n=</code> is set, it places the noun in [[:Category:Macedonian neuter nouns ending in -е with plurals in -иња]]. ==Parameters== ; <code>1=</code> : The stem, which is the singular form without the final {{m|mk||-е|tr=..."
399076
wikitext
text/x-wiki
{{documentation subpage}}
This template provides the inflection of Macedonian neuter nouns that end in {{m|mk||-е|tr=-}} and form the plural with {{m|mk||-иња|tr=-}}. Unless the parameter <code>n=</code> is set, it places the noun in [[:Category:Macedonian neuter nouns ending in -е with plurals in -иња]].
==Parameters==
; <code>1=</code>
: The stem, which is the singular form without the final {{m|mk||-е|tr=-}}.
; <code>n=</code>
: The number of the noun. Leave this empty for normal countable nouns. For singular-only nouns, use <code>n=sg</code>, and for plural-only nouns, use <code>n=pl</code>.
<includeonly>
[[ကဏ္ဍ:ထာမ်ပလိက်မက်သဳဒဝ်နဳယျာအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်|n-е-иња]]
</includeonly>
m4a3kk85un1gy8g4dpccnftsx4h2eep
ကဏ္ဍ:နာမ်နပုလ္လိၚ်မက်သဳဒဝ်နဳယျာဂမၠိုၚ်
14
296861
399077
2026-07-17T17:24:37Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ဘာသာမက်သဳဒဝ်နဳယျာ]]"
399077
wikitext
text/x-wiki
[[ကဏ္ဍ:ဘာသာမက်သဳဒဝ်နဳယျာ]]
pn8i4qxbw2vc0y25bi3bs2tgytwo1yw
crevette
0
296862
399078
2026-07-17T19:15:44Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|Crevette}} =={{=en=}}== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{bor|en|fr|crevette}} ===နာမ်=== {{en-noun}} # ၚုဲမွဲ။။ ==ပြၚ်သေတ်== ===နိရုတ်=== {{bor+|fr|nrf|crevette}} ===ဗွဟ်ရမ္သာၚ်=== * {{fr-IPA}} * {{audio|fr|Fr-crevette.ogg}} * {{audio|fr|LL-Q150 (fra)-Benoît Prieur-crevette.wav|a=<<France>> (<<Saint-M..."
399078
wikitext
text/x-wiki
{{also|Crevette}}
=={{=en=}}==
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{bor|en|fr|crevette}}
===နာမ်===
{{en-noun}}
# ၚုဲမွဲ။။
==ပြၚ်သေတ်==
===နိရုတ်===
{{bor+|fr|nrf|crevette}}
===ဗွဟ်ရမ္သာၚ်===
* {{fr-IPA}}
* {{audio|fr|Fr-crevette.ogg}}
* {{audio|fr|LL-Q150 (fra)-Benoît Prieur-crevette.wav|a=<<France>> (<<Saint-Maurice-de-Beynost>>)}}
* {{audio|fr|LL-Q150 (fra)-LoquaxFR-crevette.wav|a=<<France>> (<<Vosges>>)}}
* {{audio|fr|LL-Q150 (fra)-Mecanautes-crevette.wav|a=France}}
* {{audio|fr|LL-Q150 (fra)-Poslovitch-crevette.wav|a=<<France>> (<<Vosges>>)}}
* {{audio|fr|LL-Q150 (fra)-WikiLucas00-crevette.wav|a=<<France>> (<<Lyon>>)}}
===နာမ်===
{{fr-noun|f}}
# ၚုဲ။
#: {{syn|fr|chevrette<g:f>}}
===မဒုၚ်လွဳစ===
{{top2}}
* {{desc|mfe|krevet}}
* {{desc|bor=1|be|крэветка|крэвэтка}}
* {{desc|cs|bor=1|kreveta}}
* {{desc|en|bor=1|crevette}}
* {{desc|et|bor=1|krevett}}
* {{desc|de|bor=1|Krevette}}
* {{desc|lv|bor=1|krevete}}
* {{desc|lt|bor=1|krevetė}}
* {{desc|pl|bor=1|krewetka}}
* {{desc|ro|bor=1|crevetă}}
* {{desctree|ru|bor=1|креве́тка}}
* {{desc|sh|bor=1|кревѐта}}
* {{desc|sk|bor=1|kreveta}}
* {{desc|uk|bor=1|креве́тка}}
* {{desc|ro|bor=1|crevetă}}
{{bottom}}
eu9adzfns5w2pxswm0dtdless1d4sn9
ကဏ္ဍ:ဝေါဟာပြၚ်သေတ်ကၠုၚ်နူဝေါဟာနဝ်မေံဂမၠိုၚ်
14
296863
399079
2026-07-17T19:17:25Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ဘာသာပြၚ်သေတ်]]"
399079
wikitext
text/x-wiki
[[ကဏ္ဍ:ဘာသာပြၚ်သေတ်]]
ds75vqpwilqfsuqsl1tskc7lbv7vtrp
ကဏ္ဍ:ဝေါဟာပြၚ်သေတ်လွဳလဝ် နူဝေါဟာနဝ်မေံဂမၠိုၚ်
14
296864
399080
2026-07-17T19:18:50Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ဘာသာပြၚ်သေတ်]]"
399080
wikitext
text/x-wiki
[[ကဏ္ဍ:ဘာသာပြၚ်သေတ်]]
ds75vqpwilqfsuqsl1tskc7lbv7vtrp
crevettes
0
296865
399081
2026-07-17T19:21:15Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "=={{=en=}}== ===နာမ်=== {{head|en|noun form}} # {{plural of|en|crevette}} ==ပြၚ်သေတ်== ===နာမ်=== {{head|fr|noun form|g=f}} # {{plural of|fr|crevette}}"
399081
wikitext
text/x-wiki
=={{=en=}}==
===နာမ်===
{{head|en|noun form}}
# {{plural of|en|crevette}}
==ပြၚ်သေတ်==
===နာမ်===
{{head|fr|noun form|g=f}}
# {{plural of|fr|crevette}}
asiidrv5scnz61mjnn812wsrgstjpvi
Crevette
0
296866
399082
2026-07-17T19:27:55Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|crevette}} =={{=de=}}== ===ဗွဟ်ရမ္သာၚ်=== * {{IPA|de|/kʁəˈvɛt/}} * {{audio|de|De-Crevette.ogg|a=<<Germany>> (<<Berlin>>)}} ===နာမ်=== {{de-noun|f}} # {{alternative form of|de|Krevette}} ====လဟုတ်စှ်ေ==== {{de-ndecl|f}}"
399082
wikitext
text/x-wiki
{{also|crevette}}
=={{=de=}}==
===ဗွဟ်ရမ္သာၚ်===
* {{IPA|de|/kʁəˈvɛt/}}
* {{audio|de|De-Crevette.ogg|a=<<Germany>> (<<Berlin>>)}}
===နာမ်===
{{de-noun|f}}
# {{alternative form of|de|Krevette}}
====လဟုတ်စှ်ေ====
{{de-ndecl|f}}
tqnvol1hb02zlm39f3osjenw9lemyg5
Crevetten
0
296867
399083
2026-07-17T19:29:08Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "=={{=de=}}== ===ဗွဟ်ရမ္သာၚ်=== * {{audio|de|De-Crevetten.ogg|a=<<Germany>> (<<Berlin>>)}} ===နာမ်=== {{head|de|noun form}} # {{plural of|de|Crevette}}"
399083
wikitext
text/x-wiki
=={{=de=}}==
===ဗွဟ်ရမ္သာၚ်===
* {{audio|de|De-Crevetten.ogg|a=<<Germany>> (<<Berlin>>)}}
===နာမ်===
{{head|de|noun form}}
# {{plural of|de|Crevette}}
ffeg40rel19ncqblmjoidieaujajv0w
Krevette
0
296868
399084
2026-07-17T19:31:08Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "=={{=de=}}== ===ပွံၚ်နဲတၞဟ်=== * {{alter|de|Crevette}} ===နိရုတ်=== {{bor+|de|fr|crevette}} ===နာမ်=== {{de-noun|f}} # ၚုဲ။ ====လဟုတ်စှ်ေ==== {{de-ndecl|f}}"
399084
wikitext
text/x-wiki
=={{=de=}}==
===ပွံၚ်နဲတၞဟ်===
* {{alter|de|Crevette}}
===နိရုတ်===
{{bor+|de|fr|crevette}}
===နာမ်===
{{de-noun|f}}
# ၚုဲ။
====လဟုတ်စှ်ေ====
{{de-ndecl|f}}
5ch5p99rjvpvptwr95ik88jcyj7rfjo
Krevetten
0
296869
399085
2026-07-17T19:31:49Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "=={{=de=}}== ===နာမ်=== {{head|de|noun form}} # {{plural of|de|Krevette}}"
399085
wikitext
text/x-wiki
=={{=de=}}==
===နာမ်===
{{head|de|noun form}}
# {{plural of|de|Krevette}}
et1k63n1arg56dfsckppcde673qka5p
krevde
0
296870
399087
2026-07-17T19:40:57Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==နဝ်ဝေ ဗော်ခ်မဝ်== ===ပွံၚ်နဲတၞဟ်=== * {{alt|nb|krevet}} ===ကြိယာ=== {{head|nb|verb form}} # {{inflection of|nb|kreve||simple past}}"
399087
wikitext
text/x-wiki
==နဝ်ဝေ ဗော်ခ်မဝ်==
===ပွံၚ်နဲတၞဟ်===
* {{alt|nb|krevet}}
===ကြိယာ===
{{head|nb|verb form}}
# {{inflection of|nb|kreve||simple past}}
m6bta4j08xyjsng8nvthjf271mdvfgp
kreve
0
296871
399088
2026-07-18T00:44:48Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==နဝ်ဝေ ဗော်ခ်မဝ်== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{der|nb|non|krefja}} ===ကြိယာ=== {{head|nb|verb|မနွံကဵုပၟိက်အကာဲအရာ|krev|ကာလပစ္စုပ္ပန်|krever|ဟွံတဝ်စၞေဟ်|kreves|အတိက်မတပ်တး|krevde|ဝါ|krevet|မကၠောန်စွံလဝ်န..."
399088
wikitext
text/x-wiki
==နဝ်ဝေ ဗော်ခ်မဝ်==
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{der|nb|non|krefja}}
===ကြိယာ===
{{head|nb|verb|မနွံကဵုပၟိက်အကာဲအရာ|krev|ကာလပစ္စုပ္ပန်|krever|ဟွံတဝ်စၞေဟ်|kreves|အတိက်မတပ်တး|krevde|ဝါ|krevet|မကၠောန်စွံလဝ်နကဵုအတိက်|krevd|ဝါ|krevet|မကၠောန်စွံလဝ်နကဵုပစ္စုပ္ပန်|krevende}}
# သကဵုအာတ်မိက်။
# သကဵုနွံပၟိက်။
# သကဵုပၟိက်နွံအခေါၚ်အဝဵုဇကု (ဥပမာ ဘဝမွဲသာ်)။
0bh2tf04jc3exjcyk6ilahexoqk4xcd
krever
0
296872
399089
2026-07-18T00:45:45Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==နဝ်ဝေ ဗော်ခ်မဝ်== ===ကြိယာ=== {{head|nb|verbf}} # {{infl of|nb|kreve||pres|tense}}"
399089
wikitext
text/x-wiki
==နဝ်ဝေ ဗော်ခ်မဝ်==
===ကြိယာ===
{{head|nb|verbf}}
# {{infl of|nb|kreve||pres|tense}}
bnt8f9ywfes8b12gc0fqztq1i38ketj
kreves
0
296873
399090
2026-07-18T00:53:37Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==မဝ်ရေတ်ဃှေန် ခရဳအဝ်== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{inh|mfe|fr|crevette}} ===ဗွဟ်ရမ္သာၚ်=== * {{IPA|mfe|/kɰevet/}} ===နာမ်=== {{head|mfe|noun}} # ၚုဲ၊ ၚုဲဒဂေါၚ်။ ==နဝ်ဝေ ဗော်ခ်မဝ်== ===ပွံၚ်နဲတၞဟ်=== * {{alt|nb|krevde||simple past|}}..."
399090
wikitext
text/x-wiki
==မဝ်ရေတ်ဃှေန် ခရဳအဝ်==
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{inh|mfe|fr|crevette}}
===ဗွဟ်ရမ္သာၚ်===
* {{IPA|mfe|/kɰevet/}}
===နာမ်===
{{head|mfe|noun}}
# ၚုဲ၊ ၚုဲဒဂေါၚ်။
==နဝ်ဝေ ဗော်ခ်မဝ်==
===ပွံၚ်နဲတၞဟ်===
* {{alt|nb|krevde||simple past|}}
* {{alt|nn|krevd||past participle|}}
===ကြိယာ===
{{head|nb|verb form}}
# {{inflection of|nb|kreve||simple past|;|past|part}}
==သာဗ်ခြဝ်ဨရှဳယာန်==
===နိရုတ်===
{{bor+|sh|ota|كروت|tr=kerevet}}၊ နကဵုအဆက်နူ {{der|sh|el|κρεβάτι}}၊ နကဵုမဆေၚ်စပ်ကဵုနူ{{der|sh|grc|κράββατος}}၊ နူအဆက်နကဵု {{der|sh|xmk|*γράβος}}
===ဗွဟ်ရမ္သာၚ်===
* {{sh-IPA|krèvet}}
* {{hyphenation|sh|kre|vet}}
===နာမ်===
{{sh-noun|krèvet|m-in}}
# ဖုန်။
#: {{syn|sh|pȍstelja}}
====လဟုတ်စှ်ေ====
{{sh-decl-noun
|krèvet|kreveti
|kreveta|krȅvētā
|krevetu|krevetima
|krevet|krevete
|krevete|kreveti
|krevetu|krevetima
|krevetom|krevetima
}}
==သေသျှလွာ ခရဳအဝ်လ်==
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{der|crs|fr|crevette}}
===နာမ်===
{{head|crs|noun}}
# ၚုဲ၊ ၚုဲဒဂေါၚ်။
5lei2em7aqogostrx5mvcwmmblodp80
krevd
0
296874
399091
2026-07-18T00:56:19Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==နဝ်ဝေ ဗော်ခ်မဝ်== ===ပွံၚ်နဲတၞဟ်=== * {{alt|nb|krevet}} ===ကြိယာ=== {{head|nb|verb form}} # {{inflection of|nb|kreve||past|part}}"
399091
wikitext
text/x-wiki
==နဝ်ဝေ ဗော်ခ်မဝ်==
===ပွံၚ်နဲတၞဟ်===
* {{alt|nb|krevet}}
===ကြိယာ===
{{head|nb|verb form}}
# {{inflection of|nb|kreve||past|part}}
ks17zi99fco365wyu21g7tfy2r8y7az
krevende
0
296875
399092
2026-07-18T01:00:24Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==နဝ်ဝေ ဗော်ခ်မဝ်== ====နာမဝိသေသန==== {{head|nb|adjective}} # ပွမအာတ်မိက်။ ===ကြိယာ=== {{head|nb|verb form}} # {{inflection of|nb|kreve||pres|part}}"
399092
wikitext
text/x-wiki
==နဝ်ဝေ ဗော်ခ်မဝ်==
====နာမဝိသေသန====
{{head|nb|adjective}}
# ပွမအာတ်မိက်။
===ကြိယာ===
{{head|nb|verb form}}
# {{inflection of|nb|kreve||pres|part}}
hfdtevjj8jqgr7sx5jnwvuv92fz3mib
krêft
0
296876
399093
2026-07-18T01:05:56Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|kreft}} ==ဖရေဝ်သဳယာန်လက္ကရဴ== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{inh|fy|ofs|creft}}၊ နူကဵုဝေါဟာ {{inh|fy|gmw-pro|*kraftu}}၊ နကဵုမဆေၚ်စပ်ကဵုနူ {{inh|fy|gem-pro|*kraftuz}} ===ဗွဟ်ရမ္သာၚ်=== * {{IPA|fy|/krɛːft/}} ===နာမ်=== {{fy-noun|c|krêften}} # ဇြဟ..."
399093
wikitext
text/x-wiki
{{also|kreft}}
==ဖရေဝ်သဳယာန်လက္ကရဴ==
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{inh|fy|ofs|creft}}၊ နူကဵုဝေါဟာ {{inh|fy|gmw-pro|*kraftu}}၊ နကဵုမဆေၚ်စပ်ကဵုနူ {{inh|fy|gem-pro|*kraftuz}}
===ဗွဟ်ရမ္သာၚ်===
* {{IPA|fy|/krɛːft/}}
===နာမ်===
{{fy-noun|c|krêften}}
# ဇြဟတ်ဇၟူ။
# ဇြဟတ်၊ အစောံဇြဟတ်။
jennigdhsoptmtv0bwnd0qhxvfqx8og
krêften
0
296877
399094
2026-07-18T01:07:00Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==ဖရေဝ်သဳယာန်လက္ကရဴ== ===နာမ်=== {{head|fy|noun form}} # {{plural of|fy|krêft}}"
399094
wikitext
text/x-wiki
==ဖရေဝ်သဳယာန်လက္ကရဴ==
===နာမ်===
{{head|fy|noun form}}
# {{plural of|fy|krêft}}
g846ubfh4ymptzdz5z77phikr9th7t7
creft
0
296878
399095
2026-07-18T01:08:25Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==ဖရေဝ်သဳယာန်တြေံ== ===နာမ်=== {{head|ofs|နာမ်}} # ဇြဟတ်၊ အစောံဇြဟတ်။"
399095
wikitext
text/x-wiki
==ဖရေဝ်သဳယာန်တြေံ==
===နာမ်===
{{head|ofs|နာမ်}}
# ဇြဟတ်၊ အစောံဇြဟတ်။
1y68hd1isn5xhngcxx3yn93y9oc4or0
kraft
0
296879
399096
2026-07-18T01:43:38Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|Kraft}} =={{=en=}}== ===နိရုတ်=== {{bor+|en|sv|kraft||strength}} ===နာမ်=== {{en-noun|-}} # ဗဳဇဂကူမဆေၚ်စပ်ကဵုမသ္ကာတ်၊ စက္ခူပွမဓုပ်ဂွဳအရံၚ်ဒမျိုၚ်မတၠိတ်။ ==ဒိန်နေတ်== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{der|da|non|kraptr}}, {{m|..."
399096
wikitext
text/x-wiki
{{also|Kraft}}
=={{=en=}}==
===နိရုတ်===
{{bor+|en|sv|kraft||strength}}
===နာမ်===
{{en-noun|-}}
# ဗဳဇဂကူမဆေၚ်စပ်ကဵုမသ္ကာတ်၊ စက္ခူပွမဓုပ်ဂွဳအရံၚ်ဒမျိုၚ်မတၠိတ်။
==ဒိန်နေတ်==
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{der|da|non|kraptr}}, {{m|non|krǫptr}}၊ နူကဵုဝေါဟာ {{inh|da|gem-pro|*kraftuz}}
===ဗွဟ်ရမ္သာၚ်===
* {{IPA|da|[ˈkʰʁ̥ɑfd̥]}}
* {{homophones|da|kræft}} (except in some older speakers)
===နာမ်===
{{da-noun|en|kræfter}}
# ဇြဟတ်ဇၟူ။
# အစောံဇြဟတ်။
# ဇြဟတ်၊ မပ္တိတ်ဇြဟတ်ပရေၚ်ဟွံပိုတ်ဟွံသ္ကုတ်။
====ပရေၚ်ကၠောံ====
{{da-noun-infl|en|kræfter|kræfterne|||kræfters|kræfternes}}
==ဒါတ်==
===နာမ်===
{{nl-noun|f|-en|-}}
# {{obsolete form of|nl|kracht}}
==ဖာရဝ်သဳ==
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{der|fo|non|kraptr}}, {{m|non|krǫptr}}
===ဗွဟ်ရမ္သာၚ်===
* {{IPA|fo|/kɹaft/}}
===နာမ်===
{{fo-noun|f|kraftar|kreftir}}
# ဇြဟတ်ဇၟူ၊ ဇြဟတ်။
====လဟုတ်စှ်ေ====
{{fo-decl-noun-f34|kr|a|ft|e}}
==ဂျာမာန်==
{{was wotd|၂၀၂၆|ဂျူလာင်|၁၈}}
===ဗွဟ်ရမ္သာၚ်===
* {{audio|de|De-kraft.ogg|a=<<Germany>> (<<Berlin>>)}}
===ဝိဘတ်===
{{head|de|preposition}}
# လ္တူမဆေၚ်စပ်ကဵုသ္ဇိုၚ်နကဵု၊ နူအၚ်္ဂဂုန်နကဵု၊ နူထ္ၜးစၞောန်တၚ်နကဵု၊ မွဲဒမြိပ်။
==နဝ်ဝေ ဗော်ခ်မဝ်==
{{wp|no:}}
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{der|nb|non|kraptr}}
===နာမ်===
{{head|nb|noun|g=m|g2=f|ကိုန်ဨကဝုစ်မချိုတ်ပၠိုတ်|krafta|ဝါ|kraften|ကိုန်ဗဟုဝစ်ဟွံချိုတ်ပၠိုတ်|krefter|ကိုန်ဗဟုဝစ်မချိုတ်ပၠိုတ်|kreftene}}
# အစောံဇြဟတ်။
# ဇြဟတ်။
# ဟၚ်၊ သွဖျုန်။
==နဝ်ဝေ နဳနိုတ်==
{{wp|nn:}}
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{der|nn|non|kraptr}}
===ဗွဟ်ရမ္သာၚ်===
* {{IPA|no|/krɑft/}}
===နာမ်===
{{head|nn|noun|g=f|ကိုန်ဨကဝုစ်မချိုတ်ပၠိုတ်|krafta|ကိုန်ဗဟုဝစ်ဟွံချိုတ်ပၠိုတ်|krefter|ကိုန်ဗဟုဝစ်မချိုတ်ပၠိုတ်|kreftene}}
# အစောံဇြဟတ်။
# ဇြဟတ်ဇၟူ၊ ဇြဟတ်။
# ဟၚ်၊ သွဖျုန်။
==သာတ်သိုန်တြေံ==
===ပွံၚ်နဲတၞဟ်===
* {{alter|osx|kraht}}
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{inh|osx|gmw-pro|*kraftu}}၊ နူကဵုဝေါဟာ {{inh|osx|gem-pro|*kraftuz}}
===ဗွဟ်ရမ္သာၚ်===
* {{IPA|osx|/krɑft/}}
===နာမ်===
{{head|osx|noun|g=f}}
# ဇြဟတ်ဇၟူ၊ ဇြဟတ်၊ ပရေၚ်စိုန်သ္ကီု။
# ဗျူဟမွဲသာ်၊ အပ္ဍဲဗျာပရ။
====လဟုတ်စှ်ေ====
{{osx-decl-noun-i-f|kraft|kreft}}
===မဒုၚ်လွဳစ===
* {{desc|gml|kraft|kracht|alts=1}}
** {{desc|nds|Kracht}}
*** {{desc|nds-de|Kraft|Kracht}}
** {{desc|pdt|Krauft|Kroft}}
==သွဳဒေန်==
{{wp|sv:}}
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{der|sv|gmq-osw|krapter}}၊ နူကဵုဝေါဟာ {{der|sv|non|kraptr}}, {{m|non|krǫptr}}၊ နကဵုအဆက်ဝေါဟာ {{der|sv|gem-pro|*kraftuz}}
===ဗွဟ်ရမ္သာၚ်===
* {{audio|sv|Sv-kraft.ogg}}
===နာမ်===
{{sv-noun|c}}
# အစောံဇြဟတ်။
## အစောံစရာဲ။
# ဇြဟတ်ဇၟူ၊ ဇြဟတ်။
====လဟုတ်စှ်ေ====
{{sv-infl-noun-c-er}}
kor4qjzmeiqfihlo942676w491uk67p
399097
399096
2026-07-18T01:44:04Z
咽頭べさ
33
399097
wikitext
text/x-wiki
{{also|Kraft}}
=={{=en=}}==
===နိရုတ်===
{{bor+|en|sv|kraft}}
===နာမ်===
{{en-noun|-}}
# ဗဳဇဂကူမဆေၚ်စပ်ကဵုမသ္ကာတ်၊ စက္ခူပွမဓုပ်ဂွဳအရံၚ်ဒမျိုၚ်မတၠိတ်။
==ဒိန်နေတ်==
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{der|da|non|kraptr}}, {{m|non|krǫptr}}၊ နူကဵုဝေါဟာ {{inh|da|gem-pro|*kraftuz}}
===ဗွဟ်ရမ္သာၚ်===
* {{IPA|da|[ˈkʰʁ̥ɑfd̥]}}
* {{homophones|da|kræft}} (except in some older speakers)
===နာမ်===
{{da-noun|en|kræfter}}
# ဇြဟတ်ဇၟူ။
# အစောံဇြဟတ်။
# ဇြဟတ်၊ မပ္တိတ်ဇြဟတ်ပရေၚ်ဟွံပိုတ်ဟွံသ္ကုတ်။
====ပရေၚ်ကၠောံ====
{{da-noun-infl|en|kræfter|kræfterne|||kræfters|kræfternes}}
==ဒါတ်==
===နာမ်===
{{nl-noun|f|-en|-}}
# {{obsolete form of|nl|kracht}}
==ဖာရဝ်သဳ==
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{der|fo|non|kraptr}}, {{m|non|krǫptr}}
===ဗွဟ်ရမ္သာၚ်===
* {{IPA|fo|/kɹaft/}}
===နာမ်===
{{fo-noun|f|kraftar|kreftir}}
# ဇြဟတ်ဇၟူ၊ ဇြဟတ်။
====လဟုတ်စှ်ေ====
{{fo-decl-noun-f34|kr|a|ft|e}}
==ဂျာမာန်==
{{was wotd|၂၀၂၆|ဂျူလာင်|၁၈}}
===ဗွဟ်ရမ္သာၚ်===
* {{audio|de|De-kraft.ogg|a=<<Germany>> (<<Berlin>>)}}
===ဝိဘတ်===
{{head|de|preposition}}
# လ္တူမဆေၚ်စပ်ကဵုသ္ဇိုၚ်နကဵု၊ နူအၚ်္ဂဂုန်နကဵု၊ နူထ္ၜးစၞောန်တၚ်နကဵု၊ မွဲဒမြိပ်။
==နဝ်ဝေ ဗော်ခ်မဝ်==
{{wp|no:}}
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{der|nb|non|kraptr}}
===နာမ်===
{{head|nb|noun|g=m|g2=f|ကိုန်ဨကဝုစ်မချိုတ်ပၠိုတ်|krafta|ဝါ|kraften|ကိုန်ဗဟုဝစ်ဟွံချိုတ်ပၠိုတ်|krefter|ကိုန်ဗဟုဝစ်မချိုတ်ပၠိုတ်|kreftene}}
# အစောံဇြဟတ်။
# ဇြဟတ်။
# ဟၚ်၊ သွဖျုန်။
==နဝ်ဝေ နဳနိုတ်==
{{wp|nn:}}
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{der|nn|non|kraptr}}
===ဗွဟ်ရမ္သာၚ်===
* {{IPA|no|/krɑft/}}
===နာမ်===
{{head|nn|noun|g=f|ကိုန်ဨကဝုစ်မချိုတ်ပၠိုတ်|krafta|ကိုန်ဗဟုဝစ်ဟွံချိုတ်ပၠိုတ်|krefter|ကိုန်ဗဟုဝစ်မချိုတ်ပၠိုတ်|kreftene}}
# အစောံဇြဟတ်။
# ဇြဟတ်ဇၟူ၊ ဇြဟတ်။
# ဟၚ်၊ သွဖျုန်။
==သာတ်သိုန်တြေံ==
===ပွံၚ်နဲတၞဟ်===
* {{alter|osx|kraht}}
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{inh|osx|gmw-pro|*kraftu}}၊ နူကဵုဝေါဟာ {{inh|osx|gem-pro|*kraftuz}}
===ဗွဟ်ရမ္သာၚ်===
* {{IPA|osx|/krɑft/}}
===နာမ်===
{{head|osx|noun|g=f}}
# ဇြဟတ်ဇၟူ၊ ဇြဟတ်၊ ပရေၚ်စိုန်သ္ကီု။
# ဗျူဟမွဲသာ်၊ အပ္ဍဲဗျာပရ။
====လဟုတ်စှ်ေ====
{{osx-decl-noun-i-f|kraft|kreft}}
===မဒုၚ်လွဳစ===
* {{desc|gml|kraft|kracht|alts=1}}
** {{desc|nds|Kracht}}
*** {{desc|nds-de|Kraft|Kracht}}
** {{desc|pdt|Krauft|Kroft}}
==သွဳဒေန်==
{{wp|sv:}}
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{der|sv|gmq-osw|krapter}}၊ နူကဵုဝေါဟာ {{der|sv|non|kraptr}}, {{m|non|krǫptr}}၊ နကဵုအဆက်ဝေါဟာ {{der|sv|gem-pro|*kraftuz}}
===ဗွဟ်ရမ္သာၚ်===
* {{audio|sv|Sv-kraft.ogg}}
===နာမ်===
{{sv-noun|c}}
# အစောံဇြဟတ်။
## အစောံစရာဲ။
# ဇြဟတ်ဇၟူ၊ ဇြဟတ်။
====လဟုတ်စှ်ေ====
{{sv-infl-noun-c-er}}
bhttx1lovb45mcn4zq5f5qew5kttion
ဝိက်ရှေန်နရဳ:မအရေဝ်သွက်တ္ၚဲဏအ်/၂၀၂၆/ဂျူလာင် ၁၈
4
296880
399098
2026-07-18T01:46:03Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{WOTD|kraft|ဝိဘတ်| လ္တူမဆေၚ်စပ်ကဵုသ္ဇိုၚ်နကဵု၊ နူအၚ်္ဂဂုန်နကဵု၊ နူထ္ၜးစၞောန်တၚ်နကဵု၊ မွဲဒမြိပ်။|audio=De-kraft.ogg|ဂျူလာင်|၁၈}}"
399098
wikitext
text/x-wiki
{{WOTD|kraft|ဝိဘတ်| လ္တူမဆေၚ်စပ်ကဵုသ္ဇိုၚ်နကဵု၊ နူအၚ်္ဂဂုန်နကဵု၊ နူထ္ၜးစၞောန်တၚ်နကဵု၊ မွဲဒမြိပ်။|audio=De-kraft.ogg|ဂျူလာင်|၁၈}}
n65ra2u16p8nyizfy2t35m0qdl3eo8a
ထာမ်ပလိက်:fo-decl-noun-f34
10
296881
399099
2026-07-18T01:47:16Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{#invoke:fo-noun|show|decl=f34}}<!-- --><noinclude>{{documentation}}</noinclude>"
399099
wikitext
text/x-wiki
{{#invoke:fo-noun|show|decl=f34}}<!--
--><noinclude>{{documentation}}</noinclude>
pxs3gwwhtdmdzx5b1jmonhoxz8av26f
မဝ်ဂျူ:fo-noun/data-f
828
296882
399100
2026-07-18T01:49:20Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "local decl = {} decl["f1"] = { params = { [1] = {}, }, singular = function(args, data) data.forms["nom_sg"] = {args[1] .. "a"} data.forms["nom_sg_def"] = {args[1] .. "an"} data.forms["acc_sg"] = {args[1] .. "u"} data.forms["acc_sg_def"] = {args[1] .. "una"} data.forms["dat_sg"] = {args[1] .. "u"} data.forms["dat_sg_def"] = {args[1] .. "uni"} data.forms["gen_sg"] = {args[1] .. "u"} data.forms[..."
399100
Scribunto
text/plain
local decl = {}
decl["f1"] = {
params = {
[1] = {},
},
singular = function(args, data)
data.forms["nom_sg"] = {args[1] .. "a"}
data.forms["nom_sg_def"] = {args[1] .. "an"}
data.forms["acc_sg"] = {args[1] .. "u"}
data.forms["acc_sg_def"] = {args[1] .. "una"}
data.forms["dat_sg"] = {args[1] .. "u"}
data.forms["dat_sg_def"] = {args[1] .. "uni"}
data.forms["gen_sg"] = {args[1] .. "u"}
data.forms["gen_sg_def"] = {args[1] .. "unnar"}
end,
plural = function(args, data)
data.forms["nom_pl"] = {args[1] .. "ur"}
data.forms["nom_pl_def"] = {args[1] .. "urnar"}
data.forms["acc_pl"] = {args[1] .. "ur"}
data.forms["acc_pl_def"] = {args[1] .. "urnar"}
data.forms["dat_pl"] = {args[1] .. "um"}
data.forms["dat_pl_def"] = {args[1] .. "unum"}
data.forms["gen_pl"] = {args[1] .. "a"}
data.forms["gen_pl_def"] = {args[1] .. "anna"}
end
}
setmetatable(decl["f1"], {__call = function(self, args, data)
data.decl_type = "f1"
self.singular(args, data)
self.plural(args, data)
end
})
decl["f1-p"] = {
params = {
[1] = {},
},
}
setmetatable(decl["f1-p"], {__call = function(self, args, data)
decl["f1"].plural(args, data)
data.info = " (plural only)"
data.decl_type = "f1p"
data.defective = "p"
end
})
decl["f1-s"] = {
params = {
[1] = {},
},
}
setmetatable(decl["f1-s"], {__call = function(self, args, data)
decl["f1"].singular(args, data)
data.info = " (singular only)"
data.decl_type = "f1s"
data.defective = "s"
end
})
decl["f1-s-def"] = {
params = {
[1] = {},
},
}
setmetatable(decl["f1-s-def"], {__call = function(self, args, data)
decl["f1"].singular(args, data)
data.info = " (singular definite only)"
data.decl_type = "f1s def"
data.defective = "s_def"
end
})
decl["f1-s-f6-p"] = {
params = {
[1] = {},
},
}
setmetatable(decl["f1-s-f6-p"], {__call = function(self, args, data)
decl["f1"].singular(args, data)
decl["f2"].plural(args, data)
data.decl_type = "f1s/f6p"
data.forms["nom_pl"] = {args[1] .. "ar"}
data.forms["nom_pl_def"] = {args[1] .. "arnar"}
data.forms["acc_pl"] = {args[1] .. "ar"}
data.forms["acc_pl_def"] = {args[1] .. "arnar"}
end
})
decl["f1-s-indef"] = {
params = {
[1] = {},
},
}
setmetatable(decl["f1-s-indef"], {__call = function(self, args, data)
decl["f1"].singular(args, data)
data.info = " (singular indefinite only)"
data.decl_type = "f1s indef"
data.defective = "s_indef"
end
})
decl["f2"] = {
params = {
[1] = {},
},
singular = function(args, data)
data.forms["nom_sg"] = {args[1]}
data.forms["nom_sg_def"] = {args[1] .. "in"}
data.forms["acc_sg"] = {args[1]}
data.forms["acc_sg_def"] = {args[1] .. "ina"}
data.forms["dat_sg"] = {args[1]}
data.forms["dat_sg_def"] = {args[1] .. "ini"}
data.forms["gen_sg"] = {args[1] .. "ar"}
data.forms["gen_sg_def"] = {args[1] .. "arinnar"}
end,
plural = function(args, data)
data.forms["nom_pl"] = {args[1] .. "ir"}
data.forms["nom_pl_def"] = {args[1] .. "irnar"}
data.forms["acc_pl"] = {args[1] .. "ir"}
data.forms["acc_pl_def"] = {args[1] .. "irnar"}
data.forms["dat_pl"] = {args[1] .. "um"}
data.forms["dat_pl_def"] = {args[1] .. "unum"}
data.forms["gen_pl"] = {args[1] .. "a"}
data.forms["gen_pl_def"] = {args[1] .. "anna"}
end
}
setmetatable(decl["f2"], {__call = function(self, args, data)
data.info = ""
data.decl_type = "f2"
self.singular(args, data)
self.plural(args, data)
end
})
decl["f2 (á)"] = {
params = {
[1] = {},
},
}
setmetatable(decl["f2 (á)"], {__call = function(self, args, data)
decl["f2"](args, data)
data.decl_type = "f2 (á)"
data.forms["acc_sg_def"] = {args[1] .. "nna"}
data.forms["dat_sg_def"] = {args[1] .. "nni"}
end
})
decl["f2-p"] = {
params = {
[1] = {},
},
}
setmetatable(decl["f2-p"], {__call = function(self, args, data)
decl["f2"].plural(args, data)
data.info = " (plural only)"
data.decl_type = "f2p"
data.defective = "p"
end
})
decl["f2-s"] = {
params = {
[1] = {},
},
}
setmetatable(decl["f2-s"], {__call = function(self, args, data)
decl["f2"].singular(args, data)
data.info = " (singular only)"
data.decl_type = "f2s"
data.defective = "s"
end
})
decl["f2-skrá"] = {
params = {
[1] = {},
},
}
setmetatable(decl["f2-skrá"], {__call = function(self, args, data)
decl["f2"](args, data)
data.decl_type = "f2 (skrá)"
data.forms["dat_sg_def"] = {args[1] .. "nni"}
end
})
decl["f3"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
[4] = {},
},
singular = function(args, data)
if args[1] == '-' then
-- e.g. øksl (f3), ørn (f5 which ultimately calls f3)
args[1] = ''
end
data.forms["nom_sg"] = {args[1] .. args[2] .. args[3]}
data.forms["nom_sg_def"] = {args[1] .. args[2] .. args[3] .. "in"}
data.forms["acc_sg"] = {args[1] .. args[2] .. args[3]}
data.forms["acc_sg_def"] = {args[1] .. args[2] .. args[3] .. "ina"}
data.forms["dat_sg"] = {args[1] .. args[2] .. args[3]}
data.forms["dat_sg_def"] = {args[1] .. args[2] .. args[3] .. "ini"}
data.forms["gen_sg"] = {args[1] .. args[4] .. args[3] .. "ar"}
data.forms["gen_sg_def"] = {args[1] .. args[4] .. args[3] .. "arinnar"}
end,
plural = function(args, data)
data.forms["nom_pl"] = {args[1] .. args[4] .. args[3] .. "ir"}
data.forms["nom_pl_def"] = {args[1] .. args[4] .. args[3] .. "irnar"}
data.forms["acc_pl"] = {args[1] .. args[4] .. args[3] .. "ir"}
data.forms["acc_pl_def"] = {args[1] .. args[4] .. args[3] .. "irnar"}
data.forms["dat_pl"] = {args[1] .. args[2] .. args[3] .. "um", args[1] .. args[4] .. args[3] .. "um"}
data.forms["dat_pl_def"] = {args[1] .. args[2] .. args[3] .. "unum", args[1] .. args[4] .. args[3] .. "unum"}
data.forms["gen_pl"] = {args[1] .. args[4] .. args[3] .. "a"}
data.forms["gen_pl_def"] = {args[1] .. args[4] .. args[3] .. "anna"}
end
}
setmetatable(decl["f3"], {__call = function(self, args, data)
data.decl_type = "f3"
self.singular(args, data)
self.plural(args, data)
end
})
decl["f3-s"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
[4] = {},
},
}
setmetatable(decl["f3-s"], {__call = function(self, args, data)
decl["f3"].singular(args, data)
data.info = " (singular only)"
data.decl_type = "f3s"
data.defective = "s"
end
})
decl["f4"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
[4] = {},
},
}
setmetatable(decl["f4"], {__call = function(self, args, data)
decl["f3"](args, data)
data.decl_type = "f4"
data.forms["dat_pl"] = {args[1] .. args[2] .. args[3] .. "um"}
data.forms["dat_pl_def"] = {args[1] .. args[2] .. args[3] .. "unum"}
end
})
decl["f5"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
[4] = {},
},
}
setmetatable(decl["f5"], {__call = function(self, args, data)
decl["f4"](args, data)
data.decl_type = "f5"
data.forms["nom_pl"] = {args[1] .. args[2] .. args[3] .. "ir"}
data.forms["nom_pl_def"] = {args[1] .. args[2] .. args[3] .. "irnar"}
data.forms["acc_pl"] = {args[1] .. args[2] .. args[3] .. "ir"}
data.forms["acc_pl_def"] = {args[1] .. args[2] .. args[3] .. "irnar"}
end
})
-- This pattern seems to be completely superfluous
decl["f5-s"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
},
}
setmetatable(decl["f5-s"], {__call = function(self, args, data)
decl["f3-s"](args, data)
data.decl_type = "f5s"
end
})
decl["f6"] = {
params = {
[1] = {},
},
}
setmetatable(decl["f6"], {__call = function(self, args, data)
decl["f2"](args, data)
data.decl_type = "f6"
data.forms["nom_pl"] = {args[1] .. "ar"}
data.forms["nom_pl_def"] = {args[1] .. "arnar"}
data.forms["acc_pl"] = {args[1] .. "ar"}
data.forms["acc_pl_def"] = {args[1] .. "arnar"}
end
})
decl["f6-oyggj"] = {
params = {
[1] = {},
},
}
setmetatable(decl["f6-oyggj"], {__call = function(self, args, data)
data.decl_type = "f6-oyygj"
data.forms["nom_sg"] = {args[1] .. "ggj"}
data.forms["nom_sg_def"] = {args[1] .. "ggin"}
data.forms["nom_pl"] = {args[1] .. "ggjar"}
data.forms["nom_pl_def"] = {args[1] .. "ggjarnar"}
data.forms["acc_sg"] = {args[1] .. "ggj"}
data.forms["acc_sg_def"] = {args[1] .. "nna"}
data.forms["acc_pl"] = {args[1] .. "ggjar"}
data.forms["acc_pl_def"] = {args[1] .. "ggjarnar"}
data.forms["dat_sg"] = {args[1] .. "ggj"}
data.forms["dat_sg_def"] = {args[1] .. "nni"}
data.forms["dat_pl"] = {args[1] .. "ggjum"}
data.forms["dat_pl_def"] = {args[1] .. "ggjunum"}
data.forms["gen_sg"] = {args[1] .. "ggjar"}
data.forms["gen_sg_def"] = {args[1] .. "ggjarinnar"}
data.forms["gen_pl"] = {args[1] .. "ggja"}
data.forms["gen_pl_def"] = {args[1] .. "ggjanna"}
end
})
-- This pattern seems to be completely superfluous
decl["f6-s"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
},
}
setmetatable(decl["f6-s"], {__call = function(self, args, data)
decl["f2-s"](args, data)
data.decl_type = "f6s"
end
})
decl["f7"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
[4] = {},
},
}
setmetatable(decl["f7"], {__call = function(self, args, data)
decl["f3"](args, data)
data.decl_type = "f7"
data.forms["nom_pl"] = {args[1] .. args[4] .. args[3] .. "ar"}
data.forms["nom_pl_def"] = {args[1] .. args[4] .. args[3] .. "arnar"}
data.forms["acc_pl"] = {args[1] .. args[4] .. args[3] .. "ar"}
data.forms["acc_pl_def"] = {args[1] .. args[4] .. args[3] .. "arnar"}
end
})
decl["f8"] = {
params = {
[1] = {},
},
}
setmetatable(decl["f8"], {__call = function(self, args, data)
data.decl_type = "f8"
data.forms["nom_sg"] = {args[1]}
data.forms["nom_sg_def"] = {args[1] .. "in"}
data.forms["nom_pl"] = {args[1] .. "jar"}
data.forms["nom_pl_def"] = {args[1] .. "jarnar"}
data.forms["acc_sg"] = {args[1]}
data.forms["acc_sg_def"] = {args[1] .. "ina"}
data.forms["acc_pl"] = {args[1] .. "jar"}
data.forms["acc_pl_def"] = {args[1] .. "jarnar"}
data.forms["dat_sg"] = {args[1]}
data.forms["dat_sg_def"] = {args[1] .. "ini"}
data.forms["dat_pl"] = {args[1] .. "jum"}
data.forms["dat_pl_def"] = {args[1] .. "junum"}
data.forms["gen_sg"] = {args[1] .. "jar"}
data.forms["gen_sg_def"] = {args[1] .. "jarinnar"}
data.forms["gen_pl"] = {args[1] .. "ja"}
data.forms["gen_pl_def"] = {args[1] .. "janna"}
end
})
decl["f9"] = {
params = {
[1] = {},
[2] = {},
},
}
setmetatable(decl["f9"], {__call = function(self, args, data)
data.decl_type = "f9"
if args[1] == '-' then
-- e.g. ont (f9)
args[1] = ''
end
data.forms["nom_sg"] = {args[1] .. "o" .. args[2]}
data.forms["nom_sg_def"] = {args[1] .. "o" .. args[2] .. "in"}
data.forms["nom_pl"] = {args[1] .. "e" .. args[2] .. "ur"}
data.forms["nom_pl_def"] = {args[1] .. "e" .. args[2] .. "urnar"}
data.forms["acc_sg"] = {args[1] .. "o" .. args[2]}
data.forms["acc_sg_def"] = {args[1] .. "o" .. args[2] .. "ina"}
data.forms["acc_pl"] = {args[1] .. "e" .. args[2] .. "ur"}
data.forms["acc_pl_def"] = {args[1] .. "e" .. args[2] .. "urnar"}
data.forms["dat_sg"] = {args[1] .. "o" .. args[2]}
data.forms["dat_sg_def"] = {args[1] .. "o" .. args[2] .. "ini"}
data.forms["dat_pl"] = {args[1] .. "o" .. args[2] .. "um"}
data.forms["dat_pl_def"] = {args[1] .. "o" .. args[2] .. "unum"}
data.forms["gen_sg"] = {args[1] .. "a" .. args[2] .. "ar"}
data.forms["gen_sg_def"] = {args[1] .. "a" .. args[2] .. "arinnar"}
data.forms["gen_pl"] = {args[1] .. "a" .. args[2] .. "a"}
data.forms["gen_pl_def"] = {args[1] .. "a" .. args[2] .. "anna"}
end
})
decl["f10"] = {
params = {
[1] = {},
[2] = {},
},
}
setmetatable(decl["f10"], {__call = function(self, args, data)
decl["f9"](args, data)
data.decl_type = "f10"
data.forms["gen_sg"] = {args[1] .. "o" .. args[2] .. "ar"}
data.forms["gen_sg_def"] = {args[1] .. "o" .. args[2] .. "arinnar"}
data.forms["gen_pl"] = {args[1] .. "o" .. args[2] .. "a"}
data.forms["gen_pl_def"] = {args[1] .. "o" .. args[2] .. "anna"}
end
})
decl["f11"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
[4] = {},
[5] = {},
},
}
setmetatable(decl["f11"], {__call = function(self, args, data)
data.decl_type = "f11"
if args[1] == '-' then
-- e.g. ong
args[1] = ''
end
data.forms["nom_sg"] = {args[1] .. args[2] .. args[3]}
data.forms["nom_sg_def"] = {args[1] .. args[2] .. args[3] .. "in"}
data.forms["nom_pl"] = {args[1] .. args[4] .. args[3] .. "ir", args[1] .. args[5] .. args[3] .. "ur"}
data.forms["nom_pl_def"] = {args[1] .. args[4] .. args[3] .. "irnar", args[1] .. args[5] .. args[3] .. "urnar"}
data.forms["acc_sg"] = {args[1] .. args[2] .. args[3]}
data.forms["acc_sg_def"] = {args[1] .. args[2] .. args[3] .. "ina"}
data.forms["acc_pl"] = {args[1] .. args[4] .. args[3] .. "ir", args[1] .. args[5] .. args[3] .. "ur"}
data.forms["acc_pl_def"] = {args[1] .. args[4] .. args[3] .. "irnar", args[1] .. args[5] .. args[3] .. "urnar"}
data.forms["dat_sg"] = {args[1] .. args[2] .. args[3]}
data.forms["dat_sg_def"] = {args[1] .. args[2] .. args[3] .. "ini"}
data.forms["dat_pl"] = {args[1] .. args[4] .. args[3] .. "jum"}
data.forms["dat_pl_def"] = {args[1] .. args[4] .. args[3] .. "junum"}
data.forms["gen_sg"] = {args[1] .. args[4] .. args[3] .. "jar" , args[1] .. args[2] .. args[3] .. "ar"}
data.forms["gen_sg_def"] = {args[1] .. args[4] .. args[3] .. "jarrinar" , args[1] .. args[2] .. args[3] .. "arinnar"}
data.forms["gen_pl"] = {args[1] .. args[4] .. args[3] .. "ja"}
data.forms["gen_pl_def"] = {args[1] .. args[4] .. args[3] .. "janna"}
end
})
decl["f12"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
[4] = {},
},
singular = function(args, data)
data.forms["nom_sg"] = {args[1] .. args[2] .. args[3]}
data.forms["nom_sg_def"] = {args[1] .. args[2] .. args[3] .. "in"}
data.forms["acc_sg"] = {args[1] .. args[2] .. args[3]}
data.forms["acc_sg_def"] = {args[1] .. args[2] .. args[3] .. "ina"}
data.forms["dat_sg"] = {args[1] .. args[2] .. args[3]}
data.forms["dat_sg_def"] = {args[1] .. args[2] .. args[3] .. "ini"}
data.forms["gen_sg"] = {args[1] .. args[2] .. args[3] .. "ar"}
data.forms["gen_sg_def"] = {args[1] .. args[2] .. args[3] .. "arinnar"}
end,
plural = function(args, data)
data.forms["nom_pl"] = {args[1] .. args[4] .. args[3] .. "ur"}
data.forms["nom_pl_def"] = {args[1] .. args[4] .. args[3] .. "urnar"}
data.forms["acc_pl"] = {args[1] .. args[4] .. args[3] .. "ur"}
data.forms["acc_pl_def"] = {args[1] .. args[4] .. args[3] .. "urnar"}
data.forms["dat_pl"] = {args[1] .. args[2] .. args[3] .. "um"}
data.forms["dat_pl_def"] = {args[1] .. args[2] .. args[3] .. "unum"}
data.forms["gen_pl"] = {args[1] .. args[2] .. args[3] .. "a"}
data.forms["gen_pl_def"] = {args[1] .. args[2] .. args[3] .. "anna"}
end
}
setmetatable(decl["f12"], {__call = function(self, args, data)
data.decl_type = "f12"
self.singular(args, data)
self.plural(args, data)
end
})
decl["f12-s"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
},
}
setmetatable(decl["f12-s"], {__call = function(self, args, data)
decl["f12"].singular(args, data)
data.info = " (singular only)"
data.decl_type = "f12s"
data.defective = "s"
end
})
decl["f13"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
[4] = {},
[5] = {},
},
}
setmetatable(decl["f13"], {__call = function(self, args, data)
decl["f12"](args, data)
data.decl_type = "f13"
data.forms["gen_sg"] = {args[1] .. args[5] .. args[3] .. "ar"}
data.forms["gen_sg_def"] = {args[1] .. args[5] .. args[3] .. "arinnar"}
data.forms["gen_pl"] = {args[1] .. args[5] .. args[3] .. "a"}
data.forms["gen_pl_def"] = {args[1] .. args[5] .. args[3] .. "anna"}
end
})
decl["f14"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
[4] = {},
},
}
setmetatable(decl["f14"], {__call = function(self, args, data)
data.decl_type = "f14"
data.forms["nom_sg"] = {args[1] .. args[2] .. args[3] .. args[3]}
data.forms["nom_sg_def"] = {args[1] .. args[2] .. args[3] .. args[3] .. "in"}
data.forms["nom_pl"] = {args[1] .. args[4] .. args[3] .. "ur"}
data.forms["nom_pl_def"] = {args[1] .. args[4] .. args[3] .. "urnar"}
data.forms["acc_sg"] = {args[1] .. args[2] .. args[3] .. args[3]}
data.forms["acc_sg_def"] = {args[1] .. args[2] .. args[3] .. args[3] .. "ina"}
data.forms["acc_pl"] = {args[1] .. args[4] .. args[3] .. "ur"}
data.forms["acc_pl_def"] = {args[1] .. args[2] .. args[3] .. args[3] .. "urnar"}
data.forms["dat_sg"] = {args[1] .. args[2] .. args[3] .. args[3]}
data.forms["dat_sg_def"] = {args[1] .. args[2] .. args[3] .. args[3] .. "ini"}
data.forms["dat_pl"] = {args[1] .. args[2] .. args[3] .. args[3] .. "um"}
data.forms["dat_pl_def"] = {args[1] .. args[2] .. args[3] .. args[3] .. "unum"}
data.forms["gen_sg"] = {args[1] .. args[2] .. args[3] .. args[3] .. "ar"}
data.forms["gen_sg_def"] = {args[1] .. args[2] .. args[3] .. args[3] .. "arinnar"}
data.forms["gen_pl"] = {args[1] .. args[2] .. args[3] .. args[3] .. "a"}
data.forms["gen_pl_def"] = {args[1] .. args[2] .. args[3] .. args[3] .. "anna"}
end
})
decl["f15"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
[4] = {},
[5] = {},
},
}
setmetatable(decl["f15"], {__call = function(self, args, data)
decl["f13"](args, data)
data.decl_type = "f15"
data.forms["nom_pl"] = {args[1] .. args[4] .. args[3]}
data.forms["nom_pl_def"] = {args[1] .. args[4] .. args[3] .. "inar"}
data.forms["acc_pl"] = {args[1] .. args[4] .. args[3]}
data.forms["acc_pl_def"] = {args[1] .. args[4] .. args[3] .. "inar"}
end
})
decl["f16"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
[4] = {},
},
}
setmetatable(decl["f16"], {__call = function(self, args, data)
data.decl_type = "f16"
data.forms["nom_sg"] = {args[1] .. args[2] .. args[3]}
data.forms["nom_sg_def"] = {args[1] .. args[2] .. args[3] .. "in"}
data.forms["nom_pl"] = {args[1] .. args[4] .. args[3]}
data.forms["nom_pl_def"] = {args[1] .. args[4] .. args[3] .. "nar"}
data.forms["acc_sg"] = {args[1] .. args[2] .. args[3]}
data.forms["acc_sg_def"] = {args[1] .. args[2] .. args[3] .. "ina"}
data.forms["acc_pl"] = {args[1] .. args[4] .. args[3]}
data.forms["acc_pl_def"] = {args[1] .. args[4] .. args[3] .. "nar"}
data.forms["dat_sg"] = {args[1] .. args[2] .. args[3]}
data.forms["dat_sg_def"] = {args[1] .. args[2] .. args[3] .. "ini"}
data.forms["dat_pl"] = {args[1] .. args[2] .. args[3] .. "um"}
data.forms["dat_pl_def"] = {args[1] .. args[2] .. args[3] .. "unum", args[1] .. args[4] .. args[3] .. "num"}
data.forms["gen_sg"] = {args[1] .. args[2] .. args[3] .. "ar"}
data.forms["gen_sg_def"] = {args[1] .. args[2] .. args[3] .. "arinnar"}
data.forms["gen_pl"] = {args[1] .. args[2] .. args[3] .. "a"}
data.forms["gen_pl_def"] = {args[1] .. args[2] .. args[3] .. "anna"}
end
})
decl["f17"] = {
params = {
[1] = {},
[2] = {},
},
}
setmetatable(decl["f17"], {__call = function(self, args, data)
data.decl_type = "f17"
data.forms["nom_sg"] = {args[1] .. "u" .. args[2]}
data.forms["nom_sg_def"] = {args[1] .. "u" .. args[2] .. "in"}
data.forms["nom_pl"] = {args[1] .. args[2] .. "ar"}
data.forms["nom_pl_def"] = {args[1] .. args[2] .. "arnar"}
data.forms["acc_sg"] = {args[1] .. "u" .. args[2]}
data.forms["acc_sg_def"] = {args[1] .. args[2] .. "ina"}
data.forms["acc_pl"] = {args[1] .. args[2] .. "ar"}
data.forms["acc_pl_def"] = {args[1] .. args[2] .. "arnar"}
data.forms["dat_sg"] = {args[1] .. "u" .. args[2]}
data.forms["dat_sg_def"] = {args[1] .. args[2] .. "ini"}
data.forms["dat_pl"] = {args[1] .. args[2] .. "um"}
data.forms["dat_pl_def"] = {args[1] .. args[2] .. "unum"}
data.forms["gen_sg"] = {args[1] .. args[2] .. "ar"}
data.forms["gen_sg_def"] = {args[1] .. args[2] .. "arinnar"}
data.forms["gen_pl"] = {args[1] .. args[2] .. "a"}
data.forms["gen_pl_def"] = {args[1] .. args[2] .. "anna"}
end
})
decl["f18"] = {
params = {
[1] = {},
[2] = {},
},
}
setmetatable(decl["f18"], {__call = function(self, args, data)
decl["f17"](args, data)
data.decl_type = "f18"
data.forms["gen_sg"] = {args[1] .. "a" .. args[2]}
data.forms["gen_sg_def"] = {args[1] .. "a" .. args[2] .. "innar"}
end
})
decl["f19"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
[4] = {},
[5] = {},
},
}
setmetatable(decl["f19"], {__call = function(self, args, data)
data.decl_type = "f19"
data.forms["nom_sg"] = {args[1] .. args[2] .. args[3] .. "u" .. args[4]}
data.forms["nom_sg_def"] = {args[1] .. args[2] .. args[3] .. "u" .. args[4] .. "in"}
data.forms["nom_pl"] = {args[1] .. args[5] .. args[3] .. args[4] .. "ar"}
data.forms["nom_pl_def"] = {args[1] .. args[5] .. args[3] .. args[4] .. "arnar"}
data.forms["acc_sg"] = {args[1] .. args[2] .. args[3] .. "u" .. args[4]}
data.forms["acc_sg_def"] = {args[1] .. args[2] .. args[3] .. args[4] .. "ina"}
data.forms["acc_pl"] = {args[1] .. args[5] .. args[3] .. args[4] .. "ar"}
data.forms["acc_pl_def"] = {args[1] .. args[5] .. args[3] .. args[4] .. "arnar"}
data.forms["dat_sg"] = {args[1] .. args[2] .. args[3] .. "u" .. args[4]}
data.forms["dat_sg_def"] = {args[1] .. args[2] .. args[3] .. args[4] .. "ini"}
data.forms["dat_pl"] = {args[1] .. args[2] .. args[3] .. args[4] .. "um", args[1] .. args[5] .. args[3] .. args[4] .. "um"}
data.forms["dat_pl_def"] = {args[1] .. args[2] .. args[3] .. args[4] .. "unum", args[1] .. args[5] .. args[3] .. args[4] .. "unum"}
data.forms["gen_sg"] = {args[1] .. args[5] .. args[3] .. args[4] .. "ar"}
data.forms["gen_sg_def"] = {args[1] .. args[5] .. args[3] .. args[4] .. "arinnar"}
data.forms["gen_pl"] = {args[1] .. args[5] .. args[3] .. args[4] .. "a"}
data.forms["gen_pl_def"] = {args[1] .. args[5] .. args[3] .. args[4] .. "anna"}
end
})
--Special case pattern: ær
decl["f20"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
},
}
setmetatable(decl["f20"], {__call = function(self, args, data)
data.decl_type = "f20"
data.forms["nom_sg"] = {args[1]}
data.forms["nom_sg_def"] = {args[1] .. "in"}
data.forms["nom_pl"] = {args[1]}
data.forms["nom_pl_def"] = {args[1] .. "nar"}
data.forms["acc_sg"] = {args[1]}
data.forms["acc_sg_def"] = {args[1] .. "ina"}
data.forms["acc_pl"] = {args[1]}
data.forms["acc_pl_def"] = {args[1] .. "nar"}
data.forms["dat_sg"] = {args[1]}
data.forms["dat_sg_def"] = {args[1] .. "ini"}
data.forms["dat_pl"] = {args[2] .. "m"}
data.forms["dat_pl_def"] = {args[2] .. "num"}
data.forms["gen_sg"] = {args[1]}
data.forms["gen_sg_def"] = {args[1] .. "innar"}
data.forms["gen_pl"] = {args[3] .. "a"}
data.forms["gen_pl_def"] = {args[3] .. "anna"}
end
})
decl["f21"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
[4] = {},
},
}
setmetatable(decl["f21"], {__call = function(self, args, data)
data.decl_type = "f21"
data.forms["nom_sg"] = {args[1] .. args[2] .. args[3]}
data.forms["nom_sg_def"] = {args[1] .. args[2] .. args[3] .. "in"}
data.forms["nom_pl"] = {args[1] .. args[4] .. "ir"}
data.forms["nom_pl_def"] = {args[1] .. args[4] .. "irnar"}
data.forms["acc_sg"] = {args[1] .. args[2] .. args[3]}
data.forms["acc_sg_def"] = {args[1] .. args[2] .. "nna"}
data.forms["acc_pl"] = {args[1] .. args[4] .. "ir"}
data.forms["acc_pl_def"] = {args[1] .. args[4] .. "irnar"}
data.forms["dat_sg"] = {args[1] .. args[2] .. args[3]}
data.forms["dat_sg_def"] = {args[1] .. args[2] .. "nni"}
data.forms["dat_pl"] = {args[1] .. args[4] .. "um"}
data.forms["dat_pl_def"] = {args[1] .. args[4] .. "unum"}
data.forms["gen_sg"] = {args[1] .. args[4] .. "ar"}
data.forms["gen_sg_def"] = {args[1] .. args[4] .. "arinnar"}
data.forms["gen_pl"] = {args[1] .. args[4] .. "a"}
data.forms["gen_pl_def"] = {args[1] .. args[4] .. "anna"}
end
})
decl["f22"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
[4] = {},
},
}
setmetatable(decl["f22"], {__call = function(self, args, data)
decl["f21"](args, data)
data.decl_type = "f22"
data.forms["nom_pl"] = {args[1] .. args[4] .. "ur"}
data.forms["nom_pl_def"] = {args[1] .. args[4] .. "rnar"}
data.forms["acc_pl"] = {args[1] .. args[4] .. "ur"}
data.forms["acc_pl_def"] = {args[1] .. args[4] .. "rnar"}
data.forms["dat_pl"] = {args[1] .. args[2] .. "m"}
data.forms["dat_pl_def"] = {args[1] .. args[2] .. "num"}
data.forms["gen_sg"] = {args[1] .. args[2] .. "ar"}
data.forms["gen_sg_def"] = {args[1] .. args[2] .. "arinnar"}
data.forms["gen_pl"] = {args[1] .. args[2] .. args[3] .. "a"}
data.forms["gen_pl_def"] = {args[1] .. args[2] .. args[3] .. "anna"}
end
})
decl["f23"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
},
}
setmetatable(decl["f23"], {__call = function(self, args, data)
data.decl_type = "f23"
data.forms["nom_sg"] = {args[1] .. args[2] .. args[3]}
data.forms["nom_sg_def"] = {args[1] .. args[2] .. args[3] .. "in"}
data.forms["nom_pl"] = {args[1] .. args[2] .. args[3] .. "ir"}
data.forms["nom_pl_def"] = {args[1] .. args[2] .. args[3] .. "irnar"}
data.forms["acc_sg"] = {args[1] .. args[2] .. args[3]}
data.forms["acc_sg_def"] = {args[1] .. args[2] .. "nna"}
data.forms["acc_pl"] = {args[1] .. args[2] .. args[3] .. "ir"}
data.forms["acc_pl_def"] = {args[1] .. args[2] .. args[3] .. "irnar"}
data.forms["dat_sg"] = {args[1] .. args[2] .. args[3]}
data.forms["dat_sg_def"] = {args[1] .. args[2] .. "nni"}
data.forms["dat_pl"] = {args[1] .. args[2] .. args[3] .. "um"}
data.forms["dat_pl_def"] = {args[1] .. args[2] .. args[3] .. "unum"}
data.forms["gen_sg"] = {args[1] .. args[2] .. "ar"}
data.forms["gen_sg_def"] = {args[1] .. args[2] .. "arinnar"}
data.forms["gen_pl"] = {args[1] .. args[2] .. args[3] .. "a"}
data.forms["gen_pl_def"] = {args[1] .. args[2] .. args[3] .. "anna"}
end
})
decl["f24"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
[4] = {},
},
}
setmetatable(decl["f24"], {__call = function(self, args, data)
for i = 1, 4 do
if not args[i] then args[i] = "" end
end
data.decl_type = "f24"
data.forms["nom_sg"] = {args[1] .. args[2] .. args[3]}
data.forms["nom_sg_def"] = {args[1] .. args[2] .. args[3] .. "in"}
data.forms["nom_pl"] = {args[1] .. args[4] .. "r"}
data.forms["nom_pl_def"] = {args[1] .. args[4] .. "rnar"}
data.forms["acc_sg"] = {args[1] .. args[2] .. args[3]}
data.forms["acc_sg_def"] = {args[1] .. args[2] .. "nna"}
data.forms["acc_pl"] = {args[1] .. args[4] .. "r"}
data.forms["acc_pl_def"] = {args[1] .. args[4] .. "rnar"}
data.forms["dat_sg"] = {args[1] .. args[2] .. args[3]}
data.forms["dat_sg_def"] = {args[1] .. args[2] .. "nni"}
data.forms["dat_pl"] = {args[1] .. args[2] .. "m"}
data.forms["dat_pl_def"] = {args[1] .. args[2] .. "num"}
data.forms["gen_sg"] = {args[1] .. args[2] .. args[3] .. "ar"}
data.forms["gen_sg_def"] = {args[1] .. args[2] .. args[3] .. "arinnar"}
data.forms["gen_pl"] = {args[1] .. args[2] .. args[3] .. "a"}
data.forms["gen_pl_def"] = {args[1] .. args[2] .. args[3] .. "anna"}
end
})
decl["f24-s"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
[4] = {},
},
}
setmetatable(decl["f24-s"], {__call = function(self, args, data)
decl["f24"](args, data)
data.info = " (singular only)"
data.decl_type = "f24s"
data.defective = "s"
end
})
-- This pattern appears to be completely superfluous
decl["f25"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
[4] = {},
},
}
setmetatable(decl["f25"], {__call = function(self, args, data)
decl["f16"](args, data)
data.decl_type = "f25"
end
})
decl["f26"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
[4] = {},
},
}
setmetatable(decl["f26"], {__call = function(self, args, data)
data.decl_type = "f26"
data.forms["nom_sg"] = {args[1] .. args[2]}
data.forms["nom_sg_def"] = {args[1] .. args[2] .. "in"}
data.forms["nom_pl"] = {args[1] .. args[3] .. "r"}
data.forms["nom_pl_def"] = {args[1] .. args[3] .. "rnar"}
data.forms["acc_sg"] = {args[1] .. args[2]}
data.forms["acc_sg_def"] = {args[1] .. args[2] .. "nna"}
data.forms["acc_pl"] = {args[1] .. args[3] .. "r"}
data.forms["acc_pl_def"] = {args[1] .. args[3] .. "rnar"}
data.forms["dat_sg"] = {args[1] .. args[2]}
data.forms["dat_sg_def"] = {args[1] .. args[2] .. "nni"}
data.forms["dat_pl"] = {args[1] .. args[4] .. "m"}
data.forms["dat_pl_def"] = {args[1] .. args[4] .. "num"}
data.forms["gen_sg"] = {args[1] .. args[2] .. "ar"}
data.forms["gen_sg_def"] = {args[1] .. args[2] .. "arinnar"}
data.forms["gen_pl"] = {args[1] .. args[2] .. "a"}
data.forms["gen_pl_def"] = {args[1] .. args[2] .. "anna"}
end
})
-- This pattern appears to be completely superfluous
decl["f27"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
[4] = {},
},
}
setmetatable(decl["f27"], {__call = function(self, args, data)
decl["f12"](args, data)
data.decl_type = "f27"
end
})
decl["f28"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
[4] = {},
},
}
setmetatable(decl["f28"], {__call = function(self, args, data)
data.decl_type = "f28"
data.info = " (plural only)"
data.defective = "p"
data.forms["nom_pl"] = {args[1] .. args[2] .. args[3]}
data.forms["nom_pl_def"] = {args[1] .. args[2] .. args[3] .. "nar"}
data.forms["acc_pl"] = {args[1] .. args[2] .. args[3]}
data.forms["acc_pl_def"] = {args[1] .. args[2] .. args[3] .. "nar"}
data.forms["dat_pl"] = {args[1] .. args[4] .. args[3] .. "um"}
data.forms["dat_pl_def"] = {args[1] .. args[4] .. args[3] .. "unum"}
data.forms["gen_pl"] = {args[1] .. args[4] .. args[3] .. "a"}
data.forms["gen_pl_def"] = {args[1] .. args[4] .. args[3] .. "anna"}
end
})
--Special case pattern: móðir and derivatives
decl["f29"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
[4] = {},
},
singular = function(args, data)
data.forms["nom_sg"] = {args[1] .. args[2] .. args[3] .. "ir"}
data.forms["nom_sg_def"] = {args[1] .. args[2] .. args[3] .. "irin"}
data.forms["acc_sg"] = {args[1] .. args[2] .. args[3] .. "ur"}
data.forms["acc_sg_def"] = {args[1] .. args[2] .. args[3] .. "urina"}
data.forms["dat_sg"] = {args[1] .. args[2] .. args[3] .. "ur"}
data.forms["dat_sg_def"] = {args[1] .. args[2] .. args[3] .. "urini"}
data.forms["gen_sg"] = {args[1] .. args[2] .. args[3] .. "ur"}
data.forms["gen_sg_def"] = {args[1] .. args[2] .. args[3] .. "urinnar"}
end,
plural = function(args, data)
data.forms["nom_pl"] = {args[1] .. args[4] .. args[3] .. "ur"}
data.forms["nom_pl_def"] = {args[1] .. args[4] .. args[3] .. "urnar"}
data.forms["acc_pl"] = {args[1] .. args[4] .. args[3] .. "ur"}
data.forms["acc_pl_def"] = {args[1] .. args[4] .. args[3] .. "urnar"}
data.forms["dat_pl"] = {args[1] .. args[4] .. args[3] .. "rum"}
data.forms["dat_pl_def"] = {args[1] .. args[4] .. args[3].. "rnum"}
data.forms["gen_pl"] = {args[1] .. args[4] .. args[3] .. "ra"}
data.forms["gen_pl_def"] = {args[1] .. args[4] .. args[3] .. "ranna"}
end
}
setmetatable(decl["f29"], {__call = function(self, args, data)
data.decl_type = "f29"
self.singular(args, data)
self.plural(args, data)
end
})
-- Special case pattern: dóttir and derivatives
decl["f30"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
[4] = {},
},
}
setmetatable(decl["f30"], {__call = function(self, args, data)
data.decl_type = "f30"
data.forms["nom_sg"] = {args[1] .. args[2] .. args[3] .. args[3] .. "ir"}
data.forms["nom_sg_def"] = {args[1] .. args[2] .. args[3] .. args[3] .. "irin"}
data.forms["acc_sg"] = {args[1] .. args[2] .. args[3] .. args[3] .. "ur"}
data.forms["acc_sg_def"] = {args[1] .. args[2] .. args[3] .. args[3] .. "rina"}
data.forms["dat_sg"] = {args[1] .. args[2] .. args[3] .. args[3] .. "ur"}
data.forms["dat_sg_def"] = {args[1] .. args[2] .. args[3] .. args[3] .. "rini"}
data.forms["gen_sg"] = {args[1] .. args[2] .. args[3] .. args[3] .. "ur"}
data.forms["gen_sg_def"] = {args[1] .. args[2] .. args[3] .. args[3] .. "urinnar"}
decl["f29"].plural(args, data)
end
})
-- Special case pattern: systir and derivatives
decl["f31"] = {
params = {
[1] = {},
},
}
setmetatable(decl["f31"], {__call = function(self, args, data)
data.decl_type = "f31"
data.forms["nom_sg"] = {args[1] .. "ir"}
data.forms["nom_sg_def"] = {args[1] .. "irin"}
data.forms["nom_pl"] = {args[1] .. "rar"}
data.forms["nom_pl_def"] = {args[1] .. "rarnar"}
data.forms["acc_sg"] = {args[1] .. "ur"}
data.forms["acc_sg_def"] = {args[1] .. "rina"}
data.forms["acc_pl"] = {args[1] .. "rar"}
data.forms["acc_pl_def"] = {args[1] .. "rarnar"}
data.forms["dat_sg"] = {args[1] .. "ur"}
data.forms["dat_sg_def"] = {args[1] .. "rini"}
data.forms["dat_pl"] = {args[1] .. "rum"}
data.forms["dat_pl_def"] = {args[1] .. "runum"}
data.forms["gen_sg"] = {args[1] .. "ur"}
data.forms["gen_sg_def"] = {args[1] .. "urinnar"}
data.forms["gen_pl"] = {args[1] .. "ra"}
data.forms["gen_pl_def"] = {args[1] .. "ranna"}
end
})
decl["f32"] = {
params = {
[1] = {},
},
singular = function(args, data)
data.forms["nom_sg"] = {args[1] .. "i"}
data.forms["nom_sg_def"] = {args[1] .. "in"}
data.forms["acc_sg"] = {args[1] .. "i"}
data.forms["acc_sg_def"] = {args[1] .. "ina"}
data.forms["dat_sg"] = {args[1] .. "i"}
data.forms["dat_sg_def"] = {args[1] .. "ini"}
data.forms["gen_sg"] = {args[1] .. "ar"}
data.forms["gen_sg_def"] = {args[1] .. "arinnar"}
end,
plural = function(args, data)
data.forms["nom_pl"] = {args[1] .. "ar"}
data.forms["nom_pl_def"] = {args[1] .. "arnar"}
data.forms["acc_pl"] = {args[1] .. "ar"}
data.forms["acc_pl_def"] = {args[1] .. "arnar"}
data.forms["dat_pl"] = {args[1] .. "um"}
data.forms["dat_pl_def"] = {args[1] .. "unum"}
data.forms["gen_pl"] = {args[1] .. "a"}
data.forms["gen_pl_def"] = {args[1] .. "anna"}
end
}
setmetatable(decl["f32"], {__call = function(self, args, data)
data.decl_type = "f32"
self.singular(args, data)
self.plural(args, data)
end
})
decl["f32-p"] = {
params = {
[1] = {},
},
}
setmetatable(decl["f32-p"], {__call = function(self, args, data)
decl["f32"].plural(args, data)
data.decl_type = "f32p"
data.info = " (plural only)"
data.defective = "p"
end
})
decl["f33"] = {
params = {
[1] = {},
},
singular = function(args, data)
data.forms["nom_sg"] = {args[1]}
data.forms["nom_sg_def"] = {args[1] .. "n"}
data.forms["acc_sg"] = {args[1]}
data.forms["acc_sg_def"] = {args[1] .. "na"}
data.forms["dat_sg"] = {args[1]}
data.forms["dat_sg_def"] = {args[1] .. "ni"}
data.forms["gen_sg"] = {args[1]}
data.forms["gen_sg_def"] = {args[1] .. "nnar"}
end,
plural = function(args, data)
data.forms["nom_pl"] = {args[1] .. "r"}
data.forms["nom_pl_def"] = {args[1] .. "rnar"}
data.forms["acc_pl"] = {args[1] .. "r"}
data.forms["acc_pl_def"] = {args[1] .. "rnar"}
--data.forms["dat_pl"] = {args[1] .. "um"}
--data.forms["dat_pl_def"] = {args[1] .. "unum"}
--data.forms["gen_pl"] = {args[1] .. "a"}
--data.forms["gen_pl_def"] = {args[1] .. "anna"}
end
}
setmetatable(decl["f33"], {__call = function(self, args, data)
data.decl_type = "f33"
data.info = " (defective)"
self.singular(args, data)
self.plural(args, data)
end
})
decl["f33-s"] = {
params = {
[1] = {},
},
}
setmetatable(decl["f33-s"], {__call = function(self, args, data)
decl["f33"].singular(args, data)
data.decl_type = "f33s"
data.info = " (singular only)"
data.defective = "s"
end
})
decl["f34"] = {
params = {
[1] = {},
[2] = {},
[3] = {},
[4] = {},
},
}
setmetatable(decl["f34"], {__call = function(self, args, data)
decl["f3"](args, data)
data.decl_type = "f34"
data.forms["dat_pl"] = {args[1] .. args[4] .. args[3] .. "um"}
data.forms["dat_pl_def"] = {args[1] .. args[4] .. args[3] .. "unum"}
data.forms["gen_sg"] = {args[1] .. args[2] .. args[3] .. "ar"}
data.forms["gen_sg_def"] = {args[1] .. args[2] .. args[3] .. "arinnar"}
end
})
return decl
ef3iwnmabxp3l02dkqjtxv6amh337gu
မဝ်ဂျူ:fo-noun/data-f/documentation
828
296883
399101
2026-07-18T01:51:50Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> {{module cat|fo}} </includeonly>"
399101
wikitext
text/x-wiki
{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. -->
<includeonly>
{{module cat|fo}}
</includeonly>
7jqqm39jiasxu2kjt8gz113ayw4obbj
399102
399101
2026-07-18T01:52:14Z
咽頭べさ
33
咽頭べさ ပြံင်ပဆုဲလဝ် မုက်လိက် [[မဝ်ဂျူ:fo-noun/data-f/doc]] ဇရေင် [[မဝ်ဂျူ:fo-noun/data-f/documentation]] သီုကဵု ဟွံဂွံ ဂိုင်စွံလဝ် မကလေင်ပညုင်
399101
wikitext
text/x-wiki
{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. -->
<includeonly>
{{module cat|fo}}
</includeonly>
7jqqm39jiasxu2kjt8gz113ayw4obbj
ကဏ္ဍ:မဝ်ဂျူဖာရဝ်သဳဂမၠိုၚ်
14
296884
399103
2026-07-18T01:54:01Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာဖာရဝ်သဳ|ဖာရဝ်သဳ]] » '''မဝ်ဂျူ..."
399103
wikitext
text/x-wiki
[[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာဖာရဝ်သဳ|ဖာရဝ်သဳ]] » '''မဝ်ဂျူဂမၠိုၚ်'''
:[[:ကဏ္ဍ:မဝ်ဂျူဂမၠိုၚ်|မဝ်ဂျူ]]ဘာသာဖာရဝ်သဳ၊ မနွံကဵုလုပ်အဝေါၚ်ကုဒ် Lua နကဵုမကၠောန်ဗဒှ် ကဵု မစဳရေၚ်ယဵုဒုၚ်သ္ပမာန်ဂမၠိုၚ်။
[[ကဏ္ဍ:ဘာသာဖာရဝ်သဳ]][[ကဏ္ဍ:မဝ်ဂျူဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ဖ]]
1l8ag93mlevnkidwt206zlu6furg8ib
ကဏ္ဍ:မဝ်ဂျူပွမပြံၚ်လှာဲဖာရဝ်သဳဂမၠိုၚ်
14
296885
399104
2026-07-18T01:55:53Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:မဝ်ဂျူဖာရဝ်သဳဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်ဖာရဝ်သဳအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]][[ကဏ္ဍ:မဝ်ဂျူဗီုအပြံၚ်အလှာဲဝေါဟာဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ဖ]]"
399104
wikitext
text/x-wiki
[[ကဏ္ဍ:မဝ်ဂျူဖာရဝ်သဳဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်ဖာရဝ်သဳအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]][[ကဏ္ဍ:မဝ်ဂျူဗီုအပြံၚ်အလှာဲဝေါဟာဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ဖ]]
9n13abcjvlpj083sekdgg1acl7vte6k
ကဏ္ဍ:မဝ်ဂျူဒေတာဖာရဝ်သဳဂမၠိုၚ်
14
296886
399105
2026-07-18T01:57:45Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:မဝ်ဂျူဖာရဝ်သဳဂမၠိုၚ်|စ]][[ကဏ္ဍ:မဝ်ဂျူစရၚ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ဖ]]"
399105
wikitext
text/x-wiki
[[ကဏ္ဍ:မဝ်ဂျူဖာရဝ်သဳဂမၠိုၚ်|စ]][[ကဏ္ဍ:မဝ်ဂျူစရၚ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ဖ]]
a1zibaylpng327q9t1gtjtnmh0lca10
မဝ်ဂျူ:fo-noun/documentation
828
296887
399106
2026-07-18T02:00:55Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> {{module cat|fo}} </includeonly>"
399106
wikitext
text/x-wiki
{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. -->
<includeonly>
{{module cat|fo}}
</includeonly>
7jqqm39jiasxu2kjt8gz113ayw4obbj
399107
399106
2026-07-18T02:01:19Z
咽頭べさ
33
咽頭べさ ပြံင်ပဆုဲလဝ် မုက်လိက် [[မဝ်ဂျူ:fo-noun/doc]] ဇရေင် [[မဝ်ဂျူ:fo-noun/documentation]] သီုကဵု ဟွံဂွံ ဂိုင်စွံလဝ် မကလေင်ပညုင်
399106
wikitext
text/x-wiki
{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. -->
<includeonly>
{{module cat|fo}}
</includeonly>
7jqqm39jiasxu2kjt8gz113ayw4obbj
မဝ်ဂျူ:fo-noun/table/documentation
828
296888
399109
2026-07-18T02:08:49Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> {{module cat|fo}} </includeonly>"
399109
wikitext
text/x-wiki
{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. -->
<includeonly>
{{module cat|fo}}
</includeonly>
7jqqm39jiasxu2kjt8gz113ayw4obbj
399110
399109
2026-07-18T02:09:33Z
咽頭べさ
33
咽頭べさ ပြံင်ပဆုဲလဝ် မုက်လိက် [[မဝ်ဂျူ:fo-noun/table/doc]] ဇရေင် [[မဝ်ဂျူ:fo-noun/table/documentation]] သီုကဵု ဟွံဂွံ ဂိုင်စွံလဝ် မကလေင်ပညုင်
399109
wikitext
text/x-wiki
{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. -->
<includeonly>
{{module cat|fo}}
</includeonly>
7jqqm39jiasxu2kjt8gz113ayw4obbj
ထာမ်ပလိက်:fo-decl-noun-f34/documentation
10
296889
399111
2026-07-18T02:12:46Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} {{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. --> <includeonly> [[ကဏ္ဍ:ထာမ်ပလိက်ဖာရဝ်သဳအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်]] </includeonly>"
399111
wikitext
text/x-wiki
{{documentation subpage}}
{{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. -->
<includeonly>
[[ကဏ္ဍ:ထာမ်ပလိက်ဖာရဝ်သဳအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်]]
</includeonly>
p6j0me6m44f6jkpfj8f083knksqazc9
ကဏ္ဍ:ထာမ်ပလိက်ဖာရဝ်သဳအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်
14
296890
399112
2026-07-18T02:13:36Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ထာမ်ပလိက်ဖာရဝ်သဳအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ဖ]]"
399112
wikitext
text/x-wiki
[[ကဏ္ဍ:ထာမ်ပလိက်ဖာရဝ်သဳအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ဖ]]
a2b5566p0vcrdf8uj7q42e6pesth3vm
ထာမ်ပလိက်:osx-decl-noun-i-f
10
296891
399113
2026-07-18T02:15:47Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{#invoke:osx-decl-noun|show|decl=i-f}}<!-- --><noinclude>{{documentation}}</noinclude>"
399113
wikitext
text/x-wiki
{{#invoke:osx-decl-noun|show|decl=i-f}}<!--
--><noinclude>{{documentation}}</noinclude>
7tbbsfzfom4vo7wuq9f4z0vqjupu8v7
မဝ်ဂျူ:osx-decl-noun
828
296892
399114
2026-07-18T02:35:53Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "local export = {} local m_links = require("Module:links") local m_utils = require("Module:utilities") local lang = require("Module:languages").getByCode("osx") local decl_data = {} decl_data["a-f"] = { params = { [1] = {}, }, } setmetatable(decl_data["a-f"], {__call = function(self, args, data) data.decl_type = "ဣတ္တိလိၚ်တံအရေဝ်-(အ/a)" data.forms["nom_sg"] = {args[1] .. "a..."
399114
Scribunto
text/plain
local export = {}
local m_links = require("Module:links")
local m_utils = require("Module:utilities")
local lang = require("Module:languages").getByCode("osx")
local decl_data = {}
decl_data["a-f"] = {
params = {
[1] = {},
},
}
setmetatable(decl_data["a-f"], {__call = function(self, args, data)
data.decl_type = "ဣတ္တိလိၚ်တံအရေဝ်-(အ/a)"
data.forms["nom_sg"] = {args[1] .. "a"}
data.forms["acc_sg"] = {args[1] .. "a"}
data.forms["gen_sg"] = {args[1] .. "ō"}
data.forms["dat_sg"] = {args[1] .. "u"}
data.forms["nom_pl"] = {args[1] .. "a"}
data.forms["acc_pl"] = {args[1] .. "a"}
data.forms["gen_pl"] = {args[1] .. "anō"}
data.forms["dat_pl"] = {args[1] .. "um"}
-- table.insert(data.categories, "Old Saxon a-stem nouns")
end
})
decl_data["a-f-v"] = {
params = {
[1] = {},
[2] = {},
},
}
setmetatable(decl_data["a-f-v"], {__call = function(self, args, data)
data.decl_type = "ဣတ္တိလိၚ်တံအရေဝ်-(အ/a)"
data.forms["nom_sg"] = {args[1]}
data.forms["acc_sg"] = {args[1]}
data.forms["gen_sg"] = {args[2] .. "ō"}
data.forms["dat_sg"] = {args[2] .. "u"}
data.forms["nom_pl"] = {args[2] .. "a"}
data.forms["acc_pl"] = {args[2] .. "a"}
data.forms["gen_pl"] = {args[2] .. "anō"}
data.forms["dat_pl"] = {args[2] .. "um"}
-- table.insert(data.categories, "Old Saxon a-stem nouns")
end
})
decl_data["a-m"] = {
params = {
[1] = {},
},
}
setmetatable(decl_data["a-m"], {__call = function(self, args, data)
data.decl_type = "ပုလ္လိၚ်တံအရေဝ်-(အ/a)"
data.forms["nom_sg"] = {args[1]}
data.forms["acc_sg"] = {args[1]}
data.forms["gen_sg"] = {args[1] .. "es"}
data.forms["dat_sg"] = {args[1] .. "e"}
data.forms["nom_pl"] = {args[1] .. "os"}
data.forms["acc_pl"] = {args[1] .. "os"}
data.forms["gen_pl"] = {args[1] .. "ō"}
data.forms["dat_pl"] = {args[1] .. "um"}
-- table.insert(data.categories, "Old Saxon a-stem nouns")
end
})
decl_data["a-m-v"] = {
params = {
[1] = {},
[2] = {},
},
}
setmetatable(decl_data["a-m-v"], {__call = function(self, args, data)
data.decl_type = "ပုလ္လိၚ်တံအရေဝ်-(အ/a)"
data.forms["nom_sg"] = {args[1]}
data.forms["acc_sg"] = {args[1]}
data.forms["gen_sg"] = {args[2] .. "es"}
data.forms["dat_sg"] = {args[2] .. "e"}
data.forms["nom_pl"] = {args[2] .. "os"}
data.forms["acc_pl"] = {args[2] .. "os"}
data.forms["gen_pl"] = {args[2] .. "ō"}
data.forms["dat_pl"] = {args[2] .. "um"}
-- table.insert(data.categories, "Old Saxon a-stem nouns")
end
})
decl_data["a-n"] = {
params = {
[1] = {},
},
}
setmetatable(decl_data["a-n"], {__call = function(self, args, data)
decl_data["a-m"](args, data)
data.decl_type = "နပုလ္လိၚ်တံအရေဝ်-(အ/a)"
data.forms["nom_pl"] = {args[1]}
data.forms["acc_pl"] = {args[1]}
data.forms["dat_pl"] = {args[1] .. "un"}
end
})
decl_data["a-n1"] = {
params = {
[1] = {},
},
}
setmetatable(decl_data["a-n1"], {__call = function(self, args, data)
decl_data["a-m"](args, data)
data.decl_type = "နပုလ္လိၚ်တံအရေဝ်-(အ/a)"
data.forms["nom_pl"] = {args[1] .. "u"}
data.forms["acc_pl"] = {args[1] .. "u"}
end
})
decl_data["a-n1-1"] = {
params = {
[1] = {},
[2] = {},
},
}
setmetatable(decl_data["a-n1-1"], {__call = function(self, args, data)
decl_data["a-m-v"](args, data)
data.decl_type = "နပုလ္လိၚ်တံအရေဝ်-(အ/a)"
data.forms["nom_pl"] = {args[2] .. "u"}
data.forms["acc_pl"] = {args[2] .. "u"}
end
})
decl_data["a-n2"] = {
params = {
[1] = {},
[2] = {},
},
}
setmetatable(decl_data["a-n2"], {__call = function(self, args, data)
decl_data["a-m-v"](args, data)
data.decl_type = "နပုလ္လိၚ်တံအရေဝ်-(အ/a)"
data.forms["nom_pl"] = {args[1]}
data.forms["acc_pl"] = {args[1]}
end
})
decl_data["i-f"] = {
params = {
[1] = {},
[2] = {},
},
}
setmetatable(decl_data["i-f"], {__call = function(self, args, data)
data.decl_type = "ဣတ္တိလိၚ်တံအရေဝ်-(ဣ/i)"
data.forms["nom_sg"] = {args[1]}
data.forms["acc_sg"] = {args[1]}
data.forms["gen_sg"] = {args[2] .. "i"}
data.forms["dat_sg"] = {args[2] .. "i"}
data.forms["nom_pl"] = {args[2] .. "i"}
data.forms["acc_pl"] = {args[2] .. "i"}
data.forms["gen_pl"] = {args[2] .. "iō"}
data.forms["dat_pl"] = {args[2] .. "ium"}
-- table.insert(data.categories, "Old Saxon i-stem nouns")
end
})
decl_data["i-f2"] = {
params = {
[1] = {},
[2] = {},
},
}
setmetatable(decl_data["i-f2"], {__call = function(self, args, data)
decl_data["i-f"](args, data)
data.forms["gen_pl"] = {args[1] .. "iō"}
data.forms["dat_pl"] = {args[1] .. "ium"}
end
})
decl_data["i-m"] = {
params = {
[1] = {},
[2] = {},
["mutstem"] = {},
},
}
setmetatable(decl_data["i-m"], {__call = function(self, args, data)
data.decl_type = "ပုလ္လိၚ်တံအရေဝ်-(ဣ/i)"
data.forms["nom_sg"] = {args.mutstem or args[1]}
data.forms["acc_sg"] = {args.mutstem or args[1]}
data.forms["gen_sg"] = {args[1] .. "ies"}
data.forms["dat_sg"] = {args[1] .. "ie"}
data.forms["nom_pl"] = {args[2]}
data.forms["acc_pl"] = {args[2]}
data.forms["gen_pl"] = {args[1] .. "iō"}
data.forms["dat_pl"] = {args[1] .. "ium"}
-- table.insert(data.categories, "Old Saxon i-stem nouns")
end
})
decl_data["i-m1"] = {
params = {
[1] = {},
[2] = {},
},
}
setmetatable(decl_data["i-m1"], {__call = function(self, args, data)
data.decl_type = "ပုလ္လိၚ်တံအရေဝ်-(ဣ/i)"
data.forms["nom_sg"] = {args[1]}
data.forms["acc_sg"] = {args[1]}
data.forms["gen_sg"] = {args[1] .. "es"}
data.forms["dat_sg"] = {args[1] .. "e"}
data.forms["nom_pl"] = {args[2] .. "i"}
data.forms["acc_pl"] = {args[2] .. "i"}
data.forms["gen_pl"] = {args[1] .. "iō"}
data.forms["dat_pl"] = {args[1] .. "ium"}
-- table.insert(data.categories, "Old Saxon i-stem nouns")
end
})
decl_data["ja-m"] = {
params = {
[1] = {},
["nopl"] = {},
},
}
setmetatable(decl_data["ja-m"], {__call = function(self, args, data)
data.decl_type = "ပုလ္လိၚ်တံအရေဝ်-(ဇ/n)"
data.forms["nom_sg"] = {args[1] .. "i"}
data.forms["acc_sg"] = {args[1] .. "i"}
data.forms["gen_sg"] = {args[1] .. "ies"}
data.forms["dat_sg"] = {args[1] .. "ie"}
if not args.nopl then
data.forms["nom_pl"] = {args[1] .. "ios"}
data.forms["acc_pl"] = {args[1] .. "ios"}
data.forms["gen_pl"] = {args[1] .. "iō"}
data.forms["dat_pl"] = {args[1] .. "ium"}
end
-- table.insert(data.categories, "Old Saxon ja-stem nouns")
end
})
decl_data["ja-n"] = {
params = {
[1] = {},
},
}
setmetatable(decl_data["ja-n"], {__call = function(self, args, data)
decl_data["ja-m"](args, data)
data.decl_type = "နပုလ္လိၚ်တံအရေဝ်-(ဇ/n)"
if not args.nopl then
data.forms["nom_pl"] = {args[1] .. "i"}
data.forms["acc_pl"] = {args[1] .. "i"}
end
end
})
decl_data["ja-n2"] = {
params = {
[1] = {},
[2] = {},
},
}
setmetatable(decl_data["ja-n2"], {__call = function(self, args, data)
data.decl_type = "နပုလ္လိၚ်တံအရေဝ်-(ဇ/n)"
data.forms["nom_sg"] = {args[1]}
data.forms["acc_sg"] = {args[1]}
data.forms["gen_sg"] = {args[2] .. "ies"}
data.forms["dat_sg"] = {args[2] .. "ie"}
data.forms["nom_pl"] = {args[1]}
data.forms["acc_pl"] = {args[1]}
data.forms["gen_pl"] = {args[2] .. "iō"}
data.forms["dat_pl"] = {args[2] .. "ium"}
-- table.insert(data.categories, "Old Saxon ja-stem nouns")
end
})
decl_data["n-m"] = {
params = {
[1] = {},
["nopl"] = {},
},
}
setmetatable(decl_data["n-m"], {__call = function(self, args, data)
data.decl_type = "ပုလ္လိၚ်တံအရေဝ်-(န်/n)"
data.forms["nom_sg"] = {args[1] .. "o"}
data.forms["acc_sg"] = {args[1] .. "on", args[1] .. "an"}
data.forms["gen_sg"] = {args[1] .. "en", args[1] .. "an", args[1] .. "on" }
data.forms["dat_sg"] = {args[1] .. "en", args[1] .. "an", args[1] .. "on" }
if not args.nopl then
data.forms["nom_pl"] = {args[1] .. "on", args[1] .. "un", args[1] .. "an"}
data.forms["acc_pl"] = {args[1] .. "on", args[1] .. "un", args[1] .. "an"}
data.forms["gen_pl"] = {args[1] .. "ono"}
data.forms["dat_pl"] = {args[1] .. "un", args[1] .. "on"}
end
-- table.insert(data.categories, "Old Saxon n-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 = "နပုလ္လိၚ်တံအရေဝ်-(န်/n)"
data.forms["nom_sg"] = {args[1] .. "a"}
data.forms["acc_sg"] = {args[1] .. "a"}
end
})
decl_data["n-f"] = {
params = {
[1] = {},
["nopl"] = {},
},
}
setmetatable(decl_data["n-f"], {__call = function(self, args, data)
decl_data["n-m"](args, data)
data.decl_type = "ဣတ္တိလိၚ်တံအရေဝ်-(န်/n)"
data.forms["nom_sg"] = {args[1] .. "a"}
data.forms["acc_sg"] = {args[1] .. "un", args[1] .. "an", args[1] .. "on" }
data.forms["gen_sg"] = {args[1] .. "un", args[1] .. "an", args[1] .. "on" }
data.forms["dat_sg"] = {args[1] .. "un", args[1] .. "an", args[1] .. "on" }
data.forms["nom_pl"] = {args[1] .. "un", args[1] .. "an", args[1] .. "on" }
data.forms["acc_pl"] = {args[1] .. "un", args[1] .. "an", args[1] .. "on" }
data.forms["dat_pl"] = {args[1] .. "un", args[1] .. "an", args[1] .. "on" }
end
})
decl_data["nd"] = {
params = {
[1] = {},
},
}
setmetatable(decl_data["nd"], {__call = function(self, args, data)
data.decl_type = "တံအရေဝ်-(န္ဒ်/nd)"
data.forms["nom_sg"] = {args[1]}
data.forms["acc_sg"] = {args[1]}
data.forms["gen_sg"] = {args[1] .. "es"}
data.forms["dat_sg"] = {args[1] .. "e"}
data.forms["nom_pl"] = {args[1]}
data.forms["acc_pl"] = {args[1]}
data.forms["gen_pl"] = {args[1] .. "ō"}
data.forms["dat_pl"] = {args[1] .. "um"}
-- table.insert(data.categories, "Old Saxon nd-stem nouns")
end
})
decl_data["o-f"] = {
params = {
[1] = {},
[2] = {},
["nopl"] = {},
},
}
setmetatable(decl_data["o-f"], {__call = function(self, args, data)
data.decl_type = "ဣတ္တိလိၚ်တံအရေဝ်-(ဥူ/ō)"
data.forms["nom_sg"] = {args[2] or (args[1] .. "a")}
data.forms["acc_sg"] = {args[2] or (args[1] .. "a")}
data.forms["gen_sg"] = {args[1] .. "a", args[1] .. "u", args[1] .. "o"}
data.forms["dat_sg"] = {args[1] .. "u", args[1] .. "o", args[1] .. "a"}
if not args.nopl then
data.forms["nom_pl"] = {args[1] .. "a"}
data.forms["acc_pl"] = {args[1] .. "a"}
data.forms["gen_pl"] = {args[1] .. "ono"}
data.forms["dat_pl"] = {args[1] .. "on", args[1] .. "um", args[1] .. "un"}
end
-- table.insert(data.categories, "Old Saxon ō-stem nouns")
end
})
decl_data["r-n"] = {
params = {
[1] = {},
},
}
setmetatable(decl_data["r-n"], {__call = function(self, args, data)
data.decl_type = "တံအရေဝ်-(ရ/r)"
data.forms["nom_sg"] = {args[1]}
data.forms["acc_sg"] = {args[1]}
data.forms["gen_sg"] = {args[1]}
data.forms["dat_sg"] = {args[1]}
data.forms["nom_pl"] = {args.mutstem or args[1]}
data.forms["acc_pl"] = {args.mutstem or args[1]}
data.forms["gen_pl"] = {(args.mutstem2 or args[1]) .. "ō"}
data.forms["dat_pl"] = {(args.mutstem2 or args[1]) .. "um"}
-- table.insert(data.categories, "Old Saxon r-stem nouns")
end
})
decl_data["u-f"] = {
params = {
[1] = {},
[2] = {},
},
}
setmetatable(decl_data["u-f"], {__call = function(self, args, data)
data.decl_type = "ဣတ္တိလိၚ်တံအရေဝ်-(ဥ/u)"
data.forms["nom_sg"] = {args[1]}
data.forms["acc_sg"] = {args[1]}
data.forms["gen_sg"] = {args[2] .. "i"}
data.forms["dat_sg"] = {args[2] .. "i"}
data.forms["nom_pl"] = {args[2] .. "i"}
data.forms["acc_pl"] = {args[2] .. "i"}
data.forms["gen_pl"] = {args[1] .. "o"}
data.forms["dat_pl"] = {args[1] .. "um"}
-- table.insert(data.categories, "Old Saxon u-stem nouns")
end
})
decl_data["u-m"] = {
params = {
[1] = {},
},
}
setmetatable(decl_data["u-m"], {__call = function(self, args, data)
data.decl_type = "ပုလ္လိၚ်တံအရေဝ်-(ဥ/u)"
data.forms["nom_sg"] = {args[1] .. "u"}
data.forms["acc_sg"] = {args[1] .. "u"}
data.forms["gen_sg"] = {args[1] .. "ies", args[1] .. "eas"}
data.forms["dat_sg"] = {args[1] .. "o", args[1] .. "ie", args[1] .. "i", args[1] .. "e"}
data.forms["nom_pl"] = {args[1] .. "i"}
data.forms["acc_pl"] = {args[1] .. "i"}
data.forms["gen_pl"] = {args[1] .. "io", args[1] .. "o" }
data.forms["dat_pl"] = {args[1] .. "un", args[1] .. "iun"}
-- table.insert(data.categories, "Old Saxon u-stem nouns")
end
})
decl_data["u-n"] = {
params = {
[1] = {},
},
}
setmetatable(decl_data["u-n"], {__call = function(self, args, data)
data.decl_type = "နပုလ္လိၚ်တံအရေဝ်-(ဥ/u)"
data.forms["nom_sg"] = {args[1] .. "u", args[1] .. "o"}
data.forms["acc_sg"] = {args[1] .. "u", args[1] .. "o"}
data.forms["gen_sg"] = {args[1] .. "es", args[1] .. "as"}
data.forms["dat_sg"] = {args[1] .. "e"}
data.forms["ins_sg"] = {args[1] .. "o"}
-- table.insert(data.categories, "Old Saxon u-stem nouns")
end
})
decl_data["wa-m"] = {
params = {
[1] = {},
[2] = {},
},
}
setmetatable(decl_data["wa-m"], {__call = function(self, args, data)
data.decl_type = "ပုလ္လိၚ်တံအရေဝ်-(ဝ/wa)"
data.forms["nom_sg"] = {args[1]}
data.forms["acc_sg"] = {args[1]}
data.forms["gen_sg"] = {args[2] .. "wes"}
data.forms["dat_sg"] = {args[2] .. "we"}
data.forms["nom_pl"] = {args[2] .. "wos"}
data.forms["acc_pl"] = {args[2] .. "wos"}
data.forms["gen_pl"] = {args[2] .. "wō"}
data.forms["dat_pl"] = {args[2] .. "wum"}
-- table.insert(data.categories, "Old Saxon wa-stem nouns")
end
})
decl_data["wa-n"] = {
params = {
[1] = {},
[2] = {},
},
}
setmetatable(decl_data["wa-n"], {__call = function(self, args, data)
decl_data["wa-m"](args, data)
data.decl_type = "နပုလ္လိၚ်တံအရေဝ်-(ဝ/wa)"
data.forms["nom_pl"] = {args[1]}
data.forms["acc_pl"] = {args[1]}
end
})
decl_data["z-n"] = {
params = {
[1] = {},
[2] = {},
},
}
setmetatable(decl_data["z-n"], {__call = function(self, args, data)
local a2 = args[2] or args[1]
data.decl_type = "z-stem"
data.forms["nom_sg"] = {args[1]}
data.forms["acc_sg"] = {args[1]}
data.forms["gen_sg"] = {a2 .. "es"}
data.forms["dat_sg"] = {a2 .. "e"}
data.forms["nom_pl"] = {a2 .. "iru"}
data.forms["acc_pl"] = {a2 .. "iru"}
data.forms["gen_pl"] = {a2 .. "irō"}
data.forms["dat_pl"] = {a2 .. "irum"}
-- table.insert(data.categories, "Old Saxon z-stem nouns")
end
})
-- The main entry point for automatic declension.
function export.show(frame)
local parent_args = frame:getParent().args
local decl_type = (frame.args["decl"] or parent_args["decl"]) or "a-m"
if not decl_data[decl_type] then
error("Unknown declension '" .. decl_type .. "'")
end
local data = {forms = {}, categories = {}}
data.head = parent_args["head"] or nil
local args = require("Module:parameters").process(parent_args, decl_data[decl_type].params, true)
-- Override for templates
if not args[1] then
setmetatable(args, {__index = function(self, key)
return "{{{" .. key .. "}}}"
end
})
end
-- Generate the forms
if parent_args.irr then
-- table.insert(data.categories, "Old Saxon irregular nouns")
if decl_data.irregular[parent_args.irr] then
decl_data.irregular[parent_args.irr](data)
else
decl_data[decl_type](args, data)
end
else
decl_data[decl_type](args, data)
end
-- Make the table
return make_table(data)
end
-- The main entry point for manual declension.
function export.show_manual(frame)
local parent_args = frame:getParent().args
local params = {
[1] = {},
[2] = {},
[3] = {},
[4] = {},
[5] = {},
[6] = {},
[7] = {},
[8] = {},
[9] = {},
["head"] = {}, -- currently ignored
}
local data = {forms = {}, categories = {}}
local args = require("Module:parameters").process(parent_args, params)
local function split(arg)
return arg and mw.text.split(arg, "%s*,%s*") or nil
end
data.forms.nom_sg = split(args[1])
data.forms.nom_pl = split(args[2])
data.forms.acc_sg = split(args[3])
data.forms.acc_pl = split(args[4])
data.forms.gen_sg = split(args[5])
data.forms.gen_pl = split(args[6])
data.forms.dat_sg = split(args[7])
data.forms.dat_pl = split(args[8])
data.forms.ins_sg = split(args[9])
data.decl_type = "irregular"
-- 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.title.getCurrentTitle().nsText == "ဗီုပြၚ်သိုၚ်တၟိ" and subform ~= "—" then
subform = "*" .. subform
end
table.insert(ret, m_links.full_link({lang = lang, term = subform}))
end
return table.concat(ret, ", ")
end
local function repl(param)
if param == "decl_type" then
return data.decl_type
else
return show_form(data.forms[param])
end
end
local wikicode = mw.getCurrentFrame():expandTemplate{
title = 'inflection-table-top',
args = {
title = "''{{{nom_sg}}}'' ({{{decl_type}}})",
palette = 'yellow',
tall = 'yes',
}
} .. [=[
|-
!
! ကိုန်ဨကဝုစ်
! ကိုန်ဗဟုဝစ်
|-
! မဒုၚ်ယၟု
| {{{nom_sg}}}
| {{{nom_pl}}}
|-
! ကမ္မကာရက
| {{{acc_sg}}}
| {{{acc_pl}}}
|-
! ဗဳဇဂကူ
| {{{gen_sg}}}
| {{{gen_pl}}}
|-
! ပြကမ္မကာရက
| {{{dat_sg}}}
| {{{dat_pl}}}
|-
! တိၚ်တိုက်ကပေါတ်ကွိၚ်ကွိုက်
| {{{ins_sg}}}
| {{{ins_pl}}}
]=] .. mw.getCurrentFrame():expandTemplate{ title = 'inflection-table-bottom' }
return (mw.ustring.gsub(wikicode, "{{{([a-z0-9_]+)}}}", repl)) .. m_utils.format_categories(data.categories, lang)
end
return export
opbwzet0k4j23z145fnywg917qj7wny
မဝ်ဂျူ:osx-decl-noun/documentation
828
296893
399115
2026-07-18T02:37:24Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> {{module cat|osx}} </includeonly>"
399115
wikitext
text/x-wiki
{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. -->
<includeonly>
{{module cat|osx}}
</includeonly>
la7dayblkm7l4h93rk9zz8vlly6p63i
399116
399115
2026-07-18T02:37:52Z
咽頭べさ
33
咽頭べさ ပြံင်ပဆုဲလဝ် မုက်လိက် [[မဝ်ဂျူ:osx-decl-noun/doc]] ဇရေင် [[မဝ်ဂျူ:osx-decl-noun/documentation]] သီုကဵု ဟွံဂွံ ဂိုင်စွံလဝ် မကလေင်ပညုင်
399115
wikitext
text/x-wiki
{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. -->
<includeonly>
{{module cat|osx}}
</includeonly>
la7dayblkm7l4h93rk9zz8vlly6p63i
ကဏ္ဍ:မဝ်ဂျူသာတ်သိုန်တြေံဂမၠိုၚ်
14
296894
399117
2026-07-18T02:39:45Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » :ကဏ္ဍ:ဘာသာသာတ်သိုန်တြေံ|သာတ်သိုန်တ..."
399117
wikitext
text/x-wiki
[[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာသာတ်သိုန်တြေံ|သာတ်သိုန်တြေံ]] » '''မဝ်ဂျူဂမၠိုၚ်'''
:[[:ကဏ္ဍ:မဝ်ဂျူဂမၠိုၚ်|မဝ်ဂျူ]]ဘာသာသာတ်သိုန်တြေံ၊ မနွံကဵုလုပ်အဝေါၚ်ကုဒ် Lua နကဵုမကၠောန်ဗဒှ် ကဵု မစဳရေၚ်ယဵုဒုၚ်သ္ပမာန်ဂမၠိုၚ်။
[[ကဏ္ဍ:ဘာသာသာတ်သိုန်တြေံ]][[ကဏ္ဍ:မဝ်ဂျူဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|သ]]
hifmhe6bg0wfxbi9zpirvh9joc5f8xh
ကဏ္ဍ:မဝ်ဂျူပွမပြံၚ်လှာဲသာတ်သိုန်တြေံဂမၠိုၚ်
14
296895
399118
2026-07-18T02:41:09Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:မဝ်ဂျူသာတ်သိုန်တြေံဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်သာတ်သိုန်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]]ကဏ္ဍ:မဝ်ဂျူဗီုအပြံၚ်အလှာဲဝေါဟာဗက်အလိုက်အရေဝ်ဘာသာဂမ..."
399118
wikitext
text/x-wiki
[[ကဏ္ဍ:မဝ်ဂျူသာတ်သိုန်တြေံဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်သာတ်သိုန်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]][[ကဏ္ဍ:မဝ်ဂျူဗီုအပြံၚ်အလှာဲဝေါဟာဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|သ]]
0tvzbiusvak5ned17t7uz3oz0b6p01s
ကဏ္ဍ:ထာမ်ပလိက်သာတ်သိုန်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်
14
296896
399119
2026-07-18T02:42:49Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ထာမ်ပလိက်သာတ်သိုန်တြေံဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|သ]]"
399119
wikitext
text/x-wiki
[[ကဏ္ဍ:ထာမ်ပလိက်သာတ်သိုန်တြေံဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|သ]]
crzq2st6zcudgg3phtov48sqc9vwws3
ကဏ္ဍ:ထာမ်ပလိက်သာတ်သိုန်တြေံဂမၠိုၚ်
14
296897
399120
2026-07-18T02:43:52Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ဘာသာသာတ်သိုန်တြေံ]][[ကဏ္ဍ:ထာမ်ပလိက်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|သ]]"
399120
wikitext
text/x-wiki
[[ကဏ္ဍ:ဘာသာသာတ်သိုန်တြေံ]][[ကဏ္ဍ:ထာမ်ပလိက်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|သ]]
oevdt54j6quvlqfafs59cnt991smqxq
ထာမ်ပလိက်:osx-decl-noun-i-f/documentation
10
296898
399121
2026-07-18T02:46:01Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} {{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. --> <includeonly> [[ကဏ္ဍ:ထာမ်ပလိက်သာတ်သိုန်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်]]"
399121
wikitext
text/x-wiki
{{documentation subpage}}
{{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. -->
<includeonly>
[[ကဏ္ဍ:ထာမ်ပလိက်သာတ်သိုန်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်]]
kqwzip8o7m44z2btw1glxe38rhk2zqd
ကဏ္ဍ:ထာမ်ပလိက်သာတ်သိုန်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်
14
296899
399122
2026-07-18T02:47:03Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ထာမ်ပလိက်သာတ်သိုန်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|သ]]"
399122
wikitext
text/x-wiki
[[ကဏ္ဍ:ထာမ်ပလိက်သာတ်သိုန်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|သ]]
69el2y90vrgpza8gjmc9m7ah5qwi0t2
ထာမ်ပလိက်:sv-infl-noun-c-er
10
296900
399123
2026-07-18T02:48:37Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{#invoke:sv-nouns|show|c-er}}<noinclude>{{documentation}}</noinclude>"
399123
wikitext
text/x-wiki
{{#invoke:sv-nouns|show|c-er}}<noinclude>{{documentation}}</noinclude>
fu9tr5k1auydgffc6wegg7qja9bp6cg
ထာမ်ပလိက်:sv-infl-noun-c-er/documentation
10
296901
399124
2026-07-18T02:49:54Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} ==Usage== On the page for '''[[minut]]''' * <tt><nowiki>{{sv-infl-noun-c-er}}</nowiki></tt> On the page for '''[[filosofi]]''' * <tt><nowiki>{{sv-infl-noun-c-er|ien=yes}}</nowiki></tt> <includeonly> [[ကဏ္ဍ:ထာမ်ပလိက်သွဳဒေန်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်|c-er]] </includeonly>"
399124
wikitext
text/x-wiki
{{documentation subpage}}
==Usage==
On the page for '''[[minut]]'''
* <tt><nowiki>{{sv-infl-noun-c-er}}</nowiki></tt>
On the page for '''[[filosofi]]'''
* <tt><nowiki>{{sv-infl-noun-c-er|ien=yes}}</nowiki></tt>
<includeonly>
[[ကဏ္ဍ:ထာမ်ပလိက်သွဳဒေန်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်|c-er]]
</includeonly>
a379f298imgolrzfm54oinkma7u08kb
kraptr
0
296902
399125
2026-07-18T02:53:03Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==နဳနိုတ်တြေံ== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ{{der|non|gem-pro|*kraftuz}} ===နာမ်=== {{non-noun|m}} # ဇြဟတ်ဇၟူ၊ ဇြဟတ်။ ====ပရေၚ်ကၠောံ==== {{non-decl-m-a|krapt|krǫpt}} ===ပွံၚ်နဲတၞဟ်=== * {{alt|non|krǫptr}} ===မဒုၚ်လွဳစ=== * {{desc|is|kraftur}} * {{desc|fo|kraft..."
399125
wikitext
text/x-wiki
==နဳနိုတ်တြေံ==
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ{{der|non|gem-pro|*kraftuz}}
===နာမ်===
{{non-noun|m}}
# ဇြဟတ်ဇၟူ၊ ဇြဟတ်။
====ပရေၚ်ကၠောံ====
{{non-decl-m-a|krapt|krǫpt}}
===ပွံၚ်နဲတၞဟ်===
* {{alt|non|krǫptr}}
===မဒုၚ်လွဳစ===
* {{desc|is|kraftur}}
* {{desc|fo|kraft|kraftur}}
* {{desc|no|-}} {{l|nb|kraft}}
* {{desc|ovd|krapt}}
* {{desctree|gmq-osw|krapter}}
* {{desc|da|kraft}}
21l86u8a663jwf9o776cx1ilr43ppgu
krǫptr
0
296903
399126
2026-07-18T02:53:58Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==နဳနိုတ်တြေံ== ===နာမ်=== {{non-noun|m}} # {{alt form|non|kraptr}}"
399126
wikitext
text/x-wiki
==နဳနိုတ်တြေံ==
===နာမ်===
{{non-noun|m}}
# {{alt form|non|kraptr}}
axgu8udvqox479eqaamdiqkudor07xh
ထာမ်ပလိက်:non-decl-m-a
10
296904
399127
2026-07-18T02:55:32Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{#invoke:checkparams|warn}}<!-- Validate template parameters -->{{non-decl-blank-{{{form|full}}}{{#if:{{{indef|}}}|-indef}} | title = {{{title|''{{pagename}}''}}} | stem = strong ''a''-stem | g = masculine | nsi = {{{nsi|{{{ns|{{{1}}}r}}}}}} | asi = {{{asi|{{{as|{{{1}}}}}}}}} | dsi = {{{dsi|{{{ds|{{{3|{{{1}}}}}}i}}}}}} | gsi = {{{gsi|{{{gs|{{{1}}}s}}}}}} | nsd = {{{nsd|{{{ns|{{{1}}}r}}}inn}}} | asd = {{{asd|{{{as|{{{..."
399127
wikitext
text/x-wiki
{{#invoke:checkparams|warn}}<!-- Validate template parameters
-->{{non-decl-blank-{{{form|full}}}{{#if:{{{indef|}}}|-indef}}
| title = {{{title|''{{pagename}}''}}}
| stem = strong ''a''-stem
| g = masculine
| nsi = {{{nsi|{{{ns|{{{1}}}r}}}}}}
| asi = {{{asi|{{{as|{{{1}}}}}}}}}
| dsi = {{{dsi|{{{ds|{{{3|{{{1}}}}}}i}}}}}}
| gsi = {{{gsi|{{{gs|{{{1}}}s}}}}}}
| nsd = {{{nsd|{{{ns|{{{1}}}r}}}inn}}}
| asd = {{{asd|{{{as|{{{1}}}}}}inn}}}
| dsd = {{{dsd|{{{ds|{{{3|{{{1}}}}}}i}}}num}}}
| gsd = {{{gsd|{{{gs|{{{1}}}s}}}ins}}}
| npi = {{{npi|{{{np|{{{3|{{{1}}}}}}ar}}}}}}
| api = {{{api|{{{ap|{{{3|{{{1}}}}}}a}}}}}}
| dpi = {{{dpi|{{{dp|{{{2|{{{3|{{{1}}}}}}}}}um}}}}}}
| gpi = {{{gpi|{{{gp|{{{3|{{{1}}}}}}a}}}}}}
| npd = {{{npd|{{{np|{{{3|{{{1}}}}}}ar}}}nir}}}
| apd = {{{apd|{{{ap|{{{3|{{{1}}}}}}a}}}na}}}
| dpd = {{{dpd|{{{dp|{{{2|{{{3|{{{1}}}}}}}}}u}}}num}}}
| gpd = {{{gpd|{{{gp|{{{3|{{{1}}}}}}a}}}nna}}}
| notes = {{{notes|}}}
}}<noinclude>{{documentation}}</noinclude>
kx3dn7lwcpv6e09aft9qko1c3jgm6ne
ထာမ်ပလိက်:non-decl-m-a/documentation
10
296905
399128
2026-07-18T02:57:01Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} {{also|Template:non-decl-m-an|Template:non-decl-n-a}} __NOTOC__ ==Usage== This template should be used with enties of Old Norse strong ''a''-stem masculine nouns, except for ''ja''-stem and ''wa''-stem masculine nouns, see [[Template:non-decl-m-ja]] and [[Template:non-decl-m-wa]] respectively. ===Parameters=== This template uses three unnamed templates, as described below: :'''<code>1</cod..."
399128
wikitext
text/x-wiki
{{documentation subpage}}
{{also|Template:non-decl-m-an|Template:non-decl-n-a}} __NOTOC__
==Usage==
This template should be used with enties of Old Norse strong ''a''-stem masculine nouns, except for ''ja''-stem and ''wa''-stem masculine nouns, see [[Template:non-decl-m-ja]] and [[Template:non-decl-m-wa]] respectively.
===Parameters===
This template uses three unnamed templates, as described below:
:'''<code>1</code>''' ('''''required''''') the stem of the noun.
:'''<code>2</code>''' ('''required if applicable''') the (contracted) stem of the noun with u-umlaut.
:'''<code>3</code>''' ('''required if applicable''') the contracted stem of the noun.
:'''<code>form</code>''' Is used if the noun is inflected either only in the singular or only in the plural. If so, <code>form=sing</code> or <code>form=plur</code>.
:'''<code>title</code>''' Is used if the box should bear another name than the pagename.
====Standard parameters====
{{top4}}
* <code>ns</code> nominative singular
** <code>nsi</code> …indefinite
** <code>nsd</code> …definite
* <code>np</code> nominative plural
** <code>npi</code> …indefinite
** <code>npd</code> …definite
* <code>as</code> accusative singular
** <code>asi</code> …indefinite
** <code>asd</code> …definite
* <code>ap</code> accusative plural
** <code>api</code> …indefinite
** <code>apd</code> …definite
* <code>ds</code> dative singular
** <code>dsi</code> …indefinite
** <code>dsd</code> …definite
* <code>dp</code> dative plural
** <code>dpi</code> …indefinite
** <code>dpd</code> …definite
* <code>gs</code> genitive singular
** <code>gsi</code> …indefinite
** <code>gsd</code> …definite
* <code>gp</code> genitive plural
** <code>gpi</code> …indefinite
** <code>gpd</code> …definite
{{bottom}}
==Examples==
'''( 1 )''' The word '''{{m|non|armr||arm}}''' has the stem ''arm'' (<code>1=arm</code>), which becomes ''ǫrm'' (<code>2=ǫrm</code>) with u-umlaut.
{{non-decl-m-a|title=armr|arm|ǫrm}}
----
'''( 2 )''' The word '''{{m|non|hamarr||hammer}}''' has the stem ''hamar'', which becomes ''hǫmr'' with u-umlaut and contraction. Contracted without u-umlaut, the stem is ''hamr''. Therefore: <code>1=hamar</code>, <code>2=hǫmr</code> and <code>3=hamr</code>.
{{non-decl-m-a|title=hamarr|hamar|hǫmr|hamr}}
----
==See Also==
* [[Template:non-decl-m-ja]] for strong ''ja''-stem masculine nouns.
* [[Template:non-decl-m-wa]] for strong ''wa''-stem masculine nouns.
<includeonly>
[[ကဏ္ဍ:ထာမ်ပလိက်နဳနိုတ်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်|m-a]]
</includeonly>
4bljmi7ipp856zuwwqzv06e4v9rvaq4
ကဏ္ဍ:ထာမ်ပလိက်နဳနိုတ်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်
14
296906
399129
2026-07-18T02:58:10Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ထာမ်ပလိက်နဳနိုတ်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|န]]"
399129
wikitext
text/x-wiki
[[ကဏ္ဍ:ထာမ်ပလိက်နဳနိုတ်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|န]]
jr50mjja2qpqiy5dqkv3zxiqlnh0rrh
ကဏ္ဍ:ထာမ်ပလိက်နဳနိုတ်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်
14
296907
399130
2026-07-18T02:59:44Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ထာမ်ပလိက်နဳနိုတ်တြေံဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|န]]"
399130
wikitext
text/x-wiki
[[ကဏ္ဍ:ထာမ်ပလိက်နဳနိုတ်တြေံဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|န]]
0m5davkductyy5wdq4mpy080cx5zp1d
ထာမ်ပလိက်:non-decl-blank-full
10
296908
399131
2026-07-18T03:03:09Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{inflection-table-top|palette=blue|title=မလဟုတ်စှ်ေဆေၚ်စပ်ကဵု {{m-self|non||{{{title}}}}} {{#if:{{{stem|}}}|({{{stem}}})}}}} ! rowspan=2 | {{{g|}}} ! colspan=2 | ကိုန်ဨကဝုစ် ! colspan=2 | ကိုန်ဗဟုဝစ် |- ! class="secondary" | ဟွံချိုတ်ပၠိုတ် ! class="secondary" | ချိုတ်ပၠိုတ် ! clas..."
399131
wikitext
text/x-wiki
{{inflection-table-top|palette=blue|title=မလဟုတ်စှ်ေဆေၚ်စပ်ကဵု {{m-self|non||{{{title}}}}} {{#if:{{{stem|}}}|({{{stem}}})}}}}
! rowspan=2 | {{{g|}}}
! colspan=2 | ကိုန်ဨကဝုစ်
! colspan=2 | ကိုန်ဗဟုဝစ်
|-
! class="secondary" | ဟွံချိုတ်ပၠိုတ်
! class="secondary" | ချိုတ်ပၠိုတ်
! class="secondary" | ဟွံချိုတ်ပၠိုတ်
! class="secondary" | ချိုတ်ပၠိုတ်
|-
! မဒုၚ်ယၟု
| {{non-decl-cell|{{{nsi}}}|nsi}}
| {{non-decl-cell|{{{nsd}}}|nsd}}
| {{non-decl-cell|{{{npi}}}|npi}}
| {{non-decl-cell|{{{npd}}}|npd}}
|-
! ကမ္မကာရက
| {{non-decl-cell|{{{asi}}}|asi}}
| {{non-decl-cell|{{{asd}}}|asd}}
| {{non-decl-cell|{{{api}}}|api}}
| {{non-decl-cell|{{{apd}}}|apd}}
|-
! ပြကမ္မကာရက
| {{non-decl-cell|{{{dsi}}}|dsi}}
| {{non-decl-cell|{{{dsd}}}|dsd}}
| {{non-decl-cell|{{{dpi}}}|dpi}}
| {{non-decl-cell|{{{dpd}}}|dpd}}
|-
! ဗဳဇဂကူ
| {{non-decl-cell|{{{gsi}}}|gsi}}
| {{non-decl-cell|{{{gsd}}}|gsd}}
| {{non-decl-cell|{{{gpi}}}|gpi}}
| {{non-decl-cell|{{{gpd}}}|gpd}}
{{inflection-table-bottom|notes={{#if:{{{notes|}}}|{{{notes}}}|}}}}<noinclude>{{documentation}}</noinclude>
jlalul7obzpwfab2gq0lhcbpmpqnq1l
ထာမ်ပလိက်:non-decl-blank-full/documentation
10
296909
399132
2026-07-18T03:04:21Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} {{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. --> <includeonly> [[ကဏ္ဍ:ထာမ်ပလိက်နဳနိုတ်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်| blank-full]] </includeonly>"
399132
wikitext
text/x-wiki
{{documentation subpage}}
{{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. -->
<includeonly>
[[ကဏ္ဍ:ထာမ်ပလိက်နဳနိုတ်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်| blank-full]]
</includeonly>
m2gk7bvsxtvk2ir12fyq7lsqyw9gzwr
ထာမ်ပလိက်:non-decl-cell
10
296910
399133
2026-07-18T03:05:08Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{#invoke:non-cell|create}}<noinclude>{{documentation}}</noinclude>"
399133
wikitext
text/x-wiki
{{#invoke:non-cell|create}}<noinclude>{{documentation}}</noinclude>
qa3o998j8oo07qb86wt4u587hnikfht
မဝ်ဂျူ:non-cell
828
296911
399134
2026-07-18T03:06:09Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "local m_links = require("Module:links") local lang = require("Module:languages").getByCode("non") local export = {} local accel_forms = { --NOUNS nsi = "nom|s", nsd = "def|nom|s", npi = "nom|p", npd = "def|nom|p", asi = "acc|s", asd = "def|acc|s", api = "acc|p", apd = "def|acc|p", dsi = "dat|s", dsd = "def|dat|s", dpi = "dat|p", dpd = "def|dat|p", gsi = "gen|s", gsd = "def|gen|s", gpi = "gen|p", gpd..."
399134
Scribunto
text/plain
local m_links = require("Module:links")
local lang = require("Module:languages").getByCode("non")
local export = {}
local accel_forms = {
--NOUNS
nsi = "nom|s",
nsd = "def|nom|s",
npi = "nom|p",
npd = "def|nom|p",
asi = "acc|s",
asd = "def|acc|s",
api = "acc|p",
apd = "def|acc|p",
dsi = "dat|s",
dsd = "def|dat|s",
dpi = "dat|p",
dpd = "def|dat|p",
gsi = "gen|s",
gsd = "def|gen|s",
gpi = "gen|p",
gpd = "def|gen|p",
--ADJECTIVES
nsm = "m|nom|s", --strong nom. sg.
nsf = "f|nom|s",
nsn = "n|nom|s",
asm = "m|acc|s", --strong acc. sg.
asf = "f|acc|s",
asn = "n|acc|s",
gsm = "m|gen|s", --strong gen. sg.
gsf = "f|gen|s",
gsn = "n|gen|s",
dsm = "m|dat|s", --strong dat. sg.
dsf = "f|dat|s",
dsn = "n|dat|s",
npm = "m|nom|p", --strong nom. pl.
npf = "f|nom|p",
npn = "n|nom|p",
apm = "m|acc|p", --strong acc. pl.
apf = "f|acc|p",
apn = "n|acc|p",
gp = "m//f//n|gen|p", --strong gen. pl.
dp = "m//f//n|dat|p",
--VERBS
-- Active
-- No active infinitve is included since it is the lemma form.
pres_part = "act|pres|part",
past_part = "act|past|part",
pres_ind_1sg = "1|s|pres|act|ind",
pres_ind_2sg = "2|s|pres|act|ind",
pres_ind_3sg = "3|s|pres|act|ind",
pres_ind_1pl = "1|p|pres|act|ind",
pres_ind_2pl = "2|p|pres|act|ind",
pres_ind_3pl = "3|p|pres|act|ind",
past_ind_1sg = "1|s|past|act|ind",
past_ind_2sg = "2|s|past|act|ind",
past_ind_3sg = "3|s|past|act|ind",
past_ind_1pl = "1|p|past|act|ind",
past_ind_2pl = "2|p|past|act|ind",
past_ind_3pl = "3|p|past|act|ind",
pres_sub_1sg = "1|s|pres|act|sub",
pres_sub_2sg = "2|s|pres|act|sub",
pres_sub_3sg = "3|s|pres|act|sub",
pres_sub_1pl = "1|p|pres|act|sub",
pres_sub_2pl = "2|p|pres|act|sub",
pres_sub_3pl = "3|p|pres|act|sub",
past_sub_1sg = "1|s|past|act|sub",
past_sub_2sg = "2|s|past|act|sub",
past_sub_3sg = "3|s|past|act|sub",
past_sub_1pl = "1|p|past|act|sub",
past_sub_2pl = "2|p|past|act|sub",
past_sub_3pl = "3|p|past|act|sub",
impr_2sg = "2|s|act|imp",
impr_1pl = "1|p|act|imp",
impr_2pl = "2|p|act|imp",
-- Mediopassive
mp_infinitive = "mp|inf",
mp_pres_part = "mp|pres|part",
mp_past_part = "mp|past|part",
mp_pres_ind_1sg = "1|s|pres|mp|ind",
mp_pres_ind_2sg = "2|s|pres|mp|ind",
mp_pres_ind_3sg = "3|s|pres|mp|ind",
mp_pres_ind_1pl = "1|p|pres|mp|ind",
mp_pres_ind_2pl = "2|p|pres|mp|ind",
mp_pres_ind_3pl = "3|p|pres|mp|ind",
mp_past_ind_1sg = "1|s|past|mp|ind",
mp_past_ind_2sg = "2|s|past|mp|ind",
mp_past_ind_3sg = "3|s|past|mp|ind",
mp_past_ind_1pl = "1|p|past|mp|ind",
mp_past_ind_2pl = "2|p|past|mp|ind",
mp_past_ind_3pl = "3|p|past|mp|ind",
mp_pres_sub_1sg = "1|s|pres|mp|sub",
mp_pres_sub_2sg = "2|s|pres|mp|sub",
mp_pres_sub_3sg = "3|s|pres|mp|sub",
mp_pres_sub_1pl = "1|p|pres|mp|sub",
mp_pres_sub_2pl = "2|p|pres|mp|sub",
mp_pres_sub_3pl = "3|p|pres|mp|sub",
mp_past_sub_1sg = "1|s|past|mp|sub",
mp_past_sub_2sg = "2|s|past|mp|sub",
mp_past_sub_3sg = "3|s|past|mp|sub",
mp_past_sub_1pl = "1|p|past|mp|sub",
mp_past_sub_2pl = "2|p|past|mp|sub",
mp_past_sub_3pl = "3|p|past|mp|sub",
mp_impr_2sg = "2|s|mp|imp",
mp_impr_1pl = "1|p|mp|imp",
mp_impr_2pl = "2|p|mp|imp"
}
local mode_prefix = { --this is prefixed to the index value in accel_forms
mpass = "mp_"
}
local mode_prepend = { --on the other hand, this is prefixed to the accelerated text itself
wk = "weak|",
str = "strong|",
comp = "comparative|",
wk_sup = "weak|superlative|",
str_sup = "strong|superlative|"
}
function export.create(frame)
local args = frame:getParent().args
local links = {}
if not args[1] or args[1] == "" then
return "―"
else
local accel_form = args[2]
local accel
if accel_form then
local mode = args[3]
if mode and mode_prefix[mode] then
accel_form = mode_prefix[mode] .. accel_form
end
if accel_forms[accel_form] then
if mode and mode_prepend[mode] then
accel_form = mode_prepend[mode] .. accel_forms[accel_form]
else
accel_form = accel_forms[accel_form]
end
end
accel = {form = accel_form}
end
local words = mw.text.split(args[1], "%s*,%s*")
if words then
for i,j in ipairs(words) do
table.insert(links, m_links.full_link({lang = lang, term = j, accel = accel}))
end
end
end
return table.concat(links, ", ")
end
return export
jauxyakgr2u4kg9m7yprnfpvwvrxc2n
မဝ်ဂျူ:non-cell/documentation
828
296912
399135
2026-07-18T03:08:19Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> [[ကဏ္ဍ:မဝ်ဂျူနဳနိုတ်တြေံဂမၠိုၚ်]] </includeonly>"
399135
wikitext
text/x-wiki
{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. -->
<includeonly>
[[ကဏ္ဍ:မဝ်ဂျူနဳနိုတ်တြေံဂမၠိုၚ်]]
</includeonly>
er8y488qdt3qhkcp02lwyrd3t93y3dm
399136
399135
2026-07-18T03:08:37Z
咽頭べさ
33
咽頭べさ ပြံင်ပဆုဲလဝ် မုက်လိက် [[မဝ်ဂျူ:non-cell/doc]] ဇရေင် [[မဝ်ဂျူ:non-cell/documentation]] သီုကဵု ဟွံဂွံ ဂိုင်စွံလဝ် မကလေင်ပညုင်
399135
wikitext
text/x-wiki
{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. -->
<includeonly>
[[ကဏ္ဍ:မဝ်ဂျူနဳနိုတ်တြေံဂမၠိုၚ်]]
</includeonly>
er8y488qdt3qhkcp02lwyrd3t93y3dm
ကဏ္ဍ:မဝ်ဂျူနဳနိုတ်တြေံဂမၠိုၚ်
14
296913
399137
2026-07-18T03:10:23Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာနဳနိုတ်တြေံ|နဳနိုတ်တြေံ]]..."
399137
wikitext
text/x-wiki
[[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာနဳနိုတ်တြေံ|နဳနိုတ်တြေံ]] » '''မဝ်ဂျူဂမၠိုၚ်'''
:[[:ကဏ္ဍ:မဝ်ဂျူဂမၠိုၚ်|မဝ်ဂျူ]]ဘာသာနဳနိုတ်တြေံ၊ မနွံကဵုလုပ်အဝေါၚ်ကုဒ် Lua နကဵုမကၠောန်ဗဒှ် ကဵု မစဳရေၚ်ယဵုဒုၚ်သ္ပမာန်ဂမၠိုၚ်။
[[ကဏ္ဍ:ဘာသာနဳနိုတ်တြေံဂ]][[ကဏ္ဍ:မဝ်ဂျူဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|န]]
56cvr4jlpronp9l8ivaxmykvua5mtft
399138
399137
2026-07-18T03:10:41Z
咽頭べさ
33
399138
wikitext
text/x-wiki
[[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာနဳနိုတ်တြေံ|နဳနိုတ်တြေံ]] » '''မဝ်ဂျူဂမၠိုၚ်'''
:[[:ကဏ္ဍ:မဝ်ဂျူဂမၠိုၚ်|မဝ်ဂျူ]]ဘာသာနဳနိုတ်တြေံ၊ မနွံကဵုလုပ်အဝေါၚ်ကုဒ် Lua နကဵုမကၠောန်ဗဒှ် ကဵု မစဳရေၚ်ယဵုဒုၚ်သ္ပမာန်ဂမၠိုၚ်။
[[ကဏ္ဍ:ဘာသာနဳနိုတ်တြေံ]][[ကဏ္ဍ:မဝ်ဂျူဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|န]]
hdynb2qtnhi3gb3bnkafjauwc5v1fqu
ထာမ်ပလိက်:non-decl-cell/documentation
10
296914
399139
2026-07-18T03:12:35Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} {{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. --> <includeonly> [[ကဏ္ဍ:ထာမ်ပလိက်နဳနိုတ်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်| cell]] </includeonly>"
399139
wikitext
text/x-wiki
{{documentation subpage}}
{{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. -->
<includeonly>
[[ကဏ္ဍ:ထာမ်ပလိက်နဳနိုတ်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်| cell]]
</includeonly>
5mkhq3h9w8b3s6kuiasagvqj36p9sjl
ထာမ်ပလိက်:m-self/documentation
10
296915
399141
2026-07-18T03:14:59Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}}{{uses lua|Module:links/templates}} {{#switch:{{PAGENAME}}|link={{shortcut|Template:l}}|mention={{shortcut|Template:m}}}} This template generates a link to an entry in a given language. It links to a specific language-section on the target page, and applies language-specific formatting. It can also show a number of annotations after the linked term. There are several linking templates: * {{te..."
399141
wikitext
text/x-wiki
{{documentation subpage}}{{uses lua|Module:links/templates}}
{{#switch:{{PAGENAME}}|link={{shortcut|Template:l}}|mention={{shortcut|Template:m}}}}
This template generates a link to an entry in a given language. It links to a specific language-section on the target page, and applies language-specific formatting. It can also show a number of annotations after the linked term.
There are several linking templates:
* {{temp|link}} (shortcut {{temp|l}}). Use this template outside running text, in sections that list entries, such as “[[Wiktionary:Synonyms|Synonyms]]”, “[[Wiktionary:Related terms|Related terms]]”{{,}} and “[[Wiktionary:Descendants|Descendants]]”.
* {{temp|mention}} (shortcut {{temp|m}}). Use this template when a particular term is [[mention]]ed ([[w:use–mention distinction|not ''used'']]) within running English text, particularly in “[[Wiktionary:Etymology|Etymology]]” and “[[Wiktionary:Usage notes|Usage notes]]” sections, and occasionally in definitions.
* {{temp|l-self}}. Use this template in inflection tables and other templates that list multiple terms. It works the same as {{temp|link}}, but when it links to the same page it is placed on, the link turns bold rather than becoming a link. This mimics the MediaWiki software's behaviour when linking to the same page, but has the full language support of {{temp|link}}.
* {{temp|m-self}}. Use this template in templates that mention multiple terms in running text. It displays like {{temp|mention}}, but works the same as {{temp|l-self}} when linked to the current page.
* {{temp|ll}}. This template creates a link, but does not add any additional formatting or annotations. There is at the moment no consensus on whether it should be used in entries or not.
All of these templates create a link to a language's section of an entry, or to a language-specific sense id created by the template {{temp|senseid}} if the {{para|id}} parameter is used.
If the second parameter of {{temp|l}}, {{temp|m}}, {{temp|l-self}}{{,}} or {{temp|m-self}} contains a wikilink (<code><nowiki>[[entryname|text]]</nowiki></code> or <code><nowiki>[[entryname]]</nowiki></code>), then this link will be transformed into a link to the language's section of the entry. For instance, <code><nowiki>the [[word]]</nowiki></code> will be transformed into <code><nowiki>the [[word#English|word]]</nowiki></code> and <code><nowiki>these [[word|words]]</nowiki></code> will be transformed into <code><nowiki>these [[word#English|words]]</nowiki></code>, if the language code supplied to the template is <code>en</code>.
The annotations – transliteration, translation, literal translation{{,}} and part of speech – are displayed by {{temp|l}}, {{temp|m}}, {{temp|l-self}}{{,}} or {{temp|m-self}} in parentheses after the link. {{temp|ll}} does not support any of these annotations.
See also [[Wiktionary:Style guide#Styling templates]] for a list of all the various styling templates with examples.
This template uses [[Module:links]] as a back-end, so it supports all the features and bugs of that module. Please see its documentation for more details.
==Parameters==
The template takes one required positional parameter and several optional parameters. Note that either the second or third positional parameter should be given, although technically neither is required.
; {{para|1|req=1}}
: The language code (see [[Wiktionary:Languages]]) for the language that the term is in. All Wiktionary language codes are supported, including those for constructed and reconstructed languages.
; {{para|2|opt=1}}
: The page name to be linked to. The template will automatically remove diacritics and punctuation from the page title, according to the <code>entry_name</code> setting in [[Module:languages]], but will keep them in the displayed text.
:* Add {{cd|:}} in front of a page name to link to the page as-is, without any diacritic stripping.
:* To link to a reconstructed term, such as {{m+|gem-pro|*dagaz}}, add {{cd|*}} in front of the term. This automatically converts the link to be in the {{cd|Reconstruction}} namespace.
:* To link to a mainspace term in a reconstructed language (i.e. a language that is unattested or mostly unattested and which is normally required to put its lemmas in the {{cd|Reconstruction}} namespace), add {{cd|!!}} in front of the term. An example of such a term is {{m+|gmw-pro|!!ᚲᚨᛒᚨ|tr=kaba|ts=kamba}}, which should be linked as {{tl|l|gmw-pro|!!ᚲᚨᛒᚨ|tr=kaba|ts=kamba}} or similar. (Proto-West Germanic is a reconstructed language with a single attested term written in Runic script, normally used for the related Proto-Norse language.)
:* For scripts which do not use capitalisation (e.g. Devanagari, Han, Mongolian, etc.), a letter of an automatic transliteration can be capitalised by putting {{cd|^}} before the corresponding character in the term. For example, {{tl|l|zh|^西方}} gives {{l|zh|^西方}}. Please note that this should be used instead of giving a capitalised manual transliteration.
:* Unsupported titles (see [[Special:PrefixIndex/Unsupported titles]]) can be linked to, by adding the displayed title, without the <code>Unsupported titles/</code> prefix: for instance, {{temp|m|mul|:}} → {{m|mul|:}} links to [[Unsupported titles/Colon]]. This feature is made possible by the list found at [[Module:links/data]]. To add new unsupported titles, follow the directions in the module.
; {{para|3|opt=1}}
: Alternative text to display as the link title, if different from the page name. Please do not use this only for adding diacritics or punctuation to the word, as the template can automatically remove these. See above.
; {{para|t}} or {{para|4|opt=1}}
: A gloss or short translation of the word. <small>The parameter {{para|gloss}} is deprecated for this purpose.</small>
; {{para|sc|opt=1}}
: The script code (see [[Wiktionary:Scripts]]) for the script that the term is written in. When no code is given, the template will try to detect the script based on the characters in the term and the scripts in the language's data table (see {{section link|Module:languages#Language:findBestScript}}). In most cases, it will succeed. If it fails, the code <code>None</code> will be used.
; {{para|tr|opt=1}}
: Transliteration for non-Latin-script words. When no transliteration is given, the template will try to add a default transliteration when possible. For certain languages, automated transliteration will override the value of this parameter. Use <code>tr=-</code> if you don't want a transliteration to be automatically generated (you shouldn't really ever do this in an entry).
; {{para|ts|opt=1}}
: Transcription for non-Latin-script words whose transliteration is markedly different from the actual pronunciation. Should not be used for IPA pronunciations.
; {{para|pos|opt=1}}
: A part of speech indication for the term.
:* If the value is one of the abbreviations listed in [[Template:head#Part of speech]] (such as {{cd|a}} or {{cd|adj}} for ''adjective'', {{cd|n}} for ''noun'', {{cd|prepphr}} for ''prepositional phrase'', etc.), it will be displayed in the expanded (canonical) form.
:* If the value is those same abbreviations followed by an {{cd|f}} (e.g. {{cd|af}} or {{cd|adjf}} for ''adjective form'', or {{cd|nf}} for ''noun form''), it will be displayed in the expanded (canonical) form followed by the word ''form''.
:* If the value is a spelled-out part of speech followed by an {{cd|f}} (e.g. {{cd|nounf}} for ''noun form'', {{cd|verbf}} for ''verb form'' or {{cd|proper nounf}} for ''proper noun form''), it will be displayed as the part of speech followed by the word ''form''. This only happens for recognized lemma parts of speech (specifically the singular equivalents of the plural lemma parts of speech listed in {{lua|data.lemmas}} in [[Module:headword/data]]), not for arbitrary words ending in {{cd|f}}.
:* Anything else is displayed as-is.
; {{para|ng|opt=1}}
: Arbitrary non-gloss explanatory text. This is displayed as-is, in upright text, not inside of quotes. It is recommended to use this in preference to {{para|pos}} for any sort of explanatory text other than a grammatical description.
; {{para|g|opt=1}}
: Gender/number specification(s) for the term, if necessary. Separate multiple specifications with a comma (with no space following). You can use inline modifiers {{cd|<l:...>}}, {{cd|<ll:...>}}, {{cd|<q:...>}}, {{cd|<qq:...>}} or {{cd|<ref:...>}} to add labels, qualifiers and/or references to individual gender-number specifications. See examples below, and see [[Module:gender and number]] for the format used. <small>Alternatively, additional gender/number specs can be given in {{para|g2}}, {{para|g3}}, etc., but this is deprecated.</small>
; {{para|lit|opt=1}}
: A literal translation for the term.
; {{para|id|opt=1}}
: An etymology or sense id for the term, which links to anchors on the page set by the {{temp|etymid}} or {{temp|senseid}} templates.
; {{para|accel-form|opt=1}}
: Specifies an accelerated creation tag to be used by the [[WT:ACCEL]] gadget, to automatically generate an entry for a non-lemma form when the link is clicked. For information about acceleration tags, see [[WT:ACCEL#Acceleration tags]]. You should only provide this parameter when using the linking template as part of a headword-line or inflection-table template. Don't use it directly in entries. If the acceleration tag contains a vertical bar <code><nowiki>|</nowiki></code>, use {{temp|!}} instead.
; {{para|accel-translit|opt=1}}
: Specifies a manual transliteration of the non-lemma form for use with accelerated creation of entries; see [[WT:ACCEL]] and {{para|accel-form}} above. The value of this parameter goes into param {{para|tr}} of the call to {{temp|head}} in the accelerated entry. You only need to specify this for languages that use a non-Latin script, and only when the auto-generated transliteration is insufficient, incorrect or nonexistent.
; {{para|accel-lemma|opt=1}}
: Specifies the lemma corresponding to the non-lemma form for use with accelerated creation of entries; see [[WT:ACCEL]] and {{para|accel-form}} above. The value of this parameter goes into param {{para|2}} of the call to {{temp|inflection of}} in the accelerated entry. It defaults to the name of the current page, and only needs to be specified when the lemma contains additional diacritics that are stripped in order to generate the pagename (as in Latin, Russian, Ancient Greek, Old English, etc.).
; {{para|accel-lemma-translit|opt=1}}
: Specifies a manual transliteration of the lemma corresponding to the non-lemma form for use with accelerated creation of entries; see [[WT:ACCEL]] and {{para|accel-form}} above. The value of this parameter goes into param {{para|tr}} of the call to {{temp|inflection of}} in the accelerated entry. You only need to specify this for languages that use a non-Latin script, and only when the auto-generated transliteration is insufficient, incorrect or nonexistent.
; {{para|accel-gender|opt=1}}
: Specifies the gender of the non-lemma form for use with accelerated creation of entries; see [[WT:ACCEL]] and {{para|accel-form}} above. The value of this parameter goes into param {{para|g}} of the call to {{temp|head}} in the accelerated entry. You should only rarely specify this.
; {{para|accel-nostore|1}}
: For use with accelerated creation of entries. Place this on links that appear in the collapsed state of collapsible tables; see [[WT:ACCEL]].
==Examples==
{|class="wikitable"
! Wikitext !! Output !! Comment
|-
| {{demo2c|<nowiki>{{l|cs|háček}}</nowiki>}}
| Simple example.
|-
| {{demo2c|<nowiki>{{l|en|go|went}}</nowiki>}}
| Showing alternative text; links to [[go]].
|-
| {{demo2c|<nowiki>{{l|en|[[God]] be [[with]] [[you]]}}</nowiki>}}
| With wikilinks in input; links individual words [[God]], [[with]] and [[you]].
|-
| {{demo2c|<nowiki>{{l|la|exemplī grātiā}}</nowiki>}}
| Removal of diacritics; links to {{l|la|exempli gratia}}.
|-
| {{demo2c|<nowiki>{{l|ine-pro|*bʰréh₂tēr}}</nowiki>}}
| Reconstructed words; links to [[Reconstruction:Proto-Indo-European/bʰréh₂tēr]].
|-
| {{demo2c|<nowiki>{{l|la|similis|t=like}}</nowiki>|fmt=0}} ''or'' {{demo2c|<nowiki>{{l|la|similis||like}}</nowiki>}}
| Translation.
|-
| {{demo2c|<nowiki>{{l|ru|ру́сский||Russian|g=m}}</nowiki>}}
| Miscellaneous / with many options.
|-
| {{demo2c|<nowiki>{{l|ca|amor|g=m,f<l:<<archaic>> or <<poetic>>>}}</nowiki>}}
| Multiple genders with inline modifier label modifying the second gender.
|-
| {{demo2c|<nowiki>{{l-self|ang|{{{dat_pl_f}}}|accel-form=dat{{!}}f{{!}}p|accel-lemma={{{nom_sg_m}}}}}</nowiki>}}
| Use of accelerators (in an inflection-table entry).
|}
==Wikicode==
{{temp|l}}, {{temp|m}}, {{temp|l-self}}{{,}} or {{temp|m-self}} all add HTML tags in addition to creating a link. {{temp|l|en|word}} outputs the wikicode {{code|html|2=<span class="Latn" lang="en">[[word#English|word]]</span>}}, and {{temp|m|en|word}} outputs {{code|html|2=<i class="Latn mention" lang="en">[[word#English|word]]</i>}}. {{temp|l-self}} and {{temp|m-self}} do the same, except they don't create a link if the page being linked to is the same as the current page. This HTML is applied by [[Module:script utilities]]; for more, see [[Module:script utilities/documentation#tag text]].
==Customization==
The outcome of [[Wiktionary:Votes/2007-10/style for mentioned terms]] determined the default style for terms mentioned with the {{temp|mention}}/{{temp|m}} template. The preliminary default for Latin-script (i.e. Roman script, not just Latin-language) terms and phrases is italics. Readers can easily toggle the output from italics to bold by selecting “'''Show other Latin (Roman) script mentions in bold'''” from [[WT:PREFS]]. Alternatively, or for more advanced customization, readers can add styles to their style sheets as described in [[WT:CUSTOM]]:
*For plain format (e.g.: From <span style='font-style:normal'>[[mot#French|mot]]</span> + ...):
*: <code>.mention-Latn { font-style: normal }</code>
* For bold format (e.g.: From <span style='font-weight:bold'>[[mot#French|mot]]</span> + ...):
*: <code>.mention-Latn { font-weight: bold; font-style: normal }</code>
* For italicized format (e.g.: From <span style='font-style:italic'>[[mot#French|mot]]</span> + ...):
*: <code>.mention-Latn { font-style: italic }</code>
Further, the default style of the subsequent English translation glosses is in double quotes (pending a vote to approve this template). Readers can easily change the output to single quotes by selecting “'''Show English glosses for mentioned terms in single quotes'''” from [[WT:PREFS]].
==See also==
* {{temp|m+}} – to create a link like {{temp|m}} but with the language name
* {{temp|user}} – for mentioning ''users''
* {{temp|mention-gloss}} ({{temp|m-g}}) – to create quotation marks (for glosses or translations) that are formatted with the same HTML code as used by {{temp|link}} or {{temp|mention}}
* {{temp|zh-l}} – a similar template specialized for Chinese
* {{temp|ltc-l}} – a similar template specialized for Middle Chinese
* {{temp|ja-l}} – a similar template specialized for Japanese
* {{temp|ko-l}} – a similar template specialized for Korean
* {{temp|fa-l}} – a similar template specialized for Persian
* {{temp|th-l}} – a similar template specialized for Thai
* {{temp|vi-l}} – a similar template specialized for Vietnamese
* {{temp|section link}} – to link to a section of a page
==Language-specific subtemplates==
There are high performance versions of this template for several languages. All of them take two parameters: the word and the alternative text. Some may support transliteration also, but they should not support any other parameters for speed reasons. Using any of these subtemplates is sometimes necessary for pages that have many links, since they are faster. For normal use, there is no need for this, and the regular {{temp|l}} should be used instead.
{{Special:PrefixIndex/{{#titleparts:Template:l|1|1}}/}}
{{Special:PrefixIndex/{{#titleparts:{{FULLPAGENAME}}|1|1}}/}}
==TemplateData==
{{TemplateData header}}
<templatedata>
{
"params": {
"1": {
"label": "language code",
"description": "The language code (see Wiktionary:Languages) for the language that the term is in. All languages are supported, including constructed and reconstructed ones.",
"type": "string",
"required": true,
"example": "en"
},
"2": {
"type": "wiki-page-name",
"label": "entry to link",
"description": "The page name to be linked to",
"example": "house",
"required": true
},
"3": {
"label": "displayed text",
"description": "Alternative text to display as the link title, if different from the page name",
"type": "string",
"suggested": true
},
"4": {
"aliases": [
"t",
"gloss"
],
"label": "gloss",
"description": "A gloss or short translation of the term",
"type": "string",
"suggested": true
},
"lit": {
"label": "literal translation",
"description": "A literal translation of the term",
"type": "string"
},
"id": {
"label": "sense ID",
"description": "A sense ID for the term, which links to anchors on the page set by the {{senseid}} template.",
"type": "string",
"example": "Q20502"
},
"sc": {
"label": "script code",
"description": "(optional) The script code (see [[Wiktionary:Scripts]]) for the script that the term is written in. The template can usually figure this out itself, so this is rarely needed. When no code is given, the template will try to detect the script based on the characters of the word, and if it fails to detect the script, the code <code>None</code> will be used.",
"type": "string",
"example": "Latn"
},
"pos": {
"label": "part of speech",
"description": "A part of speech indication for the term",
"type": "string",
"example": "noun",
"suggested": true
},
"tr": {
"label": "transliteration",
"description": "Transliteration for non-Latin-script words. When no transliteration is given, the template will try to add a default transliteration when possible. For certain languages, automated transliteration will override the value of this parameter. Use <code>tr=-</code> if you don't want a transliteration to be automatically generated (you shouldn't really ever do this in an entry).",
"type": "string",
"suggested": true
},
"g": {
"label": "gender and number",
"description": "Gender and number; see [[Module:gender and number]] for details.",
"type": "string"
}
},
"description": "This template generates a link to an entry in a given language. It links to a specific language-section on the target page, and applies language-specific formatting. It can also show a number of annotations after the linked term.",
"format": "inline"
}
</templatedata>
<includeonly>
[[ကဏ္ဍ:ထာမ်ပလိက်မနွံဒၟံၚ်အပ္ဍဲလေန်ဂမၠိုၚ်|l]]
</includeonly>
4ggmdtf67jx8mshz0oj7pm0spgxt0dr