Module:Lang: Difference between revisions

changed bindings to look up binding key in Data:Lang
added replacement and binding list in case of mismatched keys
Line 160: Line 160:
    end
    end
end)
end)
   
    -- List for keybinds with mismatched names. Replace with the correct name under "citadel_keybind_[key]" in Data:Lang
    KEYBINDS = {
        MoveForward = "forward",
        AltCast = "alt_cast",
        }
      
      
     -- Process citadel_binding/citadel_keybind tags to replace with keybind strings/templates
     -- Process citadel_binding/citadel_keybind tags to replace with keybind strings/templates
text = text:gsub("{g:citadel_binding:'(.-)'}", function(key)
text = text:gsub("{g:citadel_binding:'(.-)'}", function(key)
local replacement = KEYBINDS[key]
  -- convert key to lowercase
  -- convert key to lowercase
         local lower_key = key:lower()
         local lower_key = key:lower()
    -- look up key with Module:Lang
    -- look up key with Module:Lang. check if it has a replacement key first
         local translated = frame:preprocess('{{#invoke:Lang|get_string|citadel_keybind_'.. lower_key ..'}}')
         local translated
    if replacement ~= nil then
    if translated ~= nil and translated ~= '' then
    translated = frame:preprocess('{{#invoke:Lang|get_string|citadel_keybind_'.. replacement ..'}}')
        return "'''" .. translated .. "'''"
        return "'''" .. translated .. "'''"
    else
    else
            return '<span style="color:red;font-weight:bold;border-bottom:1px dotted red;" title="Missing keybind - Add an exception for \''..key..'\' in [Module:Lang]">['..key..']</span>'
    translated = frame:preprocess('{{#invoke:Lang|get_string|citadel_keybind_'.. lower_key ..'}}')
    end
      if translated ~= nil and translated ~= '' then
            return "'''" .. translated .. "'''"
        else
            return '<span style="color:red;font-weight:bold;border-bottom:1px dotted red;" title="Missing keybind - Add \''..key..'\' to local replacements in [Module:Lang]">['..key..']</span>'
        end
        end
end)
end)