มอดูล:families
ไปยังการนำทาง
ไปยังการค้นหา
- มอดูลนี้ขาดหน้าย่อยแสดงเอกสารการใช้งาน กรุณาสร้างขึ้น
- ลิงก์ที่เป็นประโยชน์: รายชื่อหน้าย่อย • การรวมมา • มอดูลทดสอบ
local export = {}
local Family = {}
function Family:getCode()
return self._code
end
function Family:getCanonicalName()
return self._rawData.canonicalName
end
--function Family:getAllNames()
-- return self._rawData.names
--end
function Family:getOtherNames()
return self._rawData.otherNames or {}
end
function Family:getType()
return "family"
end
function Family:getFamily()
if self._rawData.family and not self._familyObject then
self._familyObject = export.getByCode(self._rawData.family)
end
return self._familyObject
end
function Family:getProtoLanguage()
if not self._protoLanguage then
self._protoLanguage = require("Module:languages").getByCode(self._rawData.protoLanguage or self._code .. "-pro")
end
return self._protoLanguage
end
function Family:getCategoryName()
local name = self._rawData.canonicalName
-- พิจารณาร่มเพิ่ม เพื่อจะได้รู้ว่าเป็นตระกูลภาษาหรือกลุ่มภาษา
local family = self._rawData.family
-- If the name already has "languages" (ตระกูลภาษา/กลุ่มภาษา) in it, don't add it.
if name:find("^ตระกูลภาษา") or name:find("^กลุ่มภาษา") then
return name
else
if family == nil then
-- บนสุด
return "ตระกูลภาษา" .. name
else
if family == 'qfa-not' or family == 'qfa-iso' then
-- ไม่ใช่ภาษา
return name
else
return "กลุ่มภาษา" .. name
end
end
end
end
function Family:toJSON()
local ret = {
canonicalName = self:getCanonicalName(),
categoryName = self:getCategoryName(),
code = self._code,
family = self._rawData.family,
otherNames = self:getOtherNames(),
type = self:getType(),
}
return require("Module:JSON").toJSON(ret)
end
function Family:getRawData()
return self._rawData
end
Family.__index = Family
function export.makeObject(code, data)
return data and setmetatable({ _rawData = data, _code = code }, Family) or nil
end
function export.getByCode(code)
if code == 'kdo' then
require('Module:debug').track('Kordofanian')
end
return export.makeObject(code, mw.loadData("Module:families/data")[code])
end
function export.getByCanonicalName(name)
local code = mw.loadData("Module:families/by name")[name]
if not code then
return nil
end
return export.makeObject(code, mw.loadData("Module:families/data")[code])
end
return export