- lang = lang and lang:gsub("_", "-") or ""
- if force or not loaded[lang] or not loaded[lang][file] then
- local f = lmo.open(i18ndir .. file .. "." .. lang .. ".lmo")
- if f then
- if not table[lang] then
- table[lang] = { f }
- setmetatable(table[lang], {
- __index = function(tbl, key)
- for i = 1, #tbl do
- local s = rawget(tbl, i):lookup(key)
- if s then return s end
- end
- end
- })
- else
- table[lang][#table[lang]+1] = f
- end
-
- loaded[lang] = loaded[lang] or {}
- loaded[lang][file] = true
- return true
- else
- return false
- end
- else
- return true
- end