diff --git a/EnvelopeGenerator.Application/Resources/Resource.de-DE.resx b/EnvelopeGenerator.Application/Resources/Resource.de-DE.resx
index ece65ad1..9e8c65a2 100644
--- a/EnvelopeGenerator.Application/Resources/Resource.de-DE.resx
+++ b/EnvelopeGenerator.Application/Resources/Resource.de-DE.resx
@@ -145,6 +145,6 @@
Ein unerwarteter Fehler ist aufgetreten.
- Ungültiger Zugangscode.
+ Dokument unterschreiben
\ No newline at end of file
diff --git a/EnvelopeGenerator.Application/Resources/Resource.en-US.resx b/EnvelopeGenerator.Application/Resources/Resource.en-US.resx
index 87e3bae3..d1280969 100644
--- a/EnvelopeGenerator.Application/Resources/Resource.en-US.resx
+++ b/EnvelopeGenerator.Application/Resources/Resource.en-US.resx
@@ -141,6 +141,9 @@
Document requires an access code
+
+ Dokument unterschreiben
+
An unexpected error has occurred.
diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestLocalizerController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestLocalizerController.cs
index 31c641a6..4c50d6e9 100644
--- a/EnvelopeGenerator.Web/Controllers/Test/TestLocalizerController.cs
+++ b/EnvelopeGenerator.Web/Controllers/Test/TestLocalizerController.cs
@@ -1,4 +1,5 @@
using AngleSharp.Common;
+using DigitalData.Core.API;
using EnvelopeGenerator.Application.Resources;
using EnvelopeGenerator.Web.Models;
using Microsoft.AspNetCore.Mvc;
@@ -23,9 +24,15 @@ namespace EnvelopeGenerator.Web.Controllers.Test
public IActionResult Localize([FromQuery] string key = "de_DE") => Ok(_localizer[key]);
[HttpGet("fi-class")]
- public IActionResult GetFIClass(string? lang = null) => lang is null ? Ok(_cultures.FIClasses) : Ok(_cultures.FIClassOf(lang));
+ public IActionResult GetFIClass(string? lang = null) => lang is null ? Ok(_cultures.FIClasses) : Ok(_cultures[lang]?.FIClass);
[HttpGet("culture")]
- public IActionResult GetCultures(string? lang = null) => lang is null ? Ok(_cultures) : Ok(_cultures.CultureOf(lang));
+ public IActionResult GetCultures(string? lang = null) => lang is null ? Ok(_cultures) : Ok(_cultures[lang]);
+
+ [HttpGet("to-culture-info")]
+ public IActionResult ToCultureInfo(string locale) => Ok(locale.ToCultureInfo());
+
+ [HttpGet("two-letter-iso-language-name")]
+ public IActionResult TwoLetterISOLanguageName(string locale) => Ok(locale.TwoLetterISOLanguageName());
}
}
diff --git a/EnvelopeGenerator.Web/Models/Culture.cs b/EnvelopeGenerator.Web/Models/Culture.cs
index 8ffbdee4..4838838e 100644
--- a/EnvelopeGenerator.Web/Models/Culture.cs
+++ b/EnvelopeGenerator.Web/Models/Culture.cs
@@ -1,8 +1,18 @@
-namespace EnvelopeGenerator.Web.Models
+using System.Globalization;
+
+namespace EnvelopeGenerator.Web.Models
{
public class Culture
{
- public string Language { get; init; } = string.Empty;
+ private string _language = string.Empty;
+ public string Language { get => _language;
+ init {
+ _language = value;
+ Info = new(value);
+ }
+ }
public string FIClass { get; init; } = string.Empty;
+
+ public CultureInfo? Info { get; init; }
}
}
diff --git a/EnvelopeGenerator.Web/Models/Cultures.cs b/EnvelopeGenerator.Web/Models/Cultures.cs
index 680efab0..826fcef6 100644
--- a/EnvelopeGenerator.Web/Models/Cultures.cs
+++ b/EnvelopeGenerator.Web/Models/Cultures.cs
@@ -6,10 +6,8 @@
public IEnumerable FIClasses => this.Select(c => c.FIClass);
- public Culture? CultureOf(string? language) => language is null ? null : this.Where(c => c.Language == language).FirstOrDefault();
-
public Culture Default => this.First();
-
- public string FIClassOf(string? language) => language is null ? string.Empty : CultureOf(language)?.FIClass ?? string.Empty;
+
+ public Culture? this[string? language] => language is null ? null : this.Where(c => c.Language == language).FirstOrDefault();
}
}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Web/Views/Home/EnvelopeLocked.cshtml b/EnvelopeGenerator.Web/Views/Home/EnvelopeLocked.cshtml
index 64884978..392e1533 100644
--- a/EnvelopeGenerator.Web/Views/Home/EnvelopeLocked.cshtml
+++ b/EnvelopeGenerator.Web/Views/Home/EnvelopeLocked.cshtml
@@ -39,14 +39,16 @@