Module:Lang: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
Improved error handling |
||
Line 2: | Line 2: | ||
function get_lang_file(lang_code) | function get_lang_file(lang_code) | ||
local | local file_name = string.format("Data:%s.json", lang_code) | ||
local success, data = pcall(mw.loadJsonData, file_name) | |||
if success then | |||
return data | |||
else | |||
return nil | |||
end | |||
end | end | ||
Line 13: | Line 15: | ||
local lang_code = frame.args[1] | local lang_code = frame.args[1] | ||
local key = frame.args[2] | local key = frame.args[2] | ||
local data = get_lang_file(lang_code) | local data = get_lang_file(lang_code) | ||
if (data == nil) then | |||
return string.format("Language code '%s' not found", lang_code) | |||
end | |||
local label = data[key] | local label = data[key] | ||
if (label == nil) then | if (label == nil) then |
Revision as of 12:27, 15 September 2024
Documentation for this module may be created at Module:Lang/doc
local p = {}
function get_lang_file(lang_code)
local file_name = string.format("Data:%s.json", lang_code)
local success, data = pcall(mw.loadJsonData, file_name)
if success then
return data
else
return nil
end
end
-- Get a localized string by the raw key
p.get_string = function(frame)
local lang_code = frame.args[1]
local key = frame.args[2]
local data = get_lang_file(lang_code)
if (data == nil) then
return string.format("Language code '%s' not found", lang_code)
end
local label = data[key]
if (label == nil) then
return string.format("Key '%s' not found", key)
end
return label
end
-- Search for a localized string using its English label
p.search_string = function(frame)
local lang_code = frame.args[1]
local attr_key = frame.args[2]
local data = get_lang_file(lang_code)
end
return p