Эта страница недоступна на других языках.
local languages = mw.loadData("Module:Languages/data") local p = {} -- вспомогательная функция, удаляет пробелы local function trimstr(s) return (s:gsub("^%s*(.-)%s*$", "%1")) end -- получает код языка, возвращает ссылку и нормализованный код языка (или пустые строки) local function get_lang_data(code) local l = languages[code]; if l ~= nil then return "[[" .. l[2] .. "|" .. l[1] .. "]]", code elseif code ~= "" then return code, "" else return "", "" end end function p.getRefHtmlFrame( frame ) return p.getRefHtml( trimstr( frame.args[1] ) ) end function p.getRefHtml( wikidataItemId ) local codeByItemId = mw.loadData( "Module:Wikidata/Language-codes" ) local code = codeByItemId[ wikidataItemId ]; if code == nil then mw.log( 'Language code not found for ' .. wikidataItemId ) return "" else local l = languages[code]; if l == nil then mw.log( 'Language description for code ' .. code .. ' not found' ) return "" else return '.. l[ 2 ] .. '" style="font-size:85%; cursor:help; color:#888;">(' .. l[ 1 ] .. ')' end end end -- принимает zh|我|tt|мин, возвращает список через запятую function p.list(frame) local curr_lang = nil local result = nil for n, v in frame:argumentPairs() do local trimmed = trimstr(v) if curr_lang == nil then if trimmed ~= '' then -- если язык пропущен, оставим прошлый curr_lang = trimstr(v) end else if trimmed ~= '' then local link, lang_code = get_lang_data(curr_lang) local list_item if lang_code ~= '' then list_item = link .. " " .. trimmed .. "" else list_item = link .. " " .. trimmed .. "" end if result == nil then result = list_item else result = result .. ", " .. list_item end else -- Пустой текст — значит, текущий язык совпадает с следующим local link, lang_code = get_lang_data(curr_lang) if result == nil then result = link else result = result .. ", " .. link end end curr_lang = nil end end -- просто #invoke:Languages|list|yue должно возвращать всё же ссылку без текста if curr_lang ~= nil then local link, lang_code = get_lang_data(curr_lang) if result ~= nil then result = result .. ", " .. link else result = link end end return result end return p