ဝိက်ရှေန်နရဳ
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
398274
385838
2026-07-14T15:24:04Z
咽頭べさ
33
398274
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 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 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 = "^မဝ်ဂျူ: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, " ")
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 .. "၊ သွက်မရပ်စပ်နူကဵု " ..
"ဝေါဟာဇာတိအဓိပ္ပါဲတုပ်ဂမၠိုၚ်။ ဆေၚ်စပ်ကဵုဝေါဟာမဆက်ဆောံအဓိပ္ပါဲတုပ်အဇေတ်အဍာံဂှ်မနွံဒၟံၚ်ပ္ဍဲမဝ်ဂျူတန်ဍောတ်ဂမၠိုၚ်။\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 နကဵုဝေါဟာအဓိပ္ပါဲတုပ်သွက် {{m|%s|%s}} ဂမၠိုၚ်။\n\n%s"):format(langname, lang_code, term, expand_template({ title = 'dial syn', args = { lang_code, term } }))
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("^[Uu]ser:(.+)") 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 == "ညးလွပ်" 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;\">ပွမဗက် " ..
"[[Help:စရၚ်ထာမ်ပလိက်ကဵုမဝ်ဂျူဂမၠိုၚ်|လိက်စၟတ်သမ္တီ]]မချူလဝ်နကဵုခၞံဗဒှ်အပ္ဍဲ [[" ..
doc_title.fullText .. "]]အတေံ။ " .. "<sup>[[" .. doc_title:fullUrl{action = "ပလေဝ်ဒါန်"} .. " ပလေဝ်ဒါန်]]</sup>" ..
cats_auto_generated_text .. "</i></dd>")
else
if contentModel == "Scribunto" then
get_module_doc_and_cats(false)
elseif title.nsText == "ထာမ်ပလိက်" 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;\">မဆေၚ်စပ်ကဵုပွမဗက်က္ကရဴ " ..
"[[Help:စရၚ်ထာမ်ပလိက်ကဵုမဝ်ဂျူဂမၠိုၚ်|လိက်စၟတ်သမ္တီမချူလဝ်]]ဂှ် " ..
"ကၠောန်ပ္တိတ်လဝ်နူကဵု [[" .. 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 ..
" တဏအ်ဝွံဟွံမွဲကဵု[[Help:စရၚ်ထာမ်ပလိက်ကဵုမဝ်ဂျူဂမၠိုၚ်|လိက်စၟတ်သမ္တီမချူလဝ်နကဵုမုက်လိက်ဂၠေံဂၠေံ]]။ " ..
(fallback_docs and "ဇကုမသ္ပမာန်နကဵု" or "သ္ပဂုန်တုဲ") ..
"[" .. doc_title:fullUrl{action = "ပလေဝ်ဒါန်", preload = preload}
.. " ဍဵုခၞံဗဒှ်ဏံညိ]။</i></dd>\n")
else
output:insert(
"<dd><i style=\"font-size: larger; color: #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("တၟေၚ်:ကိရိယာဂမၠိုၚ်", {uselang = "mnw"})))
output:insert(' gadget] ([')
output:insert(tostring(full_url("မဳဒဳယာဝဳကဳ:Gadgets-definition", {action = "ပလေဝ်ဒါန်"})))
output:insert(' ပလေဝ်ဒါန်ဝေါဟာအဓိပ္ပါဲဂမၠိုၚ်])လဵုဒှ်ဒှ်ရအဴ။</dd>')
-- else
-- cats:insert("ဂေက်ဂျေက်ဝိတ်ရှေန်နရဳဂမၠိုၚ်")
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*%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.namespace == 2) then
track("sandbox to be moved")
local sandbox_of, diff = title.baseText
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:sa-pronunc/sandbox]], [[Module:sa-pronunc/sandbox2]].
-- Occasionally sandbox modules have their own subpages that are also
-- sandboxes: [[Module:grc-decl/sandbox/decl]].
else
local sandbox_title
if title.rootText == "grc-decl" then
sandbox_title = string_insert(title.fullText, 16, "/sandbox")
elseif is_testcases then
sandbox_title = title.fullText:gsub("/testcases", "/sandbox/testcases")
else
sandbox_title = title.fullText .. "/sandbox"
end
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 == "ထာမ်ပလိက်" 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 == "ထာမ်ပလိက်" 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("! Regex !! Category !! Handling modules")
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 ("[[မဝ်ဂျူ: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 ~= "doc" 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 ~= "doc" 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 ~= "doc" 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 {{entry name module documentation}}.
function export.entryNameModuleLangList(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 entryNameModule = pagename
local languageObjects = require("မဝ်ဂျူ:languages/byEntryNameModule")(entryNameModule)
local codeInPagename = pagename:match("^([%l-]+)%-.*entryname$")
local categories = Array()
local codeInPagenameInList = false
if codeInPagename then
if languageObjects[1] and subpage ~= "doc" 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 ~= "doc" 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 ~= "doc" 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 generate entry names 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" or "doc" 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 ~= "doc" 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 ~= "doc" 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
gg1h0tbm979b2mp51jeonscprpfg4py
မဝ်ဂျူ:shortcut box
828
893
398275
158347
2026-07-14T15:34:42Z
咽頭べさ
33
398275
Scribunto
text/plain
local export = {}
local debug_track_module = "Module:debug/track"
local maintenance_category_module = "Module:maintenance category"
local pages_module = "Module:pages"
local parameters_module = "Module:parameters"
local template_parser_module = "Module:template parser"
local utilities_module = "Module:utilities"
local html_create = mw.html.create
local insert = table.insert
local ipairs = ipairs
local require = require
local tostring = tostring
--[==[
Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==]
local function format_categories(...)
format_categories = require(utilities_module).format_categories
return format_categories(...)
end
local function get_namespace_shortcut(...)
get_namespace_shortcut = require(pages_module).get_namespace_shortcut
return get_namespace_shortcut(...)
end
local function get_template_invocation_name(...)
get_template_invocation_name = require(template_parser_module).getTemplateInvocationName
return get_template_invocation_name(...)
end
local function process_params(...)
process_params = require(parameters_module).process
return process_params(...)
end
local function track(...)
track = require(debug_track_module)
return track(...)
end
local function uses_hidden_category(...)
uses_hidden_category = require(maintenance_category_module).uses_hidden_category
return uses_hidden_category(...)
end
--[==[
Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==]
local current_title
local function get_current_title()
current_title, get_current_title = mw.title.getCurrentTitle(), nil
return current_title
end
local is_documentation
local function get_is_documentation()
is_documentation, get_is_documentation = require(pages_module).is_documentation(current_title or get_current_title()), nil
return is_documentation
end
local target
local function get_target()
get_target = nil
-- If it's a documentation page, make the target point to the base page.
if is_documentation == nil and get_is_documentation() or is_documentation then
target = ((current_title or get_current_title()).basePageTitle or current_title).fullText -- Fallback is a failsafe, but shouldn't be needed.
return target
end
local namespace = (current_title or get_current_title()).namespace
-- Unless the page is a template or module, point to the current section with a fragment. Otherwise, just point to the current page.
if not (namespace == 10 or (namespace == 828 and current_title.contentModel == "Scribunto")) then
local current_section = require(pages_module).get_current_section()
if current_section ~= 0 then -- Section 0 is everything before the first heading (i.e. the top of the page).
local headings, i = {}, 0
for heading in require(template_parser_module).find_headings(current_title.content) do
i = i + 1
headings[i] = heading
if heading.section == current_section then
break
end
end
-- Once the current section has been found, validate headings in reverse order until a valid one is found.
while i ~= 0 do
local anchor = headings[i]:get_anchor()
if anchor ~= nil then
-- Add the fragment.
current_title.fragment = anchor:gsub("_", " ")
break
end
i = i - 1
end
end
end
target = current_title.fullText
return target
end
local function handle_shortcut(title, demo)
local namespace = title.namespace
local text = namespace == 0 and title.text or
namespace == 10 and get_template_invocation_name(title, "shortcut") or
get_namespace_shortcut(title) .. ":" .. title.text
local redlink, query = not title.content
if redlink then
query = {
action = "edit",
redlink = true,
preloadtext = not demo and "#REDIRECT [[" .. (target or get_target()) .. "]]" or nil
}
else
query = {
redirect = "no",
}
end
local tag = html_create("code"):wikitext((namespace == 10 and "{{[" or "[") .. tostring(title:fullUrl(query)) .. " ")
if redlink then
text = html_create("span")
:addClass("redlink")
:wikitext(text)
end
tag = tag:node(text):wikitext(namespace == 10 and "]}}" or "]")
if demo then
return tag
elseif redlink then
tag:addClass("attentionseeking")
return tag, "redlink"
end
-- Check the target is correct.
local redirect = title.redirectTarget
if redirect and redirect.fullText == (target or get_target()) then
return tag
end
-- If not, flag for attention.
tag:addClass("attentionseeking")
return tag, "not shortcut"
end
-- Takes `list`, an array of title objects, and returns a shortcut box.
function export.format_shortcuts(list, temp, nocat, demo)
if nocat then
track("shortcut box/nocat")
end
local div = html_create("div")
:addClass("noprint")
:addClass("plainlinks")
:addClass("shortcut-box")
:wikitext(("%s[[ဝိက်ရှေန်နရဳ:ဂၠံၚ်ကရတ်|ဂၠံၚ်ကရတ်%s%s]]:"):format(
temp and "Temporary " or "",
temp and "s" or "S",
list[2] and "s" or ""
))
local redlink, not_shortcut
for _, shortcut in ipairs(list) do
div:tag("br")
local shortcut, cat = handle_shortcut(shortcut, demo)
div:node(shortcut)
if cat == "redlink" then
redlink = true
elseif cat == "not shortcut" then
not_shortcut = true
end
end
if nocat or uses_hidden_category(current_title or get_current_title()) then
return tostring(div)
end
local categories = {}
-- Don't categorize documentation pages as being pages with shortcuts.
if not (is_documentation == nil and get_is_documentation() or is_documentation) then
insert(categories, "မုက်လိက်ဝိက်ရှေန်နရဳနွံဂၠံၚ်ကရတ်ဂမၠိုၚ်")
end
if redlink then
-- insert(categories, "Shortcut boxes with redlinks")
end
if not_shortcut then
-- insert(categories, "Shortcut boxes linking to non-shortcuts or shortcuts to other pages")
end
return tostring(div) .. format_categories(categories, nil, "-", nil, true)
end
function export.shortcut_t(frame)
local boolean = {type = "boolean"}
local params = {
-- Namespace 10 is Template.
[1] = {required = true, type = "title", namespace = 10,
list = true, sublist = "comma without whitespace", flatten = true},
["demo"] = {type = "boolean", demo = true},
["nocat"] = boolean, -- To be removed: no use-case.
["temp"] = boolean,
}
local args = process_params(frame:getParent().args, params)
return export.format_shortcuts(args[1], args.temp, args.nocat, args.demo)
end
return export
9ynh0j04zxilbqxx5vf19cmk0rmoeoy
ထာမ်ပလိက်:transliteration policy
10
1979
398265
5680
2026-07-14T14:13:42Z
咽頭べさ
33
အကြောင်းအရာ "{{#invoke:transliteration policy|show}}<noinclude>{{documentation}}</noinclude>" ဖြင့် အစားထိုးခဲ့သည်
398265
wikitext
text/x-wiki
{{#invoke:transliteration policy|show}}<noinclude>{{documentation}}</noinclude>
sxsog69y4810kt8r9cqtext2sd17ou1
မဝ်ဂျူ:sa-headword
828
2258
398225
383662
2026-07-14T13:09:24Z
咽頭べさ
33
398225
Scribunto
text/plain
local export = {}
local pos_functions = {}
local m_links = require("Module:links")
local lang = require("Module:languages").getByCode("sa")
local langname = lang:getCanonicalName()
local PAGENAME = mw.title.getCurrentTitle().text
local Array = require "Module:array"
local suffix_categories = {
["နာမဝိသေသန"] = true,
["ကြိယာဝိသေသန"] = true,
["နာမ်"] = true,
["ကြိယာ"] = true,
}
local function track(page)
require("Module:debug").track("sa-headword/" .. page)
return true
end
local function glossary_link(entry, text)
text = text or entry
return "[[အဆက်လက္ကရဴ:မသောၚ်ကၠးဝေါဟာ#" .. entry .. "|" .. text .. "]]"
end
function export.alt(frame)
local args = frame:getParent().args
local currentScript = lang:findBestScript(PAGENAME)
local currentScriptCode = currentScript:getCode()
local availableScripts = lang:getScripts()
local devaForm = args["Deva"] or currentScriptCode == "Deva" and PAGENAME or error("No Devanagari-script form detected.")
local scriptCode
local translit = require("Module:sa-convert").tr
local m_labels = require("Module:labels")
local terms
local first
local output = {[1] = ""}
local output = Array('<div class="NavFrame" style="max-width:40em"><div class="NavHead" style="background:var(--wikt-palette-lightblue,#d9ebff);color:inherit">ပွံၚ်အက္ခရ်နဲတၞဟ်ဂမၠိုၚ်</div><div class="NavContent" style="text-align:left"><ul>')
for _,script in ipairs(availableScripts) do
scriptCode = script:getCode()
terms = { args[scriptCode], args[scriptCode.."2"], args[scriptCode.."3"] }
if scriptCode ~= "Deva" then
local auto = translit(devaForm, scriptCode)
if #terms == 0 then
terms[1] = auto
elseif auto == "" then
-- Helpless - skip script.
elseif terms[1] ~= auto then
mw.addWarning("Expected "..auto.." for "..scriptCode.." but given "..terms[1]);
output:insert(" ")
end
end
if terms[1] ~= "" then
first = true
for _,term in ipairs(terms) do
if term ~= nil and term ~= PAGENAME then
if first then
first = false
output:insert("<li>")
else
output:insert(" or ")
end
output:insert(m_links.full_link({lang = lang, sc = script, term = term, tr = "-"}))
end
end
if not first then
output:insert(" ")
output:insert(m_labels.show_labels {
labels = { script:getDisplayForm() },
lang = lang
} .. "</li>")
end
end
end
output:insert("</ul></div></div>")
return output:concat()
end
local function add_root_category(args, data, tracking_categories)
if args[1] then
table.insert(data.inflections, {label = "တံရိုဟ်", args[1]})
if not args.norootcat then
table.insert(data.categories, "ဝေါဟာသံသကြိုတ်ဆေၚ်စပ်ကဵုတံရိုဟ်နကဵုဝေါဟာ " .. args[1])
end
end
end
-- The main entry point.
function export.show(frame)
local tracking_categories = {}
local iparams = {
[1] = {required = true},
["def"] = {}, -- default value
}
local iargs = require("Module:parameters").process(frame.args, iparams)
local poscat = iargs[1]
local params = {
[1] = {},
["head"] = {list = true},
["tr"] = {list = true, allow_holes = true},
["sc"] = {},
["id"] = {},
["sort"] = {},
["suff"] = {type = "boolean"},
}
if pos_functions[poscat] then
for key, val in pairs(pos_functions[poscat].params) do
params[key] = val
end
end
local parargs = frame:getParent().args
local args = require("Module:parameters").process(parargs, params)
local heads = args["head"]
if #heads == 0 and mw.title.getCurrentTitle().nsText == "ထာမ်ပလိက်" then
heads = {iargs["def"]}
end
local data = {
lang = lang,
sc = require("Module:scripts").getByCode(args["sc"], "sc"),
pos_category = poscat,
categories = {},
heads = heads,
translits = args["tr"],
genders = {},
inflections = {},
id = args["id"],
sort_key = args["sort"],
categories = {},
sccat = true,
}
if args["suff"] then
data.pos_category = "အဆက်လက္ကရဴ"
if suffix_categories[poscat] then
local singular_poscat = poscat:gsub("s$", "")
-- table.insert(data.categories, langname .. " " .. singular_poscat .. "-forming suffixes")
else
error("No category exists for suffixes forming " .. poscat .. ".")
end
end
if pos_functions[poscat] then
pos_functions[poscat].func(args, data, tracking_categories)
end
add_root_category(args, data, tracking_categories)
return require("Module:headword").full_headword(data)
.. require("Module:utilities").format_categories(tracking_categories, lang)
end
pos_functions["ကြိယာ"] = {
params = {
[2] = {},
[3] = {},
[4] = {},
[5] = {},
[6] = {},
[7] = {},
["norootcat"] = {type = "boolean"},
},
func = function(args, data, tracking_categories)
local function tooltip(mousetext, anchor, underline)
return mw.getCurrentFrame():expandTemplate {
title = "tooltip", args = {mousetext, anchor, und = underline and "1" or nil}
}
end
local function type_to_text(typ)
return (
typ == "A" and {"အာမဏိပဒ"} or
typ == "P" and {"ပရာတ်သမါဲပါဒါ"} or
typ == "U" and {"ဥဘယပဒ"} or
typ == "UP" and {"ဥဘယပဒ", "ပရာတ်သမါဲပါဒါ"} or
typ == "UA" and {"ဥဘယပဒ", "အာမဏိပဒ"} or
error("Unrecognized Sanskrit verb type: '" .. typ .. "'; should be one of A, P, U, UP or UA")
)
end
local function type_to_tooltip(typ)
local desc = table.concat(type_to_text(typ), " — ")
return tooltip(desc, typ, true)
end
local function mode_to_cat(mode)
if mode == "present" or mode == "causative" or mode == "desiderative" or mode == "intensive" or
mode == "denominative" then
return mode .. " ကြိယာ"
elseif mode == "frequentative" then
return "intensive verbs"
elseif mode == "passive" then
return "passive verbs"
elseif mode == "nominal" then
return "denominative verbs"
elseif mode == "perfect" then
return "perfect verbs"
elseif mode == "aorist" then
return "aorist verbs"
elseif mode == "future" or mode == "periphrastic future" then
return "future verbs"
elseif mode == "benedictive" then
return "benedictive verbs"
elseif mode == "imperfect" or mode == "conditional" then
return nil -- FIXME: What about these verbs?
else
error("Unrecognized Sanskrit verb mode: '" .. mode .. "'; should be 'present', 'causative', 'desiderative', etc.")
end
end
local function handle_class_type_mode(class, typ, mode, notfirst)
if class then
if not class:find("^[1-9]$") and class ~= "10" then
error("Unrecognized Sanskrit verb class: '" .. class .. "'; should be a number from 1 to 10")
end
table.insert(data.inflections, {label = (notfirst and "or " or "") .. "class " .. class})
-- table.insert(data.categories, "ကြိယာ" .. langname .. "တန်ကဆံၚ်" .. class .. "ဂမၠိုၚ်")
end
if typ then
table.insert(data.inflections, {label = "type " .. type_to_tooltip(typ)})
for _, desc in ipairs(type_to_text(typ)) do
-- table.insert(data.categories, "ကြိယာ" .. desc .. "နကဵုဘာသာ" .. langname .. "ဂမၠိုၚ်")
end
end
if mode then
table.insert(data.inflections, {label = mode})
local cat = mode_to_cat(mode)
if cat then
-- table.insert(data.categories, cat .. langname)
end
end
end
handle_class_type_mode(args[2], args[3], args[4])
handle_class_type_mode(args[5], args[6], args[7], "notfirst")
data.gloss = "ကိုန်ဨကဝုစ်တတိယမစၞောန်ရန်"
end,
}
pos_functions["နာမဝိသေသန"] = {
params = {
["comp"] = {list = true}, --comparative(s)
["sup"] = {list = true}, --superlative(s)
},
func = function(args, data, tracking_categories)
if args.comp[1] == "-" then
table.insert(data.inflections, {label = "ပတုပ်ရံၚ်ဟွံမာန်"})
table.insert(data.categories, "နာမဝိသေသန" .. langname .. "မဂၠာဲပတုပ်ရံၚ်ဟွံမာန်ဂမၠိုၚ်")
else
if #args.comp > 0 then
args.comp.label = glossary_link("ပတုပ်ရံၚ်")
args.comp.accel = {form = "ပတုပ်ရံၚ်"}
table.insert(data.inflections, args.comp)
end
if #args.sup > 0 then
args.sup.label = glossary_link("သဒ္ဒာ")
args.sup.accel = {form = "သဒ္ဒာ"}
table.insert(data.inflections, args.sup)
end
end
data.gloss = "stem"
end
}
pos_functions["လုပ်ကၠောန်စွံလဝ်"] = {
params = {
[2] = {},
[3] = {},
[4] = {}
},
func = function(args, data, tracking_categories)
local function handle_part_to_type(a1, a2, a3)
local tense = nil
local voice = nil
local typ = {}
if a1 == "gerundive" then
tense = "future"
voice = "passive"
elseif a1 == "future" or a1 == "fut" then tense = "future"
elseif a1 == "present" or a1 == "pres" then tense = "present"
elseif a1 == "perfect" or a1 == "perf" then tense = "perfect"
elseif a1 == "past" then tense = "past"
elseif a1 ~= nil then error("unrecognized participle tense " .. a1) end
if a2 == "active" or a2 == "act" or a2 == "a" then voice = "active"
elseif a2 == "mediopassive" or a2 == "mediopass" or a2 == "mp" then voice = "mediopassive"
elseif a2 == "passive" or a2 == "pass" or a2 == "p" then voice = "passive"
elseif a2 ~= nil then error("unrecognized participle voice " .. a2) end
if tense ~= nil then
table.insert(data.categories, "Sanskrit " .. tense .. " participles")
table.insert(typ, tense)
end
if voice ~= nil then
table.insert(data.categories, "Sanskrit " .. voice .. " participles")
table.insert(typ, voice)
end
if tense ~= nil and voice ~= nil then
table.insert(data.categories, "Sanskrit " .. tense .. " " .. voice .. " participles")
end
if a3 == "desiderative" or a3 == "desid" then
table.insert(typ, "desiderative")
elseif a3 == "intensive" or a3 == "intens" or a3 == "int" or a3 == "frequentive" or a3 == "freq" then
table.insert(typ, "intensive")
elseif a3 == "causative" or a3 == "caus" then
table.insert(typ, "causative")
elseif a3 ~= nil then error("unrecognized participle " .. a3) end
if #typ then
data.gloss = table.concat(typ, " ") .. " လုပ်ကၠောန်စွံလဝ်"
end
end
if args[2] ~= nil then handle_part_to_type(args[2], args[3], args[4]) end
end
}
local noun_params = {
["indecl"] = {type = "boolean"},
["g"] = {list = true}, --gender(s)
["f"] = {list = true}, --feminine form(s)
["m"] = {list = true}, --masculine form(s)
["n"] = {list = true}, --neuter form(s)
}
local allowed_genders = {
["m"] = true,
["f"] = true,
["n"] = true,
["m-p"] = true,
["f-p"] = true,
["n-p"] = true,
["mf"] = true,
["mfbysense"] = true,
["mf-p"] = true,
["mfbysense-p"] = true,
["fm"] = true,
["mn"] = true,
["nm"] = true,
}
local function do_nouns(plpos, args, data, tracking_categories)
local genders = {}
for _, g in ipairs(args.g) do
if not allowed_genders[g] then
error("Unrecognized gender: " .. g)
end
if g == "fm" then
table.insert(genders, "f")
table.insert(genders, "m")
elseif g == "mn" then
table.insert(genders, "m")
table.insert(genders, "n")
elseif g == "nm" then
table.insert(genders, "n")
table.insert(genders, "m")
else
-- mf, mfbysense handled internally by [[Module:gender and number]]
table.insert(genders, g)
end
end
if #genders > 0 then
data.genders = genders
else
data.genders = {"?"}
end
if args.indecl then
table.insert(data.inflections, {label = "ဟွံပြံၚ်လှာဲ"})
end
if #args.m > 0 then
args.m.label = "ပုလ္လိၚ်"
table.insert(data.inflections, args.m)
end
if #args.f > 0 then
args.f.label = "ဣတ္တိလိၚ်"
table.insert(data.inflections, args.f)
end
if #args.n > 0 then
args.n.label = "နပုလ္လိၚ်"
table.insert(data.inflections, args.n)
end
data.gloss = "တံမအရေဝ်"
end
pos_functions["နာမ်"] = {
params = noun_params,
func = function(args, data, tracking_categories)
return do_nouns("နာမ်", args, data, tracking_categories)
end,
}
pos_functions["နာမ်မကိတ်ညဳ"] = {
params = noun_params,
func = function(args, data, tracking_categories)
return do_nouns("နာမ်မကိတ်ညဳ", args, data, tracking_categories)
end,
}
local function pos_with_gender()
return {
params = {
["g"] = {list = true},
},
func = function(args, data)
data.genders = args["g"]
end,
}
end
pos_functions.numerals = pos_with_gender()
pos_functions.pronouns = pos_with_gender()
pos_functions.suffixes = pos_with_gender()
pos_functions["adjective forms"] = pos_with_gender()
pos_functions["noun forms"] = pos_with_gender()
pos_functions["proper noun forms"] = pos_with_gender()
pos_functions["pronoun forms"] = pos_with_gender()
pos_functions["determiner forms"] = pos_with_gender()
pos_functions["verb forms"] = pos_with_gender()
return export
5vdymz26qtk1savstrj2nn83gfitld5
ဝိက်ရှေန်နရဳ:ဂၠံၚ်ကရတ်
4
15222
398276
23579
2026-07-14T15:42:14Z
咽頭べさ
33
咽頭べさ ပြံင်ပဆုဲလဝ် မုက်လိက် [[ဝိက်ရှေန်နရဳ:ဂၠံင်ကရတ်]] ဇရေင် [[ဝိက်ရှေန်နရဳ:ဂၠံၚ်ကရတ်]] သီုကဵု ဟွံဂွံ ဂိုင်စွံလဝ် မကလေင်ပညုင်
23579
wikitext
text/x-wiki
{{dablink|"WT:SC" redirects here. You may be looking for [[:en:Wiktionary:Scripts]].}}
{{shortcut|WT:WT|WT:SC}}
==Compact list of shortcuts used==
This list is a trimmed-down one of main shortcuts. There is also [[:en:Special:Prefixindex/WT:|a generated list]]. A large number of shortcuts are like [[WT:AEN]] => [[:en:Wiktionary:About English]] where "WT:A" is followed by a two- or three-letter code for a language.
{| border="2" cellpadding="1" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;" width=100%
|+Overview of several shortcuts on Wiktionary
|-
| [[WT:-)]] || [[:en:Wiktionary:Bad jokes and other deleted nonsense]]
|-
| [[WT:ADMIN]] ([[WT:A]]) || [[Wiktionary:ညးကောပ်ကာဲ]]
|-
| [[WT:AN]] || [[:en:Wiktionary:Announcements]]
|-
| [[WT:BOOK]] || [[:en:Wiktionary:Bookmarklets]]
|-
| [[WT:BP]] || [[:en:Wiktionary:Beer parlour]]
|-
| [[WT:CAT]] || [[:en:Special:Categories]]
|-
| [[WT:CFI]] || [[:en:Wiktionary:Criteria for inclusion]]
|-
| [[WT:COW]] || [[:en:Wiktionary:Collaboration of the week]]
|-
| [[WT:DR]] || [[:en:Wiktionary:Discussion rooms]]
|-
| [[WT:DW]] || [[:en:Wiktionary:Administrators/Dishwashing]]
|-
| [[WT:STYLE]] ([[WT:ELE]]) || [[:en:Wiktionary:Entry layout]]
|-
| [[WT:FAQ]] || [[:en:Help:FAQ]]
|-
| [[WT:GP]] || [[:en:Wiktionary:Grease pit]]
|-
| [[WT:GPA]] || [[:en:Wiktionary:Grease pit/timeline]]
|-
| [[WT:ID]] ||[[:en:Wiktionary:Information desk]]
|-
| [[WT:RA]] || [[:en:Wiktionary:Requested entries]]
|-
| [[WT:RFC]] || [[:en:Wiktionary:Requests for cleanup]]
|-
| [[WT:RFCA]] || [[:en:Wiktionary:Requests for cleanup/archive]]
|-
| [[WT:RFD]] || [[:en:Wiktionary:Requests for deletion]]
|-
| [[WT:RFDA]] || [[:en:Wiktionary:Requests for deletion/Archives]]
|-
| [[WT:RFV]] || [[:en:Wiktionary:Requests for verification]]
|-
| [[WT:RFVA]] || [[:en:Wiktionary:Requests for verification/archive]]
|-
| [[WT:RT]] || [[:en:Category:Request templates]]
|-
| [[WT:TAT]] || [[:en:Help:Tips and tricks]]
|-
| [[WT:TADDER]] || [[:en:MediaWiki talk:Gadget-TranslationAdder.js]]
|-
| [[WT:TRREQ]] || [[Wiktionary:အာတ်မိက်ကၠာဲစၠောံဘာသာဂမၠိုင်]]
|-
| [[WT:TR]] || [[:en:Wiktionary:Tea room]]
|-
| [[WT:VIP]] || [[:en:Wiktionary:Vandalism in progress]]
|-
| [[WT:WARN]] || [[:en:Wiktionary:Warning]]
|-
| [[WT:WOD]] ([[WT:WOTD]]) || [[:en:Wiktionary:Word of the day]]
|-
| [[WT:SC]] || This page, Wiktionary:Shortcuts
|-
| [[WT:WS]] ([[WT:WSI]]) || List of Thesaurus pages
|}
----
__TOC__
==What is a Wiktionary shortcut?==
“Shortcuts” in Wiktionary, derived from their counterparts in Wikipedia, are a specialized type of [[Wiktionary:Redirections|redirection]] page that can be used to get to a commonly used Wiktionary reference page more quickly.
==How to use Wiktionary shortcuts==
A Wiktionary shortcut can be be entered into the Wiktionary search box to quickly bring you to a reference page. <br>
For example, you can type “WT:BP” into the search box and click the “Go” button to get to the [[Wiktionary:Beer parlour]] page, instead of having to type “Wiktionary:Beer parlour”.
Alternatively, you can use the shortcut in the URL (web address). For example, you are currently viewing the Wiktionary:Shortcut page in English. The URL is<br> <nowiki>http://en.wiktionary.org/wiki/Wiktionary:Shortcut</nowiki><br>
You could get from here to the [[Wiktionary:Beer parlour]] page by replacing “Wiktionary:Shortcut” with “WT:BP” in the URL (web address) field (followed by “Enter”).
Shortcuts are presented in all capital letters (“All-Caps”), but the search box is case-insensitive.
For example, in the search box, you can type “wt:bp” instead of “WT:BP”.
However, using the URL method typically requires that you match the capitalization of the shortcut.
==Adding shortcut link boxes in the destination pages==
You can add a “shortcut link box” in a shortcut destination page, in order to educate the users about the shortcuts available.
A shortcut link box (the “[[Template:shortcut|shortcut template]]”) is added to the entry source (“Editing” page) using {{temp|shortcut|WT:<var>xxx</var>}}.
; Examples
: {{temp|shortcut|[[WT:BP]]}}
: {{temp|shortcut|[[WT:WS]]}}
[[Category:ထိင်ဒက်မင်မွဲလဝ်ဝိက်ရှေန်နရဳဂမၠိုင်]]
c36zw5tcddds5648mwg6wvzh4wgjia8
မဝ်ဂျူ:sa-utilities
828
26096
398256
142003
2026-07-14T13:38:57Z
咽頭べさ
33
398256
Scribunto
text/plain
local export = {}
-- Common regex patterns:
export.consonant_list = "kKgGNcCjJYwWqQRtTdDnpPbBmyrlLvSzsh"
export.consonant = "[" .. export.consonant_list .. "]"
export.accent = "[/\\]"
export.vowel_list = "aAiIuUfFxXeEoO"
export.vowel = "[" .. export.vowel_list .. "]"
export.vowel_with_accent = export.vowel .. export.accent .. "?"
export.stop_list = "kKgGcCjJwWqQtTdDpPbB"
export.stop = "[" .. export.stop_list .. "]"
-- Abbreviated helper functions:
local match = string.match
local gsub = string.gsub -- All we need for SLP1! Much faster than mw.ustring.gsub
local sub = string.sub
local lower = string.lower
local upper = string.upper
--[=[Detects whether a specified text ends in a given pattern.
Parameters:
text (String): the text to be tested
pattern (String): the query pattern to be tested on the end of the text.
Return:
Boolean
]=]
local function ends_with(text, pattern)
return match(text, pattern .. "$")
end
--[=[Detects whether a specified text begins in a given pattern.
Parameters:
text (String): the text to be tested
pattern (String): the query pattern to be tested on the beginning of the text.
Return:
Boolean
]=]
local function starts_with(text, pattern)
return match(text, "^" .. pattern)
end
-- Common transformation types:
--[=[ Increase a vowel one grade (guṇation). It is possible that this should
include provisions for guṇation of sonorants into CV configurations
(e.g. i/ī -> ya -> yā, etc.). Perhaps will need to be updated.
]=]
export.up_one_grade = {
['a'] = 'A', ['A'] = 'A', ['a/'] = 'A/', ['A/'] = 'A/', ['a\\'] = 'A\\', ['A\\'] = 'A\\',
['i'] = 'e', ['I'] = 'e', ['i/'] = 'e/', ['I/'] = 'e/', ['i\\'] = 'e\\', ['I\\'] = 'e\\',
['u'] = 'o', ['U'] = 'o', ['u/'] = 'o/', ['U/'] = 'o/', ['u\\'] = 'o\\', ['U\\'] = 'o\\',
['e'] = 'E', ['E'] = 'E', ['e/'] = 'E/', ['E/'] = 'E/', ['e\\'] = 'E\\', ['E\\'] = 'E\\',
['o'] = 'O', ['O'] = 'O', ['o/'] = 'O/', ['O/'] = 'O/', ['o\\'] = 'O\\', ['O\\'] = 'O\\',
['f'] = 'ar', ['F'] = 'ar', ['f/'] = 'a/r', ['F/'] = 'a/r', ['f\\'] = 'a\\r', ['F\\'] = 'a\\r',
['x'] = 'al', ['x/'] = 'a/l', ['x\\'] = 'a\\l',
}
-- Lengthen a vowel
export.lengthen = {
['a'] = 'A', ['A'] = 'A', ['a/'] = 'A/', ['A/'] = 'A/', ['a\\'] = 'A\\', ['A\\'] = 'A\\',
['i'] = 'I', ['I'] = 'I', ['i/'] = 'I/', ['I/'] = 'I/', ['i\\'] = 'I\\', ['I\\'] = 'I\\',
['u'] = 'U', ['U'] = 'U', ['u/'] = 'U/', ['U/'] = 'U/', ['u\\'] = 'U\\', ['U\\'] = 'U\\',
['f'] = 'F', ['F'] = 'F', ['f/'] = 'F/', ['F/'] = 'F/', ['f\\'] = 'F\\', ['F\\'] = 'F\\',
}
-- Decrease vowel one grade (reverse of above)
export.shorten = {
['a'] = 'a', ['A'] = 'a', ['a/'] = 'a/', ['A/'] = 'a/', ['a\\'] = 'a\\', ['A\\'] = 'a\\',
['i'] = 'i', ['I'] = 'i', ['i/'] = 'i/', ['I/'] = 'i/', ['i\\'] = 'i\\', ['I\\'] = 'i\\',
['u'] = 'u', ['U'] = 'u', ['u/'] = 'u/', ['U/'] = 'u/', ['u\\'] = 'u\\', ['U\\'] = 'u\\',
['f'] = 'f', ['F'] = 'f', ['f/'] = 'f/', ['F/'] = 'f/', ['f\\'] = 'f\\', ['F\\'] = 'f\\',
}
-- Convert a monosegmental (or at least monoliteral) diphthong into a/ā + glide.
export.split_diphthong = {
['e'] = 'ay', ['e/'] = 'a/y', ['e\\'] = 'a\\y',
['E'] = 'Ay', ['E/'] = 'A/y', ['E\\'] = 'A\\y',
['o'] = 'av', ['o/'] = 'a/v', ['o\\'] = 'a\\v',
['O'] = 'Av', ['O/'] = 'A/v', ['O\\'] = 'A\\v',
}
-- reverse of above
local join_diphthong = {
['ay'] = 'e', ['a/y'] = 'e/', ['a\\y'] = 'e\\',
['Ay'] = 'E', ['A/y'] = 'E/', ['A\\y'] = 'E\\',
['av'] = 'o', ['a/v'] = 'o/', ['a\\v'] = 'o\\',
['Av'] = 'O', ['A/v'] = 'O/', ['A\\v'] = 'O\\',
}
-- Convert a syllabic sonorant to its associated consonantal form.
export.vowel_to_cons = {
['i'] = 'y', ['I'] = 'y',
['u'] = 'v', ['U'] = 'v',
['f'] = 'r', ['F'] = 'r',
['x'] = 'l', ['X'] = 'l',
}
local cons_to_vowel = { ['y'] = 'i', ['r'] = 'f', ['v'] = 'u', ['l'] = 'x' }
local to_velar = { ['c'] = 'k', ['j'] = 'g', ['h'] = 'G' }
-- Add a homorganic glide to a vowel
local insert_glide = {
['i'] = 'iy', ['I'] = 'iy', ['i/'] = 'i/y', ['I/'] = 'i/y', ['i\\'] = 'i\\y', ['I\\'] = 'i\\y',
['u'] = 'uv', ['U'] = 'uv', ['u/'] = 'u/v', ['U/'] = 'u/v', ['u\\'] = 'u\\v', ['U\\'] = 'u\\v',
}
--[=[Convert all unambiguous stops to their absolute final value. The equivalent
values (e.g. k = k) may be redundant given the implementation of
absolute_final and internal_sandhi below.
]=]
export.to_final = {
['k'] = 'k', ['K'] = 'k', ['g'] = 'k', ['G'] = 'k',
['c'] = 'k', ['C'] = 'w', ['J'] = 'w', -- value for 'J' is theoretical
['w'] = 'w', ['W'] = 'w', ['q'] = 'w', ['Q'] = 'w', ['L'] = 'w',
['t'] = 't', ['T'] = 't', ['d'] = 't', ['D'] = 't',
['p'] = 'p', ['P'] = 'p', ['b'] = 'p', ['B'] = 'p',
['Y'] = 'N', ['z'] = 'w',
}
-- Convert dental to retroflex
local function dental_to_retroflex(str)
local changes = {
['t'] = 'w', ['T'] = 'W', ['d'] = 'q', ['D'] = 'Q', ['n'] = 'R', ['s'] = 'z',
}
return gsub(str, '.', changes)
end
-- Remove aspiration
export.deaspirate = {
['K'] = 'k', ['G'] = 'g',
['C'] = 'c', ['J'] = 'j',
['W'] = 'w', ['Q'] = 'q',
['T'] = 't', ['D'] = 'd',
['P'] = 'p', ['B'] = 'b',
}
export.aspirate = {
['g'] = 'G', ['j'] = 'J', ['q'] = 'Q', ['d'] = 'D', ['b'] = 'B'
}
export.to_voiced = {
['k'] = 'g', ['c'] = 'j', ['w'] = 'q', ['t'] = 'd', ['p'] = 'b'
}
export.homorganic_nasal = {
['k'] = 'N', ['K'] = 'N', ['g'] = 'N', ['G'] = 'N',
['c'] = 'Y', ['C'] = 'Y', ['j'] = 'Y', ['J'] = 'Y',
['w'] = 'R', ['W'] = 'R', ['q'] = 'R', ['Q'] = 'R',
['t'] = 'n', ['T'] = 'n', ['d'] = 'n', ['D'] = 'n',
['p'] = 'm', ['P'] = 'm', ['b'] = 'm', ['B'] = 'm',
['r'] = 'M', ['l'] = 'M', -- or 'l~'
['S'] = 'M', ['z'] = 'M', ['s'] = 'M', ['h'] = 'M'
}
--[=[Detects whether a word is monosyllabic. This function does not apply sandhi
to determing whether a potential phonemic form like /dā́rv/ would be
syllabified to [dā́ru]. This might need to be changed.
Parameters:
text (String): the text to be checked for monosyllabicity
Return:
Boolean
]=]
function export.is_monosyllabic(text)
return match(text, "^" .. export.consonant .. "*" .. export.vowel_with_accent .. "[HM~]?" .. export.consonant .. "*$")
end
--[=[Transforms a word to its absolute final sandhi form.
Parameters:
text (String): the text to be converted to final sandhi position
ambig_final (String): an indication of what outcome j/ś/h should have as
these will unpredictably produce either a retroflex or a velar
stop in final position (e.g. spáś- > spáṭ 'spy' vs. náś- > nák 'night').
Required for j/ś/h-final strings.
Return:
String
]=]
local function absolute_final(text, ambig_final, j_to_z, h_to_g)
if ends_with(text, "kz") then -- final -kṣ > ṭ
text = gsub(text, "..$", "w")
elseif ends_with(text, "Ms") then
text = gsub(text, "..$", "n")
-- final r + stop is allowed in stem, see Whitney §150b (endings -s/-t after consonant have been eliminated previously)
elseif ends_with(text, export.vowel_with_accent .. "r[" .. export.stop_list .. "SzhL]") then
-- do nothing
elseif ends_with(text, export.consonant .. export.consonant) then -- at least 2 consonants
-- Take the first of the cluster.
text = gsub(text, "(" .. export.consonant .. "+)$",
function(cluster) return sub(cluster, 1, 1) end)
end
-- ḷh, v, and y are not handled as they should not appear finally. Perhaps wrong.
if ambig_final then -- in case of -j/ś/h, but also to override the normal value in a few exceptional cases
text = gsub(text, ".$", ambig_final)
elseif ends_with(text, "[kwtpNRnmlaAiIuUeEoOfFxXH][/\\]?") then
-- do nothing
elseif ends_with(text, "M") then -- just in case, ṃ > m
text = gsub(text, ".$", "m")
elseif ends_with(text, "[sr]") then -- convert to final visarga
text = gsub(text, ".$", "H")
elseif ends_with(text, "[KgGcCJWqQTdDPbBYzL]") then -- Handle final stops.
text = gsub(text, ".$", export.to_final)
elseif ends_with(text, "[jhS]") then -- see also ambig_final above
if j_to_z then
text = gsub(text, "j$", "w")
elseif h_to_g then
text = gsub(text, "h$", "k")
else
text = gsub(text, ".$", {['j'] = 'k', ['h'] = 'w', ['S'] = 'w'}) -- most common values
end
end
return text
end
--[=[Applying retroflexion to a stem and ending without joining them.
This include RUKI, ṣ-cluster harmony, and nasal retroflexions.
Parameters:
stem (String): the stem to receive an ending
ending (String): the ending to be affixed
Return:
String (stem), String (ending)
]=]
function export.retroflexion(stem, ending, no_retroflex_root_s, han, stem_final_n)
-- Does the stem end in a RUKI environment?
if ends_with(stem, "[iIeEfFxuUoOrk][/\\]?[HM]?") then
ending = gsub(ending, "^([HM]?)s([^rfF])", "%1z%2") -- Convert ending-initial s > ṣ not followed by [rṛṝ].
ending = gsub(ending, "^[HM]?z[tTdDns]*", dental_to_retroflex)
end
-- Does the stem end in a RUKI environment followed by s and the ending not start with [rṛṝ]?
if ends_with(stem, "[iIeEfFxuUoOrk][/\\]?[HM]?s") and starts_with(ending, "[^rfF]")
and not no_retroflex_root_s == true then
stem = gsub(stem, "s$", "z") -- Convert stem-final s > ṣ
end
if ends_with(stem, "[zqwR]") then -- Does the stem end in a retroflex?
-- Convert an ending-initial dental (cluster) to retroflex
ending = gsub(ending, "^[tTdDn]*", dental_to_retroflex)
end
-- Does the stem contain a nasal harmony trigger without intervening blockers?
if ends_with(stem, "[zrfF][^cCjJYwWqQRtTdDnSslL]*") and not (han and ends_with(stem, "G") and starts_with(ending, "n")) then
-- Convert all retroflexable n > ṇ in the ending
ending = gsub(ending, "^([^cCjJYwWqQRtTdDnSslL]*)n([aAiIeEfFxuUoOynmv])", "%1R%2")
end
-- Does the stem contain a nasal harmony trigger without intervening blockers and stem-final n?
-- (Compounds ending in -na (with nasal harmony trigger in first member) shouldn't have there 'n' retroflexed)
if stem_final_n and ends_with(stem, "[zrfF][^cCjJYwWqQRtTdDnSslL]*n") and starts_with(ending, "[aAiIuUxeEoOnmyv]") then
stem = gsub(stem, "n$", "R") -- Convert stem-final n > ṇ
end
-- For safety, does the ending contain an unblocked nasal harmony trigger and unretroflexed n?
ending = gsub(ending,
"([zrfF][^cCjJYwWqQRtTdDnSslL]*)n([aAiIuUxeEoOnmyv])", "%1R%2")
return stem, ending
end
--[=[Combine a stem and ending while modifiying the accentuation. This does not currently
account for mobility of accent between the stem and ending.
Parameters:
stem (String): the stem to receive an ending
ending (String): the ending to be affixed
has_accent (Boolean): whether the word has an accent to be modified at all
accent_override (Boolean): whether to strip the stem of accent
mono (Boolean): whether the stem is monosyllabic AND susceptible to
accentual mobility (cf. pā́dam ~ padā́ vs. gā́m ~ gávā). This should
perhaps be renamed or removed as redundant to accent_override in this
function. This should not be applied to *all* monosyllabic nouns!
recessive (Boolean): whether the accent must be moved to the leftmost vowel (in the vocative)
voc_svar (Boolean): to indicate that the first syllable should get svarita in the vocative
Return:
String
]=]
local function combine_accent(stem, ending, has_accent, accent_override, mono, recessive, voc_svar)
if has_accent then
if starts_with(stem, "-") and recessive then -- suffix in vocative case
stem = gsub(stem, export.accent, "")
ending = gsub(ending, export.accent, "")
-- vocative; no change if first syllable has svarita
elseif recessive and not starts_with(stem, export.consonant .. "*" .. export.vowel .. "\\") then
local combined = stem .. ending -- combine word
combined = gsub(combined, export.accent, "") -- remove any accent
if voc_svar and match(combined, "^" .. export.consonant .. "+[vy]" .. export.vowel) then
combined = gsub(combined, "^(" .. export.consonant .. "+" .. export.vowel .. ")", "%1\\") -- svarita on first vowel
else
combined = gsub(combined, "^(" .. export.consonant .. "*" .. export.vowel .. ")", "%1/") -- udatta on first vowel
end
return combined
elseif accent_override or (mono and match(ending, export.accent)) then
stem = gsub(stem, export.accent, "") -- remove all accents from stem
ending = gsub(ending, "\\", "/") -- convert svarita to udatta on ending
-- If both the last syllabe of the stem and ending are accented, remove the ending accent. This may be too simple.
elseif ends_with(stem, export.accent .. export.consonant .. "*") and match(ending, export.accent) then
ending = gsub(ending, export.accent, "")
end
end
return stem .. ending
end
local function aspirate_diaspirate(stem)
stem = gsub(stem, "(.*)([gdb])([^gdb]+[gdb]?)$", function(pre, cons, post) return (pre .. export.aspirate[cons]) .. post end)
return stem
end
--[=[Return a word-stem combined with a given ending while handling internal
sandhi and accentuation. Please see the implementation for details.
Parameters:
input_table (Table): This table is expected to contain the items:
stem (String): the stem to receive an ending
ending (String): the ending to be affixed
has_accent (Boolean): whether the word has an accent to be modified
mono (Boolean): whether the stem is monosyllabic OR behaves like a monosyllable (e.g. root noun compounds)
accent_override (Boolean): whether to strip the stem of accent since
some non-monosyllabic forms (e.g. present participles and gen.pl.)
may show stem-to-ending accentual mobility.
recessive (Boolean): whether the accent must be moved to the leftmost vowel (e.g. in the vocative)
j_to_z (Boolean): whether to convert j > ṣ before {t, th} instead of j > k
h_to_g (Boolean): whether to convert h > g before {t, th, d, dh} (duh + -tá = dugdhá) instead of h + t > ḍh (lih + -tá = līḍhá)
retroflex_l (Boolean): produces ḷ(h) instead of ḍ(h) intervocalically (Vedic variant)
non_final (Boolean): if true, will not apply word-final sandhi (i.e. convert s to visarga)
Return:
String
]=]
function export.internal_sandhi(input_table)
local stem, ending = input_table.stem, input_table.ending
local last -- last segment of the stem
local acc -- the accent
local first -- the first segment of the ending
local combined -- the combined form
-- explicitly ignored are CV, C + semivowel, or C + nasal
if starts_with(ending, export.consonant) then
-- {i, u} > {ī, ū} /__[rs]C if stem is monosyllabic (e.g. gir, pur + ā-śis)
if ends_with(stem, "[iu][/\\]?[rs]") and input_table.root and not ends_with(stem, "catu/?r") then
stem = gsub(stem, "([iu][/\\]?)([rs])$", function(vow, cons) return export.lengthen[vow] .. cons end)
-- consonant + y/r/v + consonant from ending
-- note that sequences like 'trv' can occur, e.g. śatrvos, gen.dual of śatru, so the case ending should be given as 'os' there, not 'vos'
elseif ends_with(stem, export.consonant .. "[yrv]") then -- e.g. śvan > śunā / cakruḥ > cakṛma
stem = gsub(stem, ".$", cons_to_vowel)
-- no word-initial clusters with y-, for verb 'eti, yanti'
elseif stem == "y" then stem = "i"
-- e.g. yuvan > yūnā / iyaja > īje (Whitney §800j) / babhūva > babhūtha (§800d)
elseif (ends_with(stem, "[uU][/\\]?v") or ends_with(stem, "[iI][/\\]?y") ) and starts_with(ending, "[^yrl]") then
if ends_with(stem, export.consonant..export.consonant.."[iu][/\\]?[yv]") then
-- do nothing
else
stem = gsub(stem, "([iIuU][/\\]?)[yv]$", function(vow) return export.lengthen[vow] end)
end
elseif ends_with(stem, "a[/\\]?[vy]") and starts_with(ending, "[^yrl]") then
stem = gsub(stem, "(a[/\\]?[vy])$", function(diph) return join_diphthong[diph] end)
-- historical vocalisation of PIE nasal vowels; omitting endings starting with 'y' (optative) as 'gmy' actually occurs
elseif ends_with(stem, export.consonant .. "[nmY]") then
if starts_with(ending, "[mv]") then
stem = gsub(stem, ".$", "an")
elseif starts_with(ending, "[tTDBs]") then
stem = gsub(stem, ".$", "a")
end
end
end
-- remove -s/-t verbal endings after consonant (Whitney §555)
-- plus -s after nominal consonant stem (used to provoke a long vowel in -ir/-ur stems)
if ends_with(stem, "[" .. export.consonant_list .. "M]") and match(ending, "^[st]$") then
ending = gsub(ending, ".", "")
end
if ending == "" then
if ends_with(stem, "[mM]") then -- final 'm' of a root becomes 'n'
stem = gsub(stem, ".$", "n")
elseif input_table.diaspirate then -- budh > bhut, etc.
stem = aspirate_diaspirate(stem)
end
-- combine_accent for vocatives without ending
combined = combine_accent(stem, ending, input_table.has_accent, input_table.accent_override,
input_table.mono, input_table.recessive, input_table.voc_svar)
return absolute_final(combined, input_table.ambig_final, input_table.j_to_z, input_table.h_to_g)
-- all cases of ending starts with vowel
elseif starts_with(ending, export.vowel) then
if ends_with(stem, export.vowel_with_accent) then -- stem ends with vowel
-- strip last vowel and accent off stem
stem, last, acc = match(stem, "^(.*)(" .. export.vowel .. ")(" .. export.accent .. "?)$")
-- strip first vowel off ending
first, ending = match(ending, "^(.)(.*)$")
-- monosyllabic semivowel-final stems (this applies to root noun compounds as well)
if match(last, '[iIuU]') and ( input_table.mono or input_table.no_syncope ) then
stem = stem .. insert_glide[last .. acc]
ending = first .. ending
elseif export.split_diphthong[last] then -- Can a stem-final guna and vrddhi be split into V + sonorant?
stem = stem .. export.split_diphthong[last .. acc]
ending = first .. ending
elseif lower(last) == lower(first) then -- homorganic vowels
ending = upper(first) .. acc .. ending
elseif lower(last) == "a" then -- gunation and vrddhization after stem-final a.
ending = export.up_one_grade[first .. acc] .. ending
elseif export.vowel_to_cons[last] then -- Can the stem-final vowel be made consonantal?
stem = gsub(stem, "L$", "q"); stem = gsub(stem, "Lh$", "Q") -- convert ḷ(h) to ḍ(h)
stem = stem .. export.vowel_to_cons[last]
ending = first .. (acc == "/" and "\\" or "") .. ending -- Convert stem-final udatta to ending-initial svarita
if match(stem, "^" .. export.consonant .. "*yv$") then -- dyu- > divā
stem = gsub(stem, "..$", "iv")
end
end
end
-- endings starting with consonants
-- for middle s-aorist 2nd plural
elseif ends_with(stem, export.vowel_with_accent .. 'M?') and starts_with(ending, "sD") then
if ends_with(stem, "[iIeEfFxuUoO][/\\]?") then
ending = gsub(ending, '^..', 'Q')
else
ending = gsub(ending, '^..', 'D')
stem = gsub(stem, 'M$', 'n')
end
-- n > ñ /__{c, j}
elseif ends_with(stem, "[cj]") and starts_with(ending, "n") then
ending = gsub(ending, "^.", "Y")
elseif input_table.han and starts_with(ending, "n") then
stem = gsub(stem, 'h$', 'G')
-- All other C- + -C interactions
elseif ends_with(stem, export.consonant) and starts_with(ending, export.consonant) then
stem = gsub(stem, "L$", "q"); stem = gsub(stem, "Lh$", "Q") -- convert ḷ(h) to ḍ(h)
-- for nominal endings -bhyām, -bhis, -bhyas, -su (see Whitney §111a)
if starts_with(ending, "B[iy]") or starts_with(ending, "su" .. export.accent .. "?$") then
if ends_with(stem, "kz") then -- final -kṣ > ṭ
stem = gsub(stem, "..$", "w")
-- final r + stop is allowed in stem, see Whitney §150b
elseif ends_with(stem, export.vowel_with_accent .. "r[" .. export.stop_list .. "SzhL]") then
-- do nothing
elseif ends_with(stem, export.consonant .. export.consonant) then -- at least 2 consonants
-- take the first of the cluster
stem = gsub(stem, "(" .. export.consonant .. "+)$",
function(cluster) return sub(cluster, 1, 1) end)
end
if ends_with(stem, "[jSh]") or input_table.ambig_final then
stem = gsub(stem, ".$", input_table.ambig_final) -- in case of -j/ś/h, but also to override the normal value in a few exceptional cases
elseif ends_with(stem, "[KgGcCJWqQTdDPbBz]") then
stem = gsub(stem, ".$", export.to_final)
elseif ends_with(stem, "m") then
stem = gsub(stem, ".$", "n")
-- Loss of {z, ẓ} with compensatory lengthening before voiced consonant. (FIXME: but what about the médha- < *mázdha- type?)
elseif ends_with(stem, "[aA][/\\]?s") and starts_with(ending, "[rgGdDbByvjJqQlLhnm]") then
stem = gsub(stem, "([aA])([/\\]?)s$",
function(vow, acc) return (vow == "a" and "o" or "A") .. acc end)
-- final s-allophones
elseif ends_with(stem, "s") then
if starts_with(ending, "[kKpPzsS]") then -- visarga
stem = gsub(stem, ".$", "H")
elseif starts_with(ending, "[gGjJqQdDbByvlLhnm]") then -- s > r
stem = gsub(stem, ".$", "r")
-- outcommented because not relevant to internal sandhi
-- elseif starts_with(ending, "[cCwW]") then -- homorganic fricative
-- local homorg_s = {
-- ['c'] = 'S', ['C'] = 'S',
-- ['w'] = 'z', ['W'] = 'z',
-- }
-- stem = gsub(stem, ".$", homorg_s[sub(ending, 1, 1)])
-- elseif starts_with(ending, "r") then -- Loss of z before r with compensatory lengthening before voiced consonant.
-- stem = gsub(stem, "(" .. export.vowel .. "[/\\])[sHr]$", function(vow) return export.lengthen[vow] or vow end)
end
end
-- if ends_with(stem, "w") and starts_with(ending, "n") then -- for 'ṣaṇṇām'
-- stem = gsub(stem, "w$", "R")
-- end
else -- for all other endings
-- s-aorist (Whitney §881)
if (ends_with(stem, "[^rnm]") and starts_with(ending, "s[tT]")) or starts_with(ending, "sD") then
ending = gsub(ending, '^s', '')
end
-- diaspirate verbs with -dhve/-dhvam ending, see paper "Sanskrit as she has been misanalyzed ..." (Janda & Joseph, 2002), p.28-29
if input_table.diaspirate and starts_with(ending, "Dv") then
stem = aspirate_diaspirate(stem)
elseif (ends_with(stem, "jj") or ends_with(stem, "Sc")) and starts_with(ending, "[tTdDs]") then
stem = gsub(stem, ".$", "") -- further treated below
end
if ends_with(stem, "kz") then -- roots on -kṣ
if starts_with(ending, "s") then
stem = gsub(stem, "..$", 'k')
elseif starts_with(ending, "[tT]") then
stem = gsub(stem, "Nkz$", 'Mz')
stem = gsub(stem, "kz$", 'z')
elseif starts_with(ending, "[dD]") then
stem = gsub(stem, "Nkz$", 'Rq')
stem = gsub(stem, "kz$", 'q')
end
elseif ends_with(stem, "[cJ]") and starts_with(ending, "[tTdDs]") then
stem = gsub(stem, "Y.$", 'Nk')
stem = gsub(stem, "[cJ]$", 'k')
elseif ends_with(stem, "[jCSzh]") and starts_with(ending, "s") then
stem = gsub(stem, "[YM].$", 'Nk')
stem = gsub(stem, "[jCSzh]$", 'k')
elseif ends_with(stem, "[jCSz]") and starts_with(ending, "[tTdD]") then
if input_table.j_to_z or input_table.ambig_final == "w" or ends_with(stem, "[CSz]") then
if starts_with(ending, "[tT]") then
stem = gsub(stem, 'Y[jC]$', 'Mz')
stem = gsub(stem, "[jCS]$", 'z')
else
stem = gsub(stem, '[YM].$', 'Rq')
stem = gsub(stem, '[jCSz]$', 'q')
end
else
stem = gsub(stem, "Yj$", 'Nk')
stem = gsub(stem, "j$", 'k')
end
elseif ends_with(stem, "h") and starts_with(ending, "[tTdD]") then
if input_table.h_to_g then
stem = gsub(stem, "h$", "g")
ending = gsub(ending, "^.", "D")
else
if ends_with(stem, "va/?h") then -- root 'vah' (sometimes also 'sah', see Whitney §224b)
stem = gsub(stem, "a(/?)h$", "o%1")
else -- {a, i, u}h + {t, th, d, dh} > {ā, ī, ū}ḍh (Bartholomae's Law with retroflection and compensatory lengthening)
stem = gsub(stem, "([aiu]?)([/\\]?)h$", function(vow, acc) return (export.lengthen[vow] or "") .. acc end)
stem = gsub(stem, 'M$', 'R')
end
if input_table.retroflex_l and starts_with(ending, "." .. export.vowel) then
ending = gsub(ending, "^.", "Lh")
else
ending = gsub(ending, "^.", "Q")
end
end
-- -vāṃs, see Whitney §216 j
elseif input_table.deriv and ((ends_with(stem, "[cj]") and not input_table.j_to_z)
or (ends_with(stem, "h") and input_table.h_to_g)) then
stem = gsub(stem, ".$", to_velar)
stem = gsub(stem, "[YM](.)$", "N%1")
-- e.g. śādhi (Whitney §166)
elseif ends_with(stem, "As") and match(ending, "^Di/?$") then
stem = gsub(stem, "s$", "")
-- following Whitney's convention at §612 of interpreting 'dhv' from 's + dhv' as 'ddhv' (see also §166 and §232)
-- sometimes also in nouns + -bhis, etc. (normally handled by input_table.final above)
elseif ends_with(stem, ".s") and starts_with(ending, "[DB]") then
stem = gsub(stem, "Ms$", "nd")
stem = gsub(stem, "s$", "d")
-- for the (basically theoretical) middle voice of 'asti'
elseif stem == "s" and starts_with(ending, "[sD]") then stem = ""
elseif ends_with(stem, "m") then -- if stem ends in m
-- m > ṃ before {h, ś, ṣ, s} and homorganic before stops (Whitney §212)
if starts_with(ending, "[kKgGcCjJwWqQtTdDSzsh]") then
stem = gsub(stem, "m$", export.homorganic_nasal[sub(ending, 1, 1)])
elseif starts_with(ending, "[mv]") then
stem = gsub(stem, "m$", "n")
end
elseif ends_with(stem, "n") then -- if stem ends in n
if starts_with(ending, "[Szs]") then -- n > ṃ /__{ś, ṣ, s}
stem = gsub(stem, ".$", "M")
end
elseif ends_with(stem, "[KGWQTDPB]") and starts_with(ending, "[^NYRnmyrlv]") then -- Whitney §153
-- Bartholomae's Law
if ends_with(stem, "[GQDB]") and starts_with(ending, "[tT]") then
ending = gsub(ending, "^.", "D")
end
stem = gsub(stem, ".$", export.deaspirate)
end
-- {g, ḍ, d, b} > {k, ṭ, t, p} before following unvoiced stop/sibilant
if ends_with(stem, "[gqbd]") and starts_with(ending, "[kKcCwWtTpPSzs]") then
stem = gsub(stem, ".$", export.to_final)
end
end
-- general rules for both 'final' (pāda) endings and others (outcommented lines are only relevant for external sandhi)
if ends_with(stem, "[kwp]") then
if starts_with(ending, "[gGjJqQdDbB]") then -- {k, ṭ, p} > {g, ḍ, b} before following voiced stop
stem = gsub(stem, ".$", export.to_voiced)
-- elseif starts_with(ending, "h") then -- {k, ṭ, p}h > {ggh, ḍḍh, bbh}
-- stem = gsub(stem, ".$", export.to_voiced)
-- ending = gsub(ending, "^.", gsub(stem, ".$", {['k'] = 'G', ['w'] = 'Q', ['p'] = 'B'}))
end
elseif ends_with(stem, "t") then
if starts_with(ending, "[gGdDbB]") then -- t > d /__{g(h), d(h), b(h)}
stem = gsub(stem, ".$", "d")
-- elseif starts_with(ending, "h") then -- t + h > ddh
-- stem = gsub(stem, ".$", "d")
-- ending = gsub(ending, "^.", "D")
-- elseif starts_with(ending, "[cCjJwWqQ]") then -- homorganic with following stop
-- local t_pre_palatal_retroflex =
-- { ['c'] = 'c', ['C'] = 'c', ['j'] = 'j', ['J'] = 'j',
-- ['w'] = 'w', ['W'] = 'w', ['q'] = 'q', ['Q'] = 'q', }
-- stem = gsub(stem, ".$", t_pre_palatal_retroflex[sub(ending, 1, 1)])
-- elseif starts_with(ending, "S") then -- tś > cch
-- stem = gsub(stem, ".$", "c")
-- ending = gsub(ending, "^.", "C")
-- elseif starts_with(ending, "l") then
-- stem = gsub(stem, ".$", "l")
end
end
-- note that nominal endings with -bh also trigger aspiration throwback
if input_table.diaspirate and ends_with(stem, "[^GDBh]") and starts_with(ending, "[^QD]") then
stem = aspirate_diaspirate(stem)
end
end
stem, ending = export.retroflexion(stem, ending, input_table.no_retroflex_root_s, input_table.han, input_table.stem_final_n)
combined = combine_accent(stem, ending, input_table.has_accent, input_table.accent_override,
input_table.mono, input_table.recessive, input_table.voc_svar)
if input_table.non_final then return combined end
return absolute_final(combined)
end
return export
1w41juxtswp318i51glln6mgkgkbclx
မဝ်ဂျူ:sa-utilities/translit/SLP1-to-Deva
828
214025
398252
294304
2026-07-14T13:31:42Z
咽頭べさ
33
398252
Scribunto
text/plain
local export = {}
local consonant_list = "kKgGNcCjJYwWqQRtTdDnpPbBmyrlLvSzsh"
local consonant = "[" .. consonant_list .. "]"
local vowel_list = "aAiIuUfFxXeEoO"
local vowel = "[" .. vowel_list .. "]"
local U = require("Module:string/char")
local gsub = mw.ustring.gsub
local gmatch = mw.ustring.gmatch
local virAma = U(0x94D)
local svar = U(0x951)
local anud = U(0x952)
local diacritics = {
['a'] = '', ['A'] = 'ा',
['i'] = 'ि', ['I'] = 'ी',
['u'] = 'ु', ['U'] = 'ू',
['f'] = 'ृ', ['F'] = 'ॄ',
['x'] = 'ॢ', ['X'] = 'ॣ',
['e'] = 'े', ['E'] = 'ै',
['o'] = 'ो', ['O'] = 'ौ',
}
local tt = {
-- consonants
['k'] = 'क', ['K'] = 'ख', ['g'] = 'ग', ['G'] = 'घ', ['N'] = 'ङ',
['c'] = 'च', ['C'] = 'छ', ['j'] = 'ज', ['J'] = 'झ', ['Y'] = 'ञ',
['w'] = 'ट', ['W'] = 'ठ', ['q'] = 'ड', ['Q'] = 'ढ', ['R'] = 'ण',
['t'] = 'त', ['T'] = 'थ', ['d'] = 'द', ['D'] = 'ध', ['n'] = 'न',
['p'] = 'प', ['P'] = 'फ', ['b'] = 'ब', ['B'] = 'भ', ['m'] = 'म',
['y'] = 'य', ['r'] = 'र', ['l'] = 'ल', ['v'] = 'व', ['L'] = 'ळ',
['S'] = 'श', ['z'] = 'ष', ['s'] = 'स', ['h'] = 'ह',
-- vowels
['a'] = "अ", ['A'] = "आ",
['i'] = "इ", ['I'] = "ई",
['u'] = "उ", ['U'] = "ऊ",
['f'] = "ऋ", ['F'] = "ॠ",
['x'] = "ऌ", ['X'] = "ॡ",
['e'] = "ए", ['E'] = "ऐ",
['o'] = "ओ", ['O'] = "औ",
-- chandrabindu
['~'] = 'ँ',
-- anusvara
['M'] = 'ं',
-- visarga
['H'] = 'ः',
-- avagraha
["'"] = 'ऽ',
--numerals
['0'] = '०', ['1'] = '१', ['2'] = '२', ['3'] = '३', ['4'] = '४', ['5'] = '५', ['6'] = '६', ['7'] = '७', ['8'] = '८', ['9'] = '९',
--Vedic extensions
['Z'] = 'ᳵ',
['V'] = 'ᳶ',
-- ['/'] = '',
-- ['\\'] = '',
}
function export.tr(text, lang, sc)
-- Introduce underscore as extra 'accent' for syllables where dependent svarita becomes anudatta (viz. between two udatta's).
text = gsub(text, "(/[" .. consonant_list .. " 'HM~]*".. vowel ..")([" .. consonant_list .. " 'HM~]*".. vowel .."/)", "%1_%2")
text = gsub(text, "(/[" .. consonant_list .. " 'HM~]*".. vowel ..")([" .. consonant_list .. " 'HM~]*".. vowel .."/)", "%1_%2") -- twice
-- capture twice so that all adjacent pairs are covered
text = gsub(text, "(" .. consonant .. ")(" .. consonant .. ")", "%1" .. virAma .. "%2")
text = gsub(text, "(" .. consonant .. ")(" .. consonant .. ")", "%1" .. virAma .. "%2")
-- whitespace and end of string
text = gsub(text, "(" .. consonant .. ")%f[%s%z-]", "%1" .. virAma)
-- all vowel diacritics
text = gsub(text, "(" .. consonant .. ")(" .. vowel .. ")", function(c, v) return c .. diacritics[v] end)
-- everything else
text = gsub(text, '.', tt)
-- Vedic accent
do
-- Build sets of Devanagari consonants/vowels (post-transliteration).
local dev_consonant = {}
for c in gmatch(consonant_list, ".") do
dev_consonant[tt[c]] = true
end
local dev_vowel = {}
for v in gmatch(vowel_list, ".") do
dev_vowel[tt[v]] = true
end
local vowel_sign = {}
for _, sign in pairs(diacritics) do
if sign ~= "" then
vowel_sign[sign] = true
end
end
-- Common Devanagari marks that can trail a syllable.
local mark = {
["ँ"] = true, ["ं"] = true, ["ः"] = true,
["ᳵ"] = true, ["ᳶ"] = true,
}
-- Turn text into a codepoint array for easy indexing.
local chars = {}
for ch in gmatch(text, ".") do
chars[#chars + 1] = ch
end
local n = #chars
-- Collect syllable spans and explicit accent markers.
local starts, ends, afters, accents = {}, {}, {}, {}
local i = 1
while i <= n do
local ch = chars[i]
if dev_consonant[ch] or dev_vowel[ch] then
local start = i
local j = i
if dev_consonant[ch] then
j = j + 1
-- (virama + consonant)* for conjuncts
while j <= n - 1 and chars[j] == virAma and dev_consonant[chars[j + 1]] do
j = j + 2
end
-- optional final virama (dead consonant)
if j <= n and chars[j] == virAma then
j = j + 1
end
-- optional vowel sign
if j <= n and vowel_sign[chars[j]] then
j = j + 1
end
else
-- independent vowel
j = j + 1
end
-- trailing marks (anusvara, candrabindu, visarga, etc.)
while j <= n and mark[chars[j]] do
j = j + 1
end
-- optional explicit accent marker at the very end of the syllable
local accent = "none"
local after = j - 1
local accent_name = { ['/'] = 'acute', ['\\'] = 'grave', ['_'] = 'underscore' }
if j <= n and (chars[j] == "/" or chars[j] == "\\" or chars[j] == "_") then
accent = accent_name[chars[j]]
after = j -- include the marker in "after"
j = j + 1
end
local end_idx = (accent == "none") and after or (after - 1) -- exclude marker from end
starts[#starts + 1] = start
ends[#ends + 1] = end_idx
afters[#afters + 1] = after
accents[#accents + 1] = accent
i = after + 1
else
i = i + 1
end
end
-- Propagate accents:
-- * Explicit acute "/" marks udatta (no glyph inserted), makes previous syllables anudatta,
-- and the following syllable (if unmarked) becomes svarita.
-- * Explicit grave "\" becomes svarita, and previous syllables become anudatta.
local last_accent = 0
local prev_acute = false
for si, accent in ipairs(accents) do
if accent == "acute" then
for j = last_accent + 1, si - 1 do
accents[j] = "anudatta"
end
last_accent = si
prev_acute = true
elseif accent == "grave" then
for j = last_accent + 1, si - 1 do
accents[j] = "anudatta"
end
last_accent = si
accents[si] = "svarita"
prev_acute = false
elseif accent == "underscore" then
last_accent = si
accents[si] = "anudatta"
prev_acute = false
elseif prev_acute then
accents[si] = "svarita"
prev_acute = false
last_accent = si
end
end
-- Rebuild text:
-- - drop the explicit "/" "\" "_" markers
-- - insert anud/svar after syllable end as needed
local out = {}
local offset = 1
for si, start in ipairs(starts) do
local end_idx = ends[si]
local after = afters[si]
-- copy any non-syllable chars before this syllable
if offset <= start - 1 then
for k = offset, start - 1 do
out[#out + 1] = chars[k]
end
end
-- copy syllable body (excluding explicit marker)
for k = start, end_idx do
out[#out + 1] = chars[k]
end
-- insert accent glyphs
local a = accents[si]
if a == "anudatta" then
out[#out + 1] = anud
elseif a == "svarita" then
out[#out + 1] = svar
end
-- jump past syllable (+ explicit marker if it existed)
offset = after + 1
end
-- copy any trailing chars after the last syllable
for k = offset, n do
out[#out + 1] = chars[k]
end
text = table.concat(out)
end
-- fix case where accent mark is placed before diacritic
text = gsub(text, "([".. anud .. svar .. "])([ंँः]+)", "%2%1")
-- a virAma followed by accent mark should not have the accent mark at all
text = gsub(text, virAma .. "[".. anud .. svar .. "]", virAma)
-- fix for a case like 'dyā́vāpṛthivī́', which should only get one anudatta
local non_accent = "[^" .. anud .. svar .. "]"
text = gsub(text, "(" .. svar .. non_accent .. "+)" .. anud .. "(" .. non_accent .. "+" .. anud .. ")", '%1%2')
text = gsub(text, "(" .. svar .. non_accent .. "+)" .. anud .. "(" .. non_accent .. "+" .. anud .. ")", '%1%2') -- twice
return mw.ustring.toNFC(text)
end
return export
6s35y0esi24ngo8lj6qrbokr5nfhh71
မဝ်ဂျူ:documentation/functions/affix lang-data
828
214217
398287
294496
2026-07-14T16:18:31Z
咽頭べさ
33
398287
Scribunto
text/plain
return function (title, cats, lang_code)
local lang = require("Module:languages").getByCode(lang_code)
if not lang then
return "မဝ်ဂျူတဏအ်ဝွံမစွံအပ္ဍဲကုဒ်အရေဝ်ဘာသာဟွံခံၚ်နကဵုအပ္ဍဲဆေၚ်စပ်ကဵုက္ဍိုပ်လိက်: <code>" .. lang_code .. "</code>."
end
cats:insert("မဝ်ဂျူစရၚ်ဘာသာ" .. lang:getCanonicalName() .. "ဂမၠိုၚ်|အဆက်ဂတ")
return "မဝ်ဂျူတဏအ်ဝွံလုပ်အဝေါၚ်ဒေတာသွက်အဆက်ဂတပ္ဍဲ "
.. lang:makeCategoryLink()
.. " that is used by <code>{{[[Template:affix|af]]|"
.. lang_code
.. "|...}}</code>. <code>affix_mappings</code> determines which page to link to when certain affixes are used."
.. " It maps from the affix supplied to the template to the desired entry to link to,"
.. " or to a table that maps from sense IDs (the value of <code>|id<var>N</var>=</code> or <code>false</code> if there is no sense ID) to desired entries."
end
c7dch3ml00bosmqem2zor9uakgo51w6
မဝ်ဂျူ:documentation/functions/guoxue-data
828
214218
398273
294497
2026-07-14T15:17:16Z
咽頭べさ
33
398273
Scribunto
text/plain
return function (cats, title)
local suffix = title.fullText:match("^Module:mul/guoxue%-data/cjk%-?(.*)$")
local block
if suffix == "" then
block = " လိက်ဗီုကောန်ရုပ်CJKဂမၠိုၚ်"
elseif suffix:find("^%l$") then
block = "ကဏ္ဍ:ယူနဳကုဒ် သၠဲပတိတ် CJK မတုပ်သၟဟ်မွဲဗီုဇၟံ(" .. suffix:upper() .. ")"
elseif suffix == "compat" then
block = " စှ်ေဗီုပြၚ်CJKအာဲဒဳအဝ်ဂရာန်ဂမၠိုၚ်"
elseif suffix == "compat-sup" then
block = " CJK မစှ်ေကဵုဗီုပြၚ်ပရေၚ်ပိုန်ဂြပ်အရာဗပေၚ်စုတ်လဝ်ဗွဲလက္ကရဴဂမၠိုၚ်"
else
mw.log("Unicode block for " .. title.fullText " not found.")
return
end
local block_link = ("[[Appendix:Unicode/%s|%s]]"):format(block, block)
local start, ending = require("Module:Unicode data").get_block_range(block)
if not start then
mw.log("Code point range for the Unicode block " .. tostring(block) .. " not found.")
return
end
local sortkey = "|guoxue, " .. suffix
cats:insert("မဝ်ဂျူဒေတာဂမၠိုၚ်" .. sortkey)
cats:insert("မဝ်ဂျူအက္ခရ်ဟာန်ဂမၠိုၚ်" .. sortkey)
cats:insert("မဝ်ဂျူမအရေဝ်ပံၚ်ကောံဂမၠိုၚ်" .. sortkey)
return ("မဝ်ဂျူတဏအ်ဝွံမလုပ်အဝေါၚ်ဒေတာဗျဉ်(CJK)အပ္ဍဲ "
.. "ဆေၚ်စပ်တၚ်သၞောဝ်ယူနဳကုဒ် %s (U+%04X–U+%04X) နူကဵု [https://guoxuedashi.com guoxuedashi.com]။")
:format(block_link, start, ending)
end
78oohuggsn7v71pmmp4o60hrt229965
မဝ်ဂျူ:transliteration policy
828
214712
398266
294991
2026-07-14T14:25:46Z
咽頭べさ
33
398266
Scribunto
text/plain
local require_when_needed = require("Module:require when needed")
local format_categories = require_when_needed("Module:utilities", "format_categories")
local format_shortcuts = require_when_needed("Module:shortcut box", "format_shortcuts")
local insert = table.insert
local new_title = mw.title.new
local process_params = require_when_needed("Module:parameters", "process")
local export = {}
function export.show(frame)
local args = process_params(frame:getParent().args, {
[1] = {required = true, type = "language", list = true, default = "und"},
})[1]
local shortcuts, language_links, categories = {}, {}, {}
for _, lang in ipairs(args) do
insert(shortcuts, new_title("WT:" .. lang:getFullCode():upper() .. " TR"))
insert(language_links, lang:makeCategoryLink())
insert(categories, lang:getCategoryName())
end
return format_shortcuts(shortcuts) ..
"ဣအရာတဏအ်ဝွံဆေၚ်စပ်ကဵုသၞောဝ်ပွမဆက်စပ်ပရေေၚ်ကၠာဲပ္တိတ်အက္ခရ်ပ္ဍဲဂၠံၚ်လုပ်ဘာသာ" .. mw.text.listToText(language_links) .. "ဂမၠိုၚ်။" ..
(#categories > 0 and mw.title.getCurrentTitle().namespace == 4 and
(format_categories(categories, nil, "ကၠာဲပ္တိတ်အက္ခရ်", nil, true) .. "[[ကဏ္ဍ:မူဝါဒပရေၚ်ကၠာဲပ္တိတ်အက္ခရ်ဂမၠိုၚ်]]") or
"")
end
return export
no8x5z2tw5z57uioqbdm47xpydpbjpj
खर्व
0
296681
398214
398196
2026-07-14T12:51:51Z
咽頭べさ
33
/* သံသကြိုတ် */
398214
wikitext
text/x-wiki
=={{=hi=}}==
===နိရုတ်===
{{bor+|hi|sa|खर्व}}. {{doublet|hi|खब्बा}}
===ဗွဟ်ရမ္သာၚ်===
* {{hi-IPA}}
===နာမဝိသေသန===
{{hi-adj}}
# အၚ်္ဂအဝဲဆောတ်ယောၚ်လဝ်၊ အၚ်္ဂအဝဲမထပိုတ်ကၠေံထောံလဝ်။
==သံသကြိုတ်==
{{was wotd|၂၀၂၆|ဂျူလာင်|၁၄}}
===ပွံၚ်အက္ခရ်နဲတၞဟ်===
{{sa-alt}}
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{inh|sa|iir-pro||*k⁽ʰ⁾arúš ~ *k⁽ʰ⁾arwás}}
===ဗွဟ်ရမ္သာၚ်===
{{sa-IPA|a=2}}
* {{audio|sa|LL-Q11059 (san)-咽頭べさ-{{PAGENAME}}.wav|a=Mon}}
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# အၚ်္ဂအဝဲမထပိုတ်ကၠေံထောံလဝ်၊ မလၟေန်ဝေန်ထောံ၊ ဒြိုဟ်လဝ်၊ ဟွံဍိုက်ပေၚ်။
# သဝ်၊ က ကွ။
=====လဟုတ်စှ်ေ=====
{{sa-decl-adj-mfn|kharvá|kharvā́|kharvá}}
===နာမ်===
{{sa-noun|g=mn}}
# ဂၞန်မဇၞော်မွဲသာ်။
=====လဟုတ်စှ်ေ=====
{{sa-decl-noun-m|novedic=1}}
{{sa-decl-noun-n|novedic=1}}
===မဒုၚ်လွဳစ===
* {{desc|hi|खरब}}
* {{desc|hi|खर्व|bor=1}}
* {{desc|ml|bor=1|ഖർവം|alts=1}}
===ဗွဟ်ရမ္သာၚ် ၂ ===
{{sa-IPA|a=1}}
===နာမ် ၂ ===
{{sa-noun|g=m|tr=khárva}}
# {{alt form of|sa|खल्व॑}}
=====လဟုတ်စှ်ေ=====
{{sa-decl-noun-m|khárva}}
c9zefgnvrseus9ntbz4jrey2ivpj15b
ဝိက်ရှေန်နရဳ:မအရေဝ်သွက်တ္ၚဲဏအ်/၂၀၂၆/ဂျူလာင် ၁၄
4
296696
398213
2026-07-14T12:51:27Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{WOTD|खर्व|နာမဝိသေသန| အၚ်္ဂအဝဲမထပိုတ်ကၠေံထောံလဝ်၊ မလၟေန်ဝေန်ထောံ၊ ဒြိုဟ်လဝ်၊ ဟွံဍိုက်ပေၚ်။ # သဝ်၊ က ကွ။ : နာမ် # ဂၞန်မဇၞော်မွဲသာ်။|audio=LL-Q11059 (san)-咽頭べさ-खर्व.wav|ဂျူလာင်|..."
398213
wikitext
text/x-wiki
{{WOTD|खर्व|နာမဝိသေသန| အၚ်္ဂအဝဲမထပိုတ်ကၠေံထောံလဝ်၊ မလၟေန်ဝေန်ထောံ၊ ဒြိုဟ်လဝ်၊ ဟွံဍိုက်ပေၚ်။
# သဝ်၊ က ကွ။
: နာမ်
# ဂၞန်မဇၞော်မွဲသာ်။|audio=LL-Q11059 (san)-咽頭べさ-खर्व.wav|ဂျူလာင်|၁၄}}
as89lrx2dj932mkje0l7mbbggv5r9we
খৰ্ব
0
296697
398215
2026-07-14T12:54:00Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398215
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
ᬔᬃᬯ
0
296698
398216
2026-07-14T12:54:29Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398216
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
খর্ব
0
296699
398217
2026-07-14T12:55:08Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398217
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
ကဏ္ဍ:နာမဝိသေသနသံသကြိုတ်ပ္ဍဲအက္ခရ်ဘၚ်္ဂါလဳဂမၠိုၚ်
14
296700
398218
2026-07-14T12:57:13Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ဘာသာသံသကြိုတ်]]"
398218
wikitext
text/x-wiki
[[ကဏ္ဍ:ဘာသာသံသကြိုတ်]]
p34etlmqwpjp4c3b9cjnhr7lj0ejz7u
𑰏𑰨𑰿𑰪
0
296701
398219
2026-07-14T12:58:51Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398219
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
𑀔𑀭𑁆𑀯
0
296702
398220
2026-07-14T12:59:28Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398220
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
ခရွ
0
296703
398221
2026-07-14T12:59:51Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398221
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
ખર્વ
0
296704
398222
2026-07-14T13:00:22Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398222
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
ਖਰ੍ਵ
0
296705
398223
2026-07-14T13:00:58Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398223
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
𑌖𑌰𑍍𑌵
0
296706
398224
2026-07-14T13:01:24Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398224
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
ꦑꦂꦮ
0
296707
398226
2026-07-14T13:10:45Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398226
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
𑂎𑂩𑂹𑂫
0
296708
398227
2026-07-14T13:11:05Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398227
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
ಖರ್ವ
0
296709
398228
2026-07-14T13:11:37Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398228
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
ខវ៌
0
296710
398229
2026-07-14T13:12:13Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398229
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
ຂຣ຺ວ
0
296711
398230
2026-07-14T13:12:50Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398230
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
ഖര്വ
0
296712
398231
2026-07-14T13:13:33Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398231
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
ᡘᠠᡵᠣᠸᠠ
0
296713
398232
2026-07-14T13:14:11Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398232
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
𑘏𑘨𑘿𑘪
0
296714
398233
2026-07-14T13:14:32Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398233
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
ᠻᠠᠷᢦ
0
296715
398234
2026-07-14T13:14:52Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398234
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
𑦯𑧈𑧠𑧊
0
296716
398235
2026-07-14T13:15:24Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398235
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
𑐏𑐬𑑂𑐰
0
296717
398236
2026-07-14T13:15:48Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398236
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
ଖର୍ଵ
0
296718
398237
2026-07-14T13:16:12Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398237
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
ꢓꢬ꣄ꢮ
0
296719
398238
2026-07-14T13:16:49Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398238
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
𑆒𑆫𑇀𑆮
0
296720
398239
2026-07-14T13:17:31Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398239
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
𑖏𑖨𑖿𑖪
0
296721
398240
2026-07-14T13:17:52Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398240
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
ඛර්ව
0
296722
398241
2026-07-14T13:18:53Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398241
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
𑩝𑩼 𑪙𑩾
0
296723
398242
2026-07-14T13:19:29Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398242
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
𑚋𑚤𑚶𑚦
0
296724
398243
2026-07-14T13:20:08Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398243
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
க²ர்வ
0
296725
398244
2026-07-14T13:20:55Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398244
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
ఖర్వ
0
296726
398245
2026-07-14T13:21:33Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398245
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
ขรฺว
0
296727
398246
2026-07-14T13:22:19Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398246
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
ཁ་རྭ
0
296728
398247
2026-07-14T13:22:37Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398247
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
𑒐𑒩𑓂𑒫
0
296729
398248
2026-07-14T13:23:09Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}} {{comparative of|}}"
398248
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
{{comparative of|}}
0z8lgcb5qdcdcbukgyfy8p9wysaov21
398249
398248
2026-07-14T13:23:25Z
咽頭べさ
33
398249
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
𑨌𑨫𑩇𑨭
0
296730
398250
2026-07-14T13:23:53Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==သံသကြိုတ်== ===နာမဝိသေသန=== {{sa-adj|tr=kharvá}} # {{sa-sc|term=खर्व}}"
398250
wikitext
text/x-wiki
==သံသကြိုတ်==
===နာမဝိသေသန===
{{sa-adj|tr=kharvá}}
# {{sa-sc|term=खर्व}}
h8uc99o8h5dqkujqomgi8yrr2qm0z68
မဝ်ဂျူ:sa-utilities/translit/Deva-to-SLP1/doc
828
296731
398251
2026-07-14T13:29:50Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> [[ကဏ္ဍ:မဝ်ဂျူသံသကြိုတ်ဂမၠိုၚ်]] [[ကဏ္ဍ:မဝ်ဂျူပွမကၠာဲမအခဝ်ဂမၠိုၚ်]] </includeonly>"
398251
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>
eae6gwl7un2bzlw2ezkme0v1225mgnm
မဝ်ဂျူ:sa-utilities/translit/SLP1-to-Deva/doc
828
296732
398253
2026-07-14T13:32:34Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "At this point not intended for use with accented sentences, as turning ''apsvàntáḥ'' into अ॒प्स्व१॒न्तः (with numeral) hasn't been implemented. <includeonly> [[ကဏ္ဍ:မဝ်ဂျူသံသကြိုတ်ဂမၠိုၚ်]] [[ကဏ္ဍ:မဝ်ဂျူပွမကၠာဲမအခဝ်ဂမၠိုၚ်]] </includeonly>"
398253
wikitext
text/x-wiki
At this point not intended for use with accented sentences, as turning ''apsvàntáḥ'' into अ॒प्स्व१॒न्तः (with numeral) hasn't been implemented.
<includeonly>
[[ကဏ္ဍ:မဝ်ဂျူသံသကြိုတ်ဂမၠိုၚ်]]
[[ကဏ္ဍ:မဝ်ဂျူပွမကၠာဲမအခဝ်ဂမၠိုၚ်]]
</includeonly>
2avg03p4kmd81jocagpo68isx0iinte
မဝ်ဂျူ:sa-utilities/translit/post replace fix/Sinh/doc
828
296733
398254
2026-07-14T13:34:59Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> [[ကဏ္ဍ:မဝ်ဂျူသံသကြိုတ်ဂမၠိုၚ်]] [[ကဏ္ဍ:မဝ်ဂျူပွမကၠာဲမအခဝ်ဂမၠိုၚ်]] </includeonly>"
398254
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>
eae6gwl7un2bzlw2ezkme0v1225mgnm
မဝ်ဂျူ:sa-utilities/translit/doc
828
296734
398255
2026-07-14T13:37:15Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> [[ကဏ္ဍ:မဝ်ဂျူသံသကြိုတ်ဂမၠိုၚ်]] [[ကဏ္ဍ:မဝ်ဂျူပွမကၠာဲမအခဝ်ဂမၠိုၚ်]] </includeonly>"
398255
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>
eae6gwl7un2bzlw2ezkme0v1225mgnm
မဝ်ဂျူ:sa-utilities/documentation
828
296735
398257
2026-07-14T13:40:11Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{Wiktionary:Sanskrit transliteration}} ==Notes== For compounds, the retroflexion of न to ण in the second member (with र in the first member) is optional (but also depends on the closeness and frequency of the compound, see Whitney §193). For example, gen.pl. {{m|sa||धर्मकामाणां}} is attested, but also non-retroflex instr.sg. {{m|sa||धर्मकामेन}} (search [http://www.sansk..."
398257
wikitext
text/x-wiki
{{Wiktionary:Sanskrit transliteration}}
==Notes==
For compounds, the retroflexion of न to ण in the second member (with र in the first member) is optional (but also depends on the closeness and frequency of the compound, see Whitney §193). For example, gen.pl. {{m|sa||धर्मकामाणां}} is attested, but also non-retroflex instr.sg. {{m|sa||धर्मकामेन}} (search [http://www.sanskrit-linguistics.org/dcs/index.php?contents=fundstellen&IDWord=91970&tag=3 here]). The module currently produces only forms ''with'' retroflexion and changing this would be non-trivial, but probably desirable.
<includeonly>
{{module cat|sa}}
</includeonly>
32w33hi7d09x0m9hbhq7y2nlsci9hmv
398279
398257
2026-07-14T15:50:49Z
咽頭べさ
33
398279
wikitext
text/x-wiki
{{ဝိက်ရှေန်နရဳ:ပရေၚ်ကၠာဲပ္တိတ်အက္ခရ်သံသကြိုတ်ဂမၠိုၚ်}}
==Notes==
For compounds, the retroflexion of न to ण in the second member (with र in the first member) is optional (but also depends on the closeness and frequency of the compound, see Whitney §193). For example, gen.pl. {{m|sa||धर्मकामाणां}} is attested, but also non-retroflex instr.sg. {{m|sa||धर्मकामेन}} (search [http://www.sanskrit-linguistics.org/dcs/index.php?contents=fundstellen&IDWord=91970&tag=3 here]). The module currently produces only forms ''with'' retroflexion and changing this would be non-trivial, but probably desirable.
<includeonly>
{{module cat|sa}}
</includeonly>
lsi9hlu8il7kf0mvxgy73rz6rean5co
398280
398279
2026-07-14T15:52:16Z
咽頭べさ
33
咽頭べさ ပြံင်ပဆုဲလဝ် မုက်လိက် [[မဝ်ဂျူ:sa-utilities/doc]] ဇရေင် [[မဝ်ဂျူ:sa-utilities/documentation]] သီုကဵု ဟွံဂွံ ဂိုင်စွံလဝ် မကလေင်ပညုင်
398279
wikitext
text/x-wiki
{{ဝိက်ရှေန်နရဳ:ပရေၚ်ကၠာဲပ္တိတ်အက္ခရ်သံသကြိုတ်ဂမၠိုၚ်}}
==Notes==
For compounds, the retroflexion of न to ण in the second member (with र in the first member) is optional (but also depends on the closeness and frequency of the compound, see Whitney §193). For example, gen.pl. {{m|sa||धर्मकामाणां}} is attested, but also non-retroflex instr.sg. {{m|sa||धर्मकामेन}} (search [http://www.sanskrit-linguistics.org/dcs/index.php?contents=fundstellen&IDWord=91970&tag=3 here]). The module currently produces only forms ''with'' retroflexion and changing this would be non-trivial, but probably desirable.
<includeonly>
{{module cat|sa}}
</includeonly>
lsi9hlu8il7kf0mvxgy73rz6rean5co
ဝိက်ရှေန်နရဳ:ပရေၚ်ကၠာဲပ္တိတ်အက္ခရ်သံသကြိုတ်ဂမၠိုၚ်
4
296736
398258
2026-07-14T13:49:57Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{wp|Devanagari transliteration|lang=en}} {{transliteration policy|sa}} ==ကၠာဲပ္တိတ်အက္ခရ်== {| |valign="top"| {| class="wikitable" |+ Vowels |- class="Unicode" ![[w:Devanāgarī|Deva]]!![[w:IAST|IAST]]!![[w:SLP1|SLP1]] !style="border-left:double #aaa;"|[[w::Devanāgarī|Deva]]!![[w:en:IAST|IAST]]!![[w:SLP1|SLP1]] |- class="Unicode" ||{{lang|sa|अ, प}} ||a||a |style="border-left:doub..."
398258
wikitext
text/x-wiki
{{wp|Devanagari transliteration|lang=en}}
{{transliteration policy|sa}}
==ကၠာဲပ္တိတ်အက္ခရ်==
{|
|valign="top"|
{| class="wikitable"
|+ Vowels
|- class="Unicode"
![[w:Devanāgarī|Deva]]!![[w:IAST|IAST]]!![[w:SLP1|SLP1]]
!style="border-left:double #aaa;"|[[w::Devanāgarī|Deva]]!![[w:en:IAST|IAST]]!![[w:SLP1|SLP1]]
|- class="Unicode"
||{{lang|sa|अ, प}} ||a||a
|style="border-left:double #aaa;"|{{lang|sa|आ, पा}} ||ā||A
|- class="Unicode"
||{{lang|sa|इ, पि}} ||i||i
|style="border-left:double #aaa;"|{{lang|sa|ई, पी}} ||ī||I
|- class="Unicode"
||{{lang|sa|उ, पु}} ||u||u
|style="border-left:double #aaa;"|{{lang|sa|ऊ, पू}} |||ū||U
|- class="Unicode"
||{{lang|sa|ए, पे}} ||e||e
|style="border-left:double #aaa;"|{{lang|sa|ऐ, पै}} ||ai||E
|- class="Unicode"
||{{lang|sa|ओ, पो}} ||o||o
|style="border-left:double #aaa;"|{{lang|sa|औ, पौ}} ||au||O
|- class="Unicode"
||{{lang|sa|ऋ, पृ}} ||ṛ||f
|style="border-left:double #aaa;"|{{lang|sa|ॠ, पॄ}} ||ṝ||F
|- class="Unicode"
||{{lang|sa|ऌ, पॢ}} ||ḷ||x
|style="border-left:double #aaa;"|{{lang|sa|ॡ, पॣ}} ||ḹ||X
|}
|
|valign="top"|
{| class="wikitable"
|+ Consonants
|- class="Unicode"
![[w:Devanāgarī|Deva]]!![[w:IAST|IAST]]!![[w:SLP1|SLP1]]
!style="border-left:double #aaa;"|[[w:Devanāgarī|Deva]]!![[w:IAST|IAST]]!![[w:SLP1|SLP1]]
!style="border-left:double #aaa;"|[[w:Devanāgarī|Deva]]!![[w:IAST|IAST]]!![[w:SLP1|SLP1]]
!style="border-left:double #aaa;"|[[w:Devanāgarī|Deva]]!![[w:IAST|IAST]]!![[w:SLP1|SLP1]]
!style="border-left:double #aaa;"|[[w:Devanāgarī|Deva]]!![[w:IAST|IAST]]!![[w:SLP1|SLP1]]
|- class="Unicode"
||{{lang|sa|क}} ||ka||ka
|style="border-left:double #aaa;"|{{lang|sa|च}} ||ca||ca
|style="border-left:double #aaa;"|{{lang|sa|ट}} ||ṭa||wa
|style="border-left:double #aaa;"|{{lang|sa|त}} ||ta||ta
|style="border-left:double #aaa;"|{{lang|sa|प}} ||pa||pa
|- class="Unicode"
||{{lang|sa|ख}} ||kha||Ka
|style="border-left:double #aaa;"|{{lang|sa|छ}} ||cha||Ca
|style="border-left:double #aaa;"|{{lang|sa|ठ}} ||ṭha||Wa
|style="border-left:double #aaa;"|{{lang|sa|थ}} ||tha||Ta
|style="border-left:double #aaa;"|{{lang|sa|फ}} ||pha||Pa
|- class="Unicode"
||{{lang|sa|ग}} ||ga||ga
|style="border-left:double #aaa;"|{{lang|sa|ज}} ||ja||ja
|style="border-left:double #aaa;"|{{lang|sa|ड}} ||ḍa||qa
|style="border-left:double #aaa;"|{{lang|sa|द}} ||da||da
|style="border-left:double #aaa;"|{{lang|sa|ब}} ||ba||ba
|- class="Unicode"
||{{lang|sa|घ}} ||gha||Ga
|style="border-left:double #aaa;"|{{lang|sa|झ}} ||jha||Ja
|style="border-left:double #aaa;"|{{lang|sa|ढ}} ||ḍha||Qa
|style="border-left:double #aaa;"|{{lang|sa|ध}} ||dha||Da
|style="border-left:double #aaa;"|{{lang|sa|भ}} ||bha||Ba
|- class="Unicode"
||{{lang|sa|ङ}} ||ṅa||Na
|style="border-left:double #aaa;"|{{lang|sa|ञ}} ||ña||Ya
|style="border-left:double #aaa;"|{{lang|sa|ण}} ||ṇa||Ra
|style="border-left:double #aaa;"|{{lang|sa|न}} ||na||na
|style="border-left:double #aaa;"|{{lang|sa|म}} ||ma||ma
|- style="border-top:thick double #aaa;" class="Unicode"
|| || ||
|style="border-left:double #aaa;"|{{lang|sa|य}} ||ya||ya
|style="border-left:double #aaa;"|{{lang|sa|र}} ||ra||ra
|style="border-left:double #aaa;"|{{lang|sa|ल}} ||la||la
|style="border-left:double #aaa;"|{{lang|sa|व}} ||va||va
|- style="border-top:thick double #aaa;" class="Unicode"
||{{lang|sa|ह}} ||ha||ha
|style="border-left:double #aaa;"|{{lang|sa|श}} ||śa||Sa
|style="border-left:double #aaa;"|{{lang|sa|ष}} ||ṣa||za
|style="border-left:double #aaa;"|{{lang|sa|स}} ||sa||sa
|style="border-left:double #aaa;" colspan=3|
|}
|-
|valign="top"|
{| class="wikitable"
|+ Other symbols
|- class="Unicode"
![[w:Devanāgarī|Deva]]!![[w:IAST|IAST]]!![[w:SLP1|SLP1]]
!style="border-left:double #aaa;"|[[w:Devanāgarī|Deva]]!![[w:IAST|IAST]]!![[w:SLP1|SLP1]]
|- class="Unicode"
||{{lang|sa|अं, पं}} ||ṃ||M
|style="border-left:double #aaa;"|{{lang|sa|अँ, पँ}} ||m̐||~
|- class="Unicode"
||{{lang|sa|अः, पः}} ||ḥ||H
|style="border-left:double #aaa;"|{{lang|sa|ऽ}} ||’||'
|- class="Unicode"
||{{lang|sa|ᳵ}} ||x||Z
|style="border-left:double #aaa;"|{{lang|sa|ᳶ}} ||f||V
|- class="Unicode"
||{{lang|sa|॥}} ||.||.
|style="border-left:double #aaa;"|{{lang|sa|।}} ||.||.
|}
|
|valign="top"|
{| class="wikitable"
|+ Additional Vedic consonant
|- class="Unicode"
![[w:Devanāgarī|Deva]]!![[w:IAST|IAST]]!![[w:SLP1|SLP1]]
|- class="Unicode"
||{{lang|sa|ळ}} ||ḷa||La
|}
|-
|valign="top"|
{| class="wikitable"
|+ Numerals
|- class="Unicode"
![[w:Devanāgarī|Deva]]
| ० || १ || २ || ३ || ४ || ५ || ६ || ७ || ८ || ९
|- class="Unicode"
![[w:IAST|IAST]] & [[w:SLP1|SLP1]]
| 0 || 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9
|}
|}<noinclude>[[ကဏ္ဍ:မူဝါဒပရေၚ်ကၠာဲပ္တိတ်အက္ခရ်ဂမၠိုၚ်]]</noinclude>
0v0enkfa0vasnqrjmewgmyjgkx6wyu5
398277
398258
2026-07-14T15:46:03Z
Intobesa.bot
1035
Bot: ဗပေၚ်စုတ်ကုဒ်အရေဝ်ဘာသာ
398277
wikitext
text/x-wiki
{{wp|Devanagari transliteration|lang=en}}
{{transliteration policy|sa}}
==ကၠာဲပ္တိတ်အက္ခရ်==
{|
|valign="top"|
{| class="wikitable"
|+ Vowels
|- class="Unicode"
![[w:en:Devanāgarī|Deva]]!![[w:en:IAST|IAST]]!![[w:en:SLP1|SLP1]]
!style="border-left:double #aaa;"|[[w:en::Devanāgarī|Deva]]!![[w:en:en:IAST|IAST]]!![[w:en:SLP1|SLP1]]
|- class="Unicode"
||{{lang|sa|अ, प}} ||a||a
|style="border-left:double #aaa;"|{{lang|sa|आ, पा}} ||ā||A
|- class="Unicode"
||{{lang|sa|इ, पि}} ||i||i
|style="border-left:double #aaa;"|{{lang|sa|ई, पी}} ||ī||I
|- class="Unicode"
||{{lang|sa|उ, पु}} ||u||u
|style="border-left:double #aaa;"|{{lang|sa|ऊ, पू}} |||ū||U
|- class="Unicode"
||{{lang|sa|ए, पे}} ||e||e
|style="border-left:double #aaa;"|{{lang|sa|ऐ, पै}} ||ai||E
|- class="Unicode"
||{{lang|sa|ओ, पो}} ||o||o
|style="border-left:double #aaa;"|{{lang|sa|औ, पौ}} ||au||O
|- class="Unicode"
||{{lang|sa|ऋ, पृ}} ||ṛ||f
|style="border-left:double #aaa;"|{{lang|sa|ॠ, पॄ}} ||ṝ||F
|- class="Unicode"
||{{lang|sa|ऌ, पॢ}} ||ḷ||x
|style="border-left:double #aaa;"|{{lang|sa|ॡ, पॣ}} ||ḹ||X
|}
|
|valign="top"|
{| class="wikitable"
|+ Consonants
|- class="Unicode"
![[w:en:Devanāgarī|Deva]]!![[w:en:IAST|IAST]]!![[w:en:SLP1|SLP1]]
!style="border-left:double #aaa;"|[[w:en:Devanāgarī|Deva]]!![[w:en:IAST|IAST]]!![[w:en:SLP1|SLP1]]
!style="border-left:double #aaa;"|[[w:en:Devanāgarī|Deva]]!![[w:en:IAST|IAST]]!![[w:en:SLP1|SLP1]]
!style="border-left:double #aaa;"|[[w:en:Devanāgarī|Deva]]!![[w:en:IAST|IAST]]!![[w:en:SLP1|SLP1]]
!style="border-left:double #aaa;"|[[w:en:Devanāgarī|Deva]]!![[w:en:IAST|IAST]]!![[w:en:SLP1|SLP1]]
|- class="Unicode"
||{{lang|sa|क}} ||ka||ka
|style="border-left:double #aaa;"|{{lang|sa|च}} ||ca||ca
|style="border-left:double #aaa;"|{{lang|sa|ट}} ||ṭa||wa
|style="border-left:double #aaa;"|{{lang|sa|त}} ||ta||ta
|style="border-left:double #aaa;"|{{lang|sa|प}} ||pa||pa
|- class="Unicode"
||{{lang|sa|ख}} ||kha||Ka
|style="border-left:double #aaa;"|{{lang|sa|छ}} ||cha||Ca
|style="border-left:double #aaa;"|{{lang|sa|ठ}} ||ṭha||Wa
|style="border-left:double #aaa;"|{{lang|sa|थ}} ||tha||Ta
|style="border-left:double #aaa;"|{{lang|sa|फ}} ||pha||Pa
|- class="Unicode"
||{{lang|sa|ग}} ||ga||ga
|style="border-left:double #aaa;"|{{lang|sa|ज}} ||ja||ja
|style="border-left:double #aaa;"|{{lang|sa|ड}} ||ḍa||qa
|style="border-left:double #aaa;"|{{lang|sa|द}} ||da||da
|style="border-left:double #aaa;"|{{lang|sa|ब}} ||ba||ba
|- class="Unicode"
||{{lang|sa|घ}} ||gha||Ga
|style="border-left:double #aaa;"|{{lang|sa|झ}} ||jha||Ja
|style="border-left:double #aaa;"|{{lang|sa|ढ}} ||ḍha||Qa
|style="border-left:double #aaa;"|{{lang|sa|ध}} ||dha||Da
|style="border-left:double #aaa;"|{{lang|sa|भ}} ||bha||Ba
|- class="Unicode"
||{{lang|sa|ङ}} ||ṅa||Na
|style="border-left:double #aaa;"|{{lang|sa|ञ}} ||ña||Ya
|style="border-left:double #aaa;"|{{lang|sa|ण}} ||ṇa||Ra
|style="border-left:double #aaa;"|{{lang|sa|न}} ||na||na
|style="border-left:double #aaa;"|{{lang|sa|म}} ||ma||ma
|- style="border-top:thick double #aaa;" class="Unicode"
|| || ||
|style="border-left:double #aaa;"|{{lang|sa|य}} ||ya||ya
|style="border-left:double #aaa;"|{{lang|sa|र}} ||ra||ra
|style="border-left:double #aaa;"|{{lang|sa|ल}} ||la||la
|style="border-left:double #aaa;"|{{lang|sa|व}} ||va||va
|- style="border-top:thick double #aaa;" class="Unicode"
||{{lang|sa|ह}} ||ha||ha
|style="border-left:double #aaa;"|{{lang|sa|श}} ||śa||Sa
|style="border-left:double #aaa;"|{{lang|sa|ष}} ||ṣa||za
|style="border-left:double #aaa;"|{{lang|sa|स}} ||sa||sa
|style="border-left:double #aaa;" colspan=3|
|}
|-
|valign="top"|
{| class="wikitable"
|+ Other symbols
|- class="Unicode"
![[w:en:Devanāgarī|Deva]]!![[w:en:IAST|IAST]]!![[w:en:SLP1|SLP1]]
!style="border-left:double #aaa;"|[[w:en:Devanāgarī|Deva]]!![[w:en:IAST|IAST]]!![[w:en:SLP1|SLP1]]
|- class="Unicode"
||{{lang|sa|अं, पं}} ||ṃ||M
|style="border-left:double #aaa;"|{{lang|sa|अँ, पँ}} ||m̐||~
|- class="Unicode"
||{{lang|sa|अः, पः}} ||ḥ||H
|style="border-left:double #aaa;"|{{lang|sa|ऽ}} ||’||'
|- class="Unicode"
||{{lang|sa|ᳵ}} ||x||Z
|style="border-left:double #aaa;"|{{lang|sa|ᳶ}} ||f||V
|- class="Unicode"
||{{lang|sa|॥}} ||.||.
|style="border-left:double #aaa;"|{{lang|sa|।}} ||.||.
|}
|
|valign="top"|
{| class="wikitable"
|+ Additional Vedic consonant
|- class="Unicode"
![[w:en:Devanāgarī|Deva]]!![[w:en:IAST|IAST]]!![[w:en:SLP1|SLP1]]
|- class="Unicode"
||{{lang|sa|ळ}} ||ḷa||La
|}
|-
|valign="top"|
{| class="wikitable"
|+ Numerals
|- class="Unicode"
![[w:en:Devanāgarī|Deva]]
| ० || १ || २ || ३ || ४ || ५ || ६ || ७ || ८ || ९
|- class="Unicode"
![[w:en:IAST|IAST]] & [[w:en:SLP1|SLP1]]
| 0 || 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9
|}
|}<noinclude>[[ကဏ္ဍ:မူဝါဒပရေၚ်ကၠာဲပ္တိတ်အက္ခရ်ဂမၠိုၚ်]]</noinclude>
kzys17h3v0j5jamo1i85xu5mjabqnu5
398278
398277
2026-07-14T15:49:41Z
咽頭べさ
33
398278
wikitext
text/x-wiki
{{wp|Devanagari transliteration|lang=en}}
{{transliteration policy|sa}}
==ကၠာဲပ္တိတ်အက္ခရ်==
{|
|valign="top"|
{| class="wikitable"
|+ သွဵုဂမၠိုၚ်
|- class="Unicode"
![[w:en:Devanāgarī|Deva]]!![[w:en:IAST|IAST]]!![[w:en:SLP1|SLP1]]
!style="border-left:double #aaa;"|[[w:en::Devanāgarī|Deva]]!![[w:en:en:IAST|IAST]]!![[w:en:SLP1|SLP1]]
|- class="Unicode"
||{{lang|sa|अ, प}} ||a||a
|style="border-left:double #aaa;"|{{lang|sa|आ, पा}} ||ā||A
|- class="Unicode"
||{{lang|sa|इ, पि}} ||i||i
|style="border-left:double #aaa;"|{{lang|sa|ई, पी}} ||ī||I
|- class="Unicode"
||{{lang|sa|उ, पु}} ||u||u
|style="border-left:double #aaa;"|{{lang|sa|ऊ, पू}} |||ū||U
|- class="Unicode"
||{{lang|sa|ए, पे}} ||e||e
|style="border-left:double #aaa;"|{{lang|sa|ऐ, पै}} ||ai||E
|- class="Unicode"
||{{lang|sa|ओ, पो}} ||o||o
|style="border-left:double #aaa;"|{{lang|sa|औ, पौ}} ||au||O
|- class="Unicode"
||{{lang|sa|ऋ, पृ}} ||ṛ||f
|style="border-left:double #aaa;"|{{lang|sa|ॠ, पॄ}} ||ṝ||F
|- class="Unicode"
||{{lang|sa|ऌ, पॢ}} ||ḷ||x
|style="border-left:double #aaa;"|{{lang|sa|ॡ, पॣ}} ||ḹ||X
|}
|
|valign="top"|
{| class="wikitable"
|+ ဗျဉ်ဂမၠိုၚ်
|- class="Unicode"
![[w:en:Devanāgarī|Deva]]!![[w:en:IAST|IAST]]!![[w:en:SLP1|SLP1]]
!style="border-left:double #aaa;"|[[w:en:Devanāgarī|Deva]]!![[w:en:IAST|IAST]]!![[w:en:SLP1|SLP1]]
!style="border-left:double #aaa;"|[[w:en:Devanāgarī|Deva]]!![[w:en:IAST|IAST]]!![[w:en:SLP1|SLP1]]
!style="border-left:double #aaa;"|[[w:en:Devanāgarī|Deva]]!![[w:en:IAST|IAST]]!![[w:en:SLP1|SLP1]]
!style="border-left:double #aaa;"|[[w:en:Devanāgarī|Deva]]!![[w:en:IAST|IAST]]!![[w:en:SLP1|SLP1]]
|- class="Unicode"
||{{lang|sa|क}} ||ka||ka
|style="border-left:double #aaa;"|{{lang|sa|च}} ||ca||ca
|style="border-left:double #aaa;"|{{lang|sa|ट}} ||ṭa||wa
|style="border-left:double #aaa;"|{{lang|sa|त}} ||ta||ta
|style="border-left:double #aaa;"|{{lang|sa|प}} ||pa||pa
|- class="Unicode"
||{{lang|sa|ख}} ||kha||Ka
|style="border-left:double #aaa;"|{{lang|sa|छ}} ||cha||Ca
|style="border-left:double #aaa;"|{{lang|sa|ठ}} ||ṭha||Wa
|style="border-left:double #aaa;"|{{lang|sa|थ}} ||tha||Ta
|style="border-left:double #aaa;"|{{lang|sa|फ}} ||pha||Pa
|- class="Unicode"
||{{lang|sa|ग}} ||ga||ga
|style="border-left:double #aaa;"|{{lang|sa|ज}} ||ja||ja
|style="border-left:double #aaa;"|{{lang|sa|ड}} ||ḍa||qa
|style="border-left:double #aaa;"|{{lang|sa|द}} ||da||da
|style="border-left:double #aaa;"|{{lang|sa|ब}} ||ba||ba
|- class="Unicode"
||{{lang|sa|घ}} ||gha||Ga
|style="border-left:double #aaa;"|{{lang|sa|झ}} ||jha||Ja
|style="border-left:double #aaa;"|{{lang|sa|ढ}} ||ḍha||Qa
|style="border-left:double #aaa;"|{{lang|sa|ध}} ||dha||Da
|style="border-left:double #aaa;"|{{lang|sa|भ}} ||bha||Ba
|- class="Unicode"
||{{lang|sa|ङ}} ||ṅa||Na
|style="border-left:double #aaa;"|{{lang|sa|ञ}} ||ña||Ya
|style="border-left:double #aaa;"|{{lang|sa|ण}} ||ṇa||Ra
|style="border-left:double #aaa;"|{{lang|sa|न}} ||na||na
|style="border-left:double #aaa;"|{{lang|sa|म}} ||ma||ma
|- style="border-top:thick double #aaa;" class="Unicode"
|| || ||
|style="border-left:double #aaa;"|{{lang|sa|य}} ||ya||ya
|style="border-left:double #aaa;"|{{lang|sa|र}} ||ra||ra
|style="border-left:double #aaa;"|{{lang|sa|ल}} ||la||la
|style="border-left:double #aaa;"|{{lang|sa|व}} ||va||va
|- style="border-top:thick double #aaa;" class="Unicode"
||{{lang|sa|ह}} ||ha||ha
|style="border-left:double #aaa;"|{{lang|sa|श}} ||śa||Sa
|style="border-left:double #aaa;"|{{lang|sa|ष}} ||ṣa||za
|style="border-left:double #aaa;"|{{lang|sa|स}} ||sa||sa
|style="border-left:double #aaa;" colspan=3|
|}
|-
|valign="top"|
{| class="wikitable"
|+ သၚ်္ကေတတၞဟ်ဂမၠိုၚ်
|- class="Unicode"
![[w:en:Devanāgarī|Deva]]!![[w:en:IAST|IAST]]!![[w:en:SLP1|SLP1]]
!style="border-left:double #aaa;"|[[w:en:Devanāgarī|Deva]]!![[w:en:IAST|IAST]]!![[w:en:SLP1|SLP1]]
|- class="Unicode"
||{{lang|sa|अं, पं}} ||ṃ||M
|style="border-left:double #aaa;"|{{lang|sa|अँ, पँ}} ||m̐||~
|- class="Unicode"
||{{lang|sa|अः, पः}} ||ḥ||H
|style="border-left:double #aaa;"|{{lang|sa|ऽ}} ||’||'
|- class="Unicode"
||{{lang|sa|ᳵ}} ||x||Z
|style="border-left:double #aaa;"|{{lang|sa|ᳶ}} ||f||V
|- class="Unicode"
||{{lang|sa|॥}} ||.||.
|style="border-left:double #aaa;"|{{lang|sa|।}} ||.||.
|}
|
|valign="top"|
{| class="wikitable"
|+ ချူဗပေၚ်စုတ်ဗျဉ်ဗေဒ
|- class="Unicode"
![[w:en:Devanāgarī|Deva]]!![[w:en:IAST|IAST]]!![[w:en:SLP1|SLP1]]
|- class="Unicode"
||{{lang|sa|ळ}} ||ḷa||La
|}
|-
|valign="top"|
{| class="wikitable"
|+ ဂၞန်သၚ်္ချာဂမၠိုၚ်
|- class="Unicode"
![[w:en:Devanāgarī|Deva]]
| ० || १ || २ || ३ || ४ || ५ || ६ || ७ || ८ || ९
|- class="Unicode"
![[w:en:IAST|IAST]] & [[w:en:SLP1|SLP1]]
| 0 || 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9
|}
|}<noinclude>[[ကဏ္ဍ:မူဝါဒပရေၚ်ကၠာဲပ္တိတ်အက္ခရ်ဂမၠိုၚ်]]</noinclude>
o51ezzc6d48cu65oxkxw6gii6ck50mi
ကဏ္ဍ:မူဝါဒပရေၚ်ကၠာဲပ္တိတ်အက္ခရ်ဂမၠိုၚ်
14
296737
398259
2026-07-14T13:55:26Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ဝိက်ရှေန်နရဳပြသၞာဆေၚ်စပ်ကဵုအရေဝ်ဘာသာနာနာသာ်ဂမၠိုၚ်]]"
398259
wikitext
text/x-wiki
[[ကဏ္ဍ:ဝိက်ရှေန်နရဳပြသၞာဆေၚ်စပ်ကဵုအရေဝ်ဘာသာနာနာသာ်ဂမၠိုၚ်]]
s9fmzvoov8zh02ysqlrmeduoid1l0ni
ကဏ္ဍ:ဝိက်ရှေန်နရဳပြသၞာဆေၚ်စပ်ကဵုအရေဝ်ဘာသာနာနာသာ်ဂမၠိုၚ်
14
296738
398260
2026-07-14T14:02:35Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ဝိက်ရှေန်နရဳ]][[ကဏ္ဍ:ဝိက်ရှေန်နရဳအရေဝ်ဘာသာအရာဂွံဒးချပ်ဗ္စာရဏာဂမၠိုၚ်]][[ကဏ္ဍ:မုက်လိက်ပွမလုပ်အဝေါၚ်ဗီုပြၚ်တၚ်မဂရၚ်ပ္တီဂမၠိုၚ်]]"
398260
wikitext
text/x-wiki
[[ကဏ္ဍ:ဝိက်ရှေန်နရဳ]][[ကဏ္ဍ:ဝိက်ရှေန်နရဳအရေဝ်ဘာသာအရာဂွံဒးချပ်ဗ္စာရဏာဂမၠိုၚ်]][[ကဏ္ဍ:မုက်လိက်ပွမလုပ်အဝေါၚ်ဗီုပြၚ်တၚ်မဂရၚ်ပ္တီဂမၠိုၚ်]]
8h03llr7loz4oo1rmuh4vqepa5yx51n
ကဏ္ဍ:ဝိက်ရှေန်နရဳအရေဝ်ဘာသာအရာဂွံဒးချပ်ဗ္စာရဏာဂမၠိုၚ်
14
296739
398261
2026-07-14T14:04:00Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:မုက်လိက်ပွမလုပ်အဝေါၚ်ဗီုပြၚ်တၚ်မဂရၚ်ပ္တီဂမၠိုၚ်]]"
398261
wikitext
text/x-wiki
[[ကဏ္ဍ:မုက်လိက်ပွမလုပ်အဝေါၚ်ဗီုပြၚ်တၚ်မဂရၚ်ပ္တီဂမၠိုၚ်]]
nj13brfyj4ng35vbvd5wpkouumj5yjs
398262
398261
2026-07-14T14:04:38Z
咽頭べさ
33
398262
wikitext
text/x-wiki
[[ကဏ္ဍ:မုက်လိက်ပွမလုပ်အဝေါၚ်ဗီုပြၚ်တၚ်မဂရၚ်ပ္တီဂမၠိုၚ်]][[ကဏ္ဍ:ဝိက်ရှေန်နရဳ]]
o8ue97eoeohddctqnvqicqjt3ktn3ai
ကဏ္ဍ:မုက်လိက်ပွမလုပ်အဝေါၚ်ဗီုပြၚ်တၚ်မဂရၚ်ပ္တီဂမၠိုၚ်
14
296740
398263
2026-07-14T14:08:01Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ပရေၚ်ပ္ညုၚ်ထ္ၜးဂၠံၚ်တရဴဂမၠိုၚ်]]"
398263
wikitext
text/x-wiki
[[ကဏ္ဍ:ပရေၚ်ပ္ညုၚ်ထ္ၜးဂၠံၚ်တရဴဂမၠိုၚ်]]
tr60zvzbl0e6f6szcqegci433a1s1fc
ကဏ္ဍ:ပရေၚ်ပ္ညုၚ်ထ္ၜးဂၠံၚ်တရဴဂမၠိုၚ်
14
296741
398264
2026-07-14T14:10:49Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:မူဝါဒဝိက်ရှေန်နရဳဂမၠိုၚ်]]"
398264
wikitext
text/x-wiki
[[ကဏ္ဍ:မူဝါဒဝိက်ရှေန်နရဳဂမၠိုၚ်]]
kzja9ca8nanrbbqkixr0wo5a1sb8lk2
မဝ်ဂျူ:transliteration policy/documentation
828
296742
398267
2026-07-14T14:27:10Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> [[ကဏ္ဍ:မဝ်ဂျူဟွံမွဲကဵုကဏ္ဍဂမၠိုၚ်]] </includeonly>"
398267
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>
04ggrsxzzt017ah77pqnch91kyufmmz
398285
398267
2026-07-14T16:15:17Z
咽頭べさ
33
咽頭べさ ပြံင်ပဆုဲလဝ် မုက်လိက် [[မဝ်ဂျူ:transliteration policy/doc]] ဇရေင် [[မဝ်ဂျူ:transliteration policy/documentation]] သီုကဵု ဟွံဂွံ ဂိုင်စွံလဝ် မကလေင်ပညုင်
398267
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>
04ggrsxzzt017ah77pqnch91kyufmmz
မဝ်ဂျူ:title/newTitle/documentation
828
296743
398268
2026-07-14T14:31:46Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> [[ကဏ္ဍ:မဝ်ဂျူဟွံမွဲကဵုကဏ္ဍဂမၠိုၚ်]] </includeonly>"
398268
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>
04ggrsxzzt017ah77pqnch91kyufmmz
398286
398268
2026-07-14T16:15:52Z
咽頭べさ
33
咽頭べさ ပြံင်ပဆုဲလဝ် မုက်လိက် [[မဝ်ဂျူ:title/newTitle/doc]] ဇရေင် [[မဝ်ဂျူ:title/newTitle/documentation]] သီုကဵု ဟွံဂွံ ဂိုင်စွံလဝ် မကလေင်ပညုင်
398268
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>
04ggrsxzzt017ah77pqnch91kyufmmz
မဝ်ဂျူ:documentation/documentation
828
296744
398269
2026-07-14T14:35:23Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "Serves {{temp|documentation}} and {{temp|translit module documentation}}. {{temp|documentation}} is added to modules automatically (through [[MediaWiki:Scribunto-doc-page-show]] if the doc page exists, otherwise through [[MediaWiki:Scribunto-doc-page-does-not-exist]]); added to user JavaScript pages automatically (through [[MediaWiki:Clearyourcache]]); and manually added to template pages. It automatically adds catego..."
398269
wikitext
text/x-wiki
Serves {{temp|documentation}} and {{temp|translit module documentation}}. {{temp|documentation}} is added to modules automatically (through [[MediaWiki:Scribunto-doc-page-show]] if the doc page exists, otherwise through [[MediaWiki:Scribunto-doc-page-does-not-exist]]); added to user JavaScript pages automatically (through [[MediaWiki:Clearyourcache]]); and manually added to template pages. It automatically adds categories, or categories and documentation, to some modules based on their titles.
More specifically, for modules:
# When there is no doc page for the module, [[Module:documentation]] checks for various sorts of special modules (based on the module title) and autogenerates the documentation and categories of those modules. If this check fails, the module is added to [[:Category:Templates and modules needing documentation]], and [[Module:module categorization]] is called to autogenerate the categories for lang-specific modules of the form {{cd|LANGCODE-TYPE}}, optionally with a subpage (e.g. {{cd|LANGCODE-TYPE/data}}, {{cd|LANGCODE-TYPE/testcases}}, {{cd|LANGCODE-TYPE/data/testcases}}, or any other subpage). If this check also fails, the module is added to [[:Category:Uncategorized modules]].
# When there is a doc page for the module, the contents of that page take precedence over any autogenerated content. However, if that page does not have an {{cd|<nowiki><includeonly>...</includeonly></nowiki>}} section and does not have an invocation of {{tl|module cat}}, the same checks are done as when no doc page exists (including checks for specially-titled modules and falling back to calling [[Module:module categorization]]), but only for the purposes of autogenerating categories. If no such categories could be determined, the module is added to [[:Category:Uncategorized modules]].
More specifically, for templates:
* ... (DOCUMENT ME)
Ideas:
* Make more usable on other Wiktionaries by creating data module with translations of text, and moving module regex to separate module.
==Automatic module documentation generators==
{{#invoke:documentation|module_auto_doc_table}}
<includeonly>
[[ကဏ္ဍ:မဝ်ဂျူစရၚ်မချူသမ္တီလဝ်ဂမၠိုၚ်]]
</includeonly>
2y1fsu7sgz1s33h2249i1cs6rrouu31
398281
398269
2026-07-14T15:55:37Z
咽頭べさ
33
咽頭べさ ပြံင်ပဆုဲလဝ် မုက်လိက် [[မဝ်ဂျူ:documentation/doc]] ဇရေင် [[မဝ်ဂျူ:documentation/documentation]] သီုကဵု ဟွံဂွံ ဂိုင်စွံလဝ် မကလေင်ပညုင်
398269
wikitext
text/x-wiki
Serves {{temp|documentation}} and {{temp|translit module documentation}}. {{temp|documentation}} is added to modules automatically (through [[MediaWiki:Scribunto-doc-page-show]] if the doc page exists, otherwise through [[MediaWiki:Scribunto-doc-page-does-not-exist]]); added to user JavaScript pages automatically (through [[MediaWiki:Clearyourcache]]); and manually added to template pages. It automatically adds categories, or categories and documentation, to some modules based on their titles.
More specifically, for modules:
# When there is no doc page for the module, [[Module:documentation]] checks for various sorts of special modules (based on the module title) and autogenerates the documentation and categories of those modules. If this check fails, the module is added to [[:Category:Templates and modules needing documentation]], and [[Module:module categorization]] is called to autogenerate the categories for lang-specific modules of the form {{cd|LANGCODE-TYPE}}, optionally with a subpage (e.g. {{cd|LANGCODE-TYPE/data}}, {{cd|LANGCODE-TYPE/testcases}}, {{cd|LANGCODE-TYPE/data/testcases}}, or any other subpage). If this check also fails, the module is added to [[:Category:Uncategorized modules]].
# When there is a doc page for the module, the contents of that page take precedence over any autogenerated content. However, if that page does not have an {{cd|<nowiki><includeonly>...</includeonly></nowiki>}} section and does not have an invocation of {{tl|module cat}}, the same checks are done as when no doc page exists (including checks for specially-titled modules and falling back to calling [[Module:module categorization]]), but only for the purposes of autogenerating categories. If no such categories could be determined, the module is added to [[:Category:Uncategorized modules]].
More specifically, for templates:
* ... (DOCUMENT ME)
Ideas:
* Make more usable on other Wiktionaries by creating data module with translations of text, and moving module regex to separate module.
==Automatic module documentation generators==
{{#invoke:documentation|module_auto_doc_table}}
<includeonly>
[[ကဏ္ဍ:မဝ်ဂျူစရၚ်မချူသမ္တီလဝ်ဂမၠိုၚ်]]
</includeonly>
2y1fsu7sgz1s33h2249i1cs6rrouu31
မဳဒဳယာဝဳကဳ:Scribunto-doc-page-show
8
296745
398270
2026-07-14T14:36:38Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation|from=$1|hr=below}}"
398270
wikitext
text/x-wiki
{{documentation|from=$1|hr=below}}
ho8cvxtbvvh4bhvvxklaze9cbf4fxy8
မဳဒဳယာဝဳကဳ:Scribunto-doc-page-does-not-exist
8
296746
398271
2026-07-14T14:37:57Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation|hr=below}}"
398271
wikitext
text/x-wiki
{{documentation|hr=below}}
2zxlv85dc5bbrimgijtz8hlg5lbrat9
မဳဒဳယာဝဳကဳ:Clearyourcache
8
296747
398272
2026-07-14T14:58:40Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "<div style="border: 2px solid var(--wikt-palette-grey-9,gray); padding: 0.2em 0.5em; margin: 1em 0; font-size: smaller;" class="mw-collapsible mw-collapsed"> '''တၚ်စၟတ်:ကြဴနူ မသီဂိုၚ်တုဲ တၞဟ်နမဂွံညာတ် အပြံၚ်အလှာဲ မၞးသ္ဒးကၟာတ်ထောအ် မုက်လိက်ဗြောဝ်သာဂှ်ရ..."
398272
wikitext
text/x-wiki
<div style="border: 2px solid var(--wikt-palette-grey-9,gray); padding: 0.2em 0.5em; margin: 1em 0; font-size: smaller;" class="mw-collapsible mw-collapsed">
'''တၚ်စၟတ်:ကြဴနူ မသီဂိုၚ်တုဲ တၞဟ်နမဂွံညာတ် အပြံၚ်အလှာဲ မၞးသ္ဒးကၟာတ်ထောအ် မုက်လိက်ဗြောဝ်သာဂှ်ရောၚ်။'''
<div class="mw-collapsible-content">
* '''Firefox / Safari:''' မ္ဂး ဍဵုလဝ် ''Shift'' အဃောမဍဵု ''Reload''၊ ဟွံသေၚ်မ္ဂး ဍဵု either ''Ctrl-F5'' ဟွံသေၚ်မ္ဂး ''Ctrl-R'' (''Command-R'' လ္တူ Macintosh မွဲသာ်)
* '''Konqueror''' ကဵု '''Chrome:''' မ္ဂး ဍဵု ''Reload'' ဝါ ဍဵု ''F5''
* '''Opera:''' စအးဆေၚ်စပ်ကဵု cache ပ္ဍဲ ''ကရိယာဂမၠိုၚ် → Preferences''
* '''Internet Explorer:'''မ္ဂး ဍဵုလဝ် ''Ctrl'' အဃော မဍဵု ''Refresh''၊ ဟွံသေၚ်မ္ဂး ဍဵု ''Ctrl-F5''။
</div>
</div>
{{documentation|hr=below}}
3r3xsgmlhywosa04ueyzzjjeznm2pi3
မဝ်ဂျူ:documentation/functions/Quotation
828
296748
398282
2026-07-14T16:08:20Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "return function (cats, title, lang_code, data_suffix) local lang = require("Module:languages").getByCode(lang_code) if not lang then return "မဝ်ဂျူတဏအ်ဝွံမစွံအပ္ဍဲကုဒ်အရေဝ်ဘာသာဟွံခံၚ်နကဵုအပ္ဍဲဆေၚ်စပ်ကဵုက္ဍိုပ်လိက်: <code>" .. lang_code .. "</code>။" end local error_mes..."
398282
Scribunto
text/plain
return function (cats, title, lang_code, data_suffix)
local lang = require("Module:languages").getByCode(lang_code)
if not lang then
return "မဝ်ဂျူတဏအ်ဝွံမစွံအပ္ဍဲကုဒ်အရေဝ်ဘာသာဟွံခံၚ်နကဵုအပ္ဍဲဆေၚ်စပ်ကဵုက္ဍိုပ်လိက်: <code>" .. lang_code .. "</code>။"
end
local error_message = ""
if not require("Module:Quotations").hasData[lang_code] then
error_message = ' <code class="error">The language code ' .. lang_code
.. " needs to be added to the <code>hasData</code> table in [[Module:Quotations]].</code>"
end
-- Modules where data_suffix == "" could be put in "language modules" categories
-- instead of "language data modules".
cats:insert("မဝ်ဂျူဒေတာဝေါဟာသမ္ကေက်ဂမၠိုၚ်|" .. lang_code)
cats:insert("မဝ်ဂျူစရၚ်ဘာသာ" .. lang:getCanonicalName() .. "ဂမၠိုၚ်|ဝေါဟာသမ္ကေက်")
return "This module contains data for works in "
.. lang:makeCategoryLink()
.. " and is used to format the parameters of <code>{{[[Template:Q|Q]]|" .. lang_code .. "|...}}</code>."
.. error_message
end
tm13yrmm98hz4dbmlqhepbuueit3eaf
မဝ်ဂျူ:documentation/functions/Quotation/documentation
828
296749
398283
2026-07-14T16:09:27Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. -->"
398283
wikitext
text/x-wiki
{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. -->
htv9bx6p31m48q39zcc87mucqafkwrv
398284
398283
2026-07-14T16:09:41Z
咽頭べさ
33
咽頭べさ ပြံင်ပဆုဲလဝ် မုက်လိက် [[မဝ်ဂျူ:documentation/functions/Quotation/doc]] ဇရေင် [[မဝ်ဂျူ:documentation/functions/Quotation/documentation]] သီုကဵု ဟွံဂွံ ဂိုင်စွံလဝ် မကလေင်ပညုင်
398283
wikitext
text/x-wiki
{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. -->
htv9bx6p31m48q39zcc87mucqafkwrv