From: hjhun <36876573+hjhun@users.noreply.github.com> Date: Thu, 25 May 2023 06:17:59 +0000 (+0900) Subject: [NUI.Gadget] Modify NUIGadgetResourceManager (#5302) X-Git-Tag: accepted/tizen/unified/20231205.024657~307 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2181ab62ea7355a47952e2787968e78573e6762f;p=platform%2Fcore%2Fcsapi%2Ftizenfx.git [NUI.Gadget] Modify NUIGadgetResourceManager (#5302) If getting string is failed, the resource manager should try to get string from the default satelite assembly. Signed-off-by: Hwankyu Jhun Co-authored-by: pjh9216 --- diff --git a/src/Tizen.NUI.Gadget/Tizen.NUI/NUIGadgetResourceManager.cs b/src/Tizen.NUI.Gadget/Tizen.NUI/NUIGadgetResourceManager.cs index b2728a6..d9e3470 100755 --- a/src/Tizen.NUI.Gadget/Tizen.NUI/NUIGadgetResourceManager.cs +++ b/src/Tizen.NUI.Gadget/Tizen.NUI/NUIGadgetResourceManager.cs @@ -20,6 +20,7 @@ using System.Collections.Generic; using System.Reflection; using System.IO; using System.ComponentModel; +using System.Resources; namespace Tizen.NUI { @@ -88,50 +89,49 @@ 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)) @@ -146,20 +146,11 @@ namespace Tizen.NUI 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; } } } @@ -179,5 +170,36 @@ namespace Tizen.NUI 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; + } } }