imported>Gonnym No edit summary |
(No difference)
|
Latest revision as of 23:57, 22 September 2020
Documentation for this module may be created at Module:Sandbox/Gonnym/sometest2/doc
local p = {}
local data_entry = {
iso_number = {},
primary_name = "",
alt_names = {},
language_prefix = {},
local_override = nil, -- value of boolean when set
article_override = nil, -- value of string when set
deprecated = false,
}
local iso_data_sources = {
["iso_639_1"] = mw.loadData("Module:Language/data/ISO 639-1"),
["iso_639_2"] = mw.loadData("Module:Language/data/ISO 639-2"),
["iso_639_2B"] = mw.loadData("Module:Language/data/ISO 639-2B"),
["iso_639_3"] = mw.loadData("Module:Language/data/ISO 639-3"),
["iso_639_5"] = mw.loadData("Module:Language/data/ISO 639-5"),
}
function p.create_full_language_table()
local language_table = {}
local override_list = mw.loadData("Module:Language/data/ISO 639 override")
for data_source_name, data_source_data in pairs(iso_data_sources) do
local iso_number = data_source_name:sub(9)
for language_code, language_names in pairs(data_source_data) do
local current_entry = language_table[language_code]
if not current_entry then
current_entry = mw.clone(data_entry)
end
-- Set ISO number.
table.insert(current_entry.iso_number, iso_number)
-- Set all names to alt_names.
for _, language_name in pairs(language_names) do
table.insert(current_entry.alt_names, language_name)
end
local override_iso_table = override_list["override_" .. iso_number]
if override_iso_table then
local override_name_value = override_iso_table[language_code]
if override_name_value then
-- Set override name as primary.
current_entry.primary_name = override_name_value[1]
current_entry.local_override = true
else
-- Set the fisrt name in the alt_names list as the primary.
-- TODO: Verify that this is the correct method.
current_entry.primary_name = current_entry.alt_names[1]
end
else
-- Set the fisrt name in the alt_names list as the primary.
-- TODO: Verify that this is the correct method.
--current_entry.primary_name = current_entry.alt_names[1]
end
local override_article_table = override_list.article_name
if override_article_table then
local override_article_value = override_article_table[language_code]
if override_article_value then
current_entry.article_override = override_article_value
else
-- TODO: should we set here all articles?
end
end
-- TODO: get deprecated list
-- TODO: get iana variants
-- TODO: should we set categories here?
language_table[language_code] = current_entry
end
end
return mw.dumpObject(language_table)
end
return p