Module:Language info

-- We only invoke this module once per page, therefore we do not need to use mw.loadData -- This cache is set in Module:Language_info/data -- Note: -- If a template that's being used by large number of page changed, it will causing all of these page's cache to be invalidated and requires regeneration. -- This may crash wiki platform and cause visitor get 5xx error. So we use luacache to decouple data template and template which uses it. -- By doing this, editing on data template won't cause massive pages to be regenerated. local cache = require 'mw.ext.LuaCache' local info = cache.get(':_language_info:data') if not info then require('Module:Language_info/data').purge info = cache.get(':_language_info:data') or {} end

-- temporary fix local langsOnWiki = { ["bg"] = true, ["cs"] = true, ["da"] = true, ["el"] = true, ["fi"] = true, ["id"] = true, ["it"] = true, ["ja"] = true, ["lt"] = true, ["lv"] = true, ["nl"] = true, ["no"] = true, ["ro"] = true, ["sk"] = true, ["sv"] = true, ["th"] = true, ["tr"] = true, ["vi"] = true, ["yue"] = true, }

return { interwiki_links = function(frame) local key = frame.args['en'] local lang = frame.args['lang'] local str = '' -- local str = ' languageinfo: en: '..key..' lang: '..lang..' ' -- debug code for k,v in pairs(info) do			if k ~= lang and not(langsOnWiki[k]) then -- skip language on wiki if v[key] then str = str ..  .. k .. ':'.. v[key] ..  end end end return str end, }