luci-base: handle missing translations in template engine
authorJo-Philipp Wich <jow@openwrt.org>
Sat, 10 Jan 2015 20:19:54 +0000 (21:19 +0100)
committerJo-Philipp Wich <jow@openwrt.org>
Sat, 10 Jan 2015 20:19:54 +0000 (21:19 +0100)
Previously the template engine did not interpolate translation macros if no
translation catalogue could be loaded due to a missing i18n directory.

Change the offending code to return the original string in any error case.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
modules/luci-base/src/template_utils.c

index 80542bd..6c4baa6 100644 (file)
@@ -477,18 +477,8 @@ void luastr_translate(struct template_buffer *out, const char *s, unsigned int l
        char *tr;
        int trlen;
 
        char *tr;
        int trlen;
 
-       switch (lmo_translate(s, l, &tr, &trlen))
-       {
-               case 0:
-                       luastr_escape(out, tr, trlen, escape_xml);
-                       break;
-
-               case -1:
-                       luastr_escape(out, s, l, escape_xml);
-                       break;
-
-               default:
-                       /* no catalog loaded */
-                       break;
-       }
+       if (!lmo_translate(s, l, &tr, &trlen))
+               luastr_escape(out, tr, trlen, escape_xml);
+       else
+               luastr_escape(out, s, l, escape_xml);
 }
 }