diff --git a/Oqtane.Client/Modules/Controls/ActionDialog.razor b/Oqtane.Client/Modules/Controls/ActionDialog.razor
index fa992e97..ac7e4690 100644
--- a/Oqtane.Client/Modules/Controls/ActionDialog.razor
+++ b/Oqtane.Client/Modules/Controls/ActionDialog.razor
@@ -99,8 +99,8 @@
if (IsLocalizable)
{
- Header = Localize(nameof(Header));
- Message = Localize(nameof(Message));
+ Header = Localize(nameof(Header), Header);
+ Message = Localize(nameof(Message), Message);
}
_authorized = IsAuthorized();
diff --git a/Oqtane.Client/Modules/Controls/Label.razor b/Oqtane.Client/Modules/Controls/Label.razor
index 3869d8b4..85e65d14 100644
--- a/Oqtane.Client/Modules/Controls/Label.razor
+++ b/Oqtane.Client/Modules/Controls/Label.razor
@@ -45,8 +45,14 @@ else
if (IsLocalizable)
{
- ChildContent =@@Localize("Text");
- HelpText = Localize(nameof(HelpText));
+ var value = Localize("Text");
+ var key = $"{ResourceKey}.Text";
+ if (!value.Equals(key))
+ {
+ ChildContent =@@Localize("Text");
+ }
+
+ HelpText = Localize(nameof(HelpText), HelpText);
}
}
}
diff --git a/Oqtane.Client/Modules/Controls/LocalizableComponent.cs b/Oqtane.Client/Modules/Controls/LocalizableComponent.cs
index 80222e66..657494d7 100644
--- a/Oqtane.Client/Modules/Controls/LocalizableComponent.cs
+++ b/Oqtane.Client/Modules/Controls/LocalizableComponent.cs
@@ -24,10 +24,25 @@ namespace Oqtane.Modules.Controls
{
return name;
}
-
+
return _localizer?[key] ?? name;
}
+ protected string Localize(string name, string defaultValue)
+ {
+ var key = $"{ResourceKey}.{name}";
+ var value = Localize(name);
+
+ if (value == key)
+ {
+ return defaultValue;
+ }
+ else
+ {
+ return value;
+ }
+ }
+
protected override void OnParametersSet()
{
if (!String.IsNullOrEmpty(ResourceKey))
diff --git a/Oqtane.Client/Modules/Controls/Section.razor b/Oqtane.Client/Modules/Controls/Section.razor
index 573a536b..fd8b9a52 100644
--- a/Oqtane.Client/Modules/Controls/Section.razor
+++ b/Oqtane.Client/Modules/Controls/Section.razor
@@ -49,8 +49,8 @@
if (IsLocalizable)
{
_heading = !string.IsNullOrEmpty(Heading)
- ? Localize(nameof(Heading))
- : Localize(nameof(Name));
+ ? Localize(nameof(Heading), Heading)
+ : Localize(nameof(Name), Name);
}
}
}
diff --git a/Oqtane.Client/Modules/Controls/TabPanel.razor b/Oqtane.Client/Modules/Controls/TabPanel.razor
index 9472bab3..7c2eaa24 100644
--- a/Oqtane.Client/Modules/Controls/TabPanel.razor
+++ b/Oqtane.Client/Modules/Controls/TabPanel.razor
@@ -44,11 +44,11 @@ else
{
if (string.IsNullOrEmpty(Heading))
{
- Name = Localize(nameof(Name));
+ Name = Localize(nameof(Name), Name);
}
else
{
- Heading = Localize(nameof(Heading));
+ Heading = Localize(nameof(Heading), Heading);
}
}
}