From 8ea3b63499c4be348bbac9fad2cdb6f602d2cec6 Mon Sep 17 00:00:00 2001 From: Stephan Sundermann Date: Sun, 6 Jan 2013 13:35:11 +0100 Subject: [PATCH] Changed language file loading to Android resource format --- Vocaluxe/Base/CLanguage.cs | 12 ++++++------ VocaluxeLib/Menu/CHelper.cs | 27 +++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/Vocaluxe/Base/CLanguage.cs b/Vocaluxe/Base/CLanguage.cs index 6f682e09..a4d0d049 100644 --- a/Vocaluxe/Base/CLanguage.cs +++ b/Vocaluxe/Base/CLanguage.cs @@ -266,7 +266,7 @@ namespace Vocaluxe.Base if (loaded) { string value = string.Empty; - if (loaded == CHelper.GetValueFromXML("//root/Info/Name", navigator, ref value, value)) + if (loaded == CHelper.GetValueFromXML("//resources/string[@name='language']", navigator, ref value, value)) { int nr = GetLanguageNr(value); @@ -277,10 +277,10 @@ namespace Vocaluxe.Base lang.PartyModeID = PartyModeID; lang.Texts = new Hashtable(); - List texts = CHelper.GetValuesFromXML("Texts", navigator); + List texts = CHelper.GetAttributesFromXML("resources", navigator, "name"); for (int i = 0; i < texts.Count; i++) { - if (CHelper.GetValueFromXML("//root/Texts/" + texts[i], navigator, ref value, value)) + if (CHelper.GetValueFromXML("//resources/string[@name='" + texts[i] + "']", navigator, ref value, value)) { try { @@ -331,7 +331,7 @@ namespace Vocaluxe.Base if (loaded) { string value = string.Empty; - if (CHelper.GetValueFromXML("//root/Info/Name", navigator, ref value, value)) + if (CHelper.GetValueFromXML("//resources/string[@name='language']", navigator, ref value, value)) { lang.Name = value; @@ -341,10 +341,10 @@ namespace Vocaluxe.Base lang.Texts = new Hashtable(); lang.PartyModeTexts = new List(); - List texts = CHelper.GetValuesFromXML("Texts", navigator); + List texts = CHelper.GetAttributesFromXML("resources", navigator, "name"); for (int i = 0; i < texts.Count; i++) { - if (CHelper.GetValueFromXML("//root/Texts/" + texts[i], navigator, ref value, value)) + if (CHelper.GetValueFromXML("//resources/string[@name='" + texts[i] + "']", navigator, ref value, value)) { try { diff --git a/VocaluxeLib/Menu/CHelper.cs b/VocaluxeLib/Menu/CHelper.cs index ad430fba..3a02d77b 100644 --- a/VocaluxeLib/Menu/CHelper.cs +++ b/VocaluxeLib/Menu/CHelper.cs @@ -232,6 +232,33 @@ namespace Vocaluxe.Menu return values; } + public static List GetAttributesFromXML(string Cast, XPathNavigator Navigator, string attribute) + { + List values = new List(); + + try + { + Navigator.MoveToRoot(); + Navigator.MoveToFirstChild(); + + while (Navigator.Name != Cast) + Navigator.MoveToNext(); + + Navigator.MoveToFirstChild(); + + values.Add(Navigator.LocalName); + while (Navigator.MoveToNext()) + values.Add(Navigator.GetAttribute(attribute, "")); + + } + catch (Exception) + { + + } + + return values; + } + public static bool GetInnerValuesFromXML(string Cast, XPathNavigator Navigator, ref List Values) { try