Module:Lang: Difference between revisions

Jump to navigation Jump to search
Sur (talk | contribs)
m get_string now handles both internal calls and external invokes, and non-1st args all named
Sur (talk | contribs)
m fallback param added to get_string
Line 29: Line 29:


-- Get a localized string by the raw key
-- Get a localized string by the raw key
p.get_string = function(key, lang_code_override, remove_var_index, upper_lower)
p.get_string = function(key, lang_code_override, fallback_str, remove_var_index, upper_lower)
-- If called internally (direct Lua call), args will be passed directly.
-- If called internally (direct Lua call), args will be passed directly.
     -- If called from wikitext, `key` will be the `frame` object, and we get args from `frame.args`.
     -- If called from wikitext, `key` will be the `frame` object, and we get args from `frame.args`.
local lang_code_override
local lang_code_override
local fallback_str
local remove_var_index
local remove_var_index
local upper_lower  
local upper_lower  
Line 41: Line 42:
         key = frame.args[1]
         key = frame.args[1]
         lang_code_override = frame.args["lang_code_override"]
         lang_code_override = frame.args["lang_code_override"]
        fallback_str = frame.args["fallback_str"]
         remove_var_index = frame.args["remove_var_index"]
         remove_var_index = frame.args["remove_var_index"]
         upper_lower = frame.args["upper_lower"]
         upper_lower = frame.args["upper_lower"]
Line 59: Line 61:
-- Localize
-- Localize
local label = data[KEY_OVERRIDES[key] or key]
local label = data[KEY_OVERRIDES[key] or key]
if (label == nil) then  
if (label == nil) then
-- Apply fallback
if (fallback_str == 'en') then
return p.get_string(key, lang_code_override, nil, remove_var_index, upper_lower)
elseif fallback_str ~= nil then
return fallback_str
end
return ''
return ''
end
end