aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Localization/LocalizedStrings.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-02-05 00:29:37 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-02-05 00:29:37 -0500
commit7d415fc2fd8c76ba25c2bdb40347d1e0d17ad99f (patch)
tree448ecc653015896c5237f54b82072ce77956bf20 /MediaBrowser.Controller/Localization/LocalizedStrings.cs
parent1f1852f3cbe2a7899aea0d306a77d2eedb0434fc (diff)
some initial work on cloud sync
Diffstat (limited to 'MediaBrowser.Controller/Localization/LocalizedStrings.cs')
-rw-r--r--MediaBrowser.Controller/Localization/LocalizedStrings.cs166
1 files changed, 0 insertions, 166 deletions
diff --git a/MediaBrowser.Controller/Localization/LocalizedStrings.cs b/MediaBrowser.Controller/Localization/LocalizedStrings.cs
deleted file mode 100644
index 94ac90271..000000000
--- a/MediaBrowser.Controller/Localization/LocalizedStrings.cs
+++ /dev/null
@@ -1,166 +0,0 @@
-using System;
-using System.Collections.Concurrent;
-using System.Collections.Generic;
-using System.Globalization;
-using System.IO;
-using System.Linq;
-using System.Reflection;
-
-namespace MediaBrowser.Controller.Localization
-{
- /// <summary>
- /// Class LocalizedStrings
- /// </summary>
- public class LocalizedStrings
- {
- public static IServerApplicationPaths ApplicationPaths;
-
- /// <summary>
- /// Gets the list of Localized string files
- /// </summary>
- /// <value>The string files.</value>
- public static IEnumerable<LocalizedStringData> StringFiles { get; set; }
-
- /// <summary>
- /// The base prefix
- /// </summary>
- public const string BasePrefix = "base-";
- /// <summary>
- /// The local strings
- /// </summary>
- protected ConcurrentDictionary<string, string> LocalStrings = new ConcurrentDictionary<string, string>();
- /// <summary>
- /// The _instance
- /// </summary>
- private static LocalizedStrings _instance;
-
- private readonly IServerApplicationPaths _appPaths;
-
- /// <summary>
- /// Gets the instance.
- /// </summary>
- /// <value>The instance.</value>
- public static LocalizedStrings Instance { get { return _instance ?? (_instance = new LocalizedStrings(ApplicationPaths)); } }
-
- /// <summary>
- /// Initializes a new instance of the <see cref="LocalizedStrings" /> class.
- /// </summary>
- public LocalizedStrings(IServerApplicationPaths appPaths)
- {
- _appPaths = appPaths;
-
- foreach (var stringObject in StringFiles)
- {
- AddStringData(LoadFromFile(GetFileName(stringObject),stringObject.GetType()));
- }
- }
-
- /// <summary>
- /// Gets the name of the file.
- /// </summary>
- /// <param name="stringObject">The string object.</param>
- /// <returns>System.String.</returns>
- protected string GetFileName(LocalizedStringData stringObject)
- {
- var path = _appPaths.LocalizationPath;
- var name = Path.Combine(path, stringObject.Prefix + "strings-" + CultureInfo.CurrentCulture + ".xml");
- if (File.Exists(name))
- {
- return name;
- }
-
- name = Path.Combine(path, stringObject.Prefix + "strings-" + CultureInfo.CurrentCulture.Parent + ".xml");
- if (File.Exists(name))
- {
- return name;
- }
-
- //just return default
- return Path.Combine(path, stringObject.Prefix + "strings-en.xml");
- }
-
- /// <summary>
- /// Loads from file.
- /// </summary>
- /// <param name="file">The file.</param>
- /// <param name="t">The t.</param>
- /// <returns>LocalizedStringData.</returns>
- protected LocalizedStringData LoadFromFile(string file, Type t)
- {
- return new BaseStrings {FileName = file};
- //var xs = new XmlSerializer(t);
- //var strings = (LocalizedStringData)Activator.CreateInstance(t);
- //strings.FileName = file;
- //Logger.Info("Using String Data from {0}", file);
- //if (File.Exists(file))
- //{
- // using (var fs = new FileStream(file, FileMode.Open, FileAccess.Read))
- // {
- // strings = (LocalizedStringData)xs.Deserialize(fs);
- // }
- //}
- //else
- //{
- // strings.Save(); //brand new - save it
- //}
-
- //if (strings.ThisVersion != strings.Version && file.ToLower().Contains("-en.xml"))
- //{
- // //only re-save the english version as that is the one defined internally
- // strings = new BaseStrings {FileName = file};
- // strings.Save();
- //}
- //return strings;
-
- }
-
- /// <summary>
- /// Adds the string data.
- /// </summary>
- /// <param name="stringData">The string data.</param>
- public void AddStringData(object stringData )
- {
- //translate our object definition into a dictionary for lookups
- // and a reverse dictionary so we can lookup keys by value
- foreach (var field in stringData.GetType().GetFields().Where(f => f != null && f.FieldType == typeof(string)))
- {
- string value;
-
- try
- {
- value = field.GetValue(stringData) as string;
- }
- catch (TargetException)
- {
- //Logger.ErrorException("Error getting value for field: {0}", ex, field.Name);
- continue;
- }
- catch (FieldAccessException)
- {
- //Logger.ErrorException("Error getting value for field: {0}", ex, field.Name);
- continue;
- }
- catch (NotSupportedException)
- {
- //Logger.ErrorException("Error getting value for field: {0}", ex, field.Name);
- continue;
- }
-
- LocalStrings.TryAdd(field.Name, value);
- }
- }
-
- /// <summary>
- /// Gets the string.
- /// </summary>
- /// <param name="key">The key.</param>
- /// <returns>System.String.</returns>
- public string GetString(string key)
- {
- string value;
-
- LocalStrings.TryGetValue(key, out value);
- return value;
- }
- }
-}