summaryrefslogtreecommitdiffhomepage
path: root/libs/web/luasrc
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2009-05-28 00:24:04 +0000
committerJo-Philipp Wich <jow@openwrt.org>2009-05-28 00:24:04 +0000
commit2bd86ec208521b48a79710d4be798a5ac25ebb4e (patch)
tree3d099cb3959e5602a4eb438934baca648764c4e8 /libs/web/luasrc
parentf20034cd8251ec676d24365c6d1eb1bcfd440028 (diff)
libs/web: if current language is a regional dialect, fall back to generic language, then english (e.g. pt_BR -> pt -> en)
Diffstat (limited to 'libs/web/luasrc')
-rw-r--r--libs/web/luasrc/i18n.lua5
1 files changed, 4 insertions, 1 deletions
diff --git a/libs/web/luasrc/i18n.lua b/libs/web/luasrc/i18n.lua
index 4db9c3343..082a60078 100644
--- a/libs/web/luasrc/i18n.lua
+++ b/libs/web/luasrc/i18n.lua
@@ -71,13 +71,15 @@ end
-- @param force Force reload even if already loaded (optional)
function loadc(file, force)
load(file, default, force)
+ if context.parent then load(file, context.parent, force) end
return load(file, context.lang, force)
end
--- Set the context default translation language.
-- @param lang Two-letter language code
function setlanguage(lang)
- context.lang = lang:gsub("_", "-")
+ context.lang = lang:gsub("_", "-")
+ context.parent = (context.lang:match("^([a-z][a-z])_"))
end
--- Return the translated value for a specific translation key.
@@ -86,6 +88,7 @@ end
-- @return Translated string
function translate(key, def)
return (table[context.lang] and table[context.lang][key])
+ or (table[context.parent] and table[context.parent][key])
or (table[default] and table[default][key])
or def
end