libs/web: if current language is a regional dialect, fall back to generic language...
authorJo-Philipp Wich <jow@openwrt.org>
Thu, 28 May 2009 00:24:04 +0000 (00:24 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Thu, 28 May 2009 00:24:04 +0000 (00:24 +0000)
libs/web/luasrc/i18n.lua

index 4db9c33..082a600 100644 (file)
@@ -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