Refactor LocalizableComponent
This commit is contained in:
		| @ -97,12 +97,9 @@ | ||||
|             _iconSpan = $"<span class=\"oi oi-{IconName}\"></span> "; | ||||
|         } | ||||
|  | ||||
|         if (IsLocalizable) | ||||
|         { | ||||
|             Text = Localize(nameof(Text), Text); | ||||
|             Header = Localize(nameof(Header), Header); | ||||
|             Message = Localize(nameof(Message), Message); | ||||
|         } | ||||
|         Text = Localize(nameof(Text), Text); | ||||
|         Header = Localize(nameof(Header), Header); | ||||
|         Message = Localize(nameof(Message), Message); | ||||
|  | ||||
|         _authorized = IsAuthorized(); | ||||
|     } | ||||
|  | ||||
| @ -95,11 +95,7 @@ | ||||
|  | ||||
|         } | ||||
|  | ||||
|         if (IsLocalizable) | ||||
|         { | ||||
|             _text = Localize(nameof(Text), _text); | ||||
|         } | ||||
|  | ||||
|         _text = Localize(nameof(Text), _text); | ||||
|         _url = EditUrl(Action, _parameters); | ||||
|         _authorized = IsAuthorized(); | ||||
|     } | ||||
|  | ||||
| @ -45,11 +45,11 @@ else | ||||
|  | ||||
|         if (IsLocalizable) | ||||
|         { | ||||
|             var value = Localize("Text"); | ||||
|             var key = $"{ResourceKey}.Text"; | ||||
|             var value = Localize(key); | ||||
|             if (!value.Equals(key)) | ||||
|             { | ||||
|                 ChildContent =@<text>@Localize("Text")</text>; | ||||
|                 ChildContent =@<text>@value</text>; | ||||
|             } | ||||
|  | ||||
|             HelpText = Localize(nameof(HelpText), HelpText); | ||||
|  | ||||
| @ -15,27 +15,22 @@ namespace Oqtane.Modules.Controls | ||||
|  | ||||
|         protected bool IsLocalizable { get; private set; } | ||||
|  | ||||
|         protected string Localize(string name) | ||||
|         { | ||||
|             var key = $"{ResourceKey}.{name}"; | ||||
|         protected string Localize(string name) => _localizer?[name] ?? name; | ||||
|  | ||||
|             // TODO: we should have a ShowMissingResourceKeys option which developers/translators can enable to find missing translations which would display the key rather than the name     | ||||
|         protected string Localize(string propertyName, string propertyValue) | ||||
|         { | ||||
|             if (!IsLocalizable) | ||||
|             { | ||||
|                 return name; | ||||
|                 return propertyValue; | ||||
|             } | ||||
|  | ||||
|             return _localizer?[key] ?? name; | ||||
|         } | ||||
|  | ||||
|         protected string Localize(string name, string defaultValue) | ||||
|         { | ||||
|             var key = $"{ResourceKey}.{name}"; | ||||
|             var value = Localize(name); | ||||
|             var key = $"{ResourceKey}.{propertyName}"; | ||||
|             var value = Localize(key); | ||||
|  | ||||
|             if (value == key) | ||||
|             { | ||||
|                 return defaultValue; | ||||
|                 // Returns default property value (English version) instead of ResourceKey.PropertyName | ||||
|                 return propertyValue; | ||||
|             } | ||||
|             else | ||||
|             { | ||||
| @ -45,26 +40,21 @@ namespace Oqtane.Modules.Controls | ||||
|  | ||||
|         protected override void OnParametersSet() | ||||
|         { | ||||
|             if (!String.IsNullOrEmpty(ResourceKey)) | ||||
|             IsLocalizable = false; | ||||
|  | ||||
|             if (!String.IsNullOrEmpty(ResourceKey) && ModuleState?.ModuleType != null) | ||||
|             { | ||||
|                 if (ModuleState?.ModuleType != null) | ||||
|                 var moduleType = Type.GetType(ModuleState.ModuleType); | ||||
|                 if (moduleType != null) | ||||
|                 { | ||||
|                     var moduleType = Type.GetType(ModuleState.ModuleType); | ||||
|                     if (moduleType != null) | ||||
|                     using (var scope = ServiceActivator.GetScope()) | ||||
|                     { | ||||
|                         using (var scope = ServiceActivator.GetScope()) | ||||
|                         { | ||||
|                             var localizerFactory = scope.ServiceProvider.GetService<IStringLocalizerFactory>(); | ||||
|                             _localizer = localizerFactory.Create(moduleType); | ||||
|                         } | ||||
|                         var localizerFactory = scope.ServiceProvider.GetService<IStringLocalizerFactory>(); | ||||
|                         _localizer = localizerFactory.Create(moduleType); | ||||
|  | ||||
|                         IsLocalizable = true; | ||||
|                     } | ||||
|                 } | ||||
|  | ||||
|                 IsLocalizable = true; | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 IsLocalizable = false; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @ -46,11 +46,8 @@ | ||||
|     { | ||||
|         base.OnParametersSet(); | ||||
|  | ||||
|         if (IsLocalizable) | ||||
|         { | ||||
|             _heading = !string.IsNullOrEmpty(Heading) | ||||
|                 ? Localize(nameof(Heading), Heading) | ||||
|                 : Localize(nameof(Name), Name); | ||||
|         } | ||||
|         _heading = !string.IsNullOrEmpty(Heading) | ||||
|             ? Localize(nameof(Heading), Heading) | ||||
|             : Localize(nameof(Name), Name); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -40,16 +40,13 @@ else | ||||
|     { | ||||
|         base.OnParametersSet(); | ||||
|  | ||||
|         if (IsLocalizable) | ||||
|         if (string.IsNullOrEmpty(Heading)) | ||||
|         { | ||||
|             if (string.IsNullOrEmpty(Heading)) | ||||
|             { | ||||
|                 Name = Localize(nameof(Name), Name); | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 Heading = Localize(nameof(Heading), Heading); | ||||
|             } | ||||
|             Name = Localize(nameof(Name), Name); | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             Heading = Localize(nameof(Heading), Heading); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 hishamco
					hishamco