Всем привет! Необходимо сделать двуязычный сайт. Просто по представлениям (views), ресурсы не нужны.
Делаю все по статье
blogs.msdn.com/b/vyunev/archive/2011/12/07/asp-net...
с горем пополам завел его, в базовом контролере не было задействовано чтение с куков, добавил:
string cultureName = null;
// Attempt to read the culture cookie from Request
HttpCookie cultureCookie = Request.Cookies["_culture"];
if (cultureCookie != null)
cultureName = cultureCookie.Value;
else
cultureName = Thread.CurrentThread.CurrentCulture.Name;
А вот отображение текущего языка никак не могу сделать, в представлении Index.ru-ru.cshtml и Index.en-us.cshtml
@{
var culture = System.Threading.Thread.CurrentThread.CurrentUICulture.Name.ToLowerInvariant();
}
@helper selected(string c, string culture)
{
if (c == culture)
{
@:checked="checked"
}
}
@using (Html.BeginForm("SetCulture", "Home"))
{
<fieldset>
<input name="culture" id="ru-ru" value="ru-ru" type="radio" @selected("ru-ru", culture) /> Русский <br />
<input name="culture" id="en-us" value="en-us" type="radio" @selected("en-us", culture) /> English
</fieldset>
}
...
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
<script type="text/javascript">
(function ($) {
$("input[type = 'radio']").click(function () {
$(this).parents("form").submit(); // post form
});
})(jQuery);
</script>
}
У меня всегда выделен русский radio, какой бы язык не был выбран. И вот это if (c не пойму что за пеерменная, откуда она там.
Еще не понятно почему у него два одинаковых блока js кода и зачем делать выбранный язык жирным, все равно представление перегружается и стиль обнуляется