|
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.
|