using System.Reflection;
using System.IO;
using System.ComponentModel;
+using System.Resources;
namespace Tizen.NUI
{
cultureInfo = CultureInfo.CurrentUICulture;
}
- var resourceManager = GetResourceManager(cultureInfo.Name);
- if (resourceManager == null)
+ string result = string.Empty;
+ try
{
- resourceManager = GetResourceManager("default");
+ var resourceManager = GetResourceManager(cultureInfo.Name);
if (resourceManager != null)
{
-#pragma warning disable CA1304
- return resourceManager.GetString(name);
-#pragma warning restore CA1304
+ result = resourceManager.GetString(name, cultureInfo);
}
- if (cultureInfo.Name != "en")
+ if (string.IsNullOrEmpty(result))
{
- resourceManager = GetResourceManager("en");
+ resourceManager = GetResourceManager("default");
if (resourceManager != null)
{
#pragma warning disable CA1304
- return resourceManager.GetString(name);
+ result = resourceManager.GetString(name);
#pragma warning restore CA1304
}
}
-
- return string.Empty;
+ }
+ catch (InvalidOperationException e)
+ {
+ Log.Error("InvalidOperationException occurs. " + e.Message);
+ }
+ catch (MissingManifestResourceException e)
+ {
+ Log.Error("MissingManifestResourceException occurs. " + e.Message);
+ }
+ catch (MissingSatelliteAssemblyException e)
+ {
+ Log.Error("MissingSateliteAssemblyException occurs. " + e.Message);
}
- return resourceManager.GetString(name, cultureInfo);
+ return result;
}
- private global::System.Resources.ResourceManager GetResourceManager(string locale)
+ private global::System.Resources.ResourceManager GetResourceManager(string path, string baseName)
{
- global::System.Resources.ResourceManager resourceManager;
- if (_resourceMap.TryGetValue(locale, out resourceManager))
- {
- return resourceManager;
- }
+ global::System.Resources.ResourceManager resourceManager = null;
- string path = string.Empty;
- if (locale == "default")
- {
- path = _resourcePath + _resourceDll;
- }
- else
+ if (string.IsNullOrEmpty(path))
{
- path = _resourcePath + locale + "/" + _resourceDll;
+ return null;
}
if (!File.Exists(path))
Assembly assembly = Assembly.Load(File.ReadAllBytes(path));
if (assembly != null)
{
- string baseName = _resourceClassName;
- if (locale != "default")
- {
- baseName += "." + locale;
- }
-
resourceManager = new global::System.Resources.ResourceManager(baseName, assembly);
if (resourceManager == null)
{
Log.Error("Failed to create ResourceManager");
- }
- else
- {
- _resourceMap.Add(locale, resourceManager);
+ return null;
}
}
}
return resourceManager;
}
+
+
+ private global::System.Resources.ResourceManager GetResourceManager(string locale)
+ {
+ global::System.Resources.ResourceManager resourceManager;
+
+ if (_resourceMap.TryGetValue(locale, out resourceManager))
+ {
+ return resourceManager;
+ }
+
+ string baseName = _resourceClassName;
+ string path;
+ if (locale == "default")
+ {
+ path = _resourcePath + _resourceDll;
+ }
+ else
+ {
+ path = _resourcePath + locale + "/" + _resourceDll;
+ baseName += "." + locale;
+ }
+
+ resourceManager = GetResourceManager(path, baseName);
+ if (resourceManager != null)
+ {
+ _resourceMap.Add(locale, resourceManager);
+ }
+
+ return resourceManager;
+ }
}
}