Մոդուլ:lang
Documentation for this module may be created at Մոդուլ:lang/doc
local export = {}
local lang_objects = mw.loadData("Modul:lang/data")
local function ucFirst(str)
return mw.ustring.gsub(str, "^%l", mw.ustring.upper)
end
function export.getCode(code_or_name)
local lowercase_code_or_name = mw.ustring.lower(code_or_name)
local lang_obj = lang_objects[lowercase_code_or_name] or {code = "xx"}
return lang_obj.code
end
function export.getLanguage(code_or_name)
local lowercase_code_or_name = mw.ustring.lower(code_or_name)
local lang_obj = lang_objects[lowercase_code_or_name] or {name = "okänt språk"}
local name = lang_obj.name
return name
end
function export.getLanguageUCFirst(code_or_name)
return ucFirst(export.getLanguage(code_or_name))
end
function export.getSortRules(code_or_name)
local lowercase_code_or_name = mw.ustring.lower(code_or_name)
local lang_obj = lang_objects[lowercase_code_or_name] or {sort_rules = {}}
local sort_rules = lang_obj.sort_rules or {}
return sort_rules
end
--temp function for {{kategorilistenavigering}} until it has its own module
function export.getSortRulesAsString(frame)
local code_or_name = frame.args[1]
local sort_rules = {}
for k,v in ipairs(export.getSortRules(code_or_name)) do
sort_rules[#sort_rules + 1] = v
end
return table.concat(sort_rules, ",")
end
function export.getScriptCode(code_or_name)
local lowercase_code_or_name = mw.ustring.lower(code_or_name)
local lang_obj = lang_objects[lowercase_code_or_name] or {script = ""}
local script = lang_obj.script or ""
return script
end
function export.hasLanguage(code_or_name)
local lowercase_code_or_name = mw.ustring.lower(code_or_name)
local lang_obj = lang_objects[lowercase_code_or_name] or {code = "xx"}
local has_language = (lang_obj.code ~= "xx")
return has_language
end
function export.getEntryName(lang_code_or_name, text)
local lowercase_code_or_name = mw.ustring.lower(lang_code_or_name)
local lang_obj = lang_objects[lowercase_code_or_name] or {code = "xx"}
local entry_name_rules = lang_obj.entry_name or {from = {}, to = {}}
for i, from in ipairs(entry_name_rules.from) do
local to = entry_name_rules.to[i] or ""
text = mw.ustring.gsub(text, from, to)
end
return text
end
return export