Module:Lang: Difference between revisions

Jump to navigation Jump to search
added replacement and binding list in case of mismatched keys
optimized keybind replacement
Line 162: Line 162:
      
      
     -- List for keybinds with mismatched names. Replace with the correct name under "citadel_keybind_[key]" in Data:Lang
     -- List for keybinds with mismatched names. Replace with the correct name under "citadel_keybind_[key]" in Data:Lang
     KEYBINDS = {
     keybinds = {
         MoveForward = "forward",
         MoveForward = "forward",
         AltCast = "alt_cast",
         AltCast = "alt_cast",
Line 169: Line 169:
     -- 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. check if it has a replacement key first
        -- look up key with Module:Lang. check if it has a replacement key first
         local translated
         local replacement = keybinds[key] or lower_key
    if replacement ~= nil then
        local translated = frame:preprocess('{{#invoke:Lang|get_string|citadel_keybind_'.. replacement ..'}}')
    translated = frame:preprocess('{{#invoke:Lang|get_string|citadel_keybind_'.. replacement ..'}}')
  if translated ~= nil and translated ~= '' then
        return "'''" .. translated .. "'''"
        return "'''" .. translated .. "'''"
    else
        else
    translated = frame:preprocess('{{#invoke:Lang|get_string|citadel_keybind_'.. lower_key ..'}}')
            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>'
      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)
end)