မေႃႇၵျူး:languages: လွင်ႈပႅၵ်ႇပိူင်ႈ ၼႂ်းၵႄႈ လွင်ႈၶူၼ်ႉၶႆႈ
Content deleted Content added
mNo edit summary |
mNo edit summary |
||
ထႅဝ် 1:
local export = {}
--[=[ This function checks for things that could plausibly be a language code:
Line 23 ⟶ 21:
end
--
if not langCode or langCode == "" then
error("The " .. param .. " (" .. (text or "language code") .. ") is missing.", 2)
elseif langCode:find(
or langCode:find("^%l%l%l%-%l%l%l$")
or langCode:find("^%l%l%l%-%l%l%l%-%l%l%l$") then
error("The language code \"" .. langCode .. "\" is not valid.", 2)
else
Line 50 ⟶ 41:
function Language:getCanonicalName()
return self._rawData[1] or self._rawData.canonicalName
end
Line 77 ⟶ 68:
return self._wikimediaLanguageObjects
end
function Language:getWikipediaArticle()
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 89 ⟶ 87:
end
function Language:getWikidataItem()
return self._rawData[2] or self._rawData.wikidata_item
end
function Language:getScripts()
Line 108 ⟶ 109:
function Language:getFamily()
if
return self._familyObject
end
local family = self._rawData[3] or self._rawData.family
if family then
self._familyObject = require("Module:families").getByCode(family)
end
Line 183 ⟶ 189:
function Language:getCategoryName()
local name = self
-- If the name already has "language" in it, don't add it.
Line 189 ⟶ 195:
return name
else
return name .. " ၽႃႇသႃႇၶေႃႈၵႂၢမ်း"
end
end
Line 255 ⟶ 261:
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 269 ⟶ 271:
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 326 ⟶ 332:
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 347 ⟶ 354:
function export.getDataModuleName(code)
if code:find("^
return "languages/data2"
elseif code:find("^
local prefix = code:sub(1, 1)
return "languages/data3/" .. prefix
elseif code:find("^[
return "languages/datax"
else
|