Ответ 1
В ASP.NET MVC web.config
- правильное место. Существует краткое резюме, первый фрагмент показывает, как может быть, например, pt-BR
культура принудительная
<globalization
enableClientBasedCulture="false"
uiCulture="pt-BR"
culture="pt-BR" />
Если приложение готово принять культуру от клиента (браузера), настройки должны быть
<globalization
enableClientBasedCulture="true"
uiCulture="auto"
culture="auto" />
В приведенном выше параметре будет выбран язык, выбранный в браузере клиента (например, cs-CZ
в моем случае). Если ни один не определен, будут использоваться системные настройки.
Заключительный фрагмент показывает, как разрешить клиенту устанавливать и отправлять намеченную культуру, но в случае, если язык не выбран заранее, переопределите системный параметр с другим значением по умолчанию pt-BR
<globalization
enableClientBasedCulture="true"
uiCulture="auto:pt-BR"
culture="auto:pt-BR" />
Расширенные: настройки культуры для jQuery
validator
и числового ввода
Примечание. Я определенно не эксперт в jQuery
и методах глобализации. Это пример того, как я настраиваю validator
для правильной обработки любого числового ввода
razor Просмотреть часть (X()
является ярлыком для new HtmlString()
):
var defaultThousandSeprator = "@X(culture.NumberFormat.NumberGroupSeparator)";
var defaultDecimalSeprator = "@X(culture.NumberFormat.NumberDecimalSeparator)";
часть jQuery (пользовательские методы для min и max)
$.validator.addMethod("min", function (value, element, param)
{
var num = value.replace(RegExp(" ", "g"), "") // remove spaces
.replace(RegExp('\\' + defaultThousandSeprator, "g"), "") // thousand separator
.replace(RegExp("\\" + defaultDecimalSeprator, "g"), "."); // fix decimals
return this.optional(element) || num >= param;
});
$.validator.addMethod("max", function (value, element, param)
{
var num = value.replace(RegExp(" ", "g"), "") // remove spaces
.replace(RegExp('\\' + defaultThousandSeprator, "g"), "") // thousands
.replace(RegExp("\\" + defaultDecimalSeprator, "g"), "."); // decimals
return this.optional(element) || num <= param;
});
И затем jQuery.validator правильно оценивает входные значения для cs-CZ: 10 000,00
, а также en-US: 10,000.00
.