Module:I18n

local p = {}

local utilsString = require("Module:UtilsString") local utilsTable = require("Module:UtilsTable")

local strings = {}

function p.loadStrings(tbl) strings = utilsTable.merge({}, strings, tbl) end

function p.Message(frame) local count = frame.args[2] if count == "plural" then count = 2 elseif count then count = tonumber(count) end return p.getString(frame.args[1], {		count = count	}) end

function p.getString(path, vars) local code = mw.getContentLanguage:getCode local localeStrings = strings[code] local subkeys = utilsString.split(path, "%.") local result = localeStrings for _, subkey in ipairs(subkeys) do		result = result[subkey] end if type(result) == "table" then if vars and vars.count and vars.count > 1 then result = result[2] else result = result[1] end end return utilsString.interpolate(result, vars) end

function p.plural(path) return p.getString(path, {count = 2}) end

p.loadStrings({	en = {		files = {			types = {				artwork = {"Artwork", "Artwork"},				map = {"Map", "Maps"},				model = {"Model", "Models"},				screenshot = {"Screenshot", "Screenshots"},				sprite = {"Sprite", "Sprites"},				render = {"Render", "Renders"}			}		}	} })

return p