diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/MainNavResource.java b/web/gui/src/main/java/org/onosproject/ui/impl/MainNavResource.java
index a8fed5f..cbc173f 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/MainNavResource.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/MainNavResource.java
@@ -19,6 +19,7 @@
 import org.onosproject.ui.UiExtension;
 import org.onosproject.ui.UiExtensionService;
 import org.onosproject.ui.UiView;
+import org.onosproject.ui.lion.LionBundle;
 
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
@@ -81,6 +82,7 @@
     // Produces an input stream of nav item injections from all extensions.
     private InputStream includeNavItems(UiExtensionService service) {
         List<UiExtension> extensions = service.getExtensions();
+        LionBundle navLion = service.getNavLionBundle();
         StringBuilder sb = new StringBuilder("\n");
 
         for (UiView.Category cat : UiView.Category.values()) {
@@ -90,7 +92,7 @@
 
             List<UiView> catViews = getViewsForCat(extensions, cat);
             if (!catViews.isEmpty()) {
-                addCatHeader(sb, cat);
+                addCatHeader(sb, cat, navLion);
                 addCatItems(sb, catViews);
             }
         }
@@ -109,8 +111,10 @@
         return views;
     }
 
-    private void addCatHeader(StringBuilder sb, UiView.Category cat) {
-        sb.append(String.format(HDR_FORMAT, cat.label()));
+    private void addCatHeader(StringBuilder sb, UiView.Category cat,
+                              LionBundle navLion) {
+        String key = "cat_" + cat.name().toLowerCase();
+        sb.append(String.format(HDR_FORMAT, navLion.getValue(key)));
     }
 
     private void addCatItems(StringBuilder sb, List<UiView> catViews) {
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java b/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java
index 7909498..7895751 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java
@@ -61,6 +61,7 @@
 import org.onosproject.ui.impl.topo.Topo2TrafficMessageHandler;
 import org.onosproject.ui.impl.topo.Topo2ViewMessageHandler;
 import org.onosproject.ui.impl.topo.Traffic2Overlay;
+import org.onosproject.ui.lion.LionBundle;
 import org.onosproject.ui.lion.LionUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -160,25 +161,43 @@
             Executors.newSingleThreadExecutor(
                     Tools.groupedThreads("onos/ui-ext-manager", "event-handler", log));
 
-    // Creates core UI extension
+    private LionBundle navLion;
+
+
+    private String lionNavText(String id) {
+        return navLion.getValue("nav_item_" + id);
+    }
+
+    private UiView mkView(UiView.Category cat, String id, String iconId) {
+        return new UiView(cat, id, lionNavText(id), iconId);
+    }
+
     private UiExtension createCoreExtension() {
+        List<LionBundle> lionBundles = generateBundles(LION_BASE, LION_TAGS);
+
+        navLion = lionBundles.stream()
+                .filter(f -> f.id().equals("core.fw.Nav")).findFirst().get();
+
         List<UiView> coreViews = of(
-                new UiView(PLATFORM, "app", "Applications", "nav_apps"),
-                new UiView(PLATFORM, "settings", "Settings", "nav_settings"),
-                new UiView(PLATFORM, "cluster", "Cluster Nodes", "nav_cluster"),
-                new UiView(PLATFORM, "processor", "Packet Processors", "nav_processors"),
-                new UiView(PLATFORM, "partition", "Partitions", "nav_partitions"),
-                new UiView(NETWORK, "topo", "Topology", "nav_topo"),
-                new UiView(NETWORK, "topo2", "Topology 2", "nav_topo2"),
-                new UiView(NETWORK, "device", "Devices", "nav_devs"),
+                mkView(PLATFORM, "app", "nav_apps"),
+                mkView(PLATFORM, "settings", "nav_settings"),
+                mkView(PLATFORM, "cluster", "nav_cluster"),
+                mkView(PLATFORM, "processor", "nav_processors"),
+                mkView(PLATFORM, "partition", "nav_partitions"),
+
+                mkView(NETWORK, "topo", "nav_topo"),
+                mkView(NETWORK, "topo2", "nav_topo2"),
+                mkView(NETWORK, "device", "nav_devs"),
+
                 new UiViewHidden("flow"),
                 new UiViewHidden("port"),
                 new UiViewHidden("group"),
                 new UiViewHidden("meter"),
-                new UiView(NETWORK, "link", "Links", "nav_links"),
-                new UiView(NETWORK, "host", "Hosts", "nav_hosts"),
-                new UiView(NETWORK, "intent", "Intents", "nav_intents"),
-                new UiView(NETWORK, "tunnel", "Tunnels", "nav_tunnels")
+
+                mkView(NETWORK, "link", "nav_links"),
+                mkView(NETWORK, "host", "nav_hosts"),
+                mkView(NETWORK, "intent", "nav_intents"),
+                mkView(NETWORK, "tunnel", "nav_tunnels")
         );
 
         UiMessageHandlerFactory messageHandlerFactory =
@@ -235,7 +254,7 @@
                 );
 
         return new UiExtension.Builder(CL, coreViews)
-                .lionBundles(generateBundles(LION_BASE, LION_TAGS))
+                .lionBundles(lionBundles)
                 .messageHandlerFactory(messageHandlerFactory)
                 .topoOverlayFactory(topoOverlayFactory)
                 .topo2OverlayFactory(topo2OverlayFactory)
@@ -317,6 +336,11 @@
     }
 
     @Override
+    public synchronized LionBundle getNavLionBundle() {
+        return navLion;
+    }
+
+    @Override
     public Set<String> getUserNames() {
         ImmutableSet.Builder<String> builder = ImmutableSet.builder();
         prefs.keySet().forEach(k -> builder.add(userName(k)));
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Device.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Device.properties
new file mode 100644
index 0000000..b9080bb
--- /dev/null
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Device.properties
@@ -0,0 +1,27 @@
+#
+# Copyright 2017-present Open Networking Laboratory
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+
+# ==========================================
+# |  WIP -- Not Yet Ready For Translation  |
+# ==========================================
+
+# Text that appears in the navigation panel
+nav_item_device=Devices
+
+# View title
+title_devices=Devices
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Host.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Host.properties
new file mode 100644
index 0000000..b81faca
--- /dev/null
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Host.properties
@@ -0,0 +1,27 @@
+#
+# Copyright 2017-present Open Networking Laboratory
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+
+# ==========================================
+# |  WIP -- Not Yet Ready For Translation  |
+# ==========================================
+
+# Text that appears in the navigation panel
+nav_item_host=Hosts
+
+# View title
+title_hosts=Hosts
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Intent.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Intent.properties
new file mode 100644
index 0000000..a06c2f9c
--- /dev/null
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Intent.properties
@@ -0,0 +1,27 @@
+#
+# Copyright 2017-present Open Networking Laboratory
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+
+# ==========================================
+# |  WIP -- Not Yet Ready For Translation  |
+# ==========================================
+
+# Text that appears in the navigation panel
+nav_item_intent=Intents
+
+# View title
+title_intents=Intents
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Link.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Link.properties
new file mode 100644
index 0000000..75f14b7
--- /dev/null
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Link.properties
@@ -0,0 +1,27 @@
+#
+# Copyright 2017-present Open Networking Laboratory
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+
+# ==========================================
+# |  WIP -- Not Yet Ready For Translation  |
+# ==========================================
+
+# Text that appears in the navigation panel
+nav_item_link=Links
+
+# View title
+title_links=Links
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Partition.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Partition.properties
new file mode 100644
index 0000000..00a1efd
--- /dev/null
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Partition.properties
@@ -0,0 +1,27 @@
+#
+# Copyright 2017-present Open Networking Laboratory
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+
+# ==========================================
+# |  WIP -- Not Yet Ready For Translation  |
+# ==========================================
+
+# Text that appears in the navigation panel
+nav_item_partition=Partitions
+
+# View title
+title_partitions=Partitions
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Processor.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Processor.properties
new file mode 100644
index 0000000..d6fca03
--- /dev/null
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Processor.properties
@@ -0,0 +1,27 @@
+#
+# Copyright 2017-present Open Networking Laboratory
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+
+# ==========================================
+# |  WIP -- Not Yet Ready For Translation  |
+# ==========================================
+
+# Text that appears in the navigation panel
+nav_item_processor=Packet Processors
+
+# View title
+title_packet_processors=Packet Processors
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Settings.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Settings.properties
new file mode 100644
index 0000000..5873422
--- /dev/null
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Settings.properties
@@ -0,0 +1,28 @@
+#
+# Copyright 2017-present Open Networking Laboratory
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+
+# ==========================================
+# |  WIP -- Not Yet Ready For Translation  |
+# ==========================================
+
+# Text that appears in the navigation panel
+nav_item_settings=Settings
+
+# View title
+title_component_settings=Component Settings
+
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Topo.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Topo.properties
new file mode 100644
index 0000000..21861cc
--- /dev/null
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Topo.properties
@@ -0,0 +1,25 @@
+#
+# Copyright 2017-present Open Networking Laboratory
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+
+# ==========================================
+# |  WIP -- Not Yet Ready For Translation  |
+# ==========================================
+
+# Text that appears in the navigation panel
+nav_item_topo=Topology
+
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Topo2.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Topo2.properties
new file mode 100644
index 0000000..678cf5d
--- /dev/null
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Topo2.properties
@@ -0,0 +1,24 @@
+#
+# Copyright 2017-present Open Networking Laboratory
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+
+# ==========================================
+# |  WIP -- Not Yet Ready For Translation  |
+# ==========================================
+
+# Text that appears in the navigation panel
+nav_item_topo2=Topology 2
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Tunnel.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Tunnel.properties
new file mode 100644
index 0000000..e3dcc36
--- /dev/null
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Tunnel.properties
@@ -0,0 +1,27 @@
+#
+# Copyright 2017-present Open Networking Laboratory
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+
+# ==========================================
+# |  WIP -- Not Yet Ready For Translation  |
+# ==========================================
+
+# Text that appears in the navigation panel
+nav_item_tunnel=Tunnels
+
+# View title
+title_tunnels=Tunnels
