Module:Icon: Difference between revisionsGive feedback
m Change internal render to a local function |
Added localized icon names based on page language |
||
| Line 3: | Line 3: | ||
local iconData = mw.loadJsonData("Data:ResourceLookup.json") | local iconData = mw.loadJsonData("Data:ResourceLookup.json") | ||
local lang_codes = mw.loadJsonData("Data:LangCodes.json") | local lang_codes = mw.loadJsonData("Data:LangCodes.json") | ||
local lang_module = require('Module:Lang') | |||
local cachedLangCode | local cachedLangCode | ||
local linkOverrides = { | local linkOverrides = { | ||
| Line 49: | Line 50: | ||
} | } | ||
local function | local function getLangCode() | ||
if | if cachedLangCode then | ||
return cachedLangCode | return cachedLangCode | ||
end | end | ||
| Line 57: | Line 58: | ||
local subpageLang = title:match("/([^/]+)$") | local subpageLang = title:match("/([^/]+)$") | ||
local langCode = (subpageLang and lang_codes[subpageLang]) and subpageLang or "en" | local langCode = (subpageLang and lang_codes[subpageLang]) and subpageLang or "en" | ||
cachedLangCode = langCode | cachedLangCode = langCode | ||
return langCode | |||
return langCode | |||
end | end | ||
| Line 86: | Line 76: | ||
end | end | ||
return linkOverrides[iconInfo.name] or iconInfo.name | return linkOverrides[iconInfo.name] or iconInfo.name | ||
end | |||
local function getTranslatedName(iconInfo, langCode) | |||
if langCode == "en" or not iconInfo.key then | |||
return iconInfo.name | |||
end | |||
local translatedName = lang_module.get_string(iconInfo.key, langCode, iconInfo.name) | |||
if type(translatedName) == "string" then | |||
translatedName = translatedName:gsub("<[^>]+>", "") | |||
end | |||
return translatedName or iconInfo.name | |||
end | end | ||
| Line 146: | Line 150: | ||
end | end | ||
local langCode | local langCode = getLangCode() | ||
local displayName = customText | local displayName = customText | ||
if displayName == | if displayName == name then | ||
displayName = getTranslatedName(iconInfo, langCode) | |||
end | end | ||