From: <du...@us...> - 2007-03-31 08:54:58
|
Revision: 265 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=265&view=rev Author: dukus Date: 2007-03-31 01:54:56 -0700 (Sat, 31 Mar 2007) Log Message: ----------- language helper compatibilities fix for latest SVN Modified Paths: -------------- trunk/plugins/mpinstaler/MPInstaler/Language dialog.cs trunk/plugins/mpinstaler/MPInstaler/MPpackageStruct.cs Modified: trunk/plugins/mpinstaler/MPInstaler/Language dialog.cs =================================================================== --- trunk/plugins/mpinstaler/MPInstaler/Language dialog.cs 2007-03-31 06:54:43 UTC (rev 264) +++ trunk/plugins/mpinstaler/MPInstaler/Language dialog.cs 2007-03-31 08:54:56 UTC (rev 265) @@ -8,6 +8,7 @@ using System.IO; using System.Globalization; using MediaPortal.Configuration; +using MediaPortal.GUI.Library; namespace MPInstaler @@ -25,51 +26,28 @@ deflang.Load("English"); lang.Load("English"); } + private void LoadLanguages() { - // Get system language - string strLongLanguage = CultureInfo.CurrentCulture.EnglishName; - int iTrimIndex = strLongLanguage.IndexOf(" ", 0, strLongLanguage.Length); - string strShortLanguage = strLongLanguage.Substring(0, iTrimIndex); - bool bExactLanguageFound = false; - if (Directory.Exists(LanguageDirectory)) + //_availableLanguages = new Dictionary<string, CultureInfo>(); + + DirectoryInfo dir = new DirectoryInfo(LanguageDirectory); + foreach (FileInfo file in dir.GetFiles("strings_*.xml")) { - string[] folders = Directory.GetDirectories(LanguageDirectory, "*.*"); + int pos = file.Name.IndexOf('_') + 1; + string cultName = file.Name.Substring(pos, file.Name.Length - file.Extension.Length - pos); - foreach (string folder in folders) + try { - string fileName = folder.Substring(folder.LastIndexOf(@"\") + 1); - - // - // Exclude cvs folder - // - if (fileName.ToLower() != "cvs") - { - if (fileName.Length > 0) - { - fileName = fileName.Substring(0, 1).ToUpper() + fileName.Substring(1); - languageComboBox.Items.Add(fileName); - languageComboBox2.Items.Add(fileName); - - // Check language file to user region language - if (fileName.ToLower() == strLongLanguage.ToLower()) - { - languageComboBox2.Text = fileName; - bExactLanguageFound = true; - } - else if (!bExactLanguageFound && (fileName.ToLower() == strShortLanguage.ToLower())) - { - languageComboBox2.Text = fileName; - } - } - } + CultureInfo cultInfo = new CultureInfo(cultName); + languageComboBox.Items.Add(cultInfo.EnglishName); + languageComboBox2.Items.Add(cultInfo.EnglishName); } - } + catch (ArgumentException) + { + } - if (languageComboBox2.Text == "") - { - languageComboBox2.Text = "English"; } } Modified: trunk/plugins/mpinstaler/MPInstaler/MPpackageStruct.cs =================================================================== --- trunk/plugins/mpinstaler/MPInstaler/MPpackageStruct.cs 2007-03-31 06:54:43 UTC (rev 264) +++ trunk/plugins/mpinstaler/MPInstaler/MPpackageStruct.cs 2007-03-31 08:54:56 UTC (rev 265) @@ -6,6 +6,7 @@ using System.Net; using System.Xml; using System.Drawing; +using System.Globalization; using ICSharpCode.SharpZipLib.Zip; using System.Windows.Forms; using MediaPortal.Configuration; @@ -463,14 +464,40 @@ public class MPLanguageHelper { public List<LanguageString> Language; - public string iChars; + public string iChars; + public string iName; public string fileName=string.Empty; public bool isLoaded=false; + private Dictionary<String, String> _availableLanguages; Encoding docencoding = null ; public MPLanguageHelper() { Language = new List<LanguageString>(); + Load_Names(); } + + public void Load_Names() + { + + _availableLanguages = new Dictionary<string, string>(); + + DirectoryInfo dir = new DirectoryInfo(Config.GetFolder(Config.Dir.Language)); + foreach (FileInfo file in dir.GetFiles("strings_*.xml")) + { + int pos = file.Name.IndexOf('_') + 1; + string cultName = file.Name.Substring(pos, file.Name.Length - file.Extension.Length - pos); + + try + { + CultureInfo cultInfo = new CultureInfo(cultName); + _availableLanguages.Add(cultInfo.EnglishName, cultName); + } + catch (ArgumentException) + { + } + + } + } public void Add(LanguageString ls) { this.Language.Sort(new LanguageStringComparer()); @@ -494,8 +521,11 @@ } public void Load(string lg) { - isLoaded = LoadMap(Config.GetFile(Config.Dir.Language, lg + @"\strings.xml")); - fileName = Config.GetFile(Config.Dir.Language, lg + @"\strings.xml"); + if (_availableLanguages.ContainsKey(lg)) + { + isLoaded = LoadMap(Config.GetFile(Config.Dir.Language, "strings_" + _availableLanguages[lg] + ".xml")); + fileName = Config.GetFile(Config.Dir.Language, "strings_" + _availableLanguages[lg] + ".xml"); + } } public void Save() { @@ -511,25 +541,31 @@ { this.Language.Sort(new LanguageStringComparer()); XmlTextWriter writer = null; - writer = new XmlTextWriter(strFileName, docencoding); + writer = new XmlTextWriter(strFileName, Encoding.UTF8); writer.Formatting = Formatting.Indented; + writer.IndentChar=' '; writer.WriteStartDocument(); - writer.WriteStartElement("strings"); + writer.WriteStartElement("Language"); + if (!String.IsNullOrEmpty(this.iName)) + writer.WriteAttributeString("name", this.iName.Trim()); if(!String.IsNullOrEmpty(this.iChars)) - writer.WriteElementString("characters", this.iChars.Trim()); + writer.WriteAttributeString("characters", this.iChars.Trim()); + writer.WriteStartElement("Section"); + writer.WriteAttributeString("name", "unmapped"); foreach (LanguageString ls in this.Language) { - writer.WriteStartElement("string"); + writer.WriteStartElement("String"); + writer.WriteAttributeString("id", ls.dwCode); if (!String.IsNullOrEmpty(ls.prefix)) - writer.WriteAttributeString("Prefix",ls.prefix); + writer.WriteAttributeString("prefix",ls.prefix); if (!String.IsNullOrEmpty(ls.sufix)) - writer.WriteAttributeString("Suffix", ls.sufix); - writer.WriteElementString("id",ls.dwCode); - writer.WriteElementString("value", ls.mapSting); + writer.WriteAttributeString("suffix", ls.sufix); + writer.WriteValue(ls.mapSting); writer.WriteEndElement(); } writer.WriteEndElement(); + writer.WriteEndElement(); writer.WriteEndDocument(); writer.Close(); } @@ -555,25 +591,25 @@ doc.Load(reader); if (doc.DocumentElement == null) return false; string strRoot = doc.DocumentElement.Name; - if (strRoot != "strings") return false; - XmlNode nodeChars = doc.DocumentElement.SelectSingleNode("/strings/characters"); + if (strRoot != "Language") return false; + //XmlNode nodeChars = doc.DocumentElement.SelectSingleNode("Language"); + XmlNode nodeChars = doc.DocumentElement; if (nodeChars != null) { - iChars = nodeChars.InnerText; + iChars = nodeChars.Attributes["characters"].Value; + iName = nodeChars.Attributes["name"].Value; } - XmlNodeList list = doc.DocumentElement.SelectNodes("/strings/string"); + XmlNodeList list = doc.DocumentElement.SelectNodes("Section/String"); foreach (XmlNode node in list) { - //StringBuilder builder = new StringBuilder(); - LanguageString ls = new LanguageString(); - ls.dwCode = node.SelectSingleNode("id").InnerText; - - XmlAttribute prefix = node.Attributes["Prefix"]; + LanguageString ls = new LanguageString(); + ls.dwCode = node.Attributes["id"].Value; + XmlAttribute prefix = node.Attributes["prefix"]; if (prefix != null) ls.prefix = prefix.Value; else ls.prefix = String.Empty; - ls.mapSting=node.SelectSingleNode("value").InnerText; - XmlAttribute suffix = node.Attributes["Suffix"]; + ls.mapSting=node.InnerText; + XmlAttribute suffix = node.Attributes["suffix"]; if (suffix != null) ls.sufix = suffix.Value; else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |