mirror of
https://github.com/openwrt/luci.git
synced 2025-02-25 16:53:54 +00:00
Move classes required for Lua runtime support into a new `luci-lua-runtime` package. Also replace the `luci.http` and `luci.util` classes in `luci-lib-base` with stubbed versions interacting with the ucode based runtime environment. Finally merge `luci-base-ucode` into the remainders of `luci-base`. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
56 lines
1.2 KiB
Lua
56 lines
1.2 KiB
Lua
-- Copyright 2008 Steven Barth <steven@midlink.org>
|
|
-- Licensed to the public under the Apache License 2.0.
|
|
|
|
local tparser = require "luci.template.parser"
|
|
local util = require "luci.util"
|
|
local tostring = tostring
|
|
|
|
module "luci.i18n"
|
|
|
|
i18ndir = util.libpath() .. "/i18n/"
|
|
context = util.threadlocal()
|
|
default = "en"
|
|
|
|
|
|
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
|
|
|
|
context.parent = code and code:lower()
|
|
context.lang = context.parent and context.parent.."-"..subcode:lower() or subcode:lower()
|
|
|
|
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 nil
|
|
end
|
|
|
|
function translate(key)
|
|
return tparser.translate(key) or key
|
|
end
|
|
|
|
function translatef(key, ...)
|
|
return tostring(translate(key)):format(...)
|
|
end
|
|
|
|
function dump()
|
|
local rv = {}
|
|
tparser.get_translations(function(k, v) rv[k] = v end)
|
|
return rv
|
|
end
|