diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocket.java b/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocket.java
index 46b0859..cdd84ce 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocket.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocket.java
@@ -46,6 +46,7 @@
 
 import java.io.IOException;
 import java.util.HashMap;
+import java.util.Locale;
 import java.util.Map;
 
 /**
@@ -71,6 +72,7 @@
 
     private static final String UBERLION = "uberlion";
     private static final String LION = "lion";
+    private static final String LOCALE = "locale";
 
     private static final String TOPO = "topo";
 
@@ -432,6 +434,7 @@
 
         ObjectNode payload = objectNode();
         payload.set(LION, lion);
+        payload.put(LOCALE, Locale.getDefault().toString());
         sendMessage(UBERLION, payload);
     }
 }
diff --git a/web/gui/src/main/webapp/app/fw/util/lion.js b/web/gui/src/main/webapp/app/fw/util/lion.js
index f30f157..ec3531b 100644
--- a/web/gui/src/main/webapp/app/fw/util/lion.js
+++ b/web/gui/src/main/webapp/app/fw/util/lion.js
@@ -32,8 +32,18 @@
 
     // handler for uberlion event..
     function uberlion(data) {
-        $log.debug('LION service: uber-lion bundle received:', data);
         ubercache = data.lion;
+
+        $log.info('LION service: Locale... [' + data.locale + ']');
+        $log.info('LION service: Bundles installed...');
+
+        for (var p in ubercache) {
+            if (ubercache.hasOwnProperty(p)) {
+                $log.info('            :=> ', p);
+            }
+        }
+
+        $log.debug('LION service: uber-lion bundle received:', data);
     }
 
     function init() {
