У .Net Core Razor неправильная культураC#

Место общения программистов C#
Ответить
Anonymous
 У .Net Core Razor неправильная культура

Сообщение Anonymous »

У меня есть локализованное приложение .Net Core 3. Мои ресурсы находятся в отдельной сборке в файлах .resx. Локализация настроена на использование файлов cookie следующим образом:

Код: Выделить всё

var cultureProvider = new CookieRequestCultureProvider();
cultureProvider.CookieName = "MyCultureCookie";

var localizationOptions = new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("de"),
SupportedCultures = StaticData.SupportedCultures,
SupportedUICultures = StaticData.SupportedCultures,
RequestCultureProviders = new List
{
cultureProvider,
new AcceptLanguageHeaderRequestCultureProvider()
}
};

app.UseRequestLocalization(localizationOptions);
и локализовать сообщения проверки:

Код: Выделить всё

services.AddLocalization(options => options.ResourcesPath = "Resources");
services.AddControllersWithViews()
.AddDataAnnotationsLocalization(options =>
{
options.DataAnnotationLocalizerProvider = (type, factory) =>
factory.Create(typeof(MyLocalizationDll));
})
.AddViewLocalization()
.AddRazorRuntimeCompilation();
services.AddMvc()
.SetupModelBindingLocalization(services)
.AddViewLocalization();
Вклад, на мой взгляд: Это работает хорошо, я могу переключать язык, и все тексты страниц, включая почти все сообщения об ошибках проверки данных, будут переведены, числа отображаются в правильном формате (например, 1,00 для «en» и 1,00 для «de»).
Но проблема в том, что когда у меня есть десятичное число, например 1,5 в немецкой культуре, и я отправляю форму, то в моей контроллер. Только когда я переключаю язык на «en», я получаю правильное число, потому что десятичный разделитель, как и ожидалось, представляет собой точку. И я также получаю некоторые сообщения проверки этого поля на другом языке. Никак не могу понять в чем тут проблема...

Подробнее здесь: https://stackoverflow.com/questions/640 ... ng-culture
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»