diff --git a/Duplicati/Library/Localization/LocalizationService.cs b/Duplicati/Library/Localization/LocalizationService.cs
index 8d62b88fd..636a75217 100644
--- a/Duplicati/Library/Localization/LocalizationService.cs
+++ b/Duplicati/Library/Localization/LocalizationService.cs
@@ -98,6 +98,20 @@ namespace Duplicati.Library.Localization
}
}
+ ///
+ /// Gets a localization provider with the current UI language
+ ///
+ public static ILocalizationService CurrentUI
+ {
+ get
+ {
+ var lc = LocalizationContext.Current;
+ if (!string.IsNullOrWhiteSpace(lc))
+ return Get(new CultureInfo(lc));
+ return Get(CultureInfo.CurrentUICulture);
+ }
+ }
+
///
/// Gets a localization provider with the OS install language
///
diff --git a/Duplicati/WebserverCore/Middlewares/LanguageFilter.cs b/Duplicati/WebserverCore/Middlewares/LanguageFilter.cs
index 353720ebf..a376baee5 100644
--- a/Duplicati/WebserverCore/Middlewares/LanguageFilter.cs
+++ b/Duplicati/WebserverCore/Middlewares/LanguageFilter.cs
@@ -18,6 +18,7 @@
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
+using System.Globalization;
using Duplicati.Library.Localization;
namespace Duplicati.WebserverCore.Middlewares;
@@ -30,7 +31,7 @@ public class LanguageFilter : IEndpointFilter
? LocalizationService.ParseCulture(locale)
: null;
- using (ci == null ? null : LocalizationService.TemporaryContext(ci))
+ using (LocalizationService.TemporaryContext(ci ?? CultureInfo.CurrentUICulture))
return await next(context);
}
diff --git a/Duplicati/WebserverCore/Services/SystemInfoProvider.cs b/Duplicati/WebserverCore/Services/SystemInfoProvider.cs
index 8d9679c64..724732457 100644
--- a/Duplicati/WebserverCore/Services/SystemInfoProvider.cs
+++ b/Duplicati/WebserverCore/Services/SystemInfoProvider.cs
@@ -273,7 +273,7 @@ public class SystemInfoProvider : ISystemInfoProvider
public SystemInfoDto GetSystemInfo(CultureInfo? browserlanguage)
{
browserlanguage ??= CultureInfo.InvariantCulture;
- var currentLanguage = LocalizationService.Current?.Culture.Name;
+ var currentLanguage = LocalizationService.CurrentUI?.Culture.Name;
if (string.IsNullOrWhiteSpace(currentLanguage))
currentLanguage = CultureInfo.CurrentUICulture.Name;