Module:Lang/name to tag
From Zoophilia Wiki
Jump to navigationJump to search
This module creates language name (key) to language tag (value) support tables used by Module:Lang:
rev_lang_name_table
– data from Module:Language/name/data particularly thelang
table which is assembled from data in Module:Language/data/wp languages, Module:Language/data/ISO 639-3, and Module:Language/data/iana languages.rev_lang_data
– data from Module:Lang/data particularly theoverride
table.
These reversed data tables are loaded and used by _tag_from_name()
.
--[[--------------------------< N A M E - T O - T A G D A T A >---------------------------------------------- Creates name-to-tag tables from the data in Module:Language/name/data (from Module:Language/data/iana languages, Module:Language/data/ISO 639-3, Module:Language/data/wp languages) and Module:Lang/data so that templates can get language tags from the same names as the {{lang}} templates get from those tags. The conversion prefers ISO 639-1 codes. ]] local rev_lang_name_table = {}; -- same as Module:Language/name/data except reversed so language name is key and language tag is value local rev_lang_data = {}; -- same as Module:Lang/data except reversed local raw_data = mw.loadData ('Module:Language/name/data') -- load the data from the standard source module for tag, name_table in pairs (raw_data.lang) do local name = name_table[1]; -- there can be multiple names, always take the first name name = name:gsub ('%s+%b()', ''):lower(); -- remove parenthetical disambiguators or qualifiers from names that have them if rev_lang_name_table[name] then -- if already set if 2 == tag:len() then -- is this is an ISO 639-1 code? rev_lang_name_table[name] = tag; -- yes, overwrite ISO 639-3 language name (key) and tag (value) pair in the output table end else -- here when not yet set rev_lang_name_table[name] = tag; -- add language name (key) and tag (value) pair to the output table end end raw_data = mw.loadData ('Module:Lang/data') -- load the data from the override source module for tag, name_table in pairs (raw_data.override) do local name = name_table[1]; -- there can be multiple names, always take the first name name = name:gsub ('%s+%b()', ''):lower(); -- remove parenthetical disambiguators or qualifiers from names that have them rev_lang_data[name] = tag; -- add language name (key) and tag (value) pair to the output table end raw_data = {}; -- init back to an empty table? --[[--------------------------< E X P O R T E D T A B L E S >------------------------------------------------ ]] return { rev_lang_name_table = rev_lang_name_table, rev_lang_data = rev_lang_data, }