Make listbox translation work

Change-Id: I446f4499a43e6348a2b95846f3e5ea86967abbdc
diff --git a/gui/listbox.cpp b/gui/listbox.cpp
index eeddff9..b0d2731 100644
--- a/gui/listbox.cpp
+++ b/gui/listbox.cpp
@@ -36,7 +36,7 @@
 	xml_node<>* child;
 	mIconSelected = mIconUnselected = NULL;
 	mUpdate = 0;
-	isCheckList = false;
+	isCheckList = isTextParsed = false;
 
 	// Get the icons, if any
 	child = FindNode(node, "icon");
@@ -87,7 +87,8 @@
 		attr = child->first_attribute("name");
 		if (!attr)
 			continue;
-		item.displayName = gui_parse_text(attr->value());
+		// We will parse display names when we get page focus to ensure that translating takes place
+		item.displayName = attr->value();
 		item.variableValue = gui_parse_text(child->value());
 		item.selected = (child->value() == currentValue);
 		item.action = NULL;
@@ -191,6 +192,13 @@
 {
 	GUIScrollList::SetPageFocus(inFocus);
 	if (inFocus) {
+		if (!isTextParsed) {
+			isTextParsed = true;
+			for (size_t i = 0; i < mListItems.size(); i++) {
+				ListItem& item = mListItems[i];
+				item.displayName = gui_parse_text(item.displayName);
+			}
+		}
 		DataManager::GetValue(mVariable, currentValue);
 		NotifyVarChange(mVariable, currentValue);
 	}