Home
Random
Recent changes
Special pages
Community portal
Preferences
About Stockhub
Disclaimers
Search
User menu
Talk
Contributions
Create account
Log in
Editing
Module:Sandbox/trappist the monk/bob
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
p={} -- crude comparison between the various ISO 639 parts data and iana 2020-09-17 function p.comp () local iana = mw.loadData ('Module:Language/data/iana languages/sandbox'); local iso2 = mw.loadData ('Module:Language/data/ISO 639-2') local iso2B = mw.loadData ('Module:Language/data/ISO 639-2B') local iso3 = mw.loadData ('Module:Language/data/ISO 639-3'); local dep3 = mw.loadData ('Module:Language/data/ISO 639-3 (dep)'); local iso5 = mw.loadData ('Module:Language/data/ISO 639-5'); local syn = mw.loadData ('Module:Lang/ISO 639 synonyms'); local wp_lang = mw.loadData ('Module:Language/data/wp languages'); local override = mw.loadData ('Module:Lang/data/sandbox').override; local iso2_not_in_iana = {} -- ISO 639-1 synonymous codes not in iana local iso2B_not_in_iana = {} -- none of the ISO 639-2B codes in iana local iso3_not_in_iana = {} -- ISO 639-1 synonymous codes and hbs (Serbo Croatian) not in iana local dep3_not_in_iana = {} -- none of the deprecated ISO 639-3 codes in iana local iso5_not_in_iana = {} -- ISO 639-1 synonymous codes not in iana (bih) local wp_lang_not_in_override = {} local iana_not_in_iso3 = {} local iana_dep_not_in_dep3 = {} for k, v in pairs (iso2) do if not iana.active[k] then if not syn[k] then table.insert (iso2_not_in_iana, k); end end end for k, v in pairs (iso2B) do if not iana.active[k] then table.insert (iso2B_not_in_iana, k); end end for k, v in pairs (iso3) do if not iana.active[k] then if not syn[k] then table.insert (iso3_not_in_iana, k); end end end for k, v in pairs (dep3) do if not iana.deprecated[k] then table.insert (dep3_not_in_iana, k) end end for k, v in pairs (iana.deprecated) do if not dep3[k] then table.insert (iana_dep_not_in_dep3, k) end end for k, v in pairs (iso5) do if not iana.active[k] then table.insert (iso5_not_in_iana, k); end end for k, v in pairs (iana.active) do if (3 == k:len()) and not iso3[k] then table.insert (iana_not_in_iso3, k); end end for k, v in pairs (wp_lang) do k = k:lower() --error (mw.dumpObject (iana[k][1])) if not override[k] then if iana.active[k] then table.insert (wp_lang_not_in_override, table.concat ({ k, ': ', v[1], '; iana: ', iana.active[k][1], })); else table.insert (wp_lang_not_in_override, table.concat ({ k, ': ', v[1], '; not in iana', })); end -- table.insert (wp_lang_not_in_override, k); end end table.sort (wp_lang_not_in_override) table.sort (iso2B_not_in_iana) table.sort (iso3_not_in_iana) table.sort (dep3_not_in_iana) table.sort (iana_dep_not_in_dep3) return 'iso2_not_in_iana:\n' .. mw.dumpObject (iso2_not_in_iana) .. '\n\niso2B_not_in_iana:\n' .. mw.dumpObject (iso2B_not_in_iana) .. '\n\niso3_not_in_iana:\n' .. mw.dumpObject (iso3_not_in_iana) .. '\n\niso5_not_in_iana:\n' .. mw.dumpObject (iso5_not_in_iana) .. '\n\dep3_not_in_iana:\n' .. mw.dumpObject (dep3_not_in_iana) .. '\n\iana_dep_not_in_dep3:\n' .. mw.dumpObject (iana_dep_not_in_dep3) .. '\n\wp_lang_not_in_override:\n' .. mw.dumpObject (wp_lang_not_in_override) -- return #dep3_not_in_iana, 'dep3_not_in_iana:\n' .. mw.dumpObject (dep3_not_in_iana) -- return mw.dumpObject (iana_not_in_iso3) end ---------------------------------------------------- function p.test () local langs = mw.language.fetchLanguageNames('en', 'all'); local iws = mw.site.interwikiMap ('local'); local lang_not_in_iw = {}; local iw_is_lang = {} local iw_is_not_lang = {} local iw_is_extra_lang = {} for code, language in pairs (langs) do if not iws[code] then lang_not_in_iw[code] = language; end end for k, v in pairs (iws) do if langs[v["prefix"]] then iw_is_lang[v["prefix"]] = langs[v["prefix"]]; elseif v.isExtraLanguageLink then iw_is_extra_lang[v["prefix"]] = v['url']; else if v['url']:match ('%.wikipedia%.org') then iw_is_not_lang[v["prefix"]] = v['url']; end end end --[[ these are wikipedia language prefixes that seem to be redirects; these do not add to the languages link-list ["cmn"] = "https://zh.wikipedia.org/wiki/$1", -- Mandarin Chinese (ISO 639-3 code) ["cz"] = "https://cs.wikipedia.org/wiki/$1", -- Czech (ISO 3166 country code) ["dk"] = "https://da.wikipedia.org/wiki/$1", -- Danish (ISO 3166 country code) ["epo"] = "https://eo.wikipedia.org/wiki/$1", -- Esperanto (ISO 639-3 code) ["jp"] = "https://ja.wikipedia.org/wiki/$1", -- Japanese (ISO 3166 country code) ["minnan"] = "https://zh-min-nan.wikipedia.org/wiki/$1", ["zh-cfr"] = "https://zh-min-nan.wikipedia.org/wiki/$1", these are not wikipedia language codes: ["nost"] = "https://nostalgia.wikipedia.org/wiki/$1", ["nostalgia"] = "https://nostalgia.wikipedia.org/wiki/$1", ["sep11"] = "https://sep11.wikipedia.org/wiki/$1", ["tenwiki"] = "https://ten.wikipedia.org/wiki/$1", ["test2wiki"] = "https://test2.wikipedia.org/wiki/$1", ["testwiki"] = "https://test.wikipedia.org/wiki/$1", ["w"] = "https://en.wikipedia.org/wiki/$1", ["wg"] = "https://wg-en.wikipedia.org/wiki/$1", ["wikipedia"] = "https://en.wikipedia.org/wiki/$1", ["wikipediawikipedia"] = "https://en.wikipedia.org/wiki/Wikipedia:$1", ]] -- return mw.dumpObject (lang_not_in_iw); -- list of lang codes that are not prefixes (there are a lot) return mw.dumpObject (iw_is_lang); -- list of prefixes that match supported language codes (use this list) -- return mw.dumpObject (iw_is_not_lang); -- list of prefixes that have wikipedia.org url but prefix isn't found in the langs list -- return mw.dumpObject (iw_is_extra_lang); -- none are marked with ["isExtraLanguageLink"] = true, end function p.format (text) local str = text:gsub ('%s*=%s*', '='):gsub('%s*|%s*', ' |'); -- uniform spacing str = str:gsub ('accessdate', 'access-date'):gsub ('archivedate', 'archive-date'); -- hyphenated version str = str:gsub ('(%a)url', '%1-url'); -- archive, dead, chapter, etc urls to hyphenated versions str = str:gsub ('|[%a%-]+= +', ''); -- remove empty parameters str = str:gsub (' +|[%a%-]+=}', '}'); -- remove empty parameter at end of template str = str:gsub('{%s+', '{'):gsub('%s+}', '}'); -- no spacing return str; end function p.eq (frame) local ref = frame[1]; local test = frame[2]; if ref == test then return 'ref == test' end local msg; if ref:len() == test:len() then msg = 'same length; '; else msg = 'diff length; '; end local i=1; while (1) do local r, t; r = mw.ustring.codepoint(ref, i); t = mw.ustring.codepoint(test, i); if r == t then i=i+1; else return msg .. 'diff @ char: ' .. i .. '; ref: ' .. mw.ustring.char (r) .. '; test: ' .. mw.ustring.char (t); end end return i; end return p;
Summary:
Please note that all contributions to Stockhub may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Stockhub:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Template used on this page:
Module:Sandbox/trappist the monk/bob/doc
(
edit
)