diff options
Diffstat (limited to 'modules/luci-base/luasrc/i18n.lua')
-rw-r--r-- | modules/luci-base/luasrc/i18n.lua | 62 |
1 files changed, 31 insertions, 31 deletions
diff --git a/modules/luci-base/luasrc/i18n.lua b/modules/luci-base/luasrc/i18n.lua index bcb16d5c04..323912b650 100644 --- a/modules/luci-base/luasrc/i18n.lua +++ b/modules/luci-base/luasrc/i18n.lua @@ -1,37 +1,43 @@ -- Copyright 2008 Steven Barth <steven@midlink.org> -- Licensed to the public under the Apache License 2.0. -module("luci.i18n", package.seeall) -require("luci.util") +local tparser = require "luci.template.parser" +local util = require "luci.util" +local tostring = tostring -local tparser = require "luci.template.parser" +module "luci.i18n" -table = {} -i18ndir = luci.util.libpath() .. "/i18n/" -loaded = {} -context = luci.util.threadlocal() +i18ndir = util.libpath() .. "/i18n/" +context = util.threadlocal() default = "en" -function clear() -end -function load(file, lang, force) -end +function setlanguage(lang) + local code, subcode = lang:match("^([A-Za-z][A-Za-z])[%-_]([A-Za-z][A-Za-z])$") + if not (code and subcode) then + subcode = lang:match("^([A-Za-z][A-Za-z])$") + if not subcode then + return nil + end + end --- Alternatively load the translation of the fallback language. -function loadc(file, force) -end + context.parent = code and code:lower() + context.lang = context.parent and context.parent.."-"..subcode:lower() or subcode:lower() -function setlanguage(lang) - context.lang = lang:gsub("_", "-") - context.parent = (context.lang:match("^([a-z][a-z])_")) - if not tparser.load_catalog(context.lang, i18ndir) then - if context.parent then - tparser.load_catalog(context.parent, i18ndir) + if tparser.load_catalog(context.lang, i18ndir) and + tparser.change_catalog(context.lang) + then + return context.lang + + elseif context.parent then + if tparser.load_catalog(context.parent, i18ndir) and + tparser.change_catalog(context.parent) + then return context.parent end end - return context.lang + + return nil end function translate(key) @@ -42,14 +48,8 @@ function translatef(key, ...) return tostring(translate(key)):format(...) end --- and ensure that the returned value is a Lua string value. --- This is the same as calling <code>tostring(translate(...))</code> -function string(key) - return tostring(translate(key)) -end - --- Ensure that the returned value is a Lua string value. --- This is the same as calling <code>tostring(translatef(...))</code> -function stringf(key, ...) - return tostring(translate(key)):format(...) +function dump() + local rv = {} + tparser.get_translations(function(k, v) rv[k] = v end) + return rv end |