မေႃႇၵျူး:languages: လွင်ႈပႅၵ်ႇပိူင်ႈ ၼႂ်းၵႄႈ လွင်ႈၶူၼ်ႉၶႆႈ

Content deleted Content added
mNo edit summary
m Reverted edits by Ninjastrikers (talk) to last revision by Saimawnkham
ထႅဝ် 1:
local export = {}
 
local find = mw.ustring.find
 
--[=[ This function checks for things that could plausibly be a language code:
Line 21 ⟶ 23:
end
-- [[Wp/shn/ Can't use string.find"%l" because languagethat codeswould onlyinclude containall ASCII.Unicode
lowercase letters; language codes only use ASCII. | Can't use "%l" because that would include all Unicode
lowercase letters; language codes only use ASCII. ]]
local lower = "[a-z]"
if not langCode or langCode == "" then
error("The " .. param .. " (" .. (text or "language code") .. ") is missing.", 2)
elseif langCode:find(langCode, "^%l%l%l" .. lower .. lower .. lower .. "?$")
or find(langCode, "^" .. lower .. lower .. lower
or langCode:find("^%l%l%l%-%l%l%l$")
.. "%-" .. lower .. lower .. lower .. "$")
or langCode:find("^%l%l%l%-%l%l%l%-%l%l%l$") then
or find(langCode, "^" .. lower .. lower .. lower
.. "%-" .. lower .. lower .. lower
.. "%-" .. lower .. lower .. lower .. "$") then
error("The language code \"" .. langCode .. "\" is not valid.", 2)
else
Line 41 ⟶ 50:
 
function Language:getCanonicalName()
return self._rawData[1] or self._rawData.canonicalName
end
 
Line 68 ⟶ 77:
return self._wikimediaLanguageObjects
end
 
 
function Language:getWikipediaArticle()
ifreturn self._rawData.wikipedia_article thenor mw.ustring.gsub(self:getCategoryName(), "Creole language", "Creole")
return self._rawData.wikipedia_article
elseif self._wikipedia_article then
return self._wikipedia_article
elseif self:getWikidataItem() and mw.wikibase then
self._wikipedia_article = mw.wikibase.sitelink(self:getWikidataItem(), 'enwiki')
end
if not self._wikipedia_article then
self._wikipedia_article = mw.ustring.gsub(self:getCategoryName(), "Creole language", "Creole")
end
return self._wikipedia_article
end
 
 
 
function Language:makeWikipediaLink()
Line 87 ⟶ 89:
end
 
function Language:getWikidataItem()
return self._rawData[2] or self._rawData.wikidata_item
end
 
function Language:getScripts()
Line 109 ⟶ 108:
 
function Language:getFamily()
if self._rawData.family and not self._familyObject then
return self._familyObject = require("Module:families").getByCode(self._rawData.family)
end
local family = self._rawData[3] or self._rawData.family
if family then
self._familyObject = require("Module:families").getByCode(family)
end
Line 189 ⟶ 183:
 
function Language:getCategoryName()
local name = self:getCanonicalName()._rawData.canonicalName
-- If the name already has "language" in it, don't add it.
Line 195 ⟶ 189:
return name
else
return name .. " ၽႃႇသႃႇၶေႃႈၵႂၢမ်း"
end
end
Line 261 ⟶ 255:
local hyphens_regex = "^[-־ـ*]+(.)"
name = mw.ustring.gsub(name, hyphens_regex, "%1")
-- Remove parentheses, as long as they are either preceded or followed by something
name = mw.ustring.gsub(name, "(.)[()]+", "%1")
name = mw.ustring.gsub(name, "[()]+(.)", "%1")
-- If there are language-specific rules to generate the key, use those
Line 271 ⟶ 269:
name = require("Module:" .. self._rawData.sort_key).makeSortKey(name, self:getCode(), sc and sc:getCode())
end
-- Remove parentheses, as long as they are either preceded or followed by something
name = mw.ustring.gsub(name, "(.)[()]+", "%1")
name = mw.ustring.gsub(name, "[()]+(.)", "%1")
if has_dotted_undotted_i[self:getCode()] then
Line 332 ⟶ 326:
code = self._code,
entryNamePatterns = entryNamePatterns,
family = self._rawData[3] or self._rawData.family,
otherNames = self:getOtherNames(),
scripts = self._rawData.scripts,
type = self:getType(),
wikimediaLanguages = self._rawData.wikimedia_codes,
wikidataItem = self:getWikidataItem(),
}
Line 354 ⟶ 347:
 
function export.getDataModuleName(code)
if code:find("^%l%l[a-z][a-z]$") then
return "languages/data2"
elseif code:find("^%l%l%l[a-z][a-z][a-z]$") then
local prefix = code:sub(1, 1)
return "languages/data3/" .. prefix
elseif code:find("^[%la-z-]+$") then
return "languages/datax"
else
ဢဝ်ၶိုၼ်းမႃးတီႈ "https://shn.wiktionary.org/wiki/မေႃႇၵျူး:languages"